An error occurred fetching the project authors.
  1. 02 Sep, 2004 1 commit
    • unknown's avatar
      A fix and test case for Bug#4231 "Wrong result with MYSQL_TIME · 0c58737a
      unknown authored
      parameters": when unpacking binary time recieved from client, handle
      the case when length is 0: it means all MYSQL_TIME members are zero.
      
      
      include/my_time.h:
        Declaration for set_zero_time: a tiny piece of code, which I
        see no reason to not reuse.
      libmysql/libmysql.c:
        set_zero_time implementation is now shared between client and
        server.
      sql-common/my_time.c:
        set_zero_time implementation added.
      sql/sql_prepare.cc:
        A fix for Bug#4231 "Wrong result with MYSQL_TIME parameters": 
        when unpacking binary time recieved from client, handle the
        case when length is 0: it means all MYSQL_TIME members are zero.
      tests/client_test.c:
        Test case for bug#4231 "Wrong result with MYSQL_TIME parameters"
      0c58737a
  2. 01 Sep, 2004 1 commit
  3. 26 Aug, 2004 2 commits
    • unknown's avatar
      A short fix and test case for Bug#5126 · ce91cbb8
      unknown authored
      "Mediumint and PS problem": just treat mediumint as long.
      
      
      libmysql/libmysql.c:
        A short fix for bug #5126 "Mediumint and PS problem": just
        treat mediumint as long, as it's sent just like long.
      tests/client_test.c:
        A test case for bug#5126
      ce91cbb8
    • unknown's avatar
      after merge · 82257f94
      unknown authored
      sql/item_row.cc:
        ds20 compat fix
      82257f94
  4. 05 Aug, 2004 1 commit
    • unknown's avatar
      Cleanup in libmysql. · f47a0b9f
      unknown authored
      libmysql/libmysql.c:
        Cleanup of conversion part of libmysql (prepared statements protocol):
        - now we have basic support for any conversion sequence:
          when we don't implement direct conversion of given value to requested 
          buffer type (i.e. time -> double, or the other way around) we
          first convert i.e. time -> string and then call string -> double 
          conversion.
          param->offset is now handled only in one place.
        - conversion functions renamed from send_data_{string, long, double}
          to fetch_{string,long,double}_with_conversion. Don't be confused
          with strange diff for send_data_long: I had to move send_data_string
          before all other sends as it's used inside thesm. (Shall we have
          a forward declaration instead?-)
        - a little cleanup in read_binary_{date,time,datetime} - now type of
          date value is set inside these functions, so we can be sure
          that we always return fully filled MYSQL_TIME structure to the user
        - float -> string conversion is fixed to honor param->precision. 
          This is a step forward in fixing bug#4172
      tests/client_test.c:
        test fix: now libmysql always sets MYSQL_TIME::time_type field.
        We need to set these fields in the test as later _in values are compared
        with canonical by plain memcmp.
      f47a0b9f
  5. 25 Jun, 2004 1 commit
  6. 24 Jun, 2004 2 commits
    • unknown's avatar
      - fixed test_frm_bug test to work with increased number of columns in · 57ee2443
      unknown authored
      result of SHOW TABLE STATUS
      
      
      BitKeeper/etc/ignore:
        added libmysqld/my_time.c
      57ee2443
    • unknown's avatar
      Fix for Bug#4030 "Client side conversion string -> date type doesn't · 9dde4188
      unknown authored
      work (prepared statements)" and after-review fixes:
      - str_to_TIME renamed to str_to_datetime to pair with str_to_time
      - functions str_to_time and str_to_TIME moved to sql-common
      - send_data_str now supports MYSQL_TYPE_TIME, MYSQL_TIME_DATE,
        MYSQL_TIME_DATETIME types of user input buffers.
      - few more comments in the client library
      - a test case added.
      
      
      VC++Files/libmysql/libmysql.dsp:
        new file: my_time.c
      VC++Files/libmysqld/libmysqld.dsp:
        new file: my_time.c
      VC++Files/sql/mysqld.dsp:
        new file: my_time.c
      include/Makefile.am:
        - mysql_time.h added to the list of installed client library headers
      include/mysql.h:
        - declarations for MYSQL_TIME and enum_mysql_timestamp_type moved to 
        mysql_time.h, which is in shared use of client library and mysys.
      libmysql/Makefile.shared:
        - my_time.lo added to the list of libmysql objects
      libmysql/libmysql.c:
        Fix for bug#4030 "Client side conversion string -> date type doesn't work
         (prepared statements)" and cleanup.
        - added case labels for TIME/DATE/DATETIME types to send_data_str
        - comments for read_binary_{date,time,datetime}, fetch_result_*, fetch_results.
      libmysqld/Makefile.am:
        - my_time.c added
      sql-common/Makefile.am:
        - my_time.c added to the list of files included into source distribution.
      sql/Makefile.am:
        my_time.c added to the list of mysqld sources.
      sql/field.cc:
        - TIMESTAMP_{TIME,DATE,DATETIME,...} renamed to 
          MYSQL_TIMESTAMP_{TIME,DATETIME,DATE,...}
      sql/item.cc:
        - TIMESTAMP_{TIME,DATE,DATETIME,...} renamed to 
          MYSQL_TIMESTAMP_{TIME,DATETIME,DATE,...}
      sql/item_timefunc.cc:
        - TIMESTAMP_{TIME,DATE,DATETIME,...} renamed to 
          MYSQL_TIMESTAMP_{TIME,DATETIME,DATE,...}
      sql/mysql_priv.h:
        - added typedefs for TIME and timestamp_type
        - removed declarations for str_to_time and str_to_TIME (now this functions
          reside in mysys)
      sql/mysqld.cc:
        - log_10_int moved to mysys (it's used by str_to_TIME and str_to_time)
        - enum values TIMESTAMP_{TIME,DATE,DATETIME} were renamed to
          MYSQL_TIMESTAMP_{TIME,DATE,DATETIME}
      sql/set_var.cc:
        - TIMESTAMP_{TIME,DATE,DATETIME,...} renamed to 
          MYSQL_TIMESTAMP_{TIME,DATETIME,DATE,...}
      sql/set_var.h:
        - fixed timestamp_type usage to be compatible with typedef.
      sql/sql_prepare.cc:
        - TIMESTAMP_{TIME,DATE,DATETIME} were renamed to
          MYSQL_TIMESTAMP_{TIME,DATE,DATETIME}
        - embedded library implementation of set_param_{time,date,datetime} is
        much simplier now, as MYSQL_TIME is the same as TIME.
      sql/sql_yacc.yy:
        - s/\<TIMESTAMP_/MYSQL_TIMESTAMP/gc
      sql/structs.h:
        - declarations for TIME and timestamp_type replaced with typedefs
        - str_to_datetime arguments moved to mysys headers
      sql/time.cc:
        - str_to_time and str_to_TIME moved to mysys
        - TIMESTAMP_{TIME,DATE,DATETIME,...} renamed to 
          MYSQL_TIMESTAMP_{TIME,DATETIME,DATE,...} as these names are now
          exported to client.
        - str_to_TIME renamed to str_to_datetime to pair with str_to_time
        - str_to_TIME_with_warn renamed accordingly
      sql/tztime.cc:
        - TIMESTAMP_{TIME,DATE,DATETIME,...} renamed to 
          MYSQL_TIMESTAMP_{TIME,DATETIME,DATE,...}
      tests/client_test.c:
        - a test case for Bug#4030 "Client side conversion string -> date type 
        doesn't work (prepared statements)"
      9dde4188
  7. 22 Jun, 2004 2 commits
  8. 16 Jun, 2004 1 commit
  9. 11 Jun, 2004 1 commit
  10. 08 Jun, 2004 1 commit
    • unknown's avatar
      Proposed fix for Bug#4026 "Microseconds part of TIME/DATETIME types · 27eda712
      unknown authored
      is broken (prepared statements)": fixed date handling in many places 
      of prepared statements code.
      
      
      libmysql/libmysql.c:
        Fix for Bug#4026:
        - now buffer_length is defined for any buffer type. Network buffer 
          preallocation cleaned up.
        - added constants for maximum buffer sizes necessary for MYSQL_TYPE_DATE,
          MYSQL_TYPE_TIME, MYSQL_TYPE_DATETIME types.
        - TIME/DATETIME packing/unpacking functions fixed 
        - now result set metadata is always updated from fields sent to COM_EXECUTE.
          This is necessary to make 'SELECT ?' queries work without conversions.
      sql/item.cc:
        - added implementatoin of Item_param::get_date
      sql/item.h:
        - added enum_field_types Item_param::param_type. First step for proper
          handling of placeholders.
        - added get_date() implementation to prevent date -> string -> date 
          conversions when MYSQL_TYPE_DATE/DATETIME parameter is used in temporal 
          context.
      sql/protocol.cc:
        Fix for Bug#4026:
        - PACKET_BUFFET_EXTRA_ALLOC -> PACKET_BUFFER_EXTRA_ALLOC.
          The define itself was moved to .cc as it's used only in protocol.cc
        - fixed Protocol_prep::store_time() call.
      sql/protocol.h:
        - PACKET_BUFFER_EXTRA_ALLOC moved to protocol.cc
      sql/sql_prepare.cc:
        Fix for Bug#4026:
        - MYSQL_TYPE_TIME/DATETIME handling fixed.
        - added initialization for Item_param::param_type in 
          setup_one_conversion_function
      tests/client_test.c:
        Test case for Bug#4026
      27eda712
  11. 05 Jun, 2004 1 commit
    • unknown's avatar
      mysql_stmt_field_count() · 5cc410bb
      unknown authored
      include/mysql.h:
        mysql_stmt_field_count() declaration
      libmysql/libmysql.c:
        added mysql_stmt_field_count(): 
        we need this function to ease use of mysql_stmt_result_metadata:
        if mysql_stmt_field_count() != 0 mysql_stmt_result_metadata fails
        only if OOM.
      libmysql/libmysql.def:
        declaration for mysql_stmt_field_count()
      5cc410bb
  12. 04 Jun, 2004 3 commits
  13. 31 May, 2004 1 commit
    • unknown's avatar
      Fix for Bug#3796 "Prepared statement, select concat(<parameter>,<column>), wrong · 7f130332
      unknown authored
      result": new Item_param member for use in val_str()
      
      
      sql/item.cc:
        Fix for Bug#3796:
        - return str_value_ptr from val_str to prevent modifications of parameter 
        value.
      sql/item.h:
        Fix for bug#3796:
        - Item::val_str() method semantics documented
        - new member of Item_param
      tests/client_test.c:
        Test case for bug #3796 added. A few compile-time warnings removed.
      7f130332
  14. 24 May, 2004 1 commit
    • unknown's avatar
      Support for character set conversion in binary protocol: another go · 093d6292
      unknown authored
      after Monty's review.
      - Item_param was rewritten.
      - it turns out that we can't convert string data to character set of
        connection on the fly, because they first should be written to the binary
        log.
        To support efficient conversion we need to rewrite prepared statements
        binlogging code first.
      
      
      include/my_global.h:
        Macro swap(a, b, c) was renamed to resolve name conflict with
        String::swap() method.
      include/my_sys.h:
        Added declaration of escape_string_for_mysql()
      include/mysql_com.h:
        Removed and moved back: a macro which is visible to libmysql user but
        has sence only in prepared statement protocol implementation.
      isam/_search.c:
        swap -> swap_variables
      isam/test2.c:
        swap -> swap_variables
      libmysql/libmysql.c:
        - sub_escape_string moved to mysys/charset.c to be visible in sql/
        - few cleanups
      myisam/mi_test2.c:
        swap -> swap_variables
      mysys/charset.c:
        sub_escape_string was moved from libmysql.c to be able to use it in sql/
        code.
      mysys/my_chsize.c:
        rename: swap -> swap_variables
      mysys/my_compress.c:
        swap -> swap_variables
      mysys/my_handler.c:
        swap -> swap_variables
      sql/field.cc:
        Field::store_time refactored to use TIME_to_string function from time.cc
      sql/item.cc:
        New implementation of Item_param class:
        added support for character sets conversion.
      sql/item.h:
        Item_param:
        - 'state' member introduced instead of many boolean variables.
        - put ltime, int_value and real_value into union to save space.
        - remove unimplemented members
        - set_value renamed to set_str
      sql/item_timefunc.cc:
        Refactored to use functions from time.cc
      sql/lock.cc:
        rename: swap -> swap_variables
      sql/mysql_priv.h:
        - added declarations for TIME_to_ulonglong_*, TIME_to_string functions
        - const specifiers for make_date, make_time, make_datetime arguments
      sql/opt_range.cc:
        rename: swap -> swap_variables
      sql/protocol.cc:
        - added character set conversion support to binary protocol.
        - Protocol::convert changed to point at shared buffer in THD.
          This lets us use one convert buffer for binary and simple protocol.
          The same buffer is used for client->server conversions in prepared
          statements code.
        - string conversion code refactored to Protocol::store_string_aux function.
        - few more comments
      sql/protocol.h:
        - Protocol::convert now points at THD::convert_buffer: we want to share one
          buffer between all protocol implementations.
      sql/sql_class.cc:
        - implementation of THD::convert_string using THD::convert_buffer
          (conversion of strings allocated in the system heap).
      sql/sql_class.h:
        - THD::convert_buffer is shared between THD and network Protocols and
          used for character set conversion of strings.
        - new function to convert String object from one charset to another using
          THD::convert_buffer
      sql/sql_insert.cc:
        A little fix in a comment.
      sql/sql_parse.cc:
        Shrink convert buffer in the end of each statement.
      sql/sql_prepare.cc:
          Many changes:
        - static specifier for set_param_* family of functions.
        - FIELD_TYPE -> MYSQL_TYPE
        - added set_param_binary as handler for BLOB types.
        - added character set support
        - added support for param typecode in mysql_stmt_get_longdata
          (mysql_stmt_send_long_data handler)
        - changes in Item_param deployed
        - few cleanups
      sql/sql_select.cc:
        rename: swap -> swap_variables
      sql/sql_string.cc:
        - String::append rewritten to support character set conversion for
        single-byte encodings.
        - added String::swap method to efficiently exchange two string objects.
      sql/sql_string.h:
        Declraration for String::swap().
      sql/time.cc:
        - function TIME_to_string to convert TIME to String in default MySQL format
        - family of functions TIME_to_ulonglong_*
      tests/client_test.c:
        Test for support for character set conversions in prepared statements
        (binary and text data).
      093d6292
  15. 20 May, 2004 1 commit
  16. 19 May, 2004 1 commit
    • unknown's avatar
      Portability fixes · a41883fa
      unknown authored
      Fixed wrong number of warnings/duplicates for machines with high-byte-first
      
      
      client/mysql.cc:
        Remove not used variables
      client/mysqltest.c:
        Remove double ;
      myisam/ft_nlq_search.c:
        Fix valgrind error (not fatal)
      myisam/rt_test.c:
        Portability fix
      mysql-test/r/rpl_trunc_binlog.result:
        Portability fix
      mysql-test/t/rpl_trunc_binlog.test:
        Portability fix
        (Column 23 was different on openbsd)
      sql/sql_insert.cc:
        Fixed wrong number of warnings/duplicates for machines with high-byte-first
      strings/ctype-big5.c:
        Portability fix
      strings/ctype-gbk.c:
        Portability fix
      strings/ctype-mb.c:
        Portability fix
      strings/ctype-uca.c:
        Portability fix
      tests/client_test.c:
        Portability fixes
      a41883fa
  17. 15 May, 2004 2 commits
    • unknown's avatar
      Fixes for #3371, #3372, #3374, #3375, #3376 · 05cd698f
      unknown authored
      libmysql/libmysql.c:
        code to fix #3772
        counting of field->max_length moved to mysql_store_stmt_result so
        it will work in libmysqld also
      libmysqld/lib_sql.cc:
        to fix #3771 and #3775
        stmt->affected_rows specifying added
        code getting default values changed so it will add terminating /0 to
        values
      sql/sql_parse.cc:
        to fix #3773
        silly mistake here :\
      sql/sql_prepare.cc:
        to fix #3774 and #3776
        special function for datetime values in embedded server added
        unsigned flag now specified for values in embedded server
      tests/client_test.c:
        this test fails if privilege-checking pars are disabled
        (it's the default for libmysqld)
      05cd698f
    • unknown's avatar
      Better fix for bug #3749 (bug in deleting automatic generated foreign keys) · c9667f11
      unknown authored
      mysql-test/r/func_encrypt.result:
        Update tests (left after sanjas last push)
      mysql-test/r/innodb.result:
        Added test for bug #3749 (bug in deleting automatic generated foreign keys)
      mysql-test/t/innodb.test:
        Added test for bug #3749 (bug in deleting automatic generated foreign keys)
      sql/sql_class.cc:
        Updated comment
      tests/client_test.c:
        Added missing mysql_stmt_close()
      c9667f11
  18. 10 May, 2004 1 commit
  19. 06 May, 2004 2 commits
  20. 04 May, 2004 3 commits
    • unknown's avatar
      After merge fix. · 4df5d6d6
      unknown authored
      Now test_bug1664() uses new statement checking macros.
      
      
      tests/client_test.c:
        Now test_bug1664() uses new statement checking macros.
      4df5d6d6
    • unknown's avatar
      Fix for remaining issues described in Bug #1664 · 6ca75754
      unknown authored
      "mysql_send_long_data() API call is completely broken".
      
      Now we are resetting some members (long_data_supplied/null_value...) of Item_param to its 
      initial state after each execution of prepared statement. We also manipulating 
      Item_param::maybe_null/null_value only via Item_param::set_* setters which makes code a bit 
      more robust.
      
      
      sql/item.cc:
        Now we are assuming that Item_param may be NULL until we know this fact exactly.
        Added non-empty implementation of Item_param::reset() method which should be used
        for restoring Item_param state after each statment execution. (We need to clear 
        long_data_supplied flag, we also clear some other Item_param members here since it
        makes code simpler.)
      sql/item.h:
        Now Item_param::reset() method really does something.
      sql/sql_prepare.cc:
        Now we are calling Item_param::reset() for each parameter after execution for resetting Item_param
        to initial state. So we no longer don't need Prepared_statement::long_data_flag. We also 
        set Item_param::null_value/maybe_null value in Item_param::set_* and reset() methods 
        instead of doing it explicitly in insert_params_* functions (this by the way lowers 
        probability that we will forget to update one of such functions).
      tests/client_test.c:
        Added test for Bug#1664 "mysql_send_long_data() API call is broken".
      6ca75754
    • unknown's avatar
      Fix to handle unsigned data in prepared statements (Bug #3447) · 030587a7
      unknown authored
      Fixed security problem that password was temporarly reset when someone changed GRANT for a user. (Bug #3404)
      Fixed problem with PROCEDURE analyse() and impossible WHERE (Bug #2238)
      Don't auto-repair tables in mysqlcheck if table type doesn't support 'check' command.
      
      
      Docs/mysqld_error.txt:
        Updated error values
      client/mysqlcheck.c:
        Don't cause auto-repair on 'note' (Tables that doesn't support 'check')
      libmysql/libmysql.c:
        Fix to handle unsigned data in prepared statements (Bug #3447)
      mysql-test/r/analyse.result:
        Test of analyze + impossible where (Bug #2238)
      mysql-test/r/bdb.result:
        Update results
      mysql-test/r/ctype_ujis.result:
        Update results
      mysql-test/r/isam.result:
        Update results
      mysql-test/r/repair.result:
        Update results
      mysql-test/t/analyse.test:
        Test of analyze + impossible where (Bug #2238)
      mysql-test/t/ctype_ujis.test:
        Added test for LIKE (Bug #3438)
      sql/sql_acl.cc:
        Fixed security problem that password was temporarly reset when someone changed GRANT for a user. (Bug #3404)
      sql/sql_select.cc:
        Fixed problem with PROCEDURE analyse() and impossible WHERE (Bug #2238)
      sql/sql_table.cc:
        Changed 'error' to 'note' when table doesn't support admin command.
      sql/sql_update.cc:
        Indentaion cleanup
      tests/client_test.c:
        Added test for handling unsigned/signed strings with prepared statements
      030587a7
  21. 03 May, 2004 1 commit
    • unknown's avatar
      return table list of fake_select in empty state to prevent using TABLE_LIST... · bcbaefcf
      unknown authored
      return table list of fake_select in empty state to prevent using TABLE_LIST allocated on stack in next execution of PS (Bug #3577)
      
      
      sql/sql_union.cc:
        return table list of fake_select in empty state to prevent using TABLE_LIST allocated on stack in next execution of PS
      tests/client_test.c:
        test of UNIONS with PS
      bcbaefcf
  22. 30 Apr, 2004 3 commits
    • unknown's avatar
      541cef75
    • unknown's avatar
      Only calculate MYSQL_FIELD->max_length if mysql_stmt_attr_set(...,... · 7bf15f4b
      unknown authored
      Only calculate MYSQL_FIELD->max_length if mysql_stmt_attr_set(..., STMT_ATTR_UPDATE_MAX_LENGTH) is done.
      
      
      tests/client_test.c:
        Test mysql_stmt_attr_set(...STMT_ATTR_UPDATE_MAX_LENGTH)
      7bf15f4b
    • unknown's avatar
      Update 'MYSQL_FIELD->max_length' on mysql_stmt_store_result() (Bug #1647) · 15c2bb61
      unknown authored
      Added checking of cut read lines in bootstrap thread (Bug #2874)
      
      
      include/mysql.h:
        Added length to MYSQL_ROWS to enable sanity checking of packets
        Update 'MYSQL_FIELD->max_length' on mysql_stmt_store_result()
      libmysql/libmysql.c:
        Update 'MYSQL_FIELD->max_length' on mysql_stmt_store_result() (Bug #1647)
      scripts/fill_help_tables.sh:
        Added checking of maximum length of line in output (Bug #2874)
      scripts/mysql_install_db.sh:
        Added error message if help tables couldn't be done (Bug #2874)
      sql/sql_parse.cc:
        Added checking of cut read lines in bootstrap thread (Bug #2874)
      tests/client_test.c:
        Added --debug
        Changed some strange define names
        Less output
        Added testing of max_length for prepared statements
      15c2bb61
  23. 29 Apr, 2004 1 commit
    • unknown's avatar
      Fix for Bug#3035 "Prepared statement integer inserts": now unsigned · d5237fd0
      unknown authored
      flag is sent to server with placeholder types.
      There were no need to extend the protocol as one additional byte
      was reserved for placeholder code, when placeholder code is in range 0-255.
      So this byte is now used for flags. Post-review fixes added.
      
      
      include/config-win.h:
        added floaststore implementation
      include/my_global.h:
        added floatstore implementation
      include/mysql.h:
        Bug#3035:
        added 'is_unsigned' member
        binary_data wasn't used, removed
        null_field wasn't necessary, removed
      include/mysql_com.h:
        Unused defines were removed.
      libmysql/libmysql.c:
        Function store_param_type was removed - too much for a function, especially
        with bug in it.
        New implementation is inline and takes into account signedness of 
        placeholder.
        Fixed store functions to not perform double network-host order conversion
        on high-byte-first systems (should also fix Bug#3578 "Prepared statement 
        integer conversions work wrong in 64-bit Power Mac G5 CPUs").
        null_field removed.
      sql/sql_prepare.cc:
        Placeholder sign is taken into account when reading data from network.
      tests/client_test.c:
        Test for BUG#3035 added: insert and retrieve minimum and maximum of all
        integer types.
      d5237fd0
  24. 26 Apr, 2004 2 commits
  25. 13 Apr, 2004 1 commit
  26. 12 Apr, 2004 1 commit
  27. 09 Apr, 2004 1 commit
  28. 08 Apr, 2004 1 commit