An error occurred fetching the project authors.
  1. 31 May, 2006 1 commit
    • unknown's avatar
      BUG#18198: Many strange partition functions were allowed, now only strictly... · a706b2a3
      unknown authored
      BUG#18198: Many strange partition functions were allowed, now only strictly allowed functions are ok
      
      
      mysql-test/r/partition_error.result:
        New test cases
      mysql-test/t/partition_error.test:
        New test cases
      sql/item.h:
        Added method check_partition_func_processor for check if item tree is valid
      sql/item_cmpfunc.h:
        Added method check_partition_func_processor for check if item tree is valid
      sql/item_func.h:
        Added method check_partition_func_processor for check if item tree is valid
      sql/item_strfunc.h:
        Added method check_partition_func_processor for check if item tree is valid
      sql/item_timefunc.h:
        Added method check_partition_func_processor for check if item tree is valid
      sql/item_xmlfunc.h:
        Added method check_partition_func_processor for check if item tree is valid
      a706b2a3
  2. 13 Apr, 2006 1 commit
    • unknown's avatar
      Bug#18691: Converting number to UNICODE string returns invalid result. · 5c0c1dcc
      unknown authored
      Conversion from int and real numbers to UCS2 didn't work fine: 
      CONVERT(100, CHAR(50) UNICODE)
      CONVERT(103.9, CHAR(50) UNICODE)
      
      The problem appeared because numbers have binary charset, so,
      simple charset recast binary->ucs2 was performed
      instead of real conversion.
      
      Fixed to make numbers pretend to be non-binary.
      
      
      mysql-test/r/ctype_ucs.result:
        Adding test case
      mysql-test/t/ctype_ucs.test:
        Adding test case
      sql/item_timefunc.cc:
        Adding new member from_cs, to replace my_charset_bin
        to a non-binary charset when converting from numbers to UCS2
      sql/item_timefunc.h:
        Adding new member from_cs, to replace my_charset_bin
        to a non-binary charset when converting from numbers to UCS2
      5c0c1dcc
  3. 11 Apr, 2006 1 commit
    • unknown's avatar
      Fix for bug #14360: Date Between Interval Broken. · 1ef73963
      unknown authored
                                         
      
      
      mysql-test/r/innodb.result:
        Fix for bug #14360: Date Between Interval Broken.                               
          - test case.
      mysql-test/t/innodb.test:
        Fix for bug #14360: Date Between Interval Broken.                               
          - test case.
      sql/item_timefunc.cc:
        Fix for bug #14360: Date Between Interval Broken.                               
          - Item_date_add_interval::eq() introduced.
      sql/item_timefunc.h:
        Fix for bug #14360: Date Between Interval Broken.                               
          - Item_date_add_interval::eq() introduced.
      1ef73963
  4. 08 Apr, 2006 1 commit
    • unknown's avatar
      BUG#18198: Errors due to too much allowed in partition functions · 09250cc6
      unknown authored
      Added functions to enable/disable allowed/disallowed partition functions
      
      
      sql/item.h:
        Added functions to enable/disable allowed/disallowed partition functions
      sql/item_cmpfunc.h:
        Added functions to enable/disable allowed/disallowed partition functions
      sql/item_func.h:
        Added functions to enable/disable allowed/disallowed partition functions
      sql/item_strfunc.h:
        Added functions to enable/disable allowed/disallowed partition functions
      sql/item_timefunc.h:
        Added functions to enable/disable allowed/disallowed partition functions
      sql/item_xmlfunc.h:
        Added functions to enable/disable allowed/disallowed partition functions
      sql/partition_info.cc:
        Added functions to enable/disable allowed/disallowed partition functions
      sql/share/errmsg.txt:
        Added new error message
      09250cc6
  5. 18 Jan, 2006 1 commit
    • unknown's avatar
      - fix bug #16435 (Weekly events execute every second) (WL#1034 Internal CRON) · 6bd58a2a
      unknown authored
      Before the interval expression was considered to be in seconds, now it is
      just a number and the type of interval is considered.
      
      - this changeset introduces also fix for bug#16432 (Events: error re interval
        misrepresents the facts)
        the code of event_timed::set_interval() was refactored anyway so it is meaningful to
        fix the bug in the same changeset.
      
      
      include/my_time.h:
        - move enum interval_type to include/my_time.h so it can be used by functions
          in the whole server
      sql/event.cc:
        - don't use second_part
        - fix small problem with create event xyz, when xyz exists -> make it error
          instead of warning if create_if_not is false.
      sql/event.h:
        pass thd to mark_last_executed() to be able to call thd->end_time()
      sql/event_executor.cc:
        - pass thd to event_timed::compute_next_execution_time()
        - a bit more DBUG info in the server log
        - handle error returned by event_timed::compute_next_execution_time()
      sql/event_priv.h:
        - define the maximal possible value for interval_value
      sql/event_timed.cc:
        - more docs
        - add static get_next_time() which sums a TIME with an interval
        - fix bug #16435 (Weekly events execute every second)
        Before the interval expression was considered to be in seconds, now it is
        just a number and the type of interval is considered.
        - fix for bug#16432 (Events: error re interval misrepresents the facts)
          (return an error if a value is too big or is negative - errmsg changed)
      sql/item_timefunc.cc:
        - export get_interval_date()
        - refactor Item_date_add_interval::get_date() and extract the core
          to date_add_interval() in time.cc so it can be reused by the
          scheduler code in event_timed.cc
      sql/item_timefunc.h:
        - export get_interval_value() so it can be reused in event_timed.cc in
          function static get_next_time()
        - move enum interval_type to include/my_time.h so it can be used by functions
          in the whole server
      sql/mysql_priv.h:
        export the new function date_add_interval() added to time.cc
      sql/share/errmsg.txt:
        - change error message to be appropriate as fix for bug#16432
          (Events: error re interval misrepresents the facts)
      sql/sql_yacc.yy:
        - change error message to be appropriate as fix for bug#16432
          (Events: error re interval misrepresents the facts)
      sql/time.cc:
        extract the core of Item_date_add_interval::get_date()
        to a function per Serg's request. The code can be reused
        to add und substract interval from a date.
      6bd58a2a
  6. 22 Dec, 2005 1 commit
    • unknown's avatar
      WL#2985 "Partition Pruning" · f19fb870
      unknown authored
      sql/ha_ndbcluster.cc:
        WL#2985 "Partition Pruning": added part_info->used_partitions initialization
      sql/ha_partition.cc:
        WL#2985 "Partition Pruning": added part_info->used_partitions initialization
      sql/handler.h:
        WL#2985 "Partition Pruning": 
        Added function prototypes
        in partition_info:
         - Added 'used_partitions' bitmap
         - Added comments
      sql/item.h:
        WL#2985 "Partition Pruning": 
        - added enum monotonicity_info
        - added virtual Item::get_monotonicity_info()
      sql/item_timefunc.cc:
        WL#2985 "Partition Pruning": 
        - added Item_func_to_days::get_monotonicity_info()
        - added Item_func_year::get_monotonicity_info()
      sql/item_timefunc.h:
        WL#2985 "Partition Pruning": 
        - added Item_func_to_days::get_monotonicity_info()
        - added Item_func_year::get_monotonicity_info()
      sql/opt_range.cc:
        WL#2985 "Partition Pruning":
        - Split out PARAM structure into PARAM and RANGE_OPT_PARAM part.
        - Added partition pruning module code.
      sql/opt_range.h:
        WL#2985 "Partition Pruning": 
        Added prune_partitions() function declaration. This is the entry point for partition pruning 
        module
      sql/sql_class.cc:
        WL#2985 "Partition Pruning": added support for "EXPLAIN PARTITIONS SELECT ..."
      sql/sql_lex.h:
        WL#2985 "Partition Pruning": added support for "EXPLAIN PARTITIONS SELECT ..."
      sql/sql_partition.cc:
        WL#2985 "Partition Pruning": 
         - Added get_list_array_idx_for_endpoint and get_range_... functions to support partition 
           pruning on "partition_field < const"-like intervals.
         - Added partition_info::used_partitions bitmap.
         - Added make_used_partitions_str function
         - Fixed BUG#15819
      sql/sql_select.cc:
        WL#2985 "Partition Pruning": 
        - Added prune_partitions() invocation right before the range analysis
        - Added code to handle return value from prune_partitions()
        - Added support for "EXPLAIN PARTITIONS SELECT ..."
      sql/sql_yacc.yy:
        #2985 "Partition Pruning": added support for "EXPLAIN PARTITIONS SELECT ..."
      f19fb870
  7. 23 Nov, 2005 1 commit
    • unknown's avatar
      Table definition cache, part 2 · f631b361
      unknown authored
      The table opening process now works the following way:
      - Create common TABLE_SHARE object
      - Read the .frm file and unpack it into the TABLE_SHARE object
      - Create a TABLE object based on the information in the TABLE_SHARE
        object and open a handler to the table object
      
      Other noteworthy changes:
      - In TABLE_SHARE the most common strings are now LEX_STRING's
      - Better error message when table is not found
      - Variable table_cache is now renamed 'table_open_cache'
      - New variable 'table_definition_cache' that is the number of table defintions that will be cached
      - strxnmov() calls are now fixed to avoid overflows
      - strxnmov() will now always add one end \0 to result
      - engine objects are now created with a TABLE_SHARE object instead of a TABLE object.
      - After creating a field object one must call field->init(table) before using it
      
      - For a busy system this change will give you:
       - Less memory usage for table object
       - Faster opening of tables (if it's has been in use or is in table definition cache)
       - Allow you to cache many table definitions objects
       - Faster drop of table
      
      
      mysql-test/mysql-test-run.sh:
        Fixed some problems with --gdb option
        Test both with socket and tcp/ip port that all old servers are killed
      mysql-test/r/flush_table.result:
        More tests with lock table with 2 threads + flush table
      mysql-test/r/information_schema.result:
        Removed old (now wrong) result
      mysql-test/r/innodb.result:
        Better error messages (thanks to TDC patch)
      mysql-test/r/merge.result:
        Extra flush table test
      mysql-test/r/ndb_bitfield.result:
        Better error messages (thanks to TDC patch)
      mysql-test/r/ndb_partition_error.result:
        Better error messages (thanks to TDC patch)
      mysql-test/r/query_cache.result:
        Remove tables left from old tests
      mysql-test/r/temp_table.result:
        Test truncate with temporary tables
      mysql-test/r/variables.result:
        Table_cache -> Table_open_cache
      mysql-test/t/flush_table.test:
        More tests with lock table with 2 threads + flush table
      mysql-test/t/merge.test:
        Extra flush table test
      mysql-test/t/multi_update.test:
        Added 'sleep' to make test predictable
      mysql-test/t/query_cache.test:
        Remove tables left from old tests
      mysql-test/t/temp_table.test:
        Test truncate with temporary tables
      mysql-test/t/variables.test:
        Table_cache -> Table_open_cache
      mysql-test/valgrind.supp:
        Remove warning that may happens becasue threads dies in different order
      mysys/hash.c:
        Fixed wrong DBUG_PRINT
      mysys/mf_dirname.c:
        More DBUG
      mysys/mf_pack.c:
        Better comment
      mysys/mf_tempdir.c:
        More DBUG
        Ensure that we call cleanup_dirname() on all temporary directory paths.
        
        If we don't do this, we will get a failure when comparing temporary table
        names as in some cases the temporary table name is run through convert_dirname())
      mysys/my_alloc.c:
        Indentation fix
      sql/examples/ha_example.cc:
        We new use TABLE_SHARE instead of TABLE when creating engine handlers
      sql/examples/ha_example.h:
        We new use TABLE_SHARE instead of TABLE when creating engine handlers
      sql/examples/ha_tina.cc:
        We new use TABLE_SHARE instead of TABLE when creating engine handlers
      sql/examples/ha_tina.h:
        We new use TABLE_SHARE instead of TABLE when creating engine handlers
      sql/field.cc:
        Update for table definition cache:
        - Field creation now takes TABLE_SHARE instead of TABLE as argument
          (This is becasue field definitions are now cached in TABLE_SHARE)
          When a field is created, one now must call field->init(TABLE) before using it
        - Use s->db instead of s->table_cache_key
        - Added Field::clone() to create a field in TABLE from a field in TABLE_SHARE
        - make_field() takes TABLE_SHARE as argument instead of TABLE
        - move_field() -> move_field_offset()
      sql/field.h:
        Update for table definition cache:
        - Field creation now takes TABLE_SHARE instead of TABLE as argument
          (This is becasue field definitions are now cached in TABLE_SHARE)
          When a field is created, one now must call field->init(TABLE) before using it
        - Added Field::clone() to create a field in TABLE from a field in TABLE_SHARE
        - make_field() takes TABLE_SHARE as argument instead of TABLE
        - move_field() -> move_field_offset()
      sql/ha_archive.cc:
        We new use TABLE_SHARE instead of TABLE when creating engine handlers
      sql/ha_archive.h:
        We new use TABLE_SHARE instead of TABLE when creating engine handlers
      sql/ha_berkeley.cc:
        We new use TABLE_SHARE instead of TABLE when creating engine handlers
        Changed name of argument create() to not hide internal 'table' variable.
        table->s  -> table_share
      sql/ha_berkeley.h:
        We new use TABLE_SHARE instead of TABLE when creating engine handlers
      sql/ha_blackhole.cc:
        We new use TABLE_SHARE instead of TABLE when creating engine handlers
      sql/ha_blackhole.h:
        We new use TABLE_SHARE instead of TABLE when creating engine handlers
      sql/ha_federated.cc:
        We new use TABLE_SHARE instead of TABLE when creating engine handlers
        Fixed comments
        Remove index variable and replace with pointers (simple optimization)
        move_field() -> move_field_offset()
        Removed some strlen() calls
      sql/ha_federated.h:
        We new use TABLE_SHARE instead of TABLE when creating engine handlers
      sql/ha_heap.cc:
        We new use TABLE_SHARE instead of TABLE when creating engine handlers
        Simplify delete_table() and create() as the given file names are now without extension
      sql/ha_heap.h:
        We new use TABLE_SHARE instead of TABLE when creating engine handlers
      sql/ha_innodb.cc:
        We new use TABLE_SHARE instead of TABLE when creating engine handlers
      sql/ha_innodb.h:
        We new use TABLE_SHARE instead of TABLE when creating engine handlers
      sql/ha_myisam.cc:
        We new use TABLE_SHARE instead of TABLE when creating engine handlers
        Remove not needed fn_format()
        Fixed for new table->s structure
      sql/ha_myisam.h:
        We new use TABLE_SHARE instead of TABLE when creating engine handlers
      sql/ha_myisammrg.cc:
        We new use TABLE_SHARE instead of TABLE when creating engine handlers
        Don't set 'is_view' for MERGE tables
        Use new interface to find_temporary_table()
      sql/ha_myisammrg.h:
        We new use TABLE_SHARE instead of TABLE when creating engine handlers
        Added flag HA_NO_COPY_ON_ALTER
      sql/ha_ndbcluster.cc:
        We new use TABLE_SHARE instead of TABLE when creating engine handlers
        Fixed wrong calls to strxnmov()
        Give error HA_ERR_TABLE_DEF_CHANGED if table definition has changed
        drop_table -> intern_drop_table()
        table->s -> table_share
        Move part_info to TABLE
        Fixed comments & DBUG print's
        New arguments to print_error()
      sql/ha_ndbcluster.h:
        We new use TABLE_SHARE instead of TABLE when creating engine handlers
      sql/ha_partition.cc:
        We new use TABLE_SHARE instead of TABLE when creating engine handlers
        We can't set up or use part_info when creating handler as there is not yet any table object
        New ha_intialise() to work with TDC (Done by Mikael)
      sql/ha_partition.h:
        We new use TABLE_SHARE instead of TABLE when creating engine handlers
        Got set_part_info() from Mikael
      sql/handler.cc:
        We new use TABLE_SHARE instead of TABLE when creating engine handlers
        ha_delete_table() now also takes database as an argument
        handler::ha_open() now takes TABLE as argument
        ha_open() now calls ha_allocate_read_write_set()
        Simplify ha_allocate_read_write_set()
        Remove ha_deallocate_read_write_set()
        Use table_share (Cached by table definition cache)
      sql/handler.h:
        New table flag: HA_NO_COPY_ON_ALTER (used by merge tables)
        Remove ha_deallocate_read_write_set()
        get_new_handler() now takes TABLE_SHARE as argument
        ha_delete_table() now gets database as argument
      sql/item.cc:
        table_name and db are now LEX_STRING objects
        When creating fields, we have now have to call field->init(table)
        move_field -> move_field_offset()
      sql/item.h:
        tmp_table_field_from_field_type() now takes an extra paramenter 'fixed_length' to allow one to force usage of CHAR
         instead of BLOB
      sql/item_cmpfunc.cc:
        Fixed call to tmp_table_field_from_field_type()
      sql/item_create.cc:
        Assert if new not handled cast type
      sql/item_func.cc:
        When creating fields, we have now have to call field->init(table)
        dummy_table used by 'sp' now needs a TABLE_SHARE object
      sql/item_subselect.cc:
        Trivial code cleanups
      sql/item_sum.cc:
        When creating fields, we have now have to call field->init(table)
      sql/item_timefunc.cc:
        Item_func_str_to_date::tmp_table_field() now replaced by call to
         tmp_table_field_from_field_type() (see item_timefunc.h)
      sql/item_timefunc.h:
        Simply tmp_table_field()
      sql/item_uniq.cc:
        When creating fields, we have now have to call field->init(table)
      sql/key.cc:
        Added 'KEY' argument to 'find_ref_key' to simplify code
      sql/lock.cc:
        More debugging
        Use create_table_def_key() to create key for table cache
        Allocate TABLE_SHARE properly when creating name lock
        Fix that locked_table_name doesn't test same table twice
      sql/mysql_priv.h:
        New functions for table definition cache
        New interfaces to a lot of functions.
        New faster interface to find_temporary_table() and close_temporary_table()
      sql/mysqld.cc:
        Added support for table definition cache of size 'table_def_size'
        Fixed som calls to strnmov()
        Changed name of 'table_cache' to 'table_open_cache'
      sql/opt_range.cc:
        Use new interfaces
        Fixed warnings from valgrind
      sql/parse_file.cc:
        Safer calls to strxnmov()
        Fixed typo
      sql/set_var.cc:
        Added variable 'table_definition_cache'
        Variable table_cache renamed to 'table_open_cache'
      sql/slave.cc:
        Use new interface
      sql/sp.cc:
        Proper use of TABLE_SHARE
      sql/sp_head.cc:
        Remove compiler warnings
        We have now to call field->init(table)
      sql/sp_head.h:
        Pointers to parsed strings are now const
      sql/sql_acl.cc:
        table_name is now a LEX_STRING
      sql/sql_base.cc:
        Main implementation of table definition cache
        (The #ifdef's are there for the future when table definition cache will replace open table cache)
        Now table definitions are cached indepndent of open tables, which will speed up things when a table is in use at once from several places
        Views are not yet cached; For the moment we only cache if a table is a view or not.
        
        Faster implementation of find_temorary_table()
        Replace 'wait_for_refresh()' with the more general function 'wait_for_condition()'
        Drop table is slightly faster as we can use the table definition cache to know the type of the table
      sql/sql_cache.cc:
        table_cache_key and table_name are now LEX_STRING
        'sDBUG print fixes
      sql/sql_class.cc:
        table_cache_key is now a LEX_STRING
        safer strxnmov()
      sql/sql_class.h:
        Added number of open table shares (table definitions)
      sql/sql_db.cc:
        safer strxnmov()
      sql/sql_delete.cc:
        Use new interface to find_temporary_table()
      sql/sql_derived.cc:
        table_name is now a LEX_STRING
      sql/sql_handler.cc:
        TABLE_SHARE->db and TABLE_SHARE->table_name are now LEX_STRING's
      sql/sql_insert.cc:
        TABLE_SHARE->db and TABLE_SHARE->table_name are now LEX_STRING's
      sql/sql_lex.cc:
        Make parsed string a const (to quickly find out if anything is trying to change the query string)
      sql/sql_lex.h:
        Make parsed string a const (to quickly find out if anything is trying to change the query string)
      sql/sql_load.cc:
        Safer strxnmov()
      sql/sql_parse.cc:
        Better error if wrong DB name
      sql/sql_partition.cc:
        part_info moved to TABLE from TABLE_SHARE
        Indentation changes
      sql/sql_select.cc:
        Indentation fixes
        Call field->init(TABLE) for new created fields
        Update create_tmp_table() to use TABLE_SHARE properly
      sql/sql_select.h:
        Call field->init(TABLE) for new created fields
      sql/sql_show.cc:
        table_name is now a LEX_STRING
        part_info moved to TABLE
      sql/sql_table.cc:
        Use table definition cache to speed up delete of tables
        Fixed calls to functions with new interfaces
        Don't use 'share_not_to_be_used'
        Instead of doing openfrm() when doing repair, we now have to call
        get_table_share() followed by open_table_from_share().
        Replace some fn_format() with faster unpack_filename().
        Safer strxnmov()
        part_info is now in TABLE
        Added Mikaels patch for partition and ALTER TABLE
        Instead of using 'TABLE_SHARE->is_view' use 'table_flags() & HA_NO_COPY_ON_ALTER
      sql/sql_test.cc:
        table_name and table_cache_key are now LEX_STRING's
      sql/sql_trigger.cc:
        TABLE_SHARE->db and TABLE_SHARE->table_name are now LEX_STRING's
        safer strxnmov()
        Removed compiler warnings
      sql/sql_update.cc:
        Call field->init(TABLE) after field is created
      sql/sql_view.cc:
        safer strxnmov()
        Create common TABLE_SHARE object for views to allow us to cache if table is a view
      sql/structs.h:
        Added SHOW_TABLE_DEFINITIONS
      sql/table.cc:
        Creation and destruct of TABLE_SHARE objects that are common for many TABLE objects
        
        The table opening process now works the following way:
        - Create common TABLE_SHARE object
        - Read the .frm file and unpack it into the TABLE_SHARE object
        - Create a TABLE object based on the information in the TABLE_SHARE
          object and open a handler to the table object
        
        open_table_def() is written in such a way that it should be trival to add parsing of the .frm files in new formats
      sql/table.h:
        TABLE objects for the same database table now share a common TABLE_SHARE object
        In TABLE_SHARE the most common strings are now LEX_STRING's
      sql/unireg.cc:
        Changed arguments to rea_create_table() to have same order as other functions
        Call field->init(table) for new created fields
      sql/unireg.h:
        Added OPEN_VIEW
      strings/strxnmov.c:
        Change strxnmov() to always add end \0
        This makes usage of strxnmov() safer as most of MySQL code assumes that strxnmov() will create a null terminated string
      f631b361
  8. 10 Nov, 2005 1 commit
  9. 01 Nov, 2005 2 commits
    • unknown's avatar
      Reverting patch for BUG #14009 (use of abs() on null value causes problems with filesort · ee380a07
      unknown authored
      Fix for bug #14536: SELECT @A,@A:=... fails with prepared statements
      
      
      mysql-test/r/func_sapdb.result:
        Correct tests after reverting patch for BUG #14009 (use of abs() on null value causes problems with filesort)
      mysql-test/r/type_newdecimal.result:
        Correct tests after reverting patch for BUG #14009 (use of abs() on null value causes problems with filesort)
      mysql-test/r/user_var.result:
        More test with SELECT @A:=
      mysql-test/t/disabled.def:
        Enable user_var.test for
      mysql-test/t/user_var.test:
        More test with SELECT @A:=
      sql/item.cc:
        Simple optimization during review of new code
      sql/item_func.cc:
        Reverting patch for BUG #14009 (use of abs() on null value causes problems with filesort)
      sql/item_timefunc.h:
        timediff() can return NULL for not NULL arguments
      sql/sql_base.cc:
        Remove usage of current_thd() in mysql_make_view()
      sql/sql_lex.h:
        Remove usage of current_thd() in mysql_make_view()
      sql/sql_select.cc:
        Fix for bug #14536: SELECT @A,@A:=... fails with prepared statements
      sql/sql_view.cc:
        Remove usage of current_thd() in mysql_make_view()
        Simple optimization of new code
      sql/sql_view.h:
        Remove usage of current_thd() in mysql_make_view()
      sql/table.cc:
        Simple optimization of new code
      ee380a07
    • unknown's avatar
      Review of new pushed code · fffe7417
      unknown authored
      Removed wrong fix for bug #14009 (use of abs() on null value causes problems with filesort)
      Mark that add_time(), time_diff() and str_to_date() can return null values
      
      
      myisam/mi_check.c:
        keyoffset is not a position (no %lx here)
      mysql-test/r/func_sapdb.result:
        Fixed test after marking that timediff() can return NULL
      sql/item_func.cc:
        Removed wrong fix for bug #14009 (use of abs() on null value causes problems with filesort)
      sql/item_timefunc.cc:
        Mark that add_time and str_to_date() can return null values
      sql/item_timefunc.h:
        Mark that time_diff can return 0
      sql/spatial.cc:
        Simple cleanups during review of new code
      fffe7417
  10. 27 Oct, 2005 1 commit
    • unknown's avatar
      Merge 4.1 - 5.0 · 1b574f5b
      unknown authored
      mysql-test/r/insert_select.result:
        Merge from 4.1 to 5.0.
      mysql-test/r/select.result:
        Merge from 4.1 to 5.0.
      mysql-test/t/insert_select.test:
        Merge from 4.1 to 5.0.
      mysys/my_handler.c:
        Merge from 4.1 to 5.0.
      sql/item.cc:
        Merge from 4.1 to 5.0.
      sql/item_timefunc.cc:
        Imported bug fix from 4.1 to 5.0. (Bug#14016)
      sql/item_timefunc.h:
        Imported bug fix from 4.1 to 5.0. (Bug#14016)
      1b574f5b
  11. 14 Sep, 2005 1 commit
    • unknown's avatar
      Fixed BUG#12963, BUG#13000: wrong VIEW creation with DAYNAME(), · b214671e
      unknown authored
       DAYOFWEEK(), and WEEKDAY().
      
      
      mysql-test/r/func_time.result:
        Fixed new results for testcases containing EXPLAIN EXTENDED SELECT ...
         WEEKDAY ... DAYNAME. The new results are correct and correspond to
         the changes in create_func_weekday() and create_func_dayname().
      mysql-test/r/view.result:
        Fixed some testcases results (bugs #12963, #13000).
      mysql-test/t/view.test:
        Added testcases for for bugs #12963, #13000.
      sql/item_create.cc:
        Fixed bugs #12963, #13000: wrong VIEW creation with DAYNAME(),
         DAYOFWEEK(), and WEEKDAY().
         Modified create_func_dayname(), create_func_dayofweek(), and
         create_func_weekday(). They don´t insert Item_func_to_days
         object now.
      sql/item_timefunc.cc:
        Fixed bugs #12963, #13000: wrong VIEW creation with DAYNAME(),
         DAYOFWEEK(), and WEEKDAY().
         Modified Item_func_weekday::val_int(). The argument of weekday should
         not be considered now to be Item_func_to_days object.
      sql/item_timefunc.h:
        Fixed bugs #12963, 13000: wrong VIEW creation with DAYNAME(),
         DAYOFWEEK(), and WEEKDAY.
         Modified Item_func_weekday::func_name(). It returns now different
         names depending on the odbc_type attribute value.
      b214671e
  12. 24 Aug, 2005 1 commit
    • unknown's avatar
      Make SYSDATE() behave as in Oracle: always the current datetime, not the · da13a76a
      unknown authored
      datetime of when the current statement began. This also makes SYSDATE()
      not safe in replication. (Bug #12562)
      
      
      mysql-test/r/func_time.result:
        Add new results
      mysql-test/t/func_time.test:
        Add tests for new SYSDATE() behavior
      sql/item_timefunc.cc:
        Add Item_func_sysdate_local implementation
      sql/item_timefunc.h:
        Add Item_func_sysdate_local, so SYSDATE() can behave differently
        than NOW().
      sql/lex.h:
        SYSDATE() is no longer an alias for NOW().
      sql/sql_yacc.yy:
        Handle SYSDATE()
      da13a76a
  13. 12 Aug, 2005 1 commit
    • unknown's avatar
      Fix bug #12298 Typo in timestampdiff() function name results in erroneous · d32c4314
      unknown authored
      view being created.
      
      Item_func_timestamp_diff::func_name() were returning function name as
      "timestamp_diff" thus when view was executed function parameters wasn't 
      properly recognized and error was raised.
      
      
      mysql-test/r/func_time.result:
        Fix test result after bugfix #12298
      sql/item_timefunc.h:
        Fix bug #12298 Typo in timestampdiff() function name results in wrong view being created.
      mysql-test/t/view.test:
        Test case for bug #12298 Typo in timestampdiff()  function name results in erroneous view being created.
      mysql-test/r/view.result:
        Test case for bug #12298 Typo in timestampdiff() function name results in erroneous view being created.
      d32c4314
  14. 04 Aug, 2005 1 commit
    • unknown's avatar
      Fix bug#12266 GROUP BY DATE(LEFT(column,8)) returns result strings with reduced · b2dc376a
      unknown authored
      length.
      
      When temporary field created for DATE(LEFT(column,8)) expression, max_length
      value is taken from Item_date_typecast, and it is getting it from underlaid
      Item_func_left and it's max_length is 8 in given expression. And all this
      results in stripping last 2 digits.
      
      To Item_date_typecast class added its own fix_length_and_dec() function 
      that sets max_length value to 10, which is proper for DATE field.
      
      
      mysql-test/t/group_by.test:
        Test case for bug#12266 GROUP BY DATE(LEFT(column,8)) returns result strings with reduced length.
      mysql-test/r/group_by.result:
        Test case for bug#12266 GROUP BY DATE(LEFT(column,8)) returns result strings with reduced length.
      sql/item_timefunc.h:
        Fix bug#12266 GROUP BY DATE(LEFT(column,8)) returns result strings with reduced length.
        To Item_date_typecast class added its own fix_length_and_dec() which sets proper max_length value.
      b2dc376a
  15. 01 Jul, 2005 1 commit
    • unknown's avatar
      Name resolution context added (BUG#6443) · b4f595b9
      unknown authored
      include/my_bitmap.h:
        new bitmap operation
      mysql-test/r/view.result:
        added warnings
        Correct inserting data check (absence of default value) for view underlying tables (BUG#6443)
      mysql-test/t/view.test:
        Correct inserting data check (absence of default value) for view underlying tables (BUG#6443)
      mysys/my_bitmap.c:
        new bitmap operation
      sql/field.h:
        index of field in table added
      sql/item.cc:
        Name resolution context added
        table list removed from fix_fields() arguments
      sql/item.h:
        Name resolution context added
        table list removed from fix_fields() arguments
      sql/item_cmpfunc.cc:
        table list removed from fix_fields() arguments
      sql/item_cmpfunc.h:
        table list removed from fix_fields() arguments
      sql/item_func.cc:
        table list removed from fix_fields() arguments
      sql/item_func.h:
        table list removed from fix_fields() arguments
      sql/item_row.cc:
        table list removed from fix_fields() arguments
      sql/item_row.h:
        table list removed from fix_fields() arguments
      sql/item_strfunc.cc:
        fixed server crash on NULL argument
      sql/item_strfunc.h:
        table list removed from fix_fields() arguments
      sql/item_subselect.cc:
        table list removed from fix_fields() arguments
      sql/item_subselect.h:
        table list removed from fix_fields() arguments
      sql/item_sum.cc:
        table list removed from fix_fields() arguments
      sql/item_sum.h:
        table list removed from fix_fields() arguments
      sql/item_timefunc.cc:
        table list removed from fix_fields() arguments
      sql/item_timefunc.h:
        table list removed from fix_fields() arguments
      sql/item_uniq.h:
        table list removed from fix_fields() arguments
      sql/log_event.cc:
        Name resolution context added
      sql/log_event.h:
        Name resolution context added
      sql/mysql_priv.h:
        Name resolution context added
      sql/set_var.cc:
        table list removed from fix_fields() arguments
      sql/share/errmsg.txt:
        new error message
      sql/sp.cc:
        Name resolution context added
      sql/sp_head.cc:
        table list removed from fix_fields() arguments
      sql/sp_head.h:
        Name resolution context added
      sql/sql_base.cc:
        table list removed from fix_fields() arguments
        Name resolution context added
      sql/sql_class.cc:
        renamed variable
      sql/sql_delete.cc:
        Name resolution context added
      sql/sql_derived.cc:
        Name resolution context added
      sql/sql_do.cc:
        table list removed from fix_fields() arguments
      sql/sql_handler.cc:
        Name resolution context added
      sql/sql_help.cc:
        Name resolution context added
      sql/sql_insert.cc:
        Name resolution context added
        table list removed from fix_fields() arguments
      sql/sql_lex.cc:
        Name resolution context added
      sql/sql_lex.h:
        removed resolve mode (information stored into name resolution context)
      sql/sql_load.cc:
        table list removed from fix_fields() arguments
      sql/sql_olap.cc:
        Name resolution context added
      sql/sql_parse.cc:
        Name resolution context added
      sql/sql_prepare.cc:
        table list removed from fix_fields() arguments
      sql/sql_select.cc:
        table list removed from fix_fields() arguments
      sql/sql_show.cc:
        Name resolution context added
      sql/sql_trigger.cc:
        table list removed from fix_fields() arguments
      sql/sql_udf.h:
        table list removed from fix_fields() arguments
      sql/sql_union.cc:
        Name resolution context added
      sql/sql_update.cc:
        Name resolution context added
      sql/sql_view.cc:
        Name resolution context added
      sql/sql_view.h:
        table list removed from fix_fields() arguments
      sql/sql_yacc.yy:
        Name resolution context added
      sql/table.cc:
        Name resolution context added
        merged view processing moved
      sql/table.h:
        merged view processing moved
      b4f595b9
  16. 20 Jun, 2005 1 commit
    • unknown's avatar
      fixed time_format printing (BUG#7521) · 58adb70a
      unknown authored
      mysql-test/r/view.result:
        using time_format in view (BUG#7521)
      mysql-test/t/view.test:
        using time_format in view (BUG#7521)
      sql/item_timefunc.h:
        fixed func_name reportion
      58adb70a
  17. 17 Jun, 2005 1 commit
    • unknown's avatar
      fixed printing of sum(distinct ) & avg(distinct ) & cast(... as decimal) (BUG#7015, BUG#11387) · 467ca505
      unknown authored
      mysql-test/r/view.result:
        using sum(distinct ), cast(... as decimal) & avg(distinct ) in views
      mysql-test/t/view.test:
        using sum(distinct ), cast(... as decimal) & avg(distinct ) in views
      sql/item.h:
        Add a comment for Item::print
      sql/item_func.cc:
        Use functype(), not func_name() for item equvalence detection
      sql/item_func.h:
        Missed function typoes added
        Add a comment for Item_func::func_name()
        style fix
      sql/item_strfunc.cc:
        Use functype(), not func_name() for item equvalence detection
      sql/item_strfunc.h:
        Add missing func_name and func_type
      sql/item_sum.cc:
        Item_sum func_name report beggining of function till first argument
      sql/item_sum.h:
        Item_sum func_name report beggining of function till first argument
      sql/item_timefunc.cc:
        Use functype(), not func_name() for item equvalence detection
      sql/item_timefunc.h:
        Add missing func_name and func_type
      sql/item_uniq.h:
        Add missing func_name
      467ca505
  18. 04 May, 2005 1 commit
    • unknown's avatar
      BUG#10241 cygwin port: invalid pragma interface directives · 9ab5f614
      unknown authored
       - Introduce ifdefs so we can control when to use #pragma interface on cygwin
      
      
      include/my_global.h:
        Turn on use of #pragma implementation and #pragma interface if compiled with GCC and platform != Cygwin
      include/raid.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/examples/ha_archive.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/examples/ha_example.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/field.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/ha_berkeley.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/ha_blackhole.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/ha_heap.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/ha_innodb.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/ha_isam.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/ha_isammrg.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/ha_myisam.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/ha_myisammrg.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/ha_ndbcluster.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/handler.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/item.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/item_cmpfunc.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/item_func.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/item_geofunc.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/item_strfunc.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/item_subselect.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/item_sum.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/item_timefunc.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/opt_range.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/procedure.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/protocol.h:
        replace __GNUC__ with USE_PRAGMA_IMPLEMENTATION
      sql/set_var.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/sql_class.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/sql_list.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/sql_select.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/sql_string.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/sql_udf.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/tztime.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      9ab5f614
  19. 08 Feb, 2005 1 commit
    • unknown's avatar
      Precision Math implementation · 91db48e3
      unknown authored
      BitKeeper/etc/ignore:
        Added client/decimal.c client/my_decimal.cc client/my_decimal.h to the ignore list
      91db48e3
  20. 26 Jan, 2005 1 commit
    • unknown's avatar
      Fix for bug #7899 "CREATE TABLE .. SELECT .. and CONVERT_TZ() function · 20bd0bd6
      unknown authored
      does not work well together". Now using simplier and more correct
      implementation of st_lex::unlink_first_table()/link_first_table_back() 
      (It also nicely handles case when global table list is created because
      of implictly used time zone tables). (2nd attempt)
      
      Fix for bug #7705 "CONVERT_TZ() crashes with subquery/WHERE on index
      column". Implemented new approach for caching objects for constant
      time zone arguments. Now instead of determining whenever these arguments
      are constants and performing time zone lookup at fix_fields() stage, we
      do it on first get_date() invocation.
      
      Cleanup of global @@time_zone variable handling.
      
      
      mysql-test/r/timezone2.result:
        Added test for bugs #7705 "CONVERT_TZ() crashes with subquery/WHERE on
        index column" and #7899 "CREATE TABLE .. SELECT .. and CONVERT_TZ()
        function does not work well together".
      mysql-test/t/timezone2.test:
        Added test for bugs #7705 "CONVERT_TZ() crashes with subquery/WHERE on
        index column" and #7899 "CREATE TABLE .. SELECT .. and CONVERT_TZ()
        function does not work well together".
      sql/item_timefunc.cc:
        Item_func_convert_tz():
          New approach for caching objects for constant time zone arguments.
          Now instead of determining whenever these arguments are constants
          and performing time zone lookup at fix_fields() stage, we do it
          on first get_date() invocation. This works better in cases when 
          const_item() for these arguments returns true only on get_date()
          stage but not on fix_fields() stage (e.g. this happens in quries
          with joins or derived tables).
      sql/item_timefunc.h:
        Item_func_convert_tz():
          Added from_tz_cached/to_tz_cached members indicating whenever we
          already have Time_zone object representing one of constant time zone
          arguments.
      sql/set_var.cc:
        Cleaned up global @@time_zone variable handling. Now we use proper
        locking when we are setting or reading its value.
      sql/set_var.h:
        Removed declaration of sys_var_thd_time_zone::get_tz_ptr() method, which
        no longer used.
      sql/sql_lex.cc:
        st_lex::unlink_first_table(), st_lex::link_first_table_back():
         Simplify implementation according to Monty's suggestion.
         Instead doing something special if global and local table lists
         are the same, we simply save/restore pointers to first elements
         of both global and local lists (which works even when this lists
         are the same!). This handles nicely the case when we have separate
         global table list becuase time zone tables are implicitly used.
      sql/tztime.cc:
        Backport of Monty's fixes from 5.0, which give us nicer error messages
        if we haven't found time zone with such name or its description.
      20bd0bd6
  21. 30 Dec, 2004 1 commit
    • unknown's avatar
      Fix for bug #7515 "from_unixtime(0) now returns NULL instead of · 1ffd688a
      unknown authored
      the Epoch". (With after review fixes).
      
      
      mysql-test/r/func_time.result:
        Added test for bug #7515 "from_unixtime(0) now returns NULL instead of
        the Epoch".
      mysql-test/t/func_time.test:
        Added test for bug #7515 "from_unixtime(0) now returns NULL instead of
        the Epoch".
      sql/item_timefunc.cc:
        Item_func_from_unixtime:
         from_unixtime(0) should return Epoch instead of NULL.
      sql/item_timefunc.h:
        Item_func_from_unixtime:
         - Removed unused method definition.
         - fix_length_and_dec() should set maybe_null to true since now
           from_unixtime() can return NULL even in case when none of its
           arguments is NULL.
      1ffd688a
  22. 11 Nov, 2004 1 commit
    • unknown's avatar
      Rename: Item::val -> Item::val_real(). · 2e6fb936
      unknown authored
      sql/filesort.cc:
        val -> val_real
      sql/item.cc:
        val -> val_real
      sql/item.h:
        val -> val_real
      sql/item_buff.cc:
        val -> val_real
      sql/item_cmpfunc.cc:
        val -> val_real
      sql/item_cmpfunc.h:
        val -> val_real
      sql/item_func.cc:
        val -> val_real
      sql/item_func.h:
        val -> val_real
      sql/item_geofunc.cc:
        val -> val_real
      sql/item_geofunc.h:
        val -> val_real
      sql/item_row.h:
        val -> val_real
      sql/item_strfunc.cc:
        val -> val_real
      sql/item_strfunc.h:
        val -> val_real
      sql/item_subselect.cc:
        val -> val_real
      sql/item_subselect.h:
        val -> val_real
      sql/item_sum.cc:
        val -> val_real
      sql/item_sum.h:
        val -> val_real
      sql/item_timefunc.h:
        val -> val_real
      sql/item_uniq.h:
        val -> val_real
      sql/procedure.h:
        val -> val_real
      sql/sp_head.cc:
        val -> val_real
      sql/sql_analyse.cc:
        val -> val_real
      sql/sql_class.cc:
        val -> val_real
      sql/sql_select.cc:
        val -> val_real
      2e6fb936
  23. 07 Sep, 2004 1 commit
  24. 10 Aug, 2004 1 commit
    • unknown's avatar
      Fix for bug #4508 "CONVERT_TZ() function with new time zone as param crashes server". · 68d7b266
      unknown authored
      Instead of trying to open time zone tables during calculation of CONVERT_TZ() function
      or setting of @@time_zone variable we should open and lock them with the rest of 
      statement's table (so we should add them to global table list) and after that use such 
      pre-opened tables for loading info about time zones.
      
      
      mysql-test/r/timezone2.result:
        Added test for bug #4508
      mysql-test/t/timezone2.test:
        Added test for bug #4508
      scripts/mysql_create_system_tables.sh:
        Added one more test time zone to time zone tables which is needed for test for bug #4508.
      sql/item_create.cc:
        CONVERT_TZ() now is treated as special function.
      sql/item_create.h:
        CONVERT_TZ() now is treated as special function.
      sql/item_timefunc.cc:
        Item_func_convert_tz now uses list of pre-opened time zone tables instead of trying to
        open them ad-hoc. Also it avoid calling of current_thd.
      sql/item_timefunc.h:
        Added comment describing special nature of CONVERT_TZ() function.
        Optimization: Added own fix_fields() method and tz_tables member for caching pointer
        to list of open time zone tables to Item_func_convert_tz class.
      sql/lex.h:
        CONVERT_TZ() now is treated as special function.
      sql/mysql_priv.h:
        Removed function which is no longer used.
      sql/set_var.cc:
        Now my_tz_find() accepts list of pre-opened time zone tables as last argument 
        and no longer needs pointer to current THD.
      sql/set_var.h:
        Exported sys_time_zone, which is now used in sql_yacc.yy for quick finding out if we are
        setting @@time_zone variable.
      sql/sql_base.cc:
        Moved propagation of pointers to open tables from global list to local select lists to
        open_and_lock_tables(), also added implicit usage of time zone tables as condition for
        such propagation.
      sql/sql_lex.cc:
        Added fake_time_zone_tables_list which is used to indicate that time zone tables are
        implicitly used in statement.
        st_select_lex_unit::create_total_list(): if time zone tables are implicitly used in
        statement add them to global tables list.
      sql/sql_lex.h:
        Added LEX::time_zone_tables_used member which is used to indicate that time zone tables 
        are implicitly used in this statement (by pointing to fake_time_zone_table_list) and 
        for holding pointer to those tables after they've been opened.
      sql/sql_parse.cc:
        We should also create global table list if statement uses time zone tables implicitly.
        Added initialization of LEX::time_zone_tables_used to mysql_query_init().
      sql/sql_prepare.cc:
        We should also create global table list if statement uses time zone tables implicitly.
      sql/sql_select.cc:
        Removed functions which are no longer used.
      sql/sql_yacc.yy:
        CONVERT_TZ() and @@time_zone variable are handled in special way since they implicitly 
        use time zone tables.
      sql/tztime.cc:
        Fix for bug #4508 "CONVERT_TZ() function with new time zone as param crashes server".
        If statement uses CONVERT_TZ() function or @@time_zone variable is set then it implicitly
        uses time zone tables. We need to open and lock such tables with all other tables of 
        such statement.
        
        All code responsible for opening table was removed from tz_load_from_db() and function was 
        renamed to tz_load_from_open_tables() (which uses list of pre-opened tables).
        We also have new functions for construction and initialization of table list of time
        zone tables.
        my_tz_find() now always require list of pre-opened time zone tables and no longer needs
        current THD. So we have to pre-open them in my_tz_init().
        Also now we try to open time zone tables only if they were found during startup.
      sql/tztime.h:
        New function for construction of table list of time zone tables my_tz_get_table_list().
        Now my_tz_find() requires list of pre-pened time zone tables instead of current thread.
      68d7b266
  25. 18 Jun, 2004 1 commit
    • unknown's avatar
      WL#1264 "Per-thread time zone support infrastructure". · 6aaccbcb
      unknown authored
      Added basic per-thread time zone functionality (based on public
      domain elsie-code). Now user can select current time zone
      (from the list of time zones described in system tables).
      All NOW-like functions honor this time zone, values of TIMESTAMP
      type are interpreted as values in this time zone, so now
      our TIMESTAMP type behaves similar to Oracle's TIMESTAMP WITH
      LOCAL TIME ZONE (or proper PostgresSQL type).
        
      WL#1266 "CONVERT_TZ() - basic time with time zone conversion 
      function".
        
      Fixed problems described in Bug #2336 (Different number of warnings 
      when inserting bad datetime as string or as number). This required
      reworking of datetime realted warning hadling (they now generated 
      at Field object level not in conversion functions).
        
      Optimization: Now Field class descendants use table->in_use member
      instead of current_thd macro.
      
      
      include/my_global.h:
        Added macro for reading of 32-bit ints stored in network order from
        unaligned memory location.
      include/mysqld_error.h:
        Added error-code for invalid timestamp warning and error-code
        for wrong or unknown time zone specification.
      libmysqld/Makefile.am:
        Added main per-thread time zone support file to libmysqld
      libmysqld/lib_sql.cc:
        Added initialization of time zones infrastructure to embedded server.
      mysql-test/r/connect.result:
        Updated test result since now mysql database contains more
        system tables.
      mysql-test/r/date_formats.result:
        Now when truncation occurs during conversion to datetime value we are producing Warnings 
        instead of Notes. Also we are giving more clear warnings about this in some cases.
      mysql-test/r/func_sapdb.result:
        New warnings about truncation occured during conversion to datetime value added due
        their better handling.
      mysql-test/r/func_time.result:
        New warnings about truncation occured during conversion to datetime value added due
        their better handling.
      mysql-test/r/select.result:
        New warnings about truncation occured during conversion to datetime value added due
        their better handling. Also tweaked test a bit to made it less ambigious for reader.
      mysql-test/r/system_mysql_db.result:
        Updated test result because new system tables holding time zone descriptions were 
        added.
      mysql-test/r/timezone.result:
        Updated timezone.test to use new system variable which shows system time zone.
        Added test of warning which is produced if someone tries to store non-existing (due 
        falling into spring time-gap) datetime value into TIMESTAMP field.
      mysql-test/r/type_datetime.result:
        Separated and extended test of values and warnings produced for bad values stored in 
        DATETTIME fields.
      mysql-test/r/type_time.result:
        Now we are producing more consistent warning when we are truncating datetime value while
        storing it in TIME field.
      mysql-test/r/type_timestamp.result:
        Separated and extended test of values and warnings produced for bad
        values stored in TIMESTAMP fields.
      mysql-test/t/select.test:
        Updated test to make it less ambigous for reader.
      mysql-test/t/timezone.test:
        Updated timezone.test to use new system variable which shows system time zone.
        Added test of warning which is produced if someone tries to store non-existing (due 
        falling into spring time-gap) datetime value into TIMESTAMP field.
      mysql-test/t/type_datetime.test:
        Separated and extended test of values and warnings produced for bad
        values stored in DATETTIME fields.
      mysql-test/t/type_timestamp.test:
        Separated and extended test of values and warnings produced for bad
        values stored in TIMESTAMP fields.
      scripts/mysql_create_system_tables.sh:
        Added creation of tables with time zone descriptions.
        Also added descriptions of time zones used in tests.
      scripts/mysql_fix_privilege_tables.sql:
        Added mysql.time_zone* tables family.
      sql/Makefile.am:
        Added files implementing time zone support to server, also added
        rules for building of mysql_tzinfo_to_sql converter and test_time
        test.
      sql/field.cc:
        Now we are using per-thread time zone for TIMESTAMP <-> whatever conversion.
        Fixed generation of warnings for datetime types (DATETIME/TIMESTAMP/DATE/...) and
        any other Field to datetime conversion (now we are generating warnings no in lower
        level functions like in str_to_TIME() but in Field methods. This allows generate
        better and more consistent warnings and to reuse code of str_to_TIME() outside of
        server).
        
        Added 3rd parameter to set_warning() method to be able to not increment cut fields
        but still produce a warning. Also added set_datetime_warning() family of auxiliary 
        methods which allow easier generate datetime related warnings.
        Also replaced occurences of current_thd with table->in_use member, added
        asserts for catching all places there we need to set table->in_use
        accordingly. Renamed fix_datetime() function to number_to_TIME() and
        moved it to sql/time.cc there it fits better.
      sql/field.h:
        Added comment about places where we can use table->in_use member
        instead of current_thd.
        Added 3rd parameter to Field::set_warning() method and set_datetime_warning()
        family of methods.
      sql/field_conv.cc:
        Field::set_warning() method with 2 arguments was replaced with more 
        generic set_warning() method with 3 arguments.
      sql/ha_berkeley.cc:
        Now we set table->in_use for temporary tables so we have to use
        table->tmp_table for checking if table is temporary.
      sql/item.cc:
        Replaced calls to str_to_time() and str_to_TIME() funcs with their warning
        generating analogs.
      sql/item_create.cc:
        Added creation of CONVERT_TZ function as FUNC_ARG3.
      sql/item_create.h:
        Added creation of CONVERT_TZ function as FUNC_ARG3.
      sql/item_timefunc.cc:
        Added support of per-thread time zone to NOW-like and FROM_UNIXTIME,
        UNIX_TIMESTAMP functions. 
        Added support for CONVERT_TZ function.
        Removed call to str_to_timestamp function which caused non-optimal
        behavior in certain cases. Replaced calls to str_to_time() function 
        with its warning generating analog.
      sql/item_timefunc.h:
        Added support of per-thread time zone to NOW-like and
        FROM_UNIXTIME, UNIX_TIMESTAMP functions.
        Added support of CONVERT_TZ function.
      sql/lex.h:
        Added support of CONVERT_TZ function.
      sql/log.cc:
        Added support for replication of statements depending on time zone.
      sql/mysql_priv.h:
        Now including headers with per-thread time zone support functions
        and classes. Added portable replacement of time_t - my_time_t type. 
        Added time zone as one of query distinguishing parameters for
        query cache. 
        Fixed declarations of str_to_TIME, str_to_time and 
        my_system_gmt_sec (former my_gmt_sec) since now they have one more
        out parameter which informs about wrong datetime value or data 
        truncation during conversion.
        Added warning generating version of str_to_TIME() and str_to_time()
        functions.
        Thrown away str_to_datetime/timestamp functions since they are not
        needed any longer. Added number_to_TIME function.
      sql/mysqld.cc:
        Added per-thread time zone support initialization.
        Added new startup parameter --default-time-zone.
      sql/set_var.cc:
        Added support for per-thread time_zone variable.
        Renamed old timezone variable to system_time_zone.
      sql/set_var.h:
        Added support for per-thread time_zone variable.
      sql/share/czech/errmsg.txt:
        Added error message for barking when incorrect time zone name or
        specifiaction is provided and for warning about invalid TIMESTAMP
        values (e.g. falling into the spring time-gap).
      sql/share/danish/errmsg.txt:
        Added error message for barking when incorrect time zone name or
        specifiaction is provided and for warning about invalid TIMESTAMP
        values (e.g. falling into the spring time-gap).
      sql/share/dutch/errmsg.txt:
        Added error message for barking when incorrect time zone name or
        specifiaction is provided and for warning about invalid TIMESTAMP
        values (e.g. falling into the spring time-gap).
      sql/share/english/errmsg.txt:
        Added error message for barking when incorrect time zone name or
        specifiaction is provided and for warning about invalid TIMESTAMP
        values (e.g. falling into the spring time-gap).
      sql/share/estonian/errmsg.txt:
        Added error message for barking when incorrect time zone name or
        specifiaction is provided and for warning about invalid TIMESTAMP
        values (e.g. falling into the spring time-gap).
      sql/share/french/errmsg.txt:
        Added error message for barking when incorrect time zone name or
        specifiaction is provided and for warning about invalid TIMESTAMP
        values (e.g. falling into the spring time-gap).
      sql/share/german/errmsg.txt:
        Added error message for barking when incorrect time zone name or
        specifiaction is provided and for warning about invalid TIMESTAMP
        values (e.g. falling into the spring time-gap).
      sql/share/greek/errmsg.txt:
        Added error message for barking when incorrect time zone name or
        specifiaction is provided and for warning about invalid TIMESTAMP
        values (e.g. falling into the spring time-gap).
      sql/share/hungarian/errmsg.txt:
        Added error message for barking when incorrect time zone name or
        specifiaction is provided and for warning about invalid TIMESTAMP
        values (e.g. falling into the spring time-gap).
      sql/share/italian/errmsg.txt:
        Added error message for barking when incorrect time zone name or
        specifiaction is provided and for warning about invalid TIMESTAMP
        values (e.g. falling into the spring time-gap).
      sql/share/japanese/errmsg.txt:
        Added error message for barking when incorrect time zone name or
        specifiaction is provided and for warning about invalid TIMESTAMP
        values (e.g. falling into the spring time-gap).
      sql/share/korean/errmsg.txt:
        Added error message for barking when incorrect time zone name or
        specifiaction is provided and for warning about invalid TIMESTAMP
        values (e.g. falling into the spring time-gap).
      sql/share/norwegian-ny/errmsg.txt:
        Added error message for barking when incorrect time zone name or
        specifiaction is provided and for warning about invalid TIMESTAMP
        values (e.g. falling into the spring time-gap).
      sql/share/norwegian/errmsg.txt:
        Added error message for barking when incorrect time zone name or
        specifiaction is provided and for warning about invalid TIMESTAMP
        values (e.g. falling into the spring time-gap).
      sql/share/polish/errmsg.txt:
        Added error message for barking when incorrect time zone name or
        specifiaction is provided and for warning about invalid TIMESTAMP
        values (e.g. falling into the spring time-gap).
      sql/share/portuguese/errmsg.txt:
        Added error message for barking when incorrect time zone name or
        specifiaction is provided and for warning about invalid TIMESTAMP
        values (e.g. falling into the spring time-gap).
      sql/share/romanian/errmsg.txt:
        Added error message for barking when incorrect time zone name or
        specifiaction is provided and for warning about invalid TIMESTAMP
        values (e.g. falling into the spring time-gap).
      sql/share/russian/errmsg.txt:
        Added error message for barking when incorrect time zone name or
        specifiaction is provided and for warning about invalid TIMESTAMP
        values (e.g. falling into the spring time-gap).
      sql/share/serbian/errmsg.txt:
        Added error message for barking when incorrect time zone name or
        specifiaction is provided and for warning about invalid TIMESTAMP
        values (e.g. falling into the spring time-gap).
      sql/share/slovak/errmsg.txt:
        Added error message for barking when incorrect time zone name or
        specifiaction is provided and for warning about invalid TIMESTAMP
        values (e.g. falling into the spring time-gap).
      sql/share/spanish/errmsg.txt:
        Added error message for barking when incorrect time zone name or
        specifiaction is provided and for warning about invalid TIMESTAMP
        values (e.g. falling into the spring time-gap).
      sql/share/swedish/errmsg.txt:
        Added error message for barking when incorrect time zone name or
        specifiaction is provided and for warning about invalid TIMESTAMP
        values (e.g. falling into the spring time-gap).
      sql/share/ukrainian/errmsg.txt:
        Added error message for barking when incorrect time zone name or
        specifiaction is provided and for warning about invalid TIMESTAMP
        values (e.g. falling into the spring time-gap).
      sql/slave.cc:
        In order to support replication of statements using time zones in 4.1 we should 
        ensure that both master and slave have same default time zone.
      sql/sql_base.cc:
        Now we are setting TABLE::in_use member for all tables (which assume
        calls to Field::store or val_ methods).
      sql/sql_cache.cc:
        Added time zone as one more query distinguishing parameter
        for query cache.
      sql/sql_class.cc:
        Added THD::time_zone_used variable indicating that this query
        uses per thread time zone.
      sql/sql_class.h:
        Added per-thread time zone variable. Added THD::time_zone_used
        variable indicating that this query uses per thread time zone
        so if this is updating query the time zone should be logged to 
        binlog.
      sql/sql_insert.cc:
        We should set TABLE::in_use member pointing to thread which is called
        INSERT DELAYED and not to worker thread.
      sql/sql_load.cc:
        Field::set_warning() now has one more argument now.
      sql/sql_parse.cc:
        Resetting THD::time_zone_used variable in the end of query
        processing.
      sql/sql_select.cc:
        Now we are setting TABLE::in_use member for all tables (which assume
        calls to Field::store or val_ methods).
      sql/sql_show.cc:
        Now using per thread time zone for extended show tables.
      sql/time.cc:
        Added support for per-thread time zones for TIMESTAMP type and
        reworked generation of warnings for TIMESTAMP and DATETIME types.
        (Introduced new TIME_to_timestamp() function. Removed hours 
        normalisation from former my_gmt_sec() since it was not working 
        and not used anywhere now, but breaks parameter constness, added
        to this function generation of warning if we are falling in spring 
        time-gap. Removed str_to_timestamp and str_to_datetime functions 
        which are no longer used. Moved fix_datetime function from
        sql/field.cc to this file as number_to_TIME() function. Added
        out parameter for str_to_TIME and str_to_time functions which
        indicates if value was truncated during conversion, removed direct 
        generation of warnings from this functions.)
      sql/unireg.cc:
        Now we are setting TABLE::in_use member for all tables (which assume
          calls to Field::store or val_ methods).
      BitKeeper/etc/ignore:
        Added sql/test_time sql/mysql_tzinfo_to_sql libmysqld/tztime.cc to the ignore list
      6aaccbcb
  26. 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
  27. 18 Mar, 2004 1 commit
    • unknown's avatar
      DBUG_ASSERT(fixed == 1); added to val* · 1a81e041
      unknown authored
      small optimisation in signed_literal
      
      
      sql/field.cc:
        layout fixed
      sql/item.cc:
        DBUG_ASSERT(fixed == 1); added to val*
        layout fixed
        fixed= 1; added where it was forgoten in fix_fields
        Item_string can be used without fix_fields
      sql/item.h:
        DBUG_ASSERT(fixed == 1); added to val*
        Item_string can be used without fix_fields
      sql/item_cmpfunc.cc:
        DBUG_ASSERT(fixed == 1); added to val*
      sql/item_cmpfunc.h:
        fixed layout and getting Item statistic
      sql/item_func.cc:
        DBUG_ASSERT(fixed == 1); added to val*
      sql/item_func.h:
        DBUG_ASSERT(fixed == 1); added to val*
      sql/item_geofunc.cc:
        DBUG_ASSERT(fixed == 1); added to val*
      sql/item_strfunc.cc:
        DBUG_ASSERT(fixed == 1); added to val*
        layout fixed
      sql/item_strfunc.h:
        DBUG_ASSERT(fixed == 1); added to val*
      sql/item_subselect.cc:
        DBUG_ASSERT(fixed == 1); added to val*
      sql/item_sum.cc:
        DBUG_ASSERT(fixed == 1); added to val*
      sql/item_sum.h:
        DBUG_ASSERT(fixed == 1); added to val*
      sql/item_timefunc.cc:
        DBUG_ASSERT(fixed == 1); added to val*
      sql/item_timefunc.h:
        DBUG_ASSERT(fixed == 1); added to val*
      sql/item_uniq.h:
        DBUG_ASSERT(fixed == 1); added to val*
      sql/sql_base.cc:
        Item creation revised
      sql/sql_help.cc:
        Item creation revised
      sql/sql_load.cc:
        Item creation revised
      sql/sql_parse.cc:
        fix_field call added
      sql/sql_select.cc:
        Item creation revised
      sql/sql_show.cc:
        Item creation revised
      sql/sql_union.cc:
        Item creation revised
      sql/sql_update.cc:
        Item creation revised
      sql/sql_yacc.yy:
        Item creation revised
        small optimisation in signed_literal
      1a81e041
  28. 15 Mar, 2004 1 commit
    • 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
  29. 09 Mar, 2004 1 commit
  30. 08 Dec, 2003 1 commit
    • unknown's avatar
      WL#530&531: TIMESTAMPADD, TIMESTAMPDIFF functions · 417354ea
      unknown authored
      Syntax for TIMESTAMPADD:
      
      TIMESTAMPADD(interval, integer_expression, datetime_expression)
      
      interval:= FRAC_SECOND | SECOND | MINUTE | HOUR | DAY | WEEK | MONTH | 
      QUARTER | YEAR
      
      Supported SQL_TSI_  prefix  (like SQL_TSI_SECOND)
      
      Syntax for TIMESTAMPDIFF:
      
      TIMESTAMPDIFF(interval, datetime_expression1, datetime_expression2)
      
      interval:= FRAC_SECOND | SECOND | MINUTE | HOUR | DAY | WEEK | MONTH | 
      QUARTER | YEAR
      
      Supported SQL_TSI_  prefix  (like SQL_TSI_SECOND)
      
      
      mysql-test/r/func_sapdb.result:
        Additional tests for timediff
      mysql-test/r/func_time.result:
        Tests for timestampadd, timestampdiff functions
      mysql-test/r/keywords.result:
        Test for new keywords
      mysql-test/t/func_sapdb.test:
        Additional tests for timediff
      mysql-test/t/func_time.test:
        Tests for timestampadd, timestampdiff functions
      mysql-test/t/keywords.test:
        Test for new keywords
      sql/item_create.cc:
        WL#530&531: TIMESTAMPADD, TIMESTAMPDIFF functions
      sql/item_create.h:
        WL#530&531: TIMESTAMPADD, TIMESTAMPDIFF functions
      sql/item_timefunc.cc:
        WL#530&531: TIMESTAMPADD, TIMESTAMPDIFF functions
      sql/item_timefunc.h:
        WL#530&531: TIMESTAMPADD, TIMESTAMPDIFF functions
      sql/lex.h:
        WL#530&531: TIMESTAMPADD, TIMESTAMPDIFF functions
      sql/sql_yacc.yy:
        WL#530&531: TIMESTAMPADD, TIMESTAMPDIFF functions
      417354ea
  31. 17 Nov, 2003 1 commit
    • unknown's avatar
      WL#1253: LAST_DAY · ac584b24
      unknown authored
      mysql-test/r/func_time.result:
        Test for WL#1253: LAST_DAY
      mysql-test/t/func_time.test:
        Test for WL#1253: LAST_DAY
      ac584b24
  32. 03 Nov, 2003 1 commit
    • unknown's avatar
      Simplified 'wrong xxx name' error messages by introducing 'general' ER_WRONG_NAME error · bee5d9d4
      unknown authored
      Cleaned up (and disabled part of) date/time/datetime format patch. One can't anymore change default read/write date/time/formats.
      This is becasue the non standard datetime formats can't be compared as strings and MySQL does still a lot of datetime comparisons as strings
      Changed flag argument to str_to_TIME() and get_date() from bool to uint
      Removed THD from str_to_xxxx functions and Item class.
      Fixed core dump when doing --print-defaults
      Move some common string functions to strfunc.cc
      Dates as strings are now of type my_charset_bin instead of default_charset()
      Introduce IDENT_QUOTED to not have to create an extra copy of simple identifiers (all chars < 128)
      Removed xxx_FORMAT_TYPE enums and replaced them with the old TIMESTAMP_xxx enums
      Renamed some TIMESTAMP_xxx enums to more appropriate names
      Use defines instead of integers for date/time/datetime string lengths
      Added to build system and use the new my_strtoll10() function.
      
      
      
      BUILD/compile-pentium-valgrind-max:
        Remove double printing of warning
      VC++Files/libmysqld/libmysqld.dsp:
        Added strfunc.cc
      VC++Files/sql/mysqld.dsp:
        Added strfunc.cc
      VC++Files/sql/mysqldmax.dsp:
        Added strfunc.cc
      VC++Files/strings/strings.dsp:
        added my_strtoll10.c
      include/m_ctype.h:
        Removed MY_LEX_FOUND_IDENT (not used)
      include/m_string.h:
        Added my_strtoll10()
      include/mysqld_error.h:
        simplified 'wrong xxx name' error messages
      include/sql_state.h:
        simplified 'wrong xxx name' error messages
      libmysqld/Makefile.am:
        Added strfunc.cc
      mysql-test/mysql-test-run.sh:
        Simplified some options
        changed $@ to "$@" in an attempt to handle options with space (Didn't succeed;  Problem will disappear when mysql-test-run is rewritten in C)
      mysql-test/r/ctype_latin1_de.result:
        Added new tests
      mysql-test/r/ctype_recoding.result:
        Extended tests
      mysql-test/r/date_formats.result:
        Cleaned up tests
        Disabled some tests that can't yet be run
      mysql-test/r/func_compress.result:
        New error message
      mysql-test/r/rpl_temporary.result:
        Added new test
      mysql-test/t/create.test:
        Changed error numbers
      mysql-test/t/ctype_latin1_de.test:
        New tests
      mysql-test/t/ctype_recoding.test:
        Extended tests
      mysql-test/t/date_formats-master.opt:
        Removed datetime_format as we can't handle options with space in mysql-test-run
      mysql-test/t/date_formats.test:
        Cleaned up tests
        Disabled some tests that can't yet be run
      mysql-test/t/rpl_temporary.test:
        Added testing of open temporary table on slave shutdown
      mysql-test/t/symlink.test:
        Fixed error numbers
      mysys/default.c:
        Fixed core dump when doing --print-defaults
      sql/Makefile.am:
        Added strfunc.cc
      sql/derror.cc:
        Fixed compiler warning
      sql/field.cc:
        Changed argument to str_to_TIME() from bool to uint
        Removed THD argument from str_to_TIME()
        Moved find_enum() and find_set() to strfunc.cc
      sql/field.h:
        Changed type of last argument to get_date() to be able to handle more options
      sql/init.cc:
        Remove not used variable dayord
      sql/item.cc:
        Changed type of last argument to get_date() to be able to handle more options
        Removed THD* element from item.
        Don't use make_date_time() to generate date/time/datetimes
      sql/item.h:
        Changed type of last argument to get_date() to be able to handle more options
        Removed THD* from Item
      sql/item_create.cc:
        Indentation cleanup
      sql/item_func.cc:
        Use new find_type()
      sql/item_func.h:
        Changed type of last argument to get_date() to be able to handle more options
      sql/item_strfunc.h:
        space change
      sql/item_timefunc.cc:
        Changed month_names[] to be easier to use
        Moved check_names[] to strfunc.cc
        Added back old make_datetime() function
        Optimized extract_date_time()
        Use my_strtoll10() insetad of my_strntoll()
        Optimized make_date_time()
        Replaced short variable names with long ones.
        Use new functions make_time(), make_date() and make_datetime()
        Dates as strings are now of type my_charset_bin instead of default_charset()
        Changed Item_func_str_to_date() to by default return a date.
      sql/item_timefunc.h:
        Changed charset for date string from default_charset() to my_charset_bin
        Changed type of last argument to get_date() to be able to handle more options
        Use defines instead of integers for date/time/datetime string lengths
      sql/mysql_priv.h:
        Fixed/added new prototypes
      sql/mysqld.cc:
        Removed opt_datetime_format_names
        Cleaned up handling of date_time format handling. (Fixed core dump when mysqld had error on startup)
        Removed some unnecessary double init of collation variables
      sql/protocol.cc:
        Changed back protocol functions to always return dates in ISO format
      sql/set_var.cc:
        Added variables time_format, date_format and datetime_format
        This had to be recoded becasue checking was done in 'update' method and not in 'check' method.
      sql/set_var.h:
        Removed class sys_var_datetime_format() as this defined a variable (which doesn't work) instead of updating a variable
      sql/share/czech/errmsg.txt:
        simplified 'wrong xxx name' error messages
      sql/share/danish/errmsg.txt:
        simplified 'wrong xxx name' error messages
      sql/share/dutch/errmsg.txt:
        simplified 'wrong xxx name' error messages
      sql/share/english/errmsg.txt:
        simplified 'wrong xxx name' error messages
      sql/share/estonian/errmsg.txt:
        simplified 'wrong xxx name' error messages
      sql/share/french/errmsg.txt:
        simplified 'wrong xxx name' error messages
      sql/share/german/errmsg.txt:
        simplified 'wrong xxx name' error messages
      sql/share/greek/errmsg.txt:
        simplified 'wrong xxx name' error messages
      sql/share/hungarian/errmsg.txt:
        simplified 'wrong xxx name' error messages
      sql/share/italian/errmsg.txt:
        simplified 'wrong xxx name' error messages
      sql/share/japanese/errmsg.txt:
        simplified 'wrong xxx name' error messages
      sql/share/korean/errmsg.txt:
        simplified 'wrong xxx name' error messages
      sql/share/norwegian-ny/errmsg.txt:
        simplified 'wrong xxx name' error messages
      sql/share/norwegian/errmsg.txt:
        simplified 'wrong xxx name' error messages
      sql/share/polish/errmsg.txt:
        simplified 'wrong xxx name' error messages
      sql/share/portuguese/errmsg.txt:
        simplified 'wrong xxx name' error messages
      sql/share/romanian/errmsg.txt:
        simplified 'wrong xxx name' error messages
      sql/share/russian/errmsg.txt:
        simplified 'wrong xxx name' error messages
      sql/share/serbian/errmsg.txt:
        simplified 'wrong xxx name' error messages
      sql/share/slovak/errmsg.txt:
        simplified 'wrong xxx name' error messages
      sql/share/spanish/errmsg.txt:
        simplified 'wrong xxx name' error messages
      sql/share/swedish/errmsg.txt:
        simplified 'wrong xxx name' error messages
      sql/share/ukrainian/errmsg.txt:
        simplified 'wrong xxx name' error messages
      sql/sql_base.cc:
        Use new find_type()
      sql/sql_class.cc:
        Allocate/free date_time format variables
      sql/sql_class.h:
        Define datetime_format variables
      sql/sql_db.cc:
        Use new ER_WRONG_NAME error
      sql/sql_lex.cc:
        Change lex to generate IDENT_QUOTED for quoted identifiers or identifers that are using characters > 128.
        This enabled us to not have to copy and convert the identifier to utf8 for simpe identifiers
      sql/sql_parse.cc:
        Use new ER_WRONG_NAME error
        Use new find_type() function
      sql/sql_prepare.cc:
        Use new defines
      sql/sql_table.cc:
        Use new ER_WRONG_NAME error
      sql/sql_yacc.yy:
        Don't copy and convert simple identifiers to utf8.
        Replace __FORMAT_TYPE defines with TIMESTAMP... defines
      sql/structs.h:
        Renamed DATETIME_FORMAT to DATE_TIME format to indicate that it's for date/time/datetime formats
        Renamed WRONT_TIMESTAMP_FULL to TIMESTAMP_DATETIME_ERROR and TIMESTAMP_FULL to TIMESTAMP_DATETIME
        Added KNOWN_DATE_TIME_FORMAT struct for Item_func_get_format
      sql/time.cc:
        Prepare str_to_TIME and str_to_time() for general date/time handling
        Removed THD from str_to... functions
        Renamed date/time/datetime functions to use 'date_time' instead of 'datetime'
        Added functions to make and copy DATE_TIME_FORMAT's
        Added trivial functions 'make_time()', 'make_date()' and 'make_datetime()'
      strings/Makefile.am:
        Added my_strtoll10()
      strings/ctype-bin.c:
        Cleared upper part of binary state map to be able to easily identify simple identifiers
      strings/my_vsnprintf.c:
        F
      bee5d9d4
  33. 30 Oct, 2003 1 commit
    • unknown's avatar
      added code covarage for functions convert(), nullif(), crc32(),... · 87e6c2ba
      unknown authored
      added code covarage for functions convert(), nullif(), crc32(), is_used_lock(), char_lengtrh(), bit_xor()
      added string length for more speed
      made code covarage for print() method of Item
      fixed printability of some items (SCRUM) (WL#1274)
      
      
      mysql-test/r/auto_increment.result:
        print() code coverage
      mysql-test/r/bench_count_distinct.result:
        print() code coverage
      mysql-test/r/case.result:
        print() code coverage
      mysql-test/r/cast.result:
        print() code coverage
      mysql-test/r/ctype_collate.result:
        print() code coverage
      mysql-test/r/ctype_many.result:
        convert with 3 arguments code covarage
        print() code coverage
      mysql-test/r/ctype_utf8.result:
        char_length code coverage
      mysql-test/r/date_formats.result:
        print() code coverage
      mysql-test/r/fulltext.result:
        print() code coverage
      mysql-test/r/func_compress.result:
        print() code coverage
      mysql-test/r/func_gconcat.result:
        print() code coverage
      mysql-test/r/func_group.result:
        bit_xor() code coverage
        print() code coverage
      mysql-test/r/func_if.result:
        nullif() code coverage
        print() code coverage
      mysql-test/r/func_in.result:
        print() code coverage
      mysql-test/r/func_math.result:
        print() code coverage
      mysql-test/r/func_op.result:
        print() code coverage
      mysql-test/r/func_regexp.result:
        print() code coverage
      mysql-test/r/func_set.result:
        print() code coverage
      mysql-test/r/func_str.result:
        crc32() code coverage
        print() code coverage
      mysql-test/r/func_system.result:
        print() code coverage
      mysql-test/r/func_test.result:
        print() code coverage
      mysql-test/r/func_time.result:
        print() code coverage
      mysql-test/r/group_by.result:
        print() code coverage
      mysql-test/r/having.result:
        print() code coverage
      mysql-test/r/insert_update.result:
        print() code coverage
      mysql-test/r/null.result:
        print() code coverage
      mysql-test/r/olap.result:
        print() code coverage
      mysql-test/r/query_cache.result:
        print() code coverage
      mysql-test/r/row.result:
        print() code coverage
      mysql-test/r/rpl000001.result:
        print() code coverage
      mysql-test/r/rpl_get_lock.result:
        print() code coverage
      mysql-test/r/rpl_master_pos_wait.result:
        print() code coverage
      mysql-test/r/select.result:
        print() code coverage
      mysql-test/r/subselect.result:
        print() code coverage
      mysql-test/r/type_blob.result:
        print() code coverage
      mysql-test/r/varbinary.result:
        print() code coverage
      mysql-test/r/variables.result:
        print() code coverage
      mysql-test/t/auto_increment.test:
        print() code coverage
      mysql-test/t/bench_count_distinct.test:
        print() code coverage
      mysql-test/t/case.test:
        print() code coverage
      mysql-test/t/cast.test:
        print() code coverage
      mysql-test/t/ctype_collate.test:
        print() code coverage
      mysql-test/t/ctype_many.test:
        convert with 3 arguments code covarage
        print() code coverage
      mysql-test/t/ctype_utf8.test:
        char_length code coverage
      mysql-test/t/date_formats.test:
        print() code coverage
      mysql-test/t/fulltext.test:
        print() code coverage
      mysql-test/t/func_compress.test:
        print() code coverage
      mysql-test/t/func_gconcat.test:
        print() code coverage
      mysql-test/t/func_group.test:
        bit_xor() code coverage
        print() code coverage
      mysql-test/t/func_if.test:
        nullif() code coverage
        print() code coverage
      mysql-test/t/func_in.test:
        print() code coverage
      mysql-test/t/func_math.test:
        print() code coverage
      mysql-test/t/func_op.test:
        print() code coverage
      mysql-test/t/func_regexp.test:
        print() code coverage
      mysql-test/t/func_set.test:
        print() code coverage
      mysql-test/t/func_str.test:
        crc32() code covarage
        print() code coverage
      mysql-test/t/func_system.test:
        print() code coverage
      mysql-test/t/func_test.test:
        print() code coverage
      mysql-test/t/func_time.test:
        print() code coverage
      mysql-test/t/group_by.test:
        print() code coverage
      mysql-test/t/having.test:
        print() code coverage
      mysql-test/t/insert_update.test:
        print() code coverage
      mysql-test/t/null.test:
        print() code coverage
      mysql-test/t/olap.test:
        print() code coverage
      mysql-test/t/query_cache.test:
        print() code coverage
      mysql-test/t/row.test:
        print() code coverage
      mysql-test/t/rpl000001.test:
        print() code coverage
      mysql-test/t/rpl_get_lock.test:
        print() code coverage
      mysql-test/t/rpl_master_pos_wait.test:
        print() code coverage
      mysql-test/t/select.test:
        print() code coverage
      mysql-test/t/type_blob.test:
        print() code coverage
      mysql-test/t/varbinary.test:
        print() code coverage
      mysql-test/t/variables.test:
        print() code coverage
      sql/item.cc:
        added string length for more speed
        layout fix
        fixed string printability
      sql/item.h:
        added string length for more speed
      sql/item_cmpfunc.cc:
        added string length for more speed
      sql/item_cmpfunc.h:
        fixed printability
      sql/item_create.cc:
        fixed printability
      sql/item_func.cc:
        fixed printability
        added string length for more speed
      sql/item_func.h:
        fixed printability
      sql/item_strfunc.cc:
        fixed printability
        added string length for more speed
      sql/item_strfunc.h:
        fixed printability
      sql/item_subselect.cc:
        added string length for more speed
      sql/item_sum.cc:
        added string length for more speed
      sql/item_timefunc.cc:
        added string length for more speed
      sql/item_timefunc.h:
        fixed printability
      sql/item_uniq.h:
        added string length for more speed
      sql/key.cc:
        added string length for more speed
      sql/sql_lex.cc:
        added string length for more speed
      sql/sql_parse.cc:
        after merge fix
      sql/sql_repl.cc:
        string changed with character for more speed
      sql/sql_select.cc:
        added string length for more speed
      sql/sql_show.cc:
        added string length for more speed
      87e6c2ba
  34. 20 Oct, 2003 1 commit
  35. 12 Oct, 2003 1 commit
    • unknown's avatar
      fixed printability of Items (all items except subselects) · 1d17fd7d
      unknown authored
      (SCRUM) (WL#1274)
      
      
      sql/item.cc:
        fixed printability of Items
      sql/item.h:
        fixed printability of Items
      sql/item_cmpfunc.cc:
        fixed printability of Items
      sql/item_cmpfunc.h:
        fixed printability of Items
      sql/item_func.cc:
        fixed printability of Items
      sql/item_func.h:
        fixed printability of Items
      sql/item_geofunc.h:
        added DBUG_ASSERT to catch error in debuging timw
      sql/item_row.cc:
        fixed printability of Items
      sql/item_row.h:
        fixed printability of Items
      sql/item_strfunc.cc:
        fixed printability of Items
      sql/item_strfunc.h:
        fixed printability of Items
      sql/item_sum.cc:
        fixed printability of Items
      sql/item_sum.h:
        fixed printability of Items
      sql/item_timefunc.cc:
        fixed printability of Items
      sql/item_timefunc.h:
        layout fixed
        fixed printability of Items
      sql/item_uniq.h:
        fixed printability of Items
      sql/sql_yacc.yy:
        layout fixed
        correct convertion to String
      1d17fd7d
  36. 29 Aug, 2003 1 commit
  37. 21 Aug, 2003 1 commit
  38. 11 Aug, 2003 1 commit
    • unknown's avatar
      Implemented UTC_TIME, UTC_DATE and UTC_TIMESTAMP functions (WL#345) · 2ad06dc6
      unknown authored
      configure.in:
        ./configure now tests if gmtime_r is present
      include/config-os2.h:
        Supposing that OS/2 have gmtime_r
      include/my_pthread.h:
        Use our imeplementation of gmtime_r if system lacks one
      mysql-test/r/func_time.result:
        Added UTC_* functions to test
      mysql-test/t/func_time.test:
        Added UTC_* functions to test
      mysys/my_pthread.c:
        Our implementation of gmtime_r
      mysys/my_thr_init.c:
        Now we also need LOCK_locktime_r if gmtime_r is absent
      sql/item_timefunc.cc:
        Generalized classes for CURDATE, CURTIME and NOW, abstracted them from
        timezone. Added new children classes for implementing these and UTC_*
        functions.
      sql/item_timefunc.h:
        Generalized classes for CURDATE, CURTIME and NOW, abstracted them from
        timezone. Added new children classes for implementing these and UTC_*
        functions.
      sql/lex.h:
        Added tokens for UTC_TIME, UTC_DATE and UTC_TIMESTAMP
      sql/sql_yacc.yy:
        Added UTC_* functions to grammar. Current functions are using 
        classes now.
      2ad06dc6
  39. 05 Aug, 2003 1 commit