An error occurred fetching the project authors.
  1. 24 Dec, 2004 1 commit
  2. 14 Dec, 2004 1 commit
    • unknown's avatar
      Bug#7242 · 17d1552b
      unknown authored
      The "insert_update" causes a server crash when using prepared statements
      
      Must clear table->insert_values after completing every prepared statement
      
      
      17d1552b
  3. 13 Dec, 2004 1 commit
    • unknown's avatar
      WL#2274 - INSERT..SELECT..UPDATE · 46364ddb
      unknown authored
        UPDATE clause conflicts with SELECT for use of item_list field.
        Alter UPDATE clause to use new lex field update_list
        Tests included
      
      
      mysql-test/r/insert_update.result:
        WL#2274
          New tests for INSERT..SELECT..UPDATE
      mysql-test/t/insert_update.test:
        WL#2274
          New tests for INSERT..SELECT..UPDATE
      sql/mysql_priv.h:
        Remove function - insert_select_precheck()
      sql/sql_class.h:
        WL#2274
          New constructor for class select_insert
      sql/sql_insert.cc:
        WL#2274
          Move code into mysql_prepare_insert
          Add checks as param values may be NULL
      sql/sql_lex.cc:
        WL#2274
          initialize lex->update_list
      sql/sql_lex.h:
        WL#2274
          New field in LEX: update_list
      sql/sql_parse.cc:
        WL#2274
          INSERT..UPDATE clause now populates lex->update_list
          Remove redundant function: insert_select_precheck()
      sql/sql_prepare.cc:
        WL#2274
          invoke insert_precheck() instead of insert_select_precheck()
      sql/sql_yacc.yy:
        WL#2274
          Enable INSERT..SELECT..UPDATE syntax
          New rule - insert_update_list, to populate lex->update_list
      46364ddb
  4. 09 Dec, 2004 1 commit
    • unknown's avatar
      Fix for bug #6765 "Implicit access to time zone description · 9ad51c63
      unknown authored
      tables requires privileges for them if some table or column level grants
      present" (with after-review fixes).
      
      We should set SELECT_ACL for implicitly opened tables in 
      my_tz_check_n_skip_implicit_tables() to be able to bypass privilege
      checking in check_grant(). Also we should exclude those tables from
      privilege checking in multi-update.
      
      
      mysql-test/r/timezone2.result:
        Extended test for bug #6116 "SET time_zone := ... requires access to
        mysql.time_zone tables"
        Added test for bug #6765 "Implicit access to time zone description 
        tables requires privileges for them if some table or column level grants
        present"
      mysql-test/t/timezone2.test:
        Extended test for bug #6116 "SET time_zone := ... requires access to
        mysql.time_zone tables"
        Added test for bug #6765 "Implicit access to time zone description 
        tables requires privileges for them if some table or column level grants
        present"
      sql/item_geofunc.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/item_strfunc.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/log.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/mysql_priv.h:
        Now we have to include sql_acl.h before tztime.h, since 
        my_tz_check_n_skip_implicit_tables() defined there requires
        SELECT_ACL constant defined in sql_acl.h.
      sql/mysqld.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/repl_failsafe.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/set_var.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/sql_acl.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/sql_base.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/sql_cache.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/sql_class.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/sql_db.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/sql_derived.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/sql_do.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/sql_insert.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/sql_parse.cc:
        check_one_table_access(): Tweaked comments.
        multi_update_precheck(): Added skipping of implicitly opened tables
          during privilege checking.
      sql/sql_prepare.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/sql_repl.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/sql_show.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/sql_update.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/sql_yacc.yy:
        sql_acl.h is now included via mysql_priv.h
      sql/tztime.h:
        my_tz_check_n_skip_implicit_tables():
          We should set SELECT_ACL for implictly opened tables to be able to
          bypass privilege checking in check_grant().
      9ad51c63
  5. 02 Dec, 2004 1 commit
    • unknown's avatar
      Fixes to make mysql-test-run --embedded-server working · d3c5c499
      unknown authored
      mysql-test/mysql-test-run.sh:
        Tests that can't be fixed now showed in the ignore-list
      mysql-test/r/query_cache.result.es:
        test result renewed
      mysql-test/r/select.result.es:
        test result renewed
      mysql-test/r/type_blob.result.es:
        test result renewed
      mysql-test/r/type_float.result.es:
        test result renewed
      sql/sql_prepare.cc:
        time values sending fixed
      tests/client_test.c:
        that doesnt work in embedded server
      BitKeeper/etc/ignore:
        Added libmysqld/ha_archive.cc libmysqld/ha_example.cc libmysqld/ha_tina.cc to the ignore list
      d3c5c499
  6. 15 Nov, 2004 1 commit
    • unknown's avatar
      Fix for bug #6266 "Invalid DATETIME value is not handled properly". · 5d9f7edd
      unknown authored
      In server we assume that datetime values stored in MYSQL_TIME struct
      are normalized (and year is not greater than 9999), so we should 
      perform range checks in all places then we convert something to
      MYSQL_TIME. 
      
      
      include/my_time.h:
        Added one more argument to set_zero_time() function to make it more 
        convinient.
        Added comment clarifying why MAX_DATE_STRING_REP_LENGTH value is 30.
      include/mysql_time.h:
        Documented MySQL's internal assumptions for members of MYSQL_TIME
        structure.
      libmysql/libmysql.c:
        It does not make sense to set MYSQL_TIME::time_type twice in case of 
        errors.
      mysql-test/r/type_datetime.result:
        Added test for bug #6266 "Invalid DATETIME value not handled properly".
      mysql-test/t/type_datetime.test:
        Added test for bug #6266 "Invalid DATETIME value not handled properly".
      sql-common/my_time.c:
        str_to_datetime(): Added missing check for too big year values.
        set_zero_time(): added time_type argument, since MYSQL_TIMESTAMP_NONE
          is not the value that we want in most cases.
      sql/field.cc:
        Field_datetime::store_time():
          clarified why we don't perform any range checks here.
      sql/item.cc:
        Item_param::set_time():
         Added comment describing this method and range checking for TIME
         values.
      sql/sql_prepare.cc:
        Removed comments about range checking for TIME values in prepared 
        statements, which are no longer true.
        set_zero_time() has one more argument now.
      tests/client_test.c:
        Added test for bug #6266 "Invalid DATETIME value not handled properly"
      5d9f7edd
  7. 07 Nov, 2004 1 commit
    • unknown's avatar
      Simpler arena swapping code · 435b20aa
      unknown authored
      Now thd->mem_root is a pointer to thd->main_mem_root and THR_MALLOC is a pointer to thd->mem_root.
      This gives us the following benefits:
      - Allow us to easily detect if arena has already been swapped before (this fixes a bug in setup_conds() where arena was swaped twice in some cases)
      - Faster swaps of arenas (as we don't have to copy the whole MEM_ROOT)
      - We don't anymore have to call my_pthread_setspecific_ptr(THR_MALLOC,...) to change where memory is alloced. Now it's enough to set thd->mem_root
      
      
      
      client/mysqltest.c:
        Remove some not needed defines
        (Things like this should be done in config-win.h)
      include/config-win.h:
        Added popen() and pclose() compatibility macros
      mysql-test/t/rpl_failed_optimize-master.opt:
        Portability fix
      sql/ha_berkeley.cc:
        New thd->memroot handling
      sql/item_cmpfunc.cc:
        Simpler arena swapping code
      sql/item_func.cc:
        Simpler arena swapping code
      sql/item_subselect.cc:
        Simpler arena swapping code
        New thd->mem_root handling
      sql/item_sum.cc:
        New thd->mem_root handling
      sql/item_timefunc.cc:
        Fixed not-initalized usage errors found by valgrind
      sql/log_event.cc:
        New thd->mem_root handling
      sql/mysql_priv.h:
        New thd->mem_root handling
      sql/mysqld.cc:
        New thd->mem_root handling
      sql/opt_range.cc:
        New thd->mem_root handling
      sql/repl_failsafe.cc:
        New thd->mem_root handling
      sql/set_var.cc:
        New thd->mem_root handling
      sql/sql_acl.cc:
        New thd->mem_root handling
      sql/sql_base.cc:
        Simpler arena swapping code
        New thd->mem_root handling
      sql/sql_class.cc:
        New thd->mem_root handling
      sql/sql_class.h:
        Simpler arena swapping code
        New thd->mem_root handling
      sql/sql_db.cc:
        New thd->mem_root handling
      sql/sql_error.cc:
        New thd->mem_root handling
      sql/sql_help.cc:
        New thd->mem_root handling
      sql/sql_insert.cc:
        New thd->mem_root handling
      sql/sql_parse.cc:
        New thd->mem_root handling
        Added some extra checking of return value of new
      sql/sql_prepare.cc:
        New thd->mem_root handling
      sql/sql_select.cc:
        New thd->mem_root handling
      sql/sql_select.h:
        New thd->mem_root handling
      sql/sql_union.cc:
        Simpler arena swapping code
      sql/sql_yacc.yy:
        New thd->mem_root handling
      sql/table.cc:
        New thd->mem_root handling
      sql/thr_malloc.cc:
        New thd->mem_root handling
      tests/client_test.c:
        Added drop table to some tests
        Changed some table names to 't1'
      435b20aa
  8. 02 Nov, 2004 1 commit
    • unknown's avatar
      Remove usage of !$ from mysql-tests · 505caa28
      unknown authored
      Added protocol::flush() for easier embedded-server code
      Increase block allocation variables a bit as they where a bit too small for MySQL 4.1
      Added option --silent to client_test
      
      
      client/mysqltest.c:
        Removed compiler warning
        Fixed identation & comments from earlier push
        Renamed variable 'disable_abort_on_error' to 'abort_on_error'
        Ensure that '$mysql_errno' also with --ps-protocol
      include/mysql_com.h:
        Removed special handling of net_flush for embedded server
      mysql-test/r/mysqltest.result:
        Remove usage of !$ in tests
      mysql-test/t/client_test.test:
        Use --silent
      mysql-test/t/comments.test:
        Remove usage of !$ in tests
      mysql-test/t/join_outer.test:
        Remove usage of !$ in tests
      mysql-test/t/key.test:
        Remove usage of !$ in tests
      mysql-test/t/mysqltest.test:
        Remove usage of !$ in tests
      mysql-test/t/show_check.test:
        Remove usage of !$ in tests
      mysql-test/t/temp_table.test:
        Remove usage of !$ in tests
      mysql-test/t/type_ranges.test:
        Remove usage of !$ in tests
      sql/mysqld.cc:
        Increase block allocation variables a bit as they where a bit too small for MySQL 4.1
      sql/net_serv.cc:
        Remove special usage of net_flush in embedded server
      sql/protocol.cc:
        Added protocol::flush() for easier embedded-server code
      sql/protocol.h:
        Added protocol::flush() for easier embedded-server code
      sql/sql_prepare.cc:
        Added protocol::flush() for easier embedded-server code
        Remove one extra flush() for prepared statements
      sql/sql_show.cc:
        Added protocol::flush() for easier embedded-server code
      tests/client_test.c:
        Added option --silent
      505caa28
  9. 30 Oct, 2004 1 commit
    • unknown's avatar
      Enable REPLACE ... SELECT in prepared statements. · d46c7366
      unknown authored
      mysql-test/include/ps_modify.inc:
        replace ... select now works.
      mysql-test/r/ps_2myisam.result:
        replace ... select now works.
      mysql-test/r/ps_3innodb.result:
        replace ... select now works.
      mysql-test/r/ps_4heap.result:
        replace ... select now works.
      mysql-test/r/ps_5merge.result:
        replace ... select now works.
      mysql-test/r/ps_6bdb.result:
        replace ... select now works.
      mysql-test/r/ps_7ndb.result:
        replace ... select now works.
      mysql-test/t/ps_7ndb.test:
        replace ... select now works.
      sql/sql_prepare.cc:
        Enable SQLCOM_REPLACE_SELECT: no need for any code changes but
        enable this SQLCOM in the switch.
      d46c7366
  10. 27 Oct, 2004 1 commit
  11. 26 Oct, 2004 1 commit
    • unknown's avatar
      A lot of fixes for prepared statements (PS): · 853c2c78
      unknown authored
      New mysqltest that can run mysqltest with PS
      Added support for ZEROFILL in PS
      Fixed crash when one called mysql_stmt_store_result() without a preceding mysql_stmt_bind_result()
      Updated test cases to support --ps-protocol
      (Some tests are still run using old protocol)
      Fixed crash in PS when using SELECT * FROM t1 NATURAL JOIN t2...
      Fixed crash in PS when using sub queries
      Create table didn't signal when table was created. This could cause a "DROP TABLE created_table" in another thread to wait "forever"
      Fixed wrong permissions check in PS and multi-table updates (one could get permission denied for legal quries)
      Fix for PS and SELECT ... PROCEDURE
      Reset all warnings when executing a new PS query
      group_concat(...ORDER BY) didn't work with PS
      Fixed problem with test suite when not using innodb
      
      
      BitKeeper/deleted/.del-innodb-lock-master.opt~f76a4a1999728f87:
        Delete: mysql-test/t/innodb-lock-master.opt
      client/Makefile.am:
        mysqltest now uses regex
      client/mysqltest.c:
        Added support for testing of prepared statements (with --ps-protocol)
        Main code was done by Kent, I did mainly some cleanups and minor bug fixes
        New test commands:
        --disable_ps_protocol
        --enable_ps_protocol
        NOTE: new code still has some things that needs to be cleaned up.
        For example run_query_stmt_handle_error() should be made more general so that same code can be used also by 'normal' queries
      configure.in:
        mysqltest now uses regex
      libmysql/libmysql.c:
        Reset warning_count after prepare (safety). In the future we should also provide warnings on prepare
        integer -> string conversion now handles ZEROFILL
        double -> string conversion is now closer to the one in the server
        Fixed crash when one called mysql_stmt_store_result() without preceding mysql_stmt_bind_result()
      libmysqld/examples/Makefile.am:
        mysqltest now uses regex
      mysql-test/include/have_query_cache.inc:
        Fixes for --ps-protocol
      mysql-test/include/ps_conv.inc:
        Fixes for --ps-protocol
      mysql-test/mysql-test-run.sh:
        Added options --ps-protocol
      mysql-test/r/ctype_utf8.result:
        Fixed test case
      mysql-test/r/fulltext_cache.result:
        Changed output of MATCH to use round() to get same numbers with --ps-protocol
      mysql-test/r/fulltext_left_join.result:
        Changed output of MATCH to use round() to get same numbers with --ps-protocol
      mysql-test/r/fulltext_multi.result:
        Changed output of MATCH to use round() to get same numbers with --ps-protocol
      mysql-test/r/innodb-lock.result:
        Fixed test to work even if Innodb is not compiled in.
      mysql-test/t/create.test:
        Fixes for --ps-protocol
      mysql-test/t/ctype_utf8.test:
        Remove warnings
      mysql-test/t/date_formats.test:
        Fixes for --ps-protocol
      mysql-test/t/fulltext_cache.test:
        Changed output of MATCH to use round() to get same numbers with --ps-protocol
      mysql-test/t/fulltext_left_join.test:
        Changed output of MATCH to use round() to get same numbers with --ps-protocol
      mysql-test/t/fulltext_multi.test:
        Changed output of MATCH to use round() to get same numbers with --ps-protocol
      mysql-test/t/func_group.test:
        Fixes for --ps-protocol
      mysql-test/t/func_sapdb.test:
        Fixes for --ps-protocol
      mysql-test/t/innodb-lock.test:
        Fixed test to work even if Innodb is not compiled in.
      mysql-test/t/insert.test:
        Fixes for --ps-protocol
      mysql-test/t/insert_select.test:
        Fixes for --ps-protocol
      mysql-test/t/insert_update.test:
        Fixes for --ps-protocol
      mysql-test/t/metadata.test:
        Fixes for --ps-protocol
      mysql-test/t/multi_statement.test:
        Fixes for --ps-protocol
      mysql-test/t/ps_1general.test:
        Fixes for --ps-protocol
      mysql-test/t/rollback.test:
        Fixes for --ps-protocol
      mysql-test/t/rpl_redirect.test:
        Fixes for --ps-protocol
      mysql-test/t/rpl_user_variables.test:
        Fixes for --ps-protocol
      mysql-test/t/select.test:
        Fixes for --ps-protocol
      mysql-test/t/status.test:
        Fixes for --ps-protocol
      mysql-test/t/type_blob.test:
        Fixes for --ps-protocol
      mysql-test/t/type_float.test:
        Fixes for --ps-protocol
      mysql-test/t/union.test:
        Fixes for --ps-protocol
      mysql-test/t/warnings.test:
        Fixes for --ps-protocol
      mysys/my_alloc.c:
        More debugging information
      sql-common/client.c:
        More debugging information
      sql-common/my_time.c:
        TIME didn't support full range with PS
      sql/field.cc:
        TIME didn't support full range with PS
      sql/item_cmpfunc.cc:
        IN(constants,...) didn't work with PS
      sql/item_subselect.cc:
        Some subqueries didn't work with PS
      sql/item_sum.cc:
        group_concat(...ORDER BY) didn't work with PS
        Removed variable warning_available as 'warning' can be used for this.
      sql/item_sum.h:
        Removed not needed variable
      sql/protocol.cc:
        TIME didn't support full range with PS
      sql/set_var.cc:
        Style fix
      sql/sql_base.cc:
        setup_wild() didn't properly restore old arena, which caused core dump in PS when using
        SELECT * FROM t1 NATURAL JOIN t2...
      sql/sql_class.cc:
        Style fix
      sql/sql_error.cc:
        Style fix
      sql/sql_insert.cc:
        Create table didn't signal when table was created. This could cause a "DROP TABLE created_table" in another thread to wait "forever"
      sql/sql_lex.h:
        Fix for PS and procedures
      sql/sql_parse.cc:
        More debugging information
        Make a copy of 'db' in PS as this may change
        Fixed wrong permissions check in PS and multi-table updates
      sql/sql_prepare.cc:
        Fix for PS and SELECT ... PROCEDURE
        Reset all warnings when executing a new query
      sql/sql_union.cc:
        Fixes for PS and SELECT ... PROCEDURE
        Reset 'with_wild' as 'wild' is resolved on prepare
      853c2c78
  12. 22 Oct, 2004 1 commit
    • unknown's avatar
      Fix compiler warnings (detected by Intel's C++ compiler) · bc6652db
      unknown authored
      Fixed checking of privilege handling in CREATE ... SELECT (Bug #6094)
      
      
      client/mysql.cc:
        Fix compiler warnings
      client/mysqltest.c:
        Fix wrong counting of lines
        Remove compiler warnings
      heap/hp_hash.c:
        Fix compiler warnings
      innobase/dict/dict0load.c:
        Fix compiler warnings
      innobase/include/mem0mem.h:
        Fix compiler warnings
      libmysql/client_settings.h:
        Fix compiler warnings
      myisam/ft_nlq_search.c:
        Add comments about compiler warnings
      myisam/rt_index.c:
        Add comments about compiler warnings
      myisam/rt_mbr.c:
        Add comments about compiler warnings
      mysql-test/r/ps.result:
        Test case for bug#6094
      mysql-test/t/ps.test:
        Test case for bug#6094
      mysys/hash.c:
        Fix compiler warnings
      mysys/my_handler.c:
        Add comments about compiler warnings
      mysys/my_thr_init.c:
        Add comments about compiler warnings
      ndb/include/mgmapi/mgmapi.h:
        Fix compiler warnings
      regex/main.c:
        Fix compiler warnings
      sql/item.h:
        Fix compiler warnings
      sql/item_func.h:
        Add comments about compiler warnings
      sql/spatial.h:
        Add comments about compiler warnings
      sql/sql_lex.h:
        Fix compiler warning
      sql/sql_list.h:
        Fix compiler warning
      sql/sql_parse.cc:
        Move testing of access rights of tables in CREATE ... SELECT to create_table_precheck() to fix privilege checking in CREATE ... SELECT
        (Bug #6094)
      sql/sql_prepare.cc:
        Remove not needed empty line
      sql/sql_string.h:
        Fix compiler warnings
      strings/ctype-mb.c:
        Fix compiler warnings
      bc6652db
  13. 21 Oct, 2004 1 commit
    • unknown's avatar
      A fix and test case for bug#6059 "mysql_stmt_field_count returns · 506f648b
      unknown authored
      positive numbers when no resultset is available": when sending
      result set metadata we need to use virtual select_result::send_fields, 
      and not address protocol directly, because select_result descendents may 
      intercept result set (it's the case for example for SELECT INTO OUTFILE).
      
      
      sql/sql_class.h:
        A fix for bug#6059 "mysql_stmt_field_count returns positive numbers 
        when no resultset is available": introducing select_result::field_count()
        method to report actual number of fields in a result set, if any result
        set is sent to client.
      sql/sql_prepare.cc:
        A fix for bug#6059 "mysql_stmt_field_count returns 
        positive numbers when no resultset is available": when sending
        result set metadata we need to use virtual select_result::send_fields, 
        and not address protocol directly, because select_result descendents may 
        intercept result set (it's the case for example for SELECT INTO OUTFILE).
        Now we need to always have lex->result set if we're in prepared statements.
      tests/client_test.c:
        A test case for Bug#6059 "mysql_stmt_field_count returns positive 
        numbers when no resultset is available"
      506f648b
  14. 20 Oct, 2004 1 commit
    • unknown's avatar
      Fix for bug #6173 "One can circumvent missing UPDATE privilege if · b88150c9
      unknown authored
      he has SELECT and INSERT privileges for table with primary key"
      
      Now we set lex->duplicates= DUP_UPDATE right in parser if INSERT has
      ON DUPLICATE KEY UPDATE clause, this simplifies insert_precheck()
      function (this also fixes a bug) and some other code.
      
      
      mysql-test/r/grant2.result:
        Added test for bug #6173 "One can circumvent missing UPDATE privilege if
        he has SELECT and INSERT privileges for table with primary key"
      mysql-test/t/grant2.test:
        Added test for bug #6173 "One can circumvent missing UPDATE privilege if
        he has SELECT and INSERT privileges for table with primary key"
      sql/mysql_priv.h:
        insert_precheck() don't need "update" parameter any longer since
        now we set lex->duplicates to DUP_UPDATE if INSERT has ON DUPLICATE
        KEY UPDATE clause.
      sql/sql_parse.cc:
        insert_precheck() don't need "update" parameter any longer since
        now we set lex->duplicates to DUP_UPDATE if INSERT has ON DUPLICATE
        KEY UPDATE clause, so it can determine whenever it is needed to
        require UPDATE_ACL by itself. Also calling of mysql_insert() is
        simplified.
      sql/sql_prepare.cc:
        insert_precheck() don't need "update" parameter any longer since
        now we set lex->duplicates to DUP_UPDATE if INSERT has ON DUPLICATE
        KEY UPDATE clause, so it can determine whenever it is needed to
        require UPDATE_ACL by itself. Also calling of mysql_insert() is
        simplified.
      sql/sql_yacc.yy:
        It is better to set Lex->duplicates= DUP_UPDATE right in parser if we
        have INSERT with ON DUPLICATE KEY UPDATE clause, rather doing this later.
      b88150c9
  15. 14 Oct, 2004 1 commit
    • unknown's avatar
      true,false -> TRUE, FALSE · 33073189
      unknown authored
      Simple fixes/optimization of things discovered during review of new pushed code
      
      
      include/my_sys.h:
        Ensure that clear_alloc_root() interacts correctly with alloc_root_inited()
      mysys/hash.c:
        More comments
        Simple optimization (merge identical code)
      mysys/my_bitmap.c:
        Change inline -> static inline
      sql/examples/ha_archive.cc:
        Fixed compiler warning
      sql/ha_ndbcluster.cc:
        true,false -> TRUE, FALSE
        Change if (false) -> #ifdef NOT_USED
      sql/ha_ndbcluster.h:
        true,false -> TRUE, FALSE
      sql/handler.cc:
        More comments
        Remove not needed initializations.
        #ifdef not used code
      sql/item_cmpfunc.h:
        true,false -> TRUE, FALSE
      sql/item_strfunc.cc:
        Move local variables to function beginning
        Remove wrong comments
      sql/log_event.h:
        true,false -> TRUE, FALSE
      sql/sql_base.cc:
        true,false -> TRUE, FALSE
        More comments
      sql/sql_help.cc:
        true,false -> TRUE, FALSE
      sql/sql_lex.cc:
        Simple optimization of new code
      sql/sql_parse.cc:
        true,false -> TRUE, FALSE
      sql/sql_prepare.cc:
        true,false -> TRUE, FALSE
      sql/sql_table.cc:
        true,false -> TRUE, FALSE
      sql/sql_yacc.yy:
        true,false -> TRUE, FALSE
      33073189
  16. 13 Oct, 2004 1 commit
    • unknown's avatar
      A fix and test case for Bug#5985 ""prepare stmt from "select rand(?)" · 54b00f54
      unknown authored
      crashes server." The fix makes Item_func_rand prepared-statements
      aware plus it fixes the case when RAND is used in prepared
      statements and replication is on (as well as several similar issues).
      Until now we did not reset THD before every execution of a prepared
      statement, so if some execution had set thd->time_zone_used
      or thd->rand_used they would not be reset until next mysql_parse.
      Some of post-review fixes done.
      
      
      mysql-test/r/ps.result:
        A test case for Bug#5985: test results fixed.
      mysql-test/t/ps.test:
        A test case for Bug#5985 "prepare stmt from "select rand(?)" crashes
        server."
      sql/item_func.cc:
        Actual fix for Bug#5985: Item_func_rand rewritten to be 
        prepared statements aware.
      sql/item_func.h:
        Actual fix for Bug#5985: Item_func_rand rewritten to be 
        prepared statements aware.
      sql/mysql_priv.h:
        We need a separate call to reset THD state before every execute of
        a prepared statement. Otherwise things like THD->user_var_events
        are never cleaned up and bloat binary log (as the list of events
        grows from execution to execution).
      sql/sql_class.cc:
        Statement::end_statement -> THD::end_statement()
        (a leftover from some design change which is not to pushed now, but the
        leftover is to be pushed).
      sql/sql_class.h:
        Statement::end_statement -> THD::end_statement()
        (a leftover from some design change which is not to pushed now, but the
        leftover is to be pushed).
      sql/sql_lex.cc:
        Move the part responsible for initializing LEX from mysql_init_query
        to lex_start.
      sql/sql_lex.h:
        All lex-related initialization is now in lex_start.
        Move thd->select_number to lex->select_number to be able to use it
        easily in lex_start.
      sql/sql_parse.cc:
        Split mysql_init_query into two functions: mysql_reset_thd_for_next_query,
        which is used in PS and conventional execution, and lex_start, used only
        when we want to parse something.
        Fix init_connect to use initialized THD.
      sql/sql_prepare.cc:
        Deploy mysql_reset_thd_for_next_query to reset THD state before
        execution of a prepared statement.
        Normally this should have been added to just one place, but
        we have to reset thd before assigning placeholders from variables,
        thus we can't do that in execute_stmt (yuck).
      54b00f54
  17. 07 Oct, 2004 1 commit
    • unknown's avatar
      A fix for Bug#5748 "Prepared statement with BETWEEN and bigint values · 8fa6f37a
      unknown authored
      crashes mysqld": implementation for a generic item tree modifications
      registry. Every item tree modification which should be rolled back for
      subsequent execution of a prepared statement or stored procedure should
      be saved in the registry. All such modifications are rolled back at once
      during cleanup stage of PS.
      Actual fix for the bug just adds a call to register modifications to
      convert_constant_item.
      Post review fixes implemented.
      
      
      mysql-test/r/ps.result:
        A fix for bug#5748, test results fixed.
      mysql-test/t/ps.test:
        A test case for Bug#5748 "Prepared statement with BETWEEN and bigint 
        values crashes mysqld"
      sql/item.cc:
        Fix for Bug#5748 "Prepared statement with BETWEEN and bigint values
        crashes mysqld":
        First step in removing up item-specific cleanups: now all such
        tree modifications should be done using the genericm mechanism implemented
        in this changeset.
      sql/item.h:
        Fix for Bug#5748 "Prepared statement with BETWEEN and bigint values
        crashes mysqld": no need for an item-specific change record any more.
      sql/item_cmpfunc.cc:
        A fix for Bug#5748 "Prepared statement with BETWEEN and bigint 
        values crashes mysqld": register item tree transformation performed by
        convert_constant_item.
      sql/sql_class.cc:
        Implementation for item tree transformations registry.
      sql/sql_class.h:
        Declarations, necessary for the tree transformations registry.
      sql/sql_parse.cc:
        Assert that the item tree transformations registry is not used for 
        conventional execution.
      sql/sql_prepare.cc:
        Use of the item tree modifications registry in prepared statements:
        rollback all modifications in the end of statement prepare and execute.
        Also we now always set thd->current_arena to be able to determine that
        this is an execution of prepared statement inside the registry code.
      tests/client_test.c:
        A typo fixed.
      8fa6f37a
  18. 08 Sep, 2004 1 commit
    • unknown's avatar
      A fix and test case for Bug#5194 "Bulk Insert Failures with Prepared · d7a23067
      unknown authored
      Statements": 
      - fix a couple of net->buff overruns in libmysql,
      - check in the server that statement parameter count is less than
        65535 (maximum value supported by prepared statements protocol).
       
      
      
      libmysql/libmysql.c:
        Bug#5194 "Bulk Insert Failures with Prepared Statements":
        - clean up my_realloc_str()
        - ensure that net buffer has space when storing null bits and
          parameter typecodes.
      sql/net_serv.cc:
        - set net->last_errno if packet is too big, even on client
          (Why was it ifdefed before?)
      sql/sql_prepare.cc:
        Bug#5194 "Bulk Insert Failures with Prepared Statements":
        - if placeholder count is bigger than 65535, give error.
          We have only 2 bytes reserved for transferring placeholder count
          in 4.1 protocol.
        - can't add a proper error code and message in 4.1 because of
          possible merge difficulties."
      tests/client_test.c:
        A test case for Bug#5194 "Bulk Insert Failures with Prepared 
        Statements".
      d7a23067
  19. 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
  20. 31 Aug, 2004 2 commits
    • unknown's avatar
      Review of new pushed code (Indentation fixes and simple optimizations) · 07f5a44b
      unknown authored
      Use 'mysqltest' as test database instead of test_$1 or test1,test2 to not accidently delete an important database
      Safety fix for mailformed MERGE files
      
      
      Build-tools/mysql-copyright:
        Print correct file name in case of errors
        Fixed indentation
      include/config-win.h:
        Removed unnecessary #ifdef
      myisammrg/myrg_open.c:
        Don't give a core if merge file contains INSERT_METHOD first (not legal but better safe than sorry)
        Don't set struct variables to zero that are already zero
        Indentation fixes
      mysql-test/r/create.result:
        Use 'mysqltest' as test database
      mysql-test/r/ndb_basic.result:
        Use 'mysqltest' as test database
      mysql-test/r/ndb_blob.result:
        Use 'mysqltest' as test database
      mysql-test/r/ndb_transaction.result:
        Use 'mysqltest' as test database
      mysql-test/r/ps_1general.result:
        Use 'mysqltest' as test database
      mysql-test/r/rpl_charset.result:
        Use 'mysqltest' as test database
      mysql-test/r/rpl_delete_all.result:
        Use 'mysqltest' as test database
      mysql-test/r/show_check.result:
        Use 'mysqltest' as test database
      mysql-test/t/create.test:
        Use 'mysqltest' as test database
      mysql-test/t/ndb_basic.test:
        Use 'mysqltest' as test database
      mysql-test/t/ndb_blob.test:
        Use 'mysqltest' as test database
      mysql-test/t/ndb_transaction.test:
        Use 'mysqltest' as test database
      mysql-test/t/ps_1general.test:
        Use 'mysqltest' as test database
      mysql-test/t/rpl_charset.test:
        Use 'mysqltest' as test database
      mysql-test/t/rpl_delete_all.test:
        Use 'mysqltest' as test database
      mysql-test/t/show_check.test:
        Use 'mysqltest' as test database
      sql/field.h:
        Mark functions that should be deleted as soon as we have a new prototype for store(longlong)
      sql/lock.cc:
        Indentation fix
      sql/sql_base.cc:
        Better comment.
        Break find_item_in_list in case of perfect match
      sql/sql_prepare.cc:
        Simple optimization
      sql/sql_select.cc:
        Portability fix
      07f5a44b
    • unknown's avatar
      Change Item_arena::state to enum · c62dd0d4
      unknown authored
      c62dd0d4
  21. 24 Aug, 2004 2 commits
    • unknown's avatar
      Fix for Bug#5034 "prepared "select 1 into @arg15", second · 49bd559e
      unknown authored
      execute crashes server": we were deleting lex->result
      after each execute, but prepared statements assumed that
      it's left intact.
      The fix adds cleanup() method to select_result hierarchy,
      so that result objects can be reused.
      Plus we now need to delete result objects more wisely.
      
      
      mysql-test/r/ps.result:
        Test results fixed: test case for bug#5034
      mysql-test/t/ps.test:
        A test case for bug#5034, few followups
      sql/sql_class.cc:
        - fix warning in THD::THD
        - implementation of cleanup() for select_result hierarchy
        - select_export::send_eof was identical to 
          select_dump::send_eof: moved to the base class select_to_file.
        - Statement::end_statement() to end lex, free items, and
          delete possible select_result
      sql/sql_class.h:
        - select_result::cleanup() declaration
        -
      sql/sql_insert.cc:
        - implementation of select_insert::cleanup(): currently
          we always create a new instance of select_insert/
          select_create on each execute.
      sql/sql_lex.cc:
        - with more complicated logic of freeing lex->result it's 
          easier to have it non-zero only if it points to a valid
          result.
      sql/sql_lex.h:
        Now st_lex::st_lex is not empty.
      sql/sql_parse.cc:
        mysql_execute_command():
        - delete select_result *result only if it was created in
          this function.
        - use end_statement() to cleanup lex and thd in the end of
          each statement.
        - no need to save THD::lock if this is explain. This save
          apparently left from times when derived tables were 
          materialized here, not in open_and_lock_tables.
      sql/sql_prepare.cc:
        - call result->cleanup() in reset_stmt_for_execute
        - now Statement is responsible for freeing its lex->result.
      sql/sql_select.cc:
        handle_select():
        - don't delete result, it might be needed
          for next executions
        - result is never null
      49bd559e
    • unknown's avatar
      Fix to compile with msvc: converted static const int Item_arena::* to enum members, undefine ERROR · d261072f
      unknown authored
      include/config-win.h:
        Undefine ERROR #defined by WINGDI
      sql/sql_class.cc:
        Fix to compile with msvc: converted static const int Item_arena::* to enum members
      sql/sql_class.h:
        Fix to compile with msvc: converted static const int Item_arena::* to enum members
      sql/sql_prepare.cc:
        Fix to compile with msvc: converted static const int Item_arena::* to enum members
      d261072f
  22. 20 Aug, 2004 1 commit
    • unknown's avatar
      Fix for bug#4912 "mysqld crashs in case a statement is executed · 095b686c
      unknown authored
       a second time". The bug was caused by incompatibility of
      negations elimination algorithm and PS: during first statement 
      execute a subtree with negation was replaced with equivalent 
      subtree without NOTs.
      The problem was that although this transformation was permanent, 
      items of the new subtree were created in execute-local memory.
      The patch adds means to check if it is the first execute of a
      prepared statement, and if this is the case, to allocate items
      in memory of the prepared statement.
      The implementation:
      - backports Item_arena from 5.0
      - adds Item_arena::is_stmt_prepare(), 
        Item_arena::is_first_stmt_execute().
      - deletes THD::allocate_temporary_pool_for_ps_preparing(),
        THD::free_temporary_pool_for_ps_preparing(); they
        were redundant.
      and adds a few invariants:
      - thd->free_list never contains junk (= freed items)
      - thd->current_arena is never null. If there is no
        prepared statement, it points at the thd. 
      The rest of the patch contains mainly mechanical changes and
      cleanups.
      
      
      mysql-test/r/ps.result:
        Test results updated (test case for Bug#4912)
      mysql-test/t/ps.test:
        A test case for Bug#4912 "mysqld crashs in case a statement is 
        executed a second time"
      sql/item_cmpfunc.cc:
        current_statement -> current_arena
      sql/item_subselect.cc:
        Statement -> Item_arena, current_statement -> current_arena
      sql/item_subselect.h:
        Item_subselect does not need to save thd->current_statement.
      sql/item_sum.cc:
        Statement -> Item_arena
      sql/item_sum.h:
        Statement -> Item_arena
      sql/mysql_priv.h:
        Statement -> Item_arena
      sql/sql_base.cc:
        current_statement -> current_arena
      sql/sql_class.cc:
        - Item_arena
        - convenient set_n_backup_statement, restore_backup_statement
        (nice idea, Sanja)
      sql/sql_class.h:
        - Item_arena: backport from 5.0
        - allocate_temporary_pool_for_ps_preparing,
          free_temporary_pool_for_ps_preparing removed.
      sql/sql_derived.cc:
        current_statement -> current_arena
      sql/sql_lex.cc:
        current_statement -> current_arena
      sql/sql_parse.cc:
        Deploy invariant that thd->free_list never contains junk items
        (backport from 5.0).
      sql/sql_prepare.cc:
        - backporting Item_arena
        - no need to allocate_temporary_pool_for_ps_preparing().
      sql/sql_select.cc:
        Fix for bug#4912 "mysqld crashs in case a statement is 
        executed a second time": if this is the first execute of
        a prepared statement, negation elimination is
        done in memory of the prepared statement.
      sql/sql_union.cc:
        Backporting Item_arena from 5.0.
      095b686c
  23. 19 Aug, 2004 2 commits
  24. 10 Aug, 2004 1 commit
    • unknown's avatar
      Fix for bug #4508 "CONVERT_TZ() function with new time zone as param crashes server". · 68d7b266
      unknown authored
      Instead of trying to open time zone tables during calculation of CONVERT_TZ() function
      or setting of @@time_zone variable we should open and lock them with the rest of 
      statement's table (so we should add them to global table list) and after that use such 
      pre-opened tables for loading info about time zones.
      
      
      mysql-test/r/timezone2.result:
        Added test for bug #4508
      mysql-test/t/timezone2.test:
        Added test for bug #4508
      scripts/mysql_create_system_tables.sh:
        Added one more test time zone to time zone tables which is needed for test for bug #4508.
      sql/item_create.cc:
        CONVERT_TZ() now is treated as special function.
      sql/item_create.h:
        CONVERT_TZ() now is treated as special function.
      sql/item_timefunc.cc:
        Item_func_convert_tz now uses list of pre-opened time zone tables instead of trying to
        open them ad-hoc. Also it avoid calling of current_thd.
      sql/item_timefunc.h:
        Added comment describing special nature of CONVERT_TZ() function.
        Optimization: Added own fix_fields() method and tz_tables member for caching pointer
        to list of open time zone tables to Item_func_convert_tz class.
      sql/lex.h:
        CONVERT_TZ() now is treated as special function.
      sql/mysql_priv.h:
        Removed function which is no longer used.
      sql/set_var.cc:
        Now my_tz_find() accepts list of pre-opened time zone tables as last argument 
        and no longer needs pointer to current THD.
      sql/set_var.h:
        Exported sys_time_zone, which is now used in sql_yacc.yy for quick finding out if we are
        setting @@time_zone variable.
      sql/sql_base.cc:
        Moved propagation of pointers to open tables from global list to local select lists to
        open_and_lock_tables(), also added implicit usage of time zone tables as condition for
        such propagation.
      sql/sql_lex.cc:
        Added fake_time_zone_tables_list which is used to indicate that time zone tables are
        implicitly used in statement.
        st_select_lex_unit::create_total_list(): if time zone tables are implicitly used in
        statement add them to global tables list.
      sql/sql_lex.h:
        Added LEX::time_zone_tables_used member which is used to indicate that time zone tables 
        are implicitly used in this statement (by pointing to fake_time_zone_table_list) and 
        for holding pointer to those tables after they've been opened.
      sql/sql_parse.cc:
        We should also create global table list if statement uses time zone tables implicitly.
        Added initialization of LEX::time_zone_tables_used to mysql_query_init().
      sql/sql_prepare.cc:
        We should also create global table list if statement uses time zone tables implicitly.
      sql/sql_select.cc:
        Removed functions which are no longer used.
      sql/sql_yacc.yy:
        CONVERT_TZ() and @@time_zone variable are handled in special way since they implicitly 
        use time zone tables.
      sql/tztime.cc:
        Fix for bug #4508 "CONVERT_TZ() function with new time zone as param crashes server".
        If statement uses CONVERT_TZ() function or @@time_zone variable is set then it implicitly
        uses time zone tables. We need to open and lock such tables with all other tables of 
        such statement.
        
        All code responsible for opening table was removed from tz_load_from_db() and function was 
        renamed to tz_load_from_open_tables() (which uses list of pre-opened tables).
        We also have new functions for construction and initialization of table list of time
        zone tables.
        my_tz_find() now always require list of pre-opened time zone tables and no longer needs
        current THD. So we have to pre-open them in my_tz_init().
        Also now we try to open time zone tables only if they were found during startup.
      sql/tztime.h:
        New function for construction of table list of time zone tables my_tz_get_table_list().
        Now my_tz_find() requires list of pre-pened time zone tables instead of current thread.
      68d7b266
  25. 23 Jul, 2004 1 commit
  26. 22 Jul, 2004 1 commit
    • unknown's avatar
      Fixes for bugs in embedded library: · 2cd7e4cd
      unknown authored
      #4700 (Unsigned value returned as signed)
          just no appropriate checking
      #4701 (Errors returned earlier than expected)
          all errors returned from send_command()
      #4702 (Result isn't freed properly if there's no retrieval)
          flush_use_result has only 'client' version and should
          be made 'virtual'
      
      
      include/mysql.h:
        flush_use_result 'virtual' method added to MYSQL (#4701)
      include/sql_common.h:
        no flush_use_result() now (#4702)
      libmysql/libmysql.c:
        call of the flush_use_result changed (#4702)
      libmysqld/lib_sql.cc:
        now errors returned from emb_advanced_command() or from emb_read_rows()
        depending on if number of returned fields is not 0 (#4701)
        emb_flush_use_result() implementation (#4702)
      sql-common/client.c:
        cli_flush_use_result() implementation (#4702)
      sql/sql_prepare.cc:
        unsigned flag now checked (#4700)
      2cd7e4cd
  27. 21 Jul, 2004 1 commit
  28. 04 Jul, 2004 1 commit
    • unknown's avatar
      aggregate functions check during substitution made only for single row subselects (BUG#4400) · cc74326b
      unknown authored
      restoring current senect pointer before PS rexecution (backport from 5.0)
      removed spaces at  lines ends
      
      
      mysql-test/r/subselect.result:
        Aggregate function comparation with ALL/ANY/SOME subselect test
      mysql-test/t/subselect.test:
        Aggregate function comparation with ALL/ANY/SOME subselect test
      sql/item_subselect.cc:
        removed spaces at  lines ends
        aggregate functions check during substitution made only for single row subselects
      sql/item_subselect.h:
        removed spaces at  lines ends
      sql/sql_prepare.cc:
        restoring current senect pointer before PS rexecution (backport from 5.0)
      cc74326b
  29. 25 Jun, 2004 1 commit
    • unknown's avatar
      fixed EXPLAIN behaviour with prepared statements (BUG#4271) · e80cfbc0
      unknown authored
      mysql-test/r/ps.result:
        test of prepared EXPLAIN
      mysql-test/t/ps.test:
        fix layout and table removing of previous tests
        test of prepared EXPLAIN
      sql/sql_prepare.cc:
        explain pave to be prepared, too
        cleanup options after explain execution
      sql/sql_select.cc:
        removed unneed assignment
      e80cfbc0
  30. 24 Jun, 2004 1 commit
    • 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
  31. 23 Jun, 2004 1 commit
  32. 21 Jun, 2004 1 commit
    • unknown's avatar
      Unused variables removed (many files). · de628592
      unknown authored
      sql/item_func.cc:
        Unused variable 'thd' removed.
      sql/item_subselect.cc:
        Unused variable 'type' removed.
      sql/slave.cc:
        Unused variable 'return_val' removed.
      sql/sql_derived.cc:
        Unused variable 'is_subsel' removed.
      sql/sql_parse.cc:
        Unused variables 'pstr' and 'create_info' removed.
      sql/sql_prepare.cc:
        Unused variable 'res' removed.
      sql/time.cc:
        Unused variable 'str_begin' removed.
      de628592
  33. 13 Jun, 2004 1 commit
    • unknown's avatar
      fixed field resolving mode fo INSERT/REPLACE and CRETE with SELECT (BUG#4090) · 6f364111
      unknown authored
      mysql-test/r/subselect.result:
        outer fields resolving in INSERT/REPLACE and CRETE with SELECT
      mysql-test/t/subselect.test:
        outer fields resolving in INSERT/REPLACE and CRETE with SELECT
      sql/sql_parse.cc:
        fixed field resolving mode fo INSERT/REPLACE and CRETE with SELECT
      sql/sql_prepare.cc:
        fixed field resolving mode fo INSERT/REPLACE and CRETE with SELECT
      6f364111
  34. 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
  35. 07 Jun, 2004 2 commits
    • unknown's avatar
      c4d76f75
    • unknown's avatar
      Post review fixes for "SQL Syntax for Prepared Statements". · 1d4ee7f8
      unknown authored
      mysql-test/r/ps.result:
        Better error message
      mysys/my_error.c:
        Comments added
      sql/item.cc:
        Moved a chunk of code from sql_prepare.cc to Item_param::set_from_user_var
      sql/item.h:
        Moved a chunk of code from sql_prepare.cc to Item_param::set_from_user_var
      sql/item_func.cc:
        Code cleanup
      sql/mysql_priv.h:
        Code cleanup
      sql/sql_class.cc:
        Code cleanup
      sql/sql_parse.cc:
        use user_var_entry::val_str in PREPARE stmt FROM @var.
      sql/sql_prepare.cc:
        Post-review fixes and code cleanup.
      sql/sql_yacc.yy:
        Coding style fixes
      1d4ee7f8
  36. 05 Jun, 2004 1 commit
    • unknown's avatar
      More comments in prepared statements code. · 780fdb02
      unknown authored
      libmysql/libmysql.c:
        Extended comments for mysql_stmt_init, mysql_stmt_prepare, 
        mysql_stmt_result_metadata.
        Few bits of code moved around and cleaned up.
      sql/sql_prepare.cc:
        Commented case with ulonglong length in get_param_length
      780fdb02