Eric Wong
4ac62c1333
correctly free the wrapped result in case of EOF
...
This is a followup to aa9f435141
which made the same change 10 lines down.
2010-05-05 17:59:14 -07:00
Eric Wong
1d92db8aab
add Mysql2::Client#close method
...
This allows users to (manually) avoid the tricky case of hitting
a socket write during GC and potentially blocking the
interpreter during GC. An explicit `close' is also useful in
situations where server resources are limited and a client only
needs to connect for a limited time.
2010-05-05 17:38:08 -07:00
Eric Wong
f7a6b49cbd
[cleanup] make all C symbols static
...
Other than the Init_$extension() function, the only reason
to have public symbols is for large C extensions that need
to span multiple .c files and we're not one of them.
2010-05-05 15:38:43 -07:00
Eric Wong
081eea9a9c
[cleanup] quiet down warnings
...
This can help us notice real bugs in our code sooner.
Some of the unused variable warnings are pedantic from our usage
of -Wextra, but GCC >= 3 provides us with a handy attribute we
can use to mark variables unused. -Wextra is also a default
flag for 1.9.2dev, so we might as well get used to it.
2010-05-05 15:30:34 -07:00
Eric Wong
59a823b6d5
release GVL for possibly blocking mysql_* library calls
...
There are still some corner-case calls which may cause
network activity and block the socket, but the majority
of reads/writes on the socket will release the GVL under
1.9 and be signal-safe under all versions of Ruby.
We'll also make a note of all functions calls that passed
visual inspection and add FIXME for a few more corner
cases we still need to fix.
2010-05-05 14:26:22 -07:00
Eric Wong
fa213c9892
wrap mysql_real_connect with rb_thread_blocking_region
...
mysql_real_connect() is a blocking function that issues
blocking-but-interruptible connect(), read(), and write() system
calls. So we'll allow other threads in the VM to run while
calling it since it can block indefinitely.
This introduces a rb_thread_blocking_region() wrapper for 1.8
which ensures any received signals can be handled gracefully
while inside blocking function calls.
2010-05-05 11:57:37 -07:00
Brian Lopez
33e0b9ea51
fix bug in show_variable method of AR adapter
2010-05-04 09:02:11 -07:00
Brian Lopez
dfca514562
make specs a little finer grained, fix a few issues found along the way
2010-04-29 10:01:25 -07:00
Brian Lopez
61e748ddc4
add another check for valid datetime/timestamps. move to sscanf for datetime parsing
2010-04-29 00:45:22 -07:00
Brian Lopez
869783107d
add undefined ref to PRIMARY const in AR adapter
2010-04-27 22:44:18 -07:00
Brian Lopez
46020e5ef5
add initial Sequel adapter
2010-04-25 23:13:27 -07:00
Brian Lopez
428eb7e79b
Revert "Revert "for DATE columns, return ruby Date object instead of Time (didn't realize I could create them from y,m,d integers without ActiveSupport)""
...
This reverts commit 5e4080e4e5
.
2010-04-25 21:45:40 -07:00
Brian Lopez
f6d62225ee
update AR benchmark to better reflect typecasting
2010-04-25 21:45:26 -07:00
Brian Lopez
39cfbe9824
updating files for 0.1.4 release
2010-04-23 17:49:19 -07:00
Brian Lopez
deb8f43d93
Version bump to 0.1.4
2010-04-23 17:36:12 -07:00
Brian Lopez
30f1ff55fc
bring the rest of the mysql adapter in, making the mysql2 adapter stand-alone
2010-04-23 00:33:22 -07:00
Brian Lopez
a3bcec4fb4
wording clarification on readme
2010-04-22 14:24:19 -07:00
Brian Lopez
06fd523608
update benchmark results in readme
2010-04-22 13:57:34 -07:00
Brian Lopez
5e4080e4e5
Revert "for DATE columns, return ruby Date object instead of Time (didn't realize I could create them from y,m,d integers without ActiveSupport)"
...
The Date class is sooooo sllooowwww :)
Will probably look into bringing in http://github.com/rtomayko/date-performance at some point.
This reverts commit 51babb3362
.
2010-04-22 12:37:05 -07:00
Brian Lopez
c05138e328
build and use a cache of field names for results
2010-04-22 11:56:18 -07:00
Brian Lopez
aa9f435141
fix a stupid bug when freeing the C result
2010-04-22 11:55:03 -07:00
Brian Lopez
51babb3362
for DATE columns, return ruby Date object instead of Time (didn't realize I could create them from y,m,d integers without ActiveSupport)
2010-04-21 10:28:25 -07:00
Brian Lopez
eefa443c2e
Implement a local resultset cache so we can free the mysql C result once we've cached it's rows in ruby land.
...
This allows the caller to iterate over the Mysql2::Result instance as many times as they want, lazily pulling what rows are needed from the mysql C result.
2010-04-21 01:40:28 -07:00
Brian Lopez
efc66b6c06
update benchmark scripts
2010-04-21 01:31:46 -07:00
Brian Lopez
d7c146e322
updating files for 0.1.3 release
2010-04-15 13:35:42 -07:00
Brian Lopez
7caf1b6b6a
Version bump to 0.1.3
2010-04-15 13:03:21 -07:00
Brian Lopez
1d3c281904
add AR benchmark - mysql2 looks to be about 19% faster so far
2010-04-15 13:00:39 -07:00
Brian Lopez
12d4d8a0b8
set adapter name
2010-04-15 12:23:37 -07:00
Brian Lopez
4866ae0aa3
add msyql2 Arel support
2010-04-15 12:23:24 -07:00
Brian Lopez
737edcfe67
don't really need to specify a db for the escape benchmark
2010-04-15 10:53:58 -07:00
Brian Lopez
1c9e94f7e9
add initial ActiveRecord driver
2010-04-15 00:56:51 -07:00
Brian Lopez
288ed22806
add initial EM Deferrable API
2010-04-14 12:55:27 -07:00
Brian Lopez
7d6bbbcdd2
update files for 0.1.2 release
2010-04-09 10:05:01 -07:00
Brian Lopez
8184ed66fe
Version bump to 0.1.2
2010-04-09 10:04:38 -07:00
Brian Lopez
3155cb799e
fix copy-paste fail found by @marius
2010-04-09 08:56:30 -07:00
Brian Lopez
ccacb2de3c
a couple more notes about async
2010-04-07 10:47:16 -07:00
Brian Lopez
5b1e0a261c
add some notes about async support to readme
2010-04-07 10:08:04 -07:00
Brian Lopez
64f69cf180
update install instructions
2010-04-07 09:59:37 -07:00
Brian Lopez
aa0528d1ff
update gitignore
2010-04-07 09:58:19 -07:00
Brian Lopez
ea9b21f632
update files for 0.1.1 release
2010-04-07 09:52:05 -07:00
Brian Lopez
a9df890c1b
Version bump to 0.1.1
2010-04-07 09:48:57 -07:00
Brian Lopez
8f93f830c1
add affected_rows method (mysql_affected_rows)
2010-04-07 09:47:45 -07:00
Brian Lopez
e20df5c140
add last_id method (last_insert_id)
2010-04-07 09:36:36 -07:00
Brian Lopez
3a32dc79ec
reconnect by default
2010-04-07 09:23:14 -07:00
Brian Lopez
7131752757
add initial async query support
2010-04-07 09:16:30 -07:00
Brian Lopez
80a8602fbb
borrow the more flexible extconf from the mysqlplus project
2010-04-07 07:03:31 -07:00
Brian Lopez
11216551cd
typo
2010-04-06 15:32:36 -07:00
Brian Lopez
db454d3f15
initial stab at finding mysql headers easier
2010-04-06 15:26:09 -07:00
Brian Lopez
e8b1a18522
I dunno why this bothered me
2010-04-06 09:25:43 -07:00
Brian Lopez
1f5ccc6e80
update install notes now that the gem is pushed
2010-04-06 08:54:30 -07:00