An error occurred fetching the project authors.
  1. 16 May, 2004 1 commit
    • unknown's avatar
      key_cmp -> key_cmp_if_same · 70f79563
      unknown authored
      New records_in_range() interface (similar to read_range())
      Macros for faster bitmap handling
      Simplify read_range() code (#WL1786)
      New general key_cmp() function to compare keys
      
      
      
      
      heap/hp_hash.c:
        New records_in_range() interface
      include/heap.h:
        New records_in_range() interface
      include/my_base.h:
        Moved 'key_range' here so that all table handlers can use it
      include/my_bitmap.h:
        Make some bitmap functions inline for faster usage in one thread
      include/myisam.h:
        New records_in_range() interface
      include/myisammrg.h:
        New records_in_range() interface
      myisam/mi_range.c:
        New records_in_range() interface
      myisam/mi_test2.c:
        New records_in_range() interface
      myisam/rt_test.c:
        New records_in_range() interface
        Indentation fixes
      myisam/sp_test.c:
        New records_in_range() interface
        Indentation fixes
      myisammrg/myrg_range.c:
        New records_in_range() interface
      mysys/my_bitmap.c:
        Make some bitmap functions inline for faster usage in one thread
      sql/examples/ha_example.cc:
        New records_in_range() interface
      sql/field.cc:
        Fixed indentation
      sql/ha_berkeley.cc:
        New records_in_range() interface
      sql/ha_berkeley.h:
        New records_in_range() interface
      sql/ha_heap.cc:
        New records_in_range() interface
      sql/ha_heap.h:
        New records_in_range() interface
      sql/ha_innodb.cc:
        New records_in_range() interface
      sql/ha_innodb.h:
        New records_in_range() interface
      sql/ha_isam.cc:
        New records_in_range() interface
      sql/ha_isam.h:
        New records_in_range() interface
      sql/ha_myisam.cc:
        New records_in_range() interface
      sql/ha_myisam.h:
        New records_in_range() interface
      sql/ha_myisammrg.cc:
        New records_in_range() interface
      sql/ha_myisammrg.h:
        New records_in_range() interface
      sql/ha_ndbcluster.cc:
        New records_in_range() interface
      sql/ha_ndbcluster.h:
        New records_in_range() interface
      sql/handler.cc:
        Simplify read_range() interface:
        - Add 'eq_range' to read_range_first
        - Remove 'eq_range' parameer from read_range_next()
        - Trust values from index_next_same()
        - Simplfy compare_key() by moving key_comparision to key.cc (as this code can be reused from other places)
      sql/handler.h:
        Move key_range to my_base.h to be used by external table handlers
        Simplify read_range() interface
        New records_in_range() interface
      sql/key.cc:
        Rename key_cmp() to key_cmp_if_same() to make it more descriptive
        Add new key_cmp() function usable from range and handler code.
      sql/mysql_priv.h:
        Prototypes for new functions
      sql/opt_range.cc:
        New records_in_range() interface
        Simplify cmp_prev()
        (We can in 5.0 simplify cmp_next() the same way)
      sql/opt_range.h:
        Added key_part_info to QUICK_SELECT to be able to use key_cmp() in get_next()
      sql/opt_sum.cc:
        key_cmp -> key_cmp_if_same
      sql/sql_acl.cc:
        key_cmp -> key_cmp_if_same
      sql/sql_select.cc:
        key_cmp -> key_cmp_if_same
      70f79563
  2. 28 Apr, 2004 1 commit
    • unknown's avatar
      Fixed http address in some scripts (Bug #3460) · 8b9ecce0
      unknown authored
      Output TIMESTAMP in 4.1 format for 4.1 tables (or for TIMESTAMP(19)) (portability fix)
      Fixed that INTERVAL can handle big integers. (Bug #3498)
      Fixed that hostname="" works identical as hostname="%" for table/column grants (Bug #3473)
      
      
      mysql-test/mysql-test-run.sh:
        Fixed wrong http address (Bug #3460)
      mysql-test/r/func_time.result:
        Results for new test cases
      mysql-test/t/func_time.test:
        Added test of INTERVAL with big integers
      scripts/mysqld_safe.sh:
        Added html address to manual in case of error
      sql/field.cc:
        Output TIMESTAMP in 4.1 format for 4.1 tables (or for TIMESTAMP(19))
      sql/item_timefunc.cc:
        Fixed that INTERVAL can handle big integers. (Bug #3498)
      sql/mysql_priv.h:
        Removed not needed prototype
      sql/sql_acl.cc:
        Fixed that hostname="" works identical as hostname="%" for table/column grants (Bug #3473)
        Moved GRANT_TABLE::GRANT_TABLE functions ou from class definition to make it possible to debug them
      sql/structs.h:
        Fix for long values to INTERVAL
      8b9ecce0
  3. 15 Apr, 2004 1 commit
    • unknown's avatar
      Added NDB storage engine · b43af929
      unknown authored
      include/my_base.h:
        Added three new errorcodes to be returned by the handler
      sql/Makefile.am:
        Add new files discover.cc, ha_ndbcluster.cc and ha_ndbcluster.h
        Add include path of NDB files
      sql/handler.cc:
        Added variable for keeping track of number of "discovers"
        Added NDB to list of storage engines
        Added calls to NDB for commit, rollback etc.
        Added function ha_discover for discovering a table from handler
      sql/handler.h:
        Added NDB to list of storage engines
        Added vbariable in transaction for keeping a ndb transaction handle
      sql/lex.h:
        Changed AND to AND_SYM and OR to OR_SYM to avoid nameclash
      sql/mysql_priv.h:
        Added prototypes for new functions readfrm, writefrm and create_table_from_handler
      sql/mysqld.cc:
        Added NDB support
        Disable NDB with --skip-ndbcluster
      sql/set_var.cc:
        Add posibilty to show if NDB handler is supported
      sql/ha_ndbcluster.cc:
        Add ifdef for whole file for not compiling anything if NDB sholdn't be included
        Updated timestamp handling to use new vars timestamp_default_now and timestamp_on_update_now
      sql/sql_base.cc:
        If frm file is not found on disk, ask handler if it knows about the table. Then retry the open.
        This new functionality is called "discover" and can be used by any handler.
      sql/sql_class.h:
        Added variable for keeping a NDB connection handle
      sql/sql_table.cc:
        Before trying to create a table, ask handler if a table with that name already exists.
        If user said CREATE TABLE IF NOT EXISTS, disocver the table from handler
      sql/sql_yacc.yy:
        Add NDBCLUSTER_SYM
        Change AND to AND_SYM
        Change OR to OR_SYM
      sql/table.cc:
        Fixe for probelm when NullS is returned from bas_ext of a handler.
      b43af929
  4. 13 Apr, 2004 1 commit
    • unknown's avatar
      All changes are to allow someone to compile the example storage engine and use it. · 01bff53c
      unknown authored
      acconfig.h:
        Default undef for example storage engine.
      acinclude.m4:
        Build macro additions for example engine.
      configure.in:
        Configure changes for it to be listed in --help
      sql/Makefile.am:
        Added in paths to build example.
      sql/examples/ha_example.cc:
        Correction in indention and a few minor other corrections. It now lets you create/open/drop example engine.
      sql/handler.cc:
        Added definition for the example storage engine. Added case for it to be created.
      sql/handler.h:
        Added example storage engine type.
      sql/mysql_priv.h:
        Added flag for optional build of example storage engine.
      sql/mysqld.cc:
        Pieces to build example storage engine.
      01bff53c
  5. 12 Apr, 2004 1 commit
    • unknown's avatar
      WL#1622 "SQL Syntax for Prepared Statements": post-review fixes: · 756223bb
      unknown authored
        Moved PS name to Statement class, Statement_map now handles name-to-statement resolution.
        Both named and unnamed statements are now executed in one function (sql_prepare.cc:execute_stmt)
        Fixed a problem: Malformed sequence of commands from client could cause server to use previously deleted objects.
        Some code cleanup and small fixes
      
      
      sql/mysql_priv.h:
        WL#1622 "SQL Syntax for Prepared Statements": post-review fixes.
      sql/sql_class.cc:
        WL#1622 "SQL Syntax for Prepared Statements": post-review fixes.
      sql/sql_class.h:
        WL#1622 "SQL Syntax for Prepared Statements": post-review fixes.
      sql/sql_parse.cc:
        WL#1622 "SQL Syntax for Prepared Statements": post-review fixes.
      sql/sql_prepare.cc:
        WL#1622 "SQL Syntax for Prepared Statements": post-review fixes.
      756223bb
  6. 09 Apr, 2004 1 commit
    • unknown's avatar
      after review PS fixes · 8ab58393
      unknown authored
      sql/item_cmpfunc.cc:
        merged in one if
      sql/mysql_priv.h:
        removed unused paremeter of check_one_table_access
        declaration of new function for SP share code
      sql/set_var.cc:
        function descriotion added
        unneeded parantses removed
      sql/sql_acl.cc:
        new parameter to limit number of checked tables for check_grant
      sql/sql_acl.h:
        new parameter to limit number of checked tables for check_grant
      sql/sql_delete.cc:
        preparation moved in separate function
      sql/sql_insert.cc:
        preparation moved in separate function
      sql/sql_lex.cc:
        comment style fixed
        unneeded assignment removed
      sql/sql_parse.cc:
        new parameter to limit number of checked tables for check_grant
        table list manipulation removed (because of above)
        new precheck function
      sql/sql_prepare.cc:
        function rewrited to shere code with sql_prepare.cc
        flow control fixed
      sql/sql_show.cc:
        new parameter to limit number of checked tables for check_grant
      sql/sql_update.cc:
        preparation moved in separate function
      sql/table.h:
        flag renamed
      8ab58393
  7. 08 Apr, 2004 1 commit
    • unknown's avatar
      Don't enable HA_EXTRA_WRITE_CACHE if too few rows · 10e15762
      unknown authored
      Revert main parts of patch for online index builds. Should be done differently
      Added support for %lx in my_snprintf()
      
      
      sql/ha_myisam.cc:
        Don't enable HA_EXTRA_WRITE_CACHE if too few rows
      sql/handler.h:
        Indentaion fix
      sql/mysql_priv.h:
        Removed real_alter_table, mysql_add_column and mysql_drop_column
      sql/sql_class.cc:
        After merge fix
      sql/sql_insert.cc:
        Don't user bulk_insert if only one row (common case)
      sql/sql_parse.cc:
        Added mysql_create_index() and mysql_drop_index() as these are only wrappers for mysql_alter_table()
      sql/sql_table.cc:
        Revert main parts of patch for online index builds
        Changed back to use tabs to make merges possible between trees
      sql/unireg.cc:
        Added comments and minor cleanup
      strings/my_vsnprintf.c:
        Added support for %lx.
        Proper long support
      10e15762
  8. 07 Apr, 2004 2 commits
    • unknown's avatar
      new error for unsupported command in PS · c9d856c8
      unknown authored
      fixed IN subselect with basic constant left expression
      SQLCOM_CREATE_TABLE, SQLCOM_UPDATE_MULTI, SQLCOM_REPLACE_SELECT, SQLCOM_INSERT_SELECT, QLCOM_DELETE_MULTI fixed to be compatible with PS (BUG#3398, BUG#3406)
      fixed multiupdate privelege check (BUG#3408)
      fixed multiupdate tables check (BUG#3411)
      unchecked commands now is rejected by PS protocol to avoid serever crash
      fixed cleunup procedure to be compatible sith DO/SET (BUG#3393)
      
      
      include/mysqld_error.h:
        new error for unsupported command in PS
      mysql-test/r/multi_update.result:
        test sutes (BUG#3408, BUG#3411)
      mysql-test/t/multi_update.test:
        test sutes (BUG#3408, BUG#3411)
      sql/item_cmpfunc.cc:
        fixed IN subselect with basic constant left expression
      sql/mysql_priv.h:
        some function frop sql_parse.h become public
      sql/set_var.cc:
        check for SET command via PS
      sql/set_var.h:
        check for SET command via PS
      sql/share/czech/errmsg.txt:
        new error for unsupported command in PS
      sql/share/danish/errmsg.txt:
        new error for unsupported command in PS
      sql/share/dutch/errmsg.txt:
        new error for unsupported command in PS
      sql/share/english/errmsg.txt:
        new error for unsupported command in PS
      sql/share/estonian/errmsg.txt:
        new error for unsupported command in PS
      sql/share/french/errmsg.txt:
        new error for unsupported command in PS
      sql/share/german/errmsg.txt:
        new error for unsupported command in PS
      sql/share/greek/errmsg.txt:
        new error for unsupported command in PS
      sql/share/hungarian/errmsg.txt:
        new error for unsupported command in PS
      sql/share/italian/errmsg.txt:
        new error for unsupported command in PS
      sql/share/japanese/errmsg.txt:
        new error for unsupported command in PS
      sql/share/korean/errmsg.txt:
        new error for unsupported command in PS
      sql/share/norwegian-ny/errmsg.txt:
        new error for unsupported command in PS
      sql/share/norwegian/errmsg.txt:
        new error for unsupported command in PS
      sql/share/polish/errmsg.txt:
        new error for unsupported command in PS
      sql/share/portuguese/errmsg.txt:
        new error for unsupported command in PS
      sql/share/romanian/errmsg.txt:
        new error for unsupported command in PS
      sql/share/russian/errmsg.txt:
        new error for unsupported command in PS
      sql/share/serbian/errmsg.txt:
        new error for unsupported command in PS
      sql/share/slovak/errmsg.txt:
        new error for unsupported command in PS
      sql/share/spanish/errmsg.txt:
        new error for unsupported command in PS
      sql/share/swedish/errmsg.txt:
        new error for unsupported command in PS
      sql/share/ukrainian/errmsg.txt:
        new error for unsupported command in PS
      sql/sql_lex.cc:
        first table unlincking procedures for CREATE command
      sql/sql_lex.h:
        first table unlincking procedures for CREATE command
      sql/sql_parse.cc:
        used function to exclude first table from list
        SQLCOM_CREATE_TABLE, SQLCOM_UPDATE_MULTI, SQLCOM_REPLACE_SELECT, SQLCOM_INSERT_SELECT, QLCOM_DELETE_MULTI fixed to be compatible with PS (BUG#3398, BUG#3406)
        fixed multiupdate privelege check (BUG#3408)
        fixed multiupdate tables check (BUG#3411)
      sql/sql_prepare.cc:
        fixed a lot of commands to be compatible with PS
        unchecked commands now is rejected to avoid serever crash
      sql/sql_select.cc:
        allow empty result for PS preparing
      sql/sql_union.cc:
        fixed cleunup procedure to be compatible sith DO/SET (BUG#3393)
      sql/sql_update.cc:
        fixed update to use correct tables lists (BUG#3408)
      sql/table.h:
        flag to support multi update tables check (BUG#3408)
      tests/client_test.c:
        removed unsupported tables
        fixed show table test
        added new tests
      c9d856c8
    • unknown's avatar
      9c810b54
  9. 05 Apr, 2004 1 commit
    • unknown's avatar
      Many files: · ef8a5401
      unknown authored
        SQL Syntax for Prepared Statements (WL#1622)
      ps.test, ps.result:
        new file
      
      
      sql/item.cc:
        SQL Syntax for Prepared Statements (WL#1622)
      sql/item.h:
        SQL Syntax for Prepared Statements (WL#1622)
      sql/lex.h:
        SQL Syntax for Prepared Statements (WL#1622)
      sql/mysql_priv.h:
        SQL Syntax for Prepared Statements (WL#1622)
      sql/mysqld.cc:
        SQL Syntax for Prepared Statements (WL#1622)
      sql/sql_class.cc:
        SQL Syntax for Prepared Statements (WL#1622)
      sql/sql_class.h:
        SQL Syntax for Prepared Statements (WL#1622)
      sql/sql_lex.h:
        SQL Syntax for Prepared Statements (WL#1622)
      sql/sql_parse.cc:
        SQL Syntax for Prepared Statements (WL#1622)
      sql/sql_prepare.cc:
        SQL Syntax for Prepared Statements (WL#1622)
      sql/sql_yacc.yy:
        SQL Syntax for Prepared Statements (WL#1622)
      ef8a5401
  10. 03 Apr, 2004 1 commit
    • unknown's avatar
      fixed brocken of client_test · 8c8dffb6
      unknown authored
      fixed aggregate functions in PS (BUG#3360)
      
      
      mysql-test/r/union.result:
        4.1 more correct error
      sql/item_cmpfunc.h:
        and_conds do not make fix fields
      sql/item_sum.cc:
        storing/restoring argument of aggregate function for prepared statements
        restoring order list of group_concat for safety
      sql/item_sum.h:
        storing/restoring argument of aggregate function for prepared statements
        layout fix
      sql/mysql_priv.h:
        just declaration
      sql/sql_base.cc:
        fix_fields() have to be called with temporary memory pool active
      sql/sql_parse.cc:
        removed hack with item pointer storing
      sql/sql_prepare.cc:
        debug output added
        removed hack with item pointer storing
      sql/sql_select.cc:
        fix_fields now should be called separately
      sql/sql_union.cc:
        removed wrong merged check from 4.0 (4.1 have its own protection)
      sql/table.h:
        removed hack with item pointer storing
      tests/client_test.c:
        new test fo PS
      8c8dffb6
  11. 02 Apr, 2004 1 commit
    • unknown's avatar
      WL#1266 "Separate auto-set logic from TIMESTAMP type." · 32b28f92
      unknown authored
      Final version of patch.
      
      Adds support for specifying of DEFAULT NOW() and/or ON UPDATE NOW()
      clauses for TIMESTAMP field definition.
      Current implementation allows only one such field per table and
      uses several unireg types for storing info about this properties of
      field. It should be replaced with better implementation when new
      .frm format is introduced.
      
      
      include/mysqld_error.h:
        Added error codes for case when we have more than one column with NOW()
        in DEFAULT or ON UPDATE clauses and for case when we are using ON UPDATE
        clause with wrong type.
      mysql-test/r/create.result:
        Added tests for using of DEFAULT NOW() and ON UPDATE NOW() with
        non-TIMESTAMP fields.
      mysql-test/r/show_check.result:
        Updated test results to reflect new default look of TIMESTAMP fields
        in SHOW CREATE TABLE.
      mysql-test/r/system_mysql_db.result:
        Updated test results to reflect new default look of TIMESTAMP fields
        in SHOW CREATE TABLE.
      mysql-test/r/type_ranges.result:
        Updated test results to reflect new default look of TIMESTAMP fields
        in SHOW COLUMNS.
      mysql-test/r/type_timestamp.result:
        Added tests for various DEFAULT and ON UPDATE clauses for TIMESTAMP
        fields definitions.
      mysql-test/t/create.test:
        Added tests for using of DEFAULT NOW() and ON UPDATE NOW() with
        non-TIMESTAMP fields.
      mysql-test/t/type_timestamp.test:
        Added tests for various DEFAULT and ON UPDATE clauses for TIMESTAMP
        fields definitions.
      sql/field.cc:
        Added support for various combinations of DEFAULT and ON UPDATE clauses
        for TIMESTAMP field. 
        
        Setting TABLE::timestamp* members for TIMESTAMP fields with auto-set 
        option taking into account their unireg type (which corresponds to 
        various DEFAULT/ON UPDATE values combinations). Replaced 
        TABLE::time_stamp with TABLE::timestamp_default_now/on_update_now
        couple moved their setup to separate method set_timestamp_offsets(),
        which now is called from  open_table instead of Field_timestamp cons.
      sql/field.h:
        Added more unireg types for handling of DEFAULT NOW() and ON UPDATE
        NOW() for TIMESTAMP fields.
        Fixed value corresponding to DEFAULT item for TIMESTAMP field.
      sql/ha_berkeley.cc:
        Now TIMESTAMP column with auto-set property could be updated during
        INSERT or/and UPDATE independently.
      sql/ha_heap.cc:
        Now TIMESTAMP column with auto-set property could be updated during
        INSERT or/and UPDATE independently.
      sql/ha_innodb.cc:
        Now TIMESTAMP column with auto-set property could be updated during
        INSERT or/and UPDATE independently.
      sql/ha_isam.cc:
        Now TIMESTAMP column with auto-set property could be updated during
        INSERT or/and UPDATE independently.
      sql/ha_isammrg.cc:
        Now TIMESTAMP column with auto-set property could be updated during
        INSERT or/and UPDATE independently.
      sql/ha_myisam.cc:
        Now TIMESTAMP column with auto-set property could be updated during
        INSERT or/and UPDATE independently.
      sql/ha_myisammrg.cc:
        Now TIMESTAMP column with auto-set property could be updated during
        INSERT or/and UPDATE independently.
      sql/item_func.h:
        We need to distinguish NOW() from other function for using in 
        DEFAULT and in ON UPDATE clauses.
      sql/item_timefunc.h:
        We need to distinguish NOW() from other function for using in 
        DEFAULT and in ON UPDATE clauses.
      sql/mysql_priv.h:
        Added parameter for ON UPDATE value to add_field_to_list() function.
      sql/share/czech/errmsg.txt:
        Added error messages for case when we have more than one column with
        NOW() (CURRENT_TIMESTAMP is just more standard alias) in DEFAULT or 
        ON UPDATE clauses and for case when we are using ON UPDATE clause with
        wrong type.
      sql/share/danish/errmsg.txt:
        Added error messages for case when we have more than one column with
        NOW() (CURRENT_TIMESTAMP is just more standard alias) in DEFAULT or 
        ON UPDATE clauses and for case when we are using ON UPDATE clause with
        wrong type.
      sql/share/dutch/errmsg.txt:
        Added error messages for case when we have more than one column with
        NOW() (CURRENT_TIMESTAMP is just more standard alias) in DEFAULT or 
        ON UPDATE clauses and for case when we are using ON UPDATE clause with
        wrong type.
      sql/share/english/errmsg.txt:
        Added error messages for case when we have more than one column with
        NOW() (CURRENT_TIMESTAMP is just more standard alias) in DEFAULT or 
        ON UPDATE clauses and for case when we are using ON UPDATE clause with
        wrong type.
      sql/share/estonian/errmsg.txt:
        Added error messages for case when we have more than one column with
        NOW() (CURRENT_TIMESTAMP is just more standard alias) in DEFAULT or 
        ON UPDATE clauses and for case when we are using ON UPDATE clause with
        wrong type.
      sql/share/french/errmsg.txt:
        Added error messages for case when we have more than one column with
        NOW() (CURRENT_TIMESTAMP is just more standard alias) in DEFAULT or 
        ON UPDATE clauses and for case when we are using ON UPDATE clause with
        wrong type.
      sql/share/german/errmsg.txt:
        Added error messages for case when we have more than one column with
        NOW() (CURRENT_TIMESTAMP is just more standard alias) in DEFAULT or 
        ON UPDATE clauses and for case when we are using ON UPDATE clause with
        wrong type.
      sql/share/greek/errmsg.txt:
        Added error messages for case when we have more than one column with
        NOW() (CURRENT_TIMESTAMP is just more standard alias) in DEFAULT or 
        ON UPDATE clauses and for case when we are using ON UPDATE clause with
        wrong type.
      sql/share/hungarian/errmsg.txt:
        Added error messages for case when we have more than one column with
        NOW() (CURRENT_TIMESTAMP is just more standard alias) in DEFAULT or 
        ON UPDATE clauses and for case when we are using ON UPDATE clause with
        wrong type.
      sql/share/italian/errmsg.txt:
        Added error messages for case when we have more than one column with
        NOW() (CURRENT_TIMESTAMP is just more standard alias) in DEFAULT or 
        ON UPDATE clauses and for case when we are using ON UPDATE clause with
        wrong type.
      sql/share/japanese/errmsg.txt:
        Added error messages for case when we have more than one column with
        NOW() (CURRENT_TIMESTAMP is just more standard alias) in DEFAULT or 
        ON UPDATE clauses and for case when we are using ON UPDATE clause with
        wrong type.
      sql/share/korean/errmsg.txt:
        Added error messages for case when we have more than one column with
        NOW() (CURRENT_TIMESTAMP is just more standard alias) in DEFAULT or 
        ON UPDATE clauses and for case when we are using ON UPDATE clause with
        wrong type.
      sql/share/norwegian-ny/errmsg.txt:
        Added error messages for case when we have more than one column with
        NOW() (CURRENT_TIMESTAMP is just more standard alias) in DEFAULT or 
        ON UPDATE clauses and for case when we are using ON UPDATE clause with
        wrong type.
      sql/share/norwegian/errmsg.txt:
        Added error messages for case when we have more than one column with
        NOW() (CURRENT_TIMESTAMP is just more standard alias) in DEFAULT or 
        ON UPDATE clauses and for case when we are using ON UPDATE clause with
        wrong type.
      sql/share/polish/errmsg.txt:
        Added error messages for case when we have more than one column with
        NOW() (CURRENT_TIMESTAMP is just more standard alias) in DEFAULT or 
        ON UPDATE clauses and for case when we are using ON UPDATE clause with
        wrong type.
      sql/share/portuguese/errmsg.txt:
        Added error messages for case when we have more than one column with
        NOW() (CURRENT_TIMESTAMP is just more standard alias) in DEFAULT or 
        ON UPDATE clauses and for case when we are using ON UPDATE clause with
        wrong type.
      sql/share/romanian/errmsg.txt:
        Added error messages for case when we have more than one column with
        NOW() (CURRENT_TIMESTAMP is just more standard alias) in DEFAULT or 
        ON UPDATE clauses and for case when we are using ON UPDATE clause with
        wrong type.
      sql/share/russian/errmsg.txt:
        Added error messages for case when we have more than one column with
        NOW() (CURRENT_TIMESTAMP is just more standard alias) in DEFAULT or 
        ON UPDATE clauses and for case when we are using ON UPDATE clause with
        wrong type.
      sql/share/serbian/errmsg.txt:
        Added error messages for case when we have more than one column with
        NOW() (CURRENT_TIMESTAMP is just more standard alias) in DEFAULT or 
        ON UPDATE clauses and for case when we are using ON UPDATE clause with
        wrong type.
      sql/share/slovak/errmsg.txt:
        Added error messages for case when we have more than one column with
        NOW() (CURRENT_TIMESTAMP is just more standard alias) in DEFAULT or 
        ON UPDATE clauses and for case when we are using ON UPDATE clause with
        wrong type.
      sql/share/spanish/errmsg.txt:
        Added error messages for case when we have more than one column with
        NOW() (CURRENT_TIMESTAMP is just more standard alias) in DEFAULT or 
        ON UPDATE clauses and for case when we are using ON UPDATE clause with
        wrong type.
      sql/share/swedish/errmsg.txt:
        Added error messages for case when we have more than one column with
        NOW() (CURRENT_TIMESTAMP is just more standard alias) in DEFAULT or 
        ON UPDATE clauses and for case when we are using ON UPDATE clause with
        wrong type.
      sql/share/ukrainian/errmsg.txt:
        Added error messages for case when we have more than one column with
        NOW() (CURRENT_TIMESTAMP is just more standard alias) in DEFAULT or 
        ON UPDATE clauses and for case when we are using ON UPDATE clause with
        wrong type.
      sql/sql_base.cc:
        Added setup of TABLE::timestamp_default_now/on_update_now pair
        for each statement to open_table().
      sql/sql_insert.cc:
        Using TABLE::timestamp_default_now/on_update_now pair instead of
        old TABLE::time_stamp. Added check for case then REPLACE could not
        be converted to UPDATE because of different DEFAULT/ON UPDATE values
        for TIMESTAMP field.
      sql/sql_lex.h:
        Added member for value used in ON UPDATE clause to st_lex.
      sql/sql_load.cc:
        Using TABLE::timestamp_default_now/on_update_now pair instead of
        old TABLE::time_stamp. We don't need to restore these members
        since they are set up for each statement in open_table().
      sql/sql_parse.cc:
        Added handling of DEFAULT NOW() and ON UPDATE NOW() clauses for
        TIMESTAMP fields to add_field_to_list() function.
      sql/sql_show.cc:
        Added support for DEFAULT CURRENT_TIMESTAMP (aka NOW() ) and 
        ON UPDATE CURRENT_TIMESTAMP to SHOW CREATE TABLE and SHOW COLUMNS.
      sql/sql_table.cc:
        mysql_create_table() function - added check for number of TIMESTAMP 
          fields with auto-set values and replacing of old style TIMESTAMPs
          with their newer analogs.
        mysql_alter_table(): Using TABLE::timestamp_default_now/on_update_now 
          pair instead of old TABLE::time_stamp. We don't need to restore these
          members since they are set up for each statement in open_table().
      sql/sql_update.cc:
        Left only setting of TABLE::timestamp_default_now/on_update_now
        to 0 since they should be already set up in open_table().
      sql/sql_yacc.yy:
        Added support for DEFAULT NOW() and ON UPDATE NOW() in field
        definitions.
      sql/table.h:
        Replaced TABLE::time_stamp withTABLE::timestamp_default_now/timestamp_on_update_now
        pair which allows to distinguish TIMESTAMP's with various DEFAULT/ON UPDATE
        clauses and optimize checks if TIMESTAMP field should be set to NOW()
        in handlers.
      sql/unireg.cc:
        Now we are marking only TIMESTAMP fields with NOW() as default or
        as on update value as special field for unireg.
      32b28f92
  12. 01 Apr, 2004 2 commits
    • unknown's avatar
      WL#775 "Add status variable identifying binlog_cache_size shortage" · a58b351e
      unknown authored
      Added two status variables: 
        binlog_cache_use - counts number of transactions that used somehow
          transaction temporary binary log.
        binlog_cache_disk_use - counts number of transactions that required
          disk I/O for storing info in this this binary log.
      
      
      include/my_sys.h:
        Added disk_writes member to the IO_CACHE structure for counting number
        of times when IO_CACHE was forced to write to disk.
      mysql-test/r/rpl_relayrotate.result:
        Fixed test result since added test for binlog_cache_use and 
        binlog_cache_disk_use status variables.
      mysql-test/t/rpl_relayrotate.test:
        Added test for binlog_cache_use and binlog_cache_disk_use status 
        variables.
        Now dropping t1 table on master too.
      mysys/mf_iocache.c:
        Added disk_writes member to the IO_CACHE structure for counting number
        of times when IO_CACHE was forced to write to disk.
      sql/handler.cc:
        Added support for binlog_cache_use and binlog_cache_disk_use status
        variable. First one is incremented if transaction used somehow 
        transaction temporary binary log (doesn't matter in memory only or 
        with writes to disk), the second one is incremented if this binary 
        log was flushed to disk at some point.
      sql/mysql_priv.h:
        Added declaration of status variables binlog_cache_use and 
        binlog_cache_disk_use.
      sql/mysqld.cc:
        Added status variables binlog_cache_use and binlog_cache_disk_use.
      BitKeeper/etc/logging_ok:
        Logging to logging@openlogging.org accepted
      a58b351e
    • unknown's avatar
      added synchronization in mysql_create_like_table · f2116615
      unknown authored
      (
      fixed BUG #2385 CREATE TABLE LIKE lacks locking on source and destination table
      and added tests for it
      )
      
      
      sql/mysql_priv.h:
        added code TEST_SYNCHRONIZATION for --exit-info option
      sql/mysqld.cc:
        fixed -debug prefix
      sql/sql_table.cc:
        added synchronization in mysql_create_like_table
        (fixed BUG #2385 CREATE TABLE LIKE lacks locking on source and destination table)
      f2116615
  13. 31 Mar, 2004 1 commit
    • unknown's avatar
      Fix for Bug #3307 "FLUSH TABLES sometimes breaks prepared statement · d2906f0e
      unknown authored
      table resolution".
      Added members to Item_ident for storing original db, table and field
      names since those that set later from Field have shorter life-time 
      than required by prep. stmt. So we need to restore original names in 
      Item_ident::cleanup(). Also now using special construnctor for creation
      of Item_field from Field object that ensures that table and field name 
      have big enough life-time.
      
      "Fix" for bug #2050 "10 to 1 performance drop with server 4.1.1"
      Clean ups in implementation of caching of field number in table.
      Added caching of table in which field is found in find_field_in_tables(). 
      
      
      sql/item.cc:
        Added members to Item_ident for storing original db, table and field
        names since those that set later from Field have shorter life-time 
        than required by prep. stmt. So we need to restore original names in 
        Item_ident::cleanup().
        Added Item_ident::cached_table for caching table there we found 
        our field.
        Added special constructor for creation of Item_field from Field object
        that ensures that table and field name have big enough life-time.
      sql/item.h:
        Added members to Item_ident for storing original db, table and field
        names since those that set later from Field have shorter life-time 
        than required by prep. stmt. So we need to restore original names in 
        Item_ident::cleanup().
        Changed type of Item_ident::cached_field_index from int to uint
        (and so NO_CACHED_FIELD_INDEX is UINT_MAX now) because we want to
        save one comparison in find_field_in_table().
        Added Item_ident::cached_table for caching table there we found 
        our field.
        Added special constructor for creation of Item_field from Field object
        that ensures that table and field name have big enough life-time.
      sql/mysql_priv.h:
        Changed type of cached_field_index_ptr from int* to uint*
        (and so NO_CACHED_FIELD_INDEX is UINT_MAX now) because we want to
        save one comparison in find_field_in_table().
      sql/sql_acl.cc:
        Changed type of find_field_in_table() paremeter to make it 
        faster.
      sql/sql_base.cc:
        find_field_in_table(): small optimization and soime clean ups in 
         caching of field index.
        find_field_in_tables(): added aggresive caching of table in which
         field is found in Item_ident::cached_table.
        insert_fields():
         using special construnctor for creation of Item_field from Field 
         object that ensures that table and field name have big enough life-time.
      d2906f0e
  14. 30 Mar, 2004 1 commit
    • unknown's avatar
      Worklog#1563 - Support of on-line CREATE/DROP INDEX. · f5297edc
      unknown authored
      This is to enable table handlers to implement online create/drop index.
      It consists of some parts:
      - New default handler methods in handler.h
      - Split of mysql_alter_table. It decides if only one kind of
        alteration is to be done (e.g. only create indexes or only drop
        indexes etc.) It then calls the specialized new handler method if
        the handler implements it. Otherwise it calls real_alter_table.
      - The parser sets flags for each alter operation detected in a
        command. These are used by mysql_alter_table for the decision.
      - mysql_prepare_table is pulled out of mysql_create_table. This is
        also used by mysql_create_index to prepare the key structure array
        for the handler. It is also used by mysql_create_index and
        mysql_drop_index to prepare a call to mysql_create_frm.
      - mysql_create_frm is pulled out of rea_create_table for use by
        mysql_create_index and mysql_drop_index after the index is
        created/dropped.
      Thanks to Antony who supplied most of the changes.
      
      
      sql/handler.h:
        Worklog#1563 - Support of on-line CREATE/DROP INDEX.
        New virtual handler methods with default implementation and return flags.
      sql/mysql_priv.h:
        Worklog#1563 - Support of on-line CREATE/DROP INDEX.
        New function prototypes. mysql_prepare_table is pulled out of
        mysql_create_table. It prepares a table structure, which is used by 
        mysql_create_table, mysql_create_index and mysql_drop_index.
        real_alter_table is pulled out of mysql_alter_table. The latter only
        looks if the requested operation can be done by specialized functions
        or else calls real_alter_table, which does the real thing.
        mysql_add_column and mysql_drop_colunm are for future use. They simply
        call real_alter_table. mysql_create_frm is pulled out of
        rea_create_table. It is called also from mysql_create_index and
        mysql_drop_index after successful create/drop index.
        mysql_alter_table prototype is extended by the new alter_flags argument.
      sql/sql_base.cc:
        Worklog#1563 - Support of on-line CREATE/DROP INDEX.
        mysql_create_index and mysql_drop_index moved to sql_table.cc.
      sql/sql_lex.h:
        Worklog#1563 - Support of on-line CREATE/DROP INDEX.
        Definitions for the new alter_flags.
      sql/sql_parse.cc:
        Worklog#1563 - Support of on-line CREATE/DROP INDEX.
        Extend the calls to mysql_alter_table by the new alter_flags argument.
      sql/sql_table.cc:
        Worklog#1563 - Support of on-line CREATE/DROP INDEX.
        mysql_prepare_table is pulled out of mysql_create_table.
        mysql_create_index and mysql_drop_index are changed so that they use
        the new handler functions if the handler implements them.
        mysql_add_column and mysql_drop_column are for future use. They simply
        call real_alter_table. mysql_alter_table only decides which function
        to use for the requested operation. real_alter_table implements most
        of what mysql_alter_table did before.
      sql/sql_yacc.yy:
        Worklog#1563 - Support of on-line CREATE/DROP INDEX.
        Set the alter_flags where appropriate.
      sql/unireg.cc:
        Worklog#1563 - Support of on-line CREATE/DROP INDEX.
        mysql_create_frm is pulled out of rea_create_table.
      f5297edc
  15. 29 Mar, 2004 1 commit
  16. 28 Mar, 2004 1 commit
    • unknown's avatar
      "Fix" for BUG #2050 "10 to 1 performance drop with server 4.1.1". · f6a8ec5f
      unknown authored
      Actually it is not a bug but right behavior observed as pefomance 
      degradation after we have forced Item_field::fix_fields() to 
      re-execute each time when we are executing prep stmt.
      
      This patch implements small optimization which heals this bad 
      behavior. We are caching field position in TABLE::field array in
      Item's member and are using this position for speeding up field
      lookups in fix_fields() in case of its re-execution.
      
      
      sql/item.cc:
        Added cached_field_index member to Item_ident for caching field
        position in TABLE::field array for quicker field lookup in case 
        fix_fields() is executed twice.
      sql/item.h:
        Added cached_field_index member to Item_ident for caching field
        position in TABLE::field array for quicker field lookup in case 
        fix_fields() is executed twice.
      sql/mysql_priv.h:
        Now find_field_in_table has one more in-out parameter which is used
        for caching field index in TABLE::field array stored for quicker
        field look up.
      sql/sql_acl.cc:
        Now find_field_in_table has one more in-out parameter which is used
        for caching field index in TABLE::field array stored for quicker
        field look up.
      sql/sql_base.cc:
        Optimization: Now when we are looking up Field by its name we are 
        caching its position in TABLE::field array in Item_ident::cached_field_index,
        so when we will call fix_fields() second time for this item (e.g.
        when we are re-executing prep statement) we can reuse this index
        to speed up this lookup.
      sql/table.cc:
        Now we storing in TABLE::name_hash pointers to elements of 
        TABLE::field array, because this allows easily retrieve index
        of field in this array when it is looked up by its name.
      sql/table.h:
        Added comment claryfying what we store in TABLE::name_hash.
      BitKeeper/etc/logging_ok:
        Logging to logging@openlogging.org accepted
      f6a8ec5f
  17. 23 Mar, 2004 1 commit
  18. 16 Mar, 2004 1 commit
  19. 15 Mar, 2004 3 commits
    • unknown's avatar
      Fix of compilation failure of latest 4.1 tree: new constants in mysqld.cc · 2e0d5eac
      unknown authored
      exceed unsigned long limit.
      
      
      include/config-win.h:
        implementation of ULL macro for Windows
      include/my_global.h:
        ULL macro defined: we need this macro because ULL qualifier is not defined 
        on systems withoug unsigned long long
      sql/item_func.cc:
        new ULL macro caused conflict with class for user level lock ULL.
        ULL renamed to User_level_lock
      sql/item_func.h:
        ULL -> User_level_lock
      sql/mysql_priv.h:
        merge error fixed: LL defined in my_global.h
      sql/mysqld.cc:
        ULL macro used for long long constants to fix compilation failure on gcc 3.*
      sql/sql_class.h:
        ULL renamed to User_level_lock
      2e0d5eac
    • unknown's avatar
      Fixes for bugs #2274 "mysqld gets SIGSEGV during processing of malformed · ef44fb9a
      unknown authored
      COM_EXECUTE packet" and #2795 "prepare + execute without bind_param crashes
       server" and #2473 "seg fault running tests/client_test.c": 
      - length checking added to packet parser 
      - default impelemntation of Item_param::set_param_func will work in
      case of malformed packet.
      No test cases are possible in our test suite, as there are no tests 
      operating on protocol layer.
      
      
      sql/item.cc:
        Default set_param function implemented: this is to not sigsegv in case
        of malformed packet with no parameters data.
      sql/item.h:
        - Item_param constructor moved to .cc to be able to assign set_param_func.
        - now embedded and ordinary versions of set_param have the same signature.
      sql/mysql_priv.h:
        mysql_stmt_execute now requires packet_length
      sql/sql_parse.cc:
        mysql_stmt_execute now requires packet length.
      sql/sql_prepare.cc:
        - length checking added to all functions working with network packet.
        - set_param_func's in embedded and ordinary version now have the same 
        signature
      ef44fb9a
    • unknown's avatar
      Task #835: additional changes fot str_to_date · afedd9f8
      unknown authored
      include/mysqld_error.h:
        Task #835: additional changes fot str_to_date
        New error message
      mysql-test/r/date_formats.result:
        Task #835: additional changes fot str_to_date
        tests
      mysql-test/r/func_sapdb.result:
        Task #835: additional changes fot str_to_date
        tests
      mysql-test/r/func_time.result:
        Task #835: additional changes fot str_to_date
        tests
      mysql-test/r/type_time.result:
        Task #835: additional changes fot str_to_date
        tests
      mysql-test/t/date_formats.test:
        Task #835: additional changes fot str_to_date
        tests
      mysql-test/t/func_sapdb.test:
        Task #835: additional changes fot str_to_date
        tests
      mysql-test/t/func_time.test:
        Task #835: additional changes fot str_to_date
        tests
      sql/share/czech/errmsg.txt:
        Task #835: additional changes fot str_to_date
        New error message
      sql/share/danish/errmsg.txt:
        Task #835: additional changes fot str_to_date
        New error message
      sql/share/dutch/errmsg.txt:
        Task #835: additional changes fot str_to_date
        New error message
      sql/share/english/errmsg.txt:
        Task #835: additional changes fot str_to_date
        New error message
      sql/share/estonian/errmsg.txt:
        Task #835: additional changes fot str_to_date
        New error message
      sql/share/french/errmsg.txt:
        Task #835: additional changes fot str_to_date
        New error message
      sql/share/german/errmsg.txt:
        Task #835: additional changes fot str_to_date
        New error message
      sql/share/greek/errmsg.txt:
        Task #835: additional changes fot str_to_date
        New error message
      sql/share/hungarian/errmsg.txt:
        Task #835: additional changes fot str_to_date
        New error message
      sql/share/italian/errmsg.txt:
        Task #835: additional changes fot str_to_date
        New error message
      sql/share/japanese/errmsg.txt:
        Task #835: additional changes fot str_to_date
        New error message
      sql/share/korean/errmsg.txt:
        Task #835: additional changes fot str_to_date
        New error message
      sql/share/norwegian-ny/errmsg.txt:
        Task #835: additional changes fot str_to_date
        New error message
      sql/share/norwegian/errmsg.txt:
        Task #835: additional changes fot str_to_date
        New error message
      sql/share/polish/errmsg.txt:
        Task #835: additional changes fot str_to_date
        New error message
      sql/share/portuguese/errmsg.txt:
        Task #835: additional changes fot str_to_date
        New error message
      sql/share/romanian/errmsg.txt:
        Task #835: additional changes fot str_to_date
        New error message
      sql/share/russian/errmsg.txt:
        Task #835: additional changes fot str_to_date
        New error message
      sql/share/serbian/errmsg.txt:
        Task #835: additional changes fot str_to_date
        New error message
      sql/share/slovak/errmsg.txt:
        Task #835: additional changes fot str_to_date
        New error message
      sql/share/spanish/errmsg.txt:
        Task #835: additional changes fot str_to_date
        New error message
      sql/share/swedish/errmsg.txt:
        Task #835: additional changes fot str_to_date
        New error message
      sql/share/ukrainian/errmsg.txt:
        Task #835: additional changes fot str_to_date
        New error message
      afedd9f8
  20. 11 Mar, 2004 2 commits
    • unknown's avatar
      Ensure that install_test_db.sh script works with both 'make install' and... · a1d9e1ee
      unknown authored
      Ensure that install_test_db.sh script works with both 'make install' and 'make_binary_distribution' layouts
      Abort if we can't allocate memory for table cache
      Fix bug with multi-update-tables and BDB tables.
      
      
      extra/replace.c:
        Fix comments
      mysql-test/install_test_db.sh:
        Change internal option from -bin to --bin
        Ensure that script works with both 'make install' and 'make_binary_distribution' layouts (Bug #3031)
      mysql-test/mysql-test-run.sh:
        Change internal option from -bin to --bin
      sql/ha_berkeley.cc:
        More debug
      sql/mysql_priv.h:
        Change table_cache_init to return error
      sql/mysqld.cc:
        Abort if we can't allocate memory for table cache. (Bug #3085)
        Enable warnings by default
      sql/sql_base.cc:
        Change table_cache_init to return error
      sql/sql_update.cc:
        Fix bug with multi-update-tables and BDB tables. Bug #3098
        Problem was that we didn't initialize BDB for calls to rnd_pos()
      a1d9e1ee
    • unknown's avatar
      Fix for BUG#2983 "If statement was killed on master, slave errors despite replicate-wild-ignore-t" · bd6c4ef4
      unknown authored
      We introduce a new function mysql_test_parse_for_slave().
      If the slave sees that the query got a really bad error on master
      (killed e.g.), then it calls this function to know if this query
      can be ignored because of replicate-*-table rules (do not worry
      about replicate-*-db rules: they are checked so early that they have
      no bug). If the answer is yes, it skips the query and continues. If
      it's no, then it stops and say "fix your slave data manually" (like it
      did before this change).
      
      
      mysql-test/r/rpl_error_ignored_table.result:
        result update
      mysql-test/t/rpl_error_ignored_table-slave.opt:
        ignore more tables
      mysql-test/t/rpl_error_ignored_table.test:
        we test if a killed query on the master, is ignored on the slave
        if the tables it involves should be excluded because of replicate-*-table
        rules.
      sql/log_event.cc:
        If the query got a really bad error on the master (thread killed etc),
        parse it to test the table names: if the replicate-*-do|ignore-table
        rules say "this query must be ignored" then we exit gracefully;
        otherwise we warn about the bad error and tell DBA to check/fix it.
        Before this change, we always warned and stopped.
      sql/mysql_priv.h:
        new function
      sql/slave.cc:
        don't print error immediately as we need to do one more test to
        be sure.
      sql/sql_parse.cc:
        we add a function mysql_test_parse_for_slave(), to be used only
        by the slave if it wants to know if the query should be ignored or not;
        so this function only parses the query, does not execute it.
      bd6c4ef4
  21. 06 Mar, 2004 1 commit
    • unknown's avatar
      Ensure that one can't from the command line set a variable too small. (Bug #2710) · aa20bd9e
      unknown authored
      Allow one to force lower_case_table_names to 0, even if the file system is case insensitive. This fixes some issues on Mac OS X (Bug #2994)
      Added variables "lower_case_file_system", "version_compile_os" and "license"
      
      
      mysql-test/t/lowercase_table3-master.opt:
        Rename: mysql-test/t/lowercase_table2-master.opt -> mysql-test/t/lowercase_table3-master.opt
      mysys/my_getopt.c:
        Ensure that one can't from the command line set a variable too small (could happen when sub_size was set)
      sql/mysql_priv.h:
        Added lower_case_file_system
      sql/mysqld.cc:
        Allow one to force lower_case_table_names to 0, even if the file system is case insensitive
      sql/set_var.cc:
        Added variable "lower_case_file_system"
        Added variable "version_compile_os"
        Added variable "license"
      sql/set_var.h:
        Added support for read only strings
      sql/sql_select.cc:
        Make join optimizer killable
      aa20bd9e
  22. 05 Mar, 2004 1 commit
    • unknown's avatar
      Portability fixes · 28f0e328
      unknown authored
      mysql-test/r/show_check.result:
        Updated results
      mysql-test/t/show_check.test:
        Portability fix (for 64 bit platforms)
      mysys/hash.c:
        Portablity fix
      sql/gen_lex_hash.cc:
        Don't include mysql_priv.h;  Causes build errors on a lot of platforms
      sql/lex_symbol.h:
        Moved symbols here from mysql_priv.h to avoid including mysql_priv.h in gen_lex_hash.cc
      sql/mysql_priv.h:
        Move symbols and struct to lex_symbol.h
      sql/sql_db.cc:
        Don't use sql_alloc/sql_free methods in sql_string.h
      sql/sql_help.cc:
        Don't use sql_alloc/sql_free methods in sql_string.h
      sql/sql_string.h:
        Don't use sql_alloc/sql_free methods in sql_string.h
        This makes the code faster and more portable
      sql/sql_yacc.yy:
        Don't use sql_alloc/sql_free methods in sql_string.h
      28f0e328
  23. 04 Mar, 2004 1 commit
    • unknown's avatar
      Fixed Bug#2491, INSERT DELAYED causes binary log unusable by mysqlbinlog (replication is ok) · 52236ae1
      unknown authored
      Setting insert delayed threads = 0 at mysql_init_command.
      
      
      sql/mysql_priv.h:
        New session variable, max_insert_delayed_threads
      sql/mysqld.cc:
        New session variable, max_insert_delayed_threads
      sql/set_var.cc:
        New session variable, max_insert_delayed_threads
      sql/sql_class.h:
        New session variable, max_insert_delayed_threads
      sql/sql_insert.cc:
        New session variable, max_insert_delayed_threads
      BitKeeper/etc/logging_ok:
        Logging to logging@openlogging.org accepted
      52236ae1
  24. 02 Mar, 2004 1 commit
    • unknown's avatar
      Desperate attempt to push part of prepared statements cleanup which was · 7b68eaaf
      unknown authored
      reviewed in Saint-Petersbourg (including post-review fixes).
      
      
      include/my_sys.h:
        Added clear_alloc_root (reset alloc root without freeing its memory)
      sql/item.h:
        - rename setup_param -> set_parap (function assigns parameter value to item)
      sql/mysql_priv.h:
        - all return values are void, because return value is never checked in
            dispatch_command
        - removed unused declaration of setup_param_functions
      sql/protocol.h:
        - unused declarations of setup_params_data* removed
      sql/sql_class.cc:
        Cleanup:
          - bzero(mem_root) replaced with clear_alloc_root
          - query_id and command members moved back to THD from Statement
        Assignment of mem_root, free_list, query_id and command optimized
        away from set_statement().
      sql/sql_class.h:
        - query_id and command moved back to THD from Statement
      sql/sql_lex.h:
        - better type for param_list
        - param_count is the same thing as param_list.elements
      sql/sql_parse.cc:
        - comments for dispatch_command
      sql/sql_prepare.cc:
        Cleanup:
        - added comments to many functions and removed trailing spaces in many 
          lines, some stale comments removed.
        - it's faster to iterate using pointers, than classes
        - Renames: error_in_prepare renamed to get_longdata_error (because it is set
          when there is an error in mysql_send_longdata, rather than in
          mysql_prepare), embedded versions of placeholder assignement functions
          now have prefix emb_, setup_ functions renamed to set_, because they
          perform assignment, not installation, setup_params_data now doesn't
          call insert_params and was renamed to setup_set_param_functions,
        - find_prepared_statement should not send error if called from no-reply
          calls, like mysql_stmt_reset
        - error reporting is checked up, to always report errors and not report
          errors twice. send_prep_stmt can be done mostly in send_prepare_result, 
          rather than in test_* functions.
        - now we don't need to reinit THD->mem_root/free_list in mysql_stmt_execute,
          because it's not reset there.
      tests/client_test.c:
        - removed second call to test_subqueries
      7b68eaaf
  25. 27 Feb, 2004 1 commit
    • unknown's avatar
      my_gethwaddr() for linux/freebsd · 1e191736
      unknown authored
      UUID() function
      
      
      BitKeeper/etc/ignore:
        Added mysys/test_gethwaddr to the ignore list
      include/my_sys.h:
        my_gethwaddr()
      mysys/Makefile.am:
        my_gethwaddr
      sql/item_create.cc:
        UUID() function
      sql/item_create.h:
        UUID() function
      sql/item_strfunc.cc:
        UUID() function
      sql/item_strfunc.h:
        UUID() function
      sql/lex.h:
        UUID() function
      sql/mysql_priv.h:
        UUID() function
      sql/mysqld.cc:
        UUID() function
      sql/sql_class.cc:
        cleanup
      1e191736
  26. 16 Feb, 2004 2 commits
    • unknown's avatar
      ulternative bugfix for BUG#2508 and fix for BUG#2809 - every table has its own TABLE structure · 54d93c41
      unknown authored
      mysql-test/r/union.result:
        fix for union test becuase now not all fields in UNION allow NULLS
        fix of test
        test suite for BUG#2809
      mysql-test/t/union.test:
        test suite for BUG#2809
      sql/mysql_priv.h:
        removed unused parameter of setup_tables()
      sql/sql_base.cc:
        removed unused parameter of setup_tables()
        cleanup of unused code
      sql/sql_class.h:
        removed unused field
      sql/sql_help.cc:
        removed unused parameter of setup_tables()
      sql/sql_insert.cc:
        removed unused parameter of setup_tables()
      sql/sql_lex.cc:
        excluded duplicate tables finding for UNION
      sql/sql_load.cc:
        removed unused parameter of setup_tables()
      sql/sql_olap.cc:
        removed unused parameter of setup_tables()
      sql/sql_prepare.cc:
        removed unused parameter of setup_tables()
      sql/sql_select.cc:
        removed unused parameter of setup_tables()
        revert old BUG#2508 patch
      sql/sql_union.cc:
        revert old BUG#2508 patch
        removed unused code
      sql/sql_update.cc:
        removed unused parameter of setup_tables()
      sql/table.h:
        shared used only for multi-update for now
      54d93c41
    • unknown's avatar
      ft_boolean_syntax made changeable · 5a9ffa30
      unknown authored
      BitKeeper/deleted/.del-gstream.cc~e7a4fae849aff6c8:
        Delete: libmysqld/gstream.cc
      BitKeeper/deleted/.del-item_subselect.cc~80564bbdb47e8160:
        Delete: libmysqld/item_subselect.cc
      BitKeeper/deleted/.del-spatial.cc~604df7172b141762:
        Delete: libmysqld/spatial.cc
      BitKeeper/deleted/.del-sql_derived.cc~548b125128871c7a:
        Delete: libmysqld/sql_derived.cc
      BitKeeper/etc/ignore:
        Added libmysqld/item_subselect.cc libmysqld/sql_derived.cc to the ignore list
      5a9ffa30
  27. 12 Feb, 2004 2 commits
    • unknown's avatar
      PS fixed to be compatible with derived tables (BUG#2641) · fab7113f
      unknown authored
      sql/mysql_priv.h:
        description moved to be accessable from sql_class.h
      sql/sql_base.cc:
        put all derived table preparation in temporary memory pull
      sql/sql_class.h:
        close tables to close derived tables before freeing memory pool where they are placed
      sql/sql_prepare.cc:
        now temporary memory pool for prrepared statements registration is oppened in open_and_lock_tables
        thd->current_statement set only for tables preparation, because we do not need memory pool tricks for PS executing
      tests/client_test.c:
        derived table added to test
        expression with aggregate functions added to test
      fab7113f
    • unknown's avatar
      memory leacks in PS with subqueries fixed (adddition to fix of BUG#2462) · 4b37cf65
      unknown authored
      sql/item.h:
        mechanism to keep reference in cache array for row IN
      sql/item_cmpfunc.cc:
        mechanism to keep reference in cache array for row IN
        layout fixed
      sql/item_cmpfunc.h:
        mechanism to keep reference in cache array for row IN
      sql/item_subselect.cc:
        fixed memory pools swapping
        prevented deleting Item_in_optimizer cache in case of row IN subquery
      sql/mysql_priv.h:
        declarations of function moved to be useful in sql_class.h
      sql/sql_base.cc:
        keep fields expanded from '*' in statement memory pool
      sql/sql_class.cc:
        fixed restoring/backup of memory pool and list of items
      sql/sql_class.h:
        memory allocation methods moved to Statement
        memory pool substituting for preparing
      sql/sql_lex.cc:
        ref_pointer_array kept in statement memory
      sql/sql_lex.h:
        reinitialization of UNIT
      sql/sql_prepare.cc:
        memory allocation/swapping fixed
      tests/client_test.c:
        layout fixed
      4b37cf65
  28. 09 Feb, 2004 1 commit
    • unknown's avatar
      ufter revview fix (BUG#2120) · 61f0e69c
      unknown authored
      mysql-test/r/derived.result:
        test of error handling in derived tables with UPDATE & DELETE
      mysql-test/t/derived.test:
        test of error handling in derived tables with UPDATE & DELETE
      sql/mysql_priv.h:
        opened tables counter added to avoid loop of tables calculating in lock_tables
      sql/sql_acl.cc:
        opened tables counter added to avoid loop of tables calculating in lock_tables, here it is just for compatibility
      sql/sql_base.cc:
        removed unneeded assignment
        opened tables counter added to avoid loop of tables calculating in lock_tables
        commentary fixed
      sql/sql_derived.cc:
        mysql_derived made static
        variable res moved in place where it used
        priveleges written in correct place
      sql/sql_handler.cc:
        opened tables counter added to avoid loop of tables calculating in lock_tables
      sql/sql_parse.cc:
        mistyping in commentary fixed
      61f0e69c
  29. 06 Feb, 2004 1 commit
    • unknown's avatar
      1. fixed bug @2593 "SHOW CREATE TABLE doesn't properly double quotes" · dfbaa161
      unknown authored
      2. added automatic quotation of keywords in SHOW CREATE TABLE
      
      
      mysql-test/r/show_check.result:
        added tests for 
        bug #2593 "SHOW CREATE TABLE doesn't properly double quotas"
        and for automatic quotation of keywords
      mysql-test/t/show_check.test:
        added tests for 
        bug #2593 "SHOW CREATE TABLE doesn't properly double quotas"
        and for automatic quotation of keywords
      sql/mysql_priv.h:
        added declaration of function is_keyword
      sql/sql_lex.cc:
        added implementation of function is_keyword
      sql/sql_show.cc:
        changed function append_identifier and it's subfunctions
        1. fixed bug @2593 "SHOW CREATE TABLE doesn't properly double quotes"
        2. added automatic quotation of keywords
      dfbaa161
  30. 03 Feb, 2004 1 commit
    • unknown's avatar
      Added new option --sync-frm / --skip-sync-frm · ec76183b
      unknown authored
      Marked --bdb-no-sync as deprecated
      Added --sync-bdb-logs / --disable-sync-bdb-logs as a synonym / alternative.
      
      
      mysys/my_getopt.c:
        Changed my_getopt so that disabled_my_option can be used for
        GET_BOOL type options too.
      sql/mysql_priv.h:
        Added opt_sync_frm
      sql/mysqld.cc:
        Added sync-frm / disable-sync-frm to mysqld, to be able to disable
        use of my_sync() (fsync()). This defaults to behavior in 4.0.16
        and before, where creating of new tables is quicker than currently.
        This option is enabled by default.
        
        Marked --bdb-no-sync as deprecated option and added another one,
        --sync-bdb-logs besides. --bdb-no-sync and --disabled-sync-bdb-logs
        are now synonyms.
      sql/unireg.cc:
        One can disable my_sync() by using --disable-sync-frm
      BitKeeper/etc/logging_ok:
        Logging to logging@openlogging.org accepted
      ec76183b
  31. 01 Feb, 2004 2 commits
    • unknown's avatar
      make JOIN::prepare, JOIN::optimize only once for EXPLAIN of derived table · 1f739ca4
      unknown authored
      (BUG#2120 sfter merge)
      
      
      mysql-test/r/derived.result:
        correct results of derived tble EXPLAIN
        test of "Using Index" with derived tables
      mysql-test/t/derived.test:
        test of "Using Index" with derived tables
      sql/mysql_priv.h:
        way to force derived table save JOIN after execution
      sql/sql_derived.cc:
        way to force derived table save JOIN after execution
      sql/sql_lex.h:
        way to force derived table save JOIN after execution
      sql/sql_select.cc:
        make JOIN::prepare, JOIN::optimize only once for EXPLAIN of derived table
      1f739ca4
    • unknown's avatar
      now all tables of query are locked in one place (including derived tables) · 68c0a299
      unknown authored
      fixed BUG#2120 and other problem with EXPLAINing derived tables
      
      
      mysql-test/r/derived.result:
        correct tables names & Co in derived tables
        test case for BUG#2120
      mysql-test/t/derived.test:
        test case for BUG#2120
      sql/mysql_priv.h:
        derived tables processing moved after open/locking all tables (in open_and_lock_tables)
      sql/repl_failsafe.cc:
        correct initialization of TABLE_LIST
      sql/sql_acl.cc:
        used simple table opening without derived table processing to avoid unneeded initialization of SELECT_LEX
      sql/sql_base.cc:
        derived tables processing moved after open/locking all tables (in open_and_lock_tables)
      sql/sql_delete.cc:
        all tables processing is done during opening
      sql/sql_derived.cc:
        derived tables processing moved after open/locking all tables (in open_and_lock_tables) to sutisfy "all query tables locking" at the moment
      sql/sql_insert.cc:
        all tables processing is done during opening
        correct initialization of TABLE_LIST
      sql/sql_lex.cc:
        now table list will be created for whole query
        layout fix
        correct check of updated table in subqueries
      sql/sql_lex.h:
        now table list will be created for whole query
        correct check of updated table in subqueries
      sql/sql_olap.cc:
        THIS FUNCTION IS USED NOWHERE
        it will be good to remove it at all (handle_olaps)
      sql/sql_parse.cc:
        derived tables processing moved after open/locking all tables (in open_and_lock_tables)
      sql/sql_prepare.cc:
        new creating list parameters
        all tables processing is done during opening
      sql/sql_select.cc:
        all tables processing is done during opening
      sql/sql_select.h:
        now it used only within file where is defined
      sql/sql_udf.cc:
        used simple table opening without derived table processing to avoid unneeded initialization of SELECT_LEX
      sql/sql_update.cc:
        all tables processing is done during opening
      68c0a299
  32. 30 Jan, 2004 1 commit
    • unknown's avatar
      Fix for bug #2523 '"func_time" test fails on QNX'. · ef55f2dc
      unknown authored
      Moved all range checks for TIMESTAMP value to my_gmt_sec().
      Also fixed check of upper boundary of TIMESTAMP range (which 
      also now will catch datetime values which are too small for
      TIMESTAMP in case if time_t is unsigned).  
      
      
      mysql-test/r/timezone.result:
        Added test which checks if TIMESTAMP range is checked 
        correctly (current time zone is honoured and both upper 
        and lower bounds of TIMESTAMP range are checked).
      mysql-test/t/timezone.test:
        Added test which checks if TIMESTAMP range is checked 
        correctly (current time zone is honoured and both upper 
        and lower bounds of TIMESTAMP range are checked).
      sql/field.cc:
        Check if datetime value is in TIMESTAMP range has moved to 
        my_gmt_sec() function.
      sql/mysql_priv.h:
        Added more constants for checking if datetime is in allowed
        range for TIMESTAMP.
      sql/time.cc:
        Check if datetime value is in TIMESTAMP range has moved to 
        my_gmt_sec() function. Fixed check of its return value
        to catch overflows in both directions and also overflows in 
        case of unsigned time_t.
      ef55f2dc