1. 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
  2. 01 Apr, 2004 6 commits
    • unknown's avatar
      Merge sanja.is.com.ua:/home/bell/mysql/bk/mysql-4.1 · a62a5fc9
      unknown authored
      into sanja.is.com.ua:/home/bell/mysql/bk/work-on-4.1
      
      
      a62a5fc9
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-4.1 · 382ece83
      unknown authored
      into jabberwock.localdomain:/home/dlenev/src/mysql-4.1-775
      
      
      382ece83
    • 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
      removed unused field · d4074bbe
      unknown authored
      layout fised
      debug information added
      
      
      sql/item.cc:
        layout fix
        debug info
      sql/sql_class.h:
        removed unused field
      d4074bbe
    • unknown's avatar
      - install all *.sql files into the "shared" directory for the binary tar.gz · 0aa510bb
      unknown authored
         distribution (this is more in line with how "make install" would install
         them) - this should also fix a test failure in the "system_mysql_db_fix"
         test.
      
      
      BitKeeper/etc/ignore:
        Added cmd-line-utils/libedit/makelist to the ignore list
      0aa510bb
    • unknown's avatar
      fix for table/field caching mechanism · 54a8eb62
      unknown authored
      save moving ON/USING tables conditions to WHERE clause (BUG#2794)
      
      
      sql/sql_base.cc:
        fix for table/field caching mechanism (global lock of it and right table passed as parameter)
        save moving ON/USING tables conditions to WHERE clause (BUG#2794)
      sql/sql_class.cc:
        lock for using field/table cache in Item name resolution
      sql/sql_class.h:
        lock for using field/table cache in Item name resolution
      sql/sql_insert.cc:
        lock for using field/table cache in Item name resolution
      tests/client_test.c:
        Test of PS queries with ON condition
      54a8eb62
  3. 31 Mar, 2004 9 commits
    • unknown's avatar
      dead6301
    • unknown's avatar
      Merge of fix for bug #2050 and bug #3307 · e6d76615
      unknown authored
      
      BitKeeper/etc/logging_ok:
        auto-union
      sql/item.cc:
        Auto merged
      sql/item.h:
        Auto merged
      sql/mysql_priv.h:
        Auto merged
      sql/sql_acl.cc:
        Auto merged
      sql/sql_base.cc:
        Manual merge
      e6d76615
    • 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
    • unknown's avatar
      Merge sgluhov@bk-internal.mysql.com:/home/bk/mysql-4.1 · 0dd6f77d
      unknown authored
      into gluh.mysql.r18.ru:/home/gluh/Bugs/mysql-4.1
      
      
      0dd6f77d
    • unknown's avatar
    • unknown's avatar
      Merge sanja.is.com.ua:/home/bell/mysql/bk/mysql-4.1 · 9c2e4b03
      unknown authored
      into sanja.is.com.ua:/home/bell/mysql/bk/work-qc-4.1
      
      
      9c2e4b03
    • unknown's avatar
      Added option --set-charset (disable with --skip-set-charset) to mysqldump. · 4cd406a9
      unknown authored
      Marked --no-set-names as deprecated, the name is misleading and --no- in front
      makes it cumbersome to use with --disable or --skip prefixes.
      The old option will still work for the time being.
      
      
      client/client_priv.h:
        Added option --set-charset (disable with --skip-set-charset) to mysqldump.
      4cd406a9
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-4.1 · 0005e266
      unknown authored
      into mysql.com:/home/my/mysql-4.1
      
      
      0005e266
    • unknown's avatar
      simple optimzation · 93c70c07
      unknown authored
      Portability fixes
      
      
      client/mysqltest.c:
        Fixed that if error number 0 is included in --error, we will not generate an error message
      include/mysql.h:
        Portability fix
      mysql-test/mysql-test-run.sh:
        Portability fix
      mysql-test/r/heap_btree.result:
        Portability fix
      mysql-test/r/rpl_error_ignored_table.result:
        Portability fix
      mysql-test/t/heap_btree.test:
        Portability fix
      mysql-test/t/rpl_error_ignored_table.test:
        Portability fix
      sql/sql_base.cc:
        simple optimzation
      sql/sql_yacc.yy:
        simple optimzation
      93c70c07
  4. 30 Mar, 2004 11 commits
  5. 29 Mar, 2004 13 commits
    • unknown's avatar
      false/true -> FALSE/TRUE · ceeaa24d
      unknown authored
      Fixes after last merge
      
      
      mysql-test/r/bdb-crash.result:
        fixed bad merge
      mysql-test/r/myisam.result:
        after merge fix
      mysql-test/r/order_by.result:
        fixed bad merge
      mysql-test/t/order_by.test:
        after merge fix
      sql/field_conv.cc:
        false/true -> FALSE/TRUE
      sql/handler.cc:
        false/true -> FALSE/TRUE
      sql/item.cc:
        false/true -> FALSE/TRUE
      sql/item_cmpfunc.cc:
        false/true -> FALSE/TRUE
      sql/item_sum.cc:
        false/true -> FALSE/TRUE
      sql/slave.cc:
        false/true -> FALSE/TRUE
      sql/sql_acl.cc:
        false/true -> FALSE/TRUE
      sql/sql_cache.cc:
        after merge fix
      sql/sql_help.cc:
        false/true -> FALSE/TRUE
      sql/sql_olap.cc:
        false/true -> FALSE/TRUE
      sql/sql_parse.cc:
        false/true -> FALSE/TRUE
      sql/sql_select.cc:
        fix after bad merge
      sql/sql_table.cc:
        fix after bad merge
      sql/sql_test.cc:
        false/true -> FALSE/TRUE
      ceeaa24d
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-4.1 · db9fde08
      unknown authored
      into mysql.com:/home/my/mysql-4.1
      
      
      db9fde08
    • unknown's avatar
      Better comment. · 989756ab
      unknown authored
      
      sql/sql_prepare.cc:
        While reviewing Sanja's patch finally understood what is going one here
        (previously marked as 'safety - nasty init' :-) ).
      989756ab
    • unknown's avatar
      Merge mysql.com:/home/my/mysql-4.0 into mysql.com:/home/my/mysql-4.1 · 619e9cba
      unknown authored
      
      mysql-test/t/timezone.test:
        Auto merged
      619e9cba
    • unknown's avatar
      Fix test results when you are in daylight saving time · 6b16bf4f
      unknown authored
      
      mysql-test/t/timezone.test:
        Fix results when you are in daylight saving time
      6b16bf4f
    • unknown's avatar
      Merge with 4.0 to get lastest bug fixes · ff908d18
      unknown authored
      
      include/m_string.h:
        Auto merged
      myisam/mi_create.c:
        Auto merged
      mysql-test/r/bdb-crash.result:
        Auto merged
      sql/handler.h:
        Auto merged
      mysql-test/r/grant_cache.result:
        Auto merged
      mysql-test/t/grant_cache.test:
        Auto merged
      sql/sql_cache.cc:
        Auto merged
      sql/sql_table.cc:
        Auto merged
      innobase/mem/mem0dbg.c:
        Merge with 4.0
      mysql-test/r/myisam.result:
        Merge with 4.0
      mysql-test/r/order_by.result:
        Merge with 4.0
      mysql-test/t/bdb-crash.test:
        Merge with 4.0
      mysql-test/t/myisam.test:
        Merge with 4.0
      mysql-test/t/order_by.test:
        Merge with 4.0
      sql/ha_berkeley.cc:
        Merge with 4.0 (use local code)
      sql/sql_select.cc:
        Merge with 4.0 to get fix for FORCE INDEX ... ORDER BY
      ff908d18
    • unknown's avatar
      Fixed wrong assert (Got failure in ctype_tis620) · 501c3e7a
      unknown authored
      501c3e7a
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-4.1 · 88321595
      unknown authored
      into mysql.com:/home/my/mysql-4.1
      
      
      sql/sql_insert.cc:
        Auto merged
      88321595
    • unknown's avatar
      Disable INSERT DELAYED for embedded library · 1cff3d98
      unknown authored
      
      sql-bench/crash-me.sh:
        Fixed typo
      sql/mysql_priv.h:
        Moved things for embedded library into one section
      sql/sql_string.cc:
        Simple optimization
      1cff3d98
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-4.0 · 063eeb7e
      unknown authored
      into mysql.com:/home/my/mysql-4.0
      
      
      063eeb7e
    • unknown's avatar
      Better error messages for not nullable · 399845ae
      unknown authored
      SET character_set_xxx=NULL
      and
      SET collation_xxx=NULL
      
      
      399845ae
    • unknown's avatar
      Better tests for BINARY · 5babbd23
      unknown authored
      5babbd23
    • unknown's avatar
      0d47f003