• unknown's avatar
    A fix and a test case for Bug#10794 "mysql_stmt_attr_set no · ec9ac3fe
    unknown authored
    open cursor after mysql_stmt_execute" + post-review fixes.
    The bug was caused by wrong flags in stmt->server_status on the client
    side: if there was no cursor, the server didn't send server_status
    flags to the client, and the old flags were used to set up the
    fetch function of a statement. Consequently, stmt_read_row_from_cursor was
    used when there was no cursor. The fix fixes the server to always
    send server flags to the client.
    
    
    include/mysql_com.h:
      Update stale comments.
    libmysql/libmysql.c:
      Remove an extra assignment.
    libmysqld/lib_sql.cc:
      Update to correspond to the changed signature of send_eof
    sql/protocol.cc:
      Actual fix for bug#10794: create a function that writes the eof
      packet to network and use it from send_fields. We need to send
      a full eof packet from send_fields to inform the client about
      the cursor status (that there is no cursor in this case).
    sql/protocol.h:
      Remove an unused parameter for send_eof.
    tests/mysql_client_test.c:
      A test case for Bug#10794 "mysql_stmt_attr_set no open cursor 
      after mysql_stmt_execute"
    ec9ac3fe
lib_sql.cc 20.4 KB