Permalink
Commits on Dec 3, 2011
  1. Fix issue with "should cache previously yielded results by default"

    benmcredmond committed Dec 3, 2011
    Was accidentally overwriting wrapper->numberOfRows on iterations after
    first.
Commits on Dec 1, 2011
  1. reacquire GVL before retrying on EINTR on connect

    Eric Wong authored and brianmario committed Dec 1, 2011
    If signals are received, we must reacquire the GVL to let
    (Ruby-level) signal handlers run.  Otherwise, it may be
    impossible to effectively cancel/interrupt a slow connection
    negotiation.
    
    Fortunately, connecting to MySQL servers is rare and rarely
    interrupted (or even interruptible) by signal handlers, so
    maybe nobody noticed this bug.
  2. avoid potentially unsafe Ruby C API usage w/o GVL

    Eric Wong authored and brianmario committed Dec 1, 2011
    Using StringValuePtr() /can/ potentially allocate a new String
    object.  This allocation _currently_ impossible in our codebase,
    but to prevent future/potential bugs from appearing, we'll
    avoid StringValuePtr() (and any functions not explicitly
    supported w/o GVL) in nogvl_* regions.
  3. revert to using xmalloc/xfree for allocations

    Eric Wong authored and brianmario committed Dec 1, 2011
    I've (re)read our usage of them and observed no bad interactions
    with the Ruby GC and no need to use RB_GC_GUARD anywhere.
    
    xmalloc() does error-checking for us, so we'll raise
    NoMemoryError instead of a segfaulting when/if malloc() fails to
    release memory.
    
    xmalloc() may increase the frequency of GC invocation in MRI
    because it bumps the malloc counter (and xfree() cannot
    decrement it), but MRI 1.9.3+ users can set a higher
    RUBY_GC_MALLOC_LIMIT to reduce GC frequency (or improve GC :P).
  4. reacquire GVL before retrying on EINTR on connect

    Eric Wong
    Eric Wong committed Dec 1, 2011
    If signals are received, we must reacquire the GVL to let
    (Ruby-level) signal handlers run.  Otherwise, it may be
    impossible to effectively cancel/interrupt a slow connection
    negotiation.
    
    Fortunately, connecting to MySQL servers is rare and rarely
    interrupted (or even interruptible) by signal handlers, so
    maybe nobody noticed this bug.
  5. avoid potentially unsafe Ruby C API usage w/o GVL

    Eric Wong
    Eric Wong committed Dec 1, 2011
    Using StringValuePtr() /can/ potentially allocate a new String
    object.  This allocation _currently_ impossible in our codebase,
    but to prevent future/potential bugs from appearing, we'll
    avoid StringValuePtr() (and any functions not explicitly
    supported w/o GVL) in nogvl_* regions.
  6. revert to using xmalloc/xfree for allocations

    Eric Wong
    Eric Wong committed Dec 1, 2011
    I've (re)read our usage of them and observed no bad interactions
    with the Ruby GC and no need to use RB_GC_GUARD anywhere.
    
    xmalloc() does error-checking for us, so we'll raise
    NoMemoryError instead of a segfaulting when/if malloc() fails to
    release memory.
    
    xmalloc() may increase the frequency of GC invocation in MRI
    because it bumps the malloc counter (and xfree() cannot
    decrement it), but MRI 1.9.3+ users can set a higher
    RUBY_GC_MALLOC_LIMIT to reduce GC frequency (or improve GC :P).
Commits on Nov 16, 2011
Commits on Nov 10, 2011
  1. Merge pull request #198 from JonathonMA/doc-test-requirements

    brianmario committed Nov 10, 2011
    Document user and database requirements for tests
  2. grrrrrrrr

    Ben McRedmond
    Ben McRedmond committed Nov 10, 2011
  3. More stupid vim indentation

    Ben McRedmond
    Ben McRedmond committed Nov 10, 2011
  4. Change :streaming to :stream

    Ben McRedmond
    Ben McRedmond committed Nov 10, 2011
  5. Change mysql error detection strategy

    woahdae authored and brianmario committed Nov 10, 2011
    Previous to this commit, some mysql connection errors were not detected
    by the client.
    
    This commit changes from implicit error detection via checking
    mysql_field_count() to explicit detection via mysql_errno().
    
    http://dev.mysql.com/doc/refman/5.0/en/null-mysql-store-result.html
  6. Merge pull request #224 from woahdae/mysql_err_check

    brianmario committed Nov 10, 2011
    Change mysql error detection strategy
  7. Change mysql error detection strategy

    woahdae committed Nov 10, 2011
    Previous to this commit, some mysql connection errors were not detected
    by the client.
    
    This commit changes from implicit error detection via checking
    mysql_field_count() to explicit detection via mysql_errno().
    
    http://dev.mysql.com/doc/refman/5.0/en/null-mysql-store-result.html
  8. Think I actually fixed indentation this time

    Ben McRedmond
    Ben McRedmond committed Nov 10, 2011
  9. Accidentally committed Gemfile.lock

    Ben McRedmond
    Ben McRedmond committed Nov 10, 2011
  10. fixing vim's messed up indentation

    Ben McRedmond
    Ben McRedmond committed Nov 10, 2011
  11. Updated README to describe streaming

    Ben McRedmond
    Ben McRedmond committed Nov 10, 2011
  12. Initial implementation of mysql_use_result, accessible by setting :st…

    Ben McRedmond
    Ben McRedmond committed Nov 10, 2011
    …reaming => true when querying
Commits on Nov 9, 2011
  1. 0.2.x

    brianmario committed Nov 9, 2011
  2. one more bump for win32

    brianmario committed Nov 9, 2011
  3. Merge branch '0.2.x'

    brianmario committed Nov 9, 2011
  4. fix win32 build

    brianmario committed Nov 9, 2011
  5. Merge branch '0.2.x'

    brianmario committed Nov 9, 2011