An error occurred fetching the project authors.
  1. 25 May, 2005 1 commit
    • unknown's avatar
      Fix that we can read tables with the 'older' decimal format used in 5.0.3 & 5.0.4 · edaca67e
      unknown authored
      We will however give a warning when opening such a table that users should use ALTER TABLE ... FORCE to fix
      the table. In future release we will fix that REPAIR TABLE will be able to handle this case
      
      
      sql/sql_lex.h:
        Support for ALTER TABLE ... FORCE
      sql/sql_table.cc:
        CHECK TABLE now gives a note if table->s->crashed was set
      sql/sql_yacc.yy:
        Support for ALTER TABLE ... FORCE
      sql/table.cc:
        
        Fix that we can read tables with the 'older' decimal format used in 5.0.3 & 5.0.4
        (Now we store display length in the .frm table while we previously stored precision)
      sql/table.h:
        Store in TABLE_SHARE version number of MySQL where table was created (or checked)
      edaca67e
  2. 10 May, 2005 1 commit
    • unknown's avatar
      Many files: · 6f45bdf3
      unknown authored
        Fixed bug #8528.
        Representation for single-table views was made similar to
        representation for multi-table views.
      view.test:
        Added test case for bug #8528.
      view.result:
        Added test case for bug #8528. Fixed other test cases.
      
      
      mysql-test/r/view.result:
        Added test case for bug #8528. Fixed other test cases.
      mysql-test/t/view.test:
        Added test case for bug #8528.
      sql/sql_base.cc:
        Fixed bug #8528.
        Representation for single-table views was made similar to
        representation for multi-table views.
      sql/sql_delete.cc:
        Fixed bug #8528.
        Representation for single-table views was made similar to
        representation for multi-table views.
      sql/sql_insert.cc:
        Fixed bug #8528.
        Representation for single-table views was made similar to
        representation for multi-table views.
      sql/sql_parse.cc:
        Fixed bug #8528.
        Representation for single-table views was made similar to
        representation for multi-table views.
      sql/sql_prepare.cc:
        Fixed bug #8528.
        Representation for single-table views was made similar to
        representation for multi-table views.
      sql/sql_select.cc:
        Fixed bug #8528.
        Representation for single-table views was made similar to
        representation for multi-table views.
      sql/sql_update.cc:
        Fixed bug #8528.
        Representation for single-table views was made similar to
        representation for multi-table views.
      sql/sql_view.cc:
        Fixed bug #8528.
        Representation for single-table views was made similar to
        representation for multi-table views.
      sql/table.cc:
        Fixed bug #8528.
        Representation for single-table views was made similar to
        representation for multi-table views.
      sql/table.h:
        Fixed bug #8528.
        Representation for single-table views was made similar to
        representation for multi-table views.
      6f45bdf3
  3. 22 Apr, 2005 1 commit
  4. 19 Apr, 2005 1 commit
    • unknown's avatar
      Bug#7806 - insert on duplicate key and auto-update of timestamp · 670eae79
      unknown authored
      Modified the check for the timestamp field so that the flags for
      the automatic for inserts and updates are cleared independently.
      
      
      mysql-test/r/type_timestamp.result:
        Bug#7806 - insert on duplicate key and auto-update of timestamp
        The test result.
      mysql-test/t/type_timestamp.test:
        Bug#7806 - insert on duplicate key and auto-update of timestamp
        The test case.
      sql/mysql_priv.h:
        Bug#7806 - insert on duplicate key and auto-update of timestamp
        Made check_insert_fields() static. It is used only in sql_insert.cc.
      sql/sql_insert.cc:
        Bug#7806 - insert on duplicate key and auto-update of timestamp
        Modified the check of the insert fields so that an explicit
        assignment of the timestamp field does only disable the automatic
        for inserts and retains the automatic for updates.
        Added a check if the update fields contain the timestamp field.
        In this case, the automatic on update is disabled, but not the
        automatic on insert. This is called from mysql_prepare_insert().
      sql/table.h:
        Bug#7806 - insert on duplicate key and auto-update of timestamp
        Extended a comment to warn about usage of enum timestamp_auto_set_type.
      670eae79
  5. 02 Apr, 2005 1 commit
    • unknown's avatar
      - stackoverflow check added for view of view processing · 145b6d72
      unknown authored
      - fixed bug in join view processing
      - postreview fixes (BUG#9398 & BUG#8703)
      
      
      sql/sql_base.cc:
        used original TABLE object to get correct name of table and db
      sql/sql_view.cc:
        fixed bug of assigning select_lex for join view
      sql/table.cc:
        comment fixed
        stack overflow check added
        new method for underlying base table finding
      sql/table.h:
        comment fixed
        new method for underlying base table finding
      145b6d72
  6. 30 Mar, 2005 1 commit
    • unknown's avatar
      Fix for BUG#9213: GROUP BY returns wrong query results: · 6a11e33d
      unknown authored
      Make test_if_skip_sort_order() rebuild tab->ref if it decides to use an index
      different from the index join optimizer has choosen.  
      
      
      mysql-test/r/group_by.result:
        Testcase for BUG#9213
      mysql-test/t/group_by.test:
        Testcase for BUG#9213
      sql/table.h:
        Added comments about TABLE::used_keys
      6a11e33d
  7. 24 Mar, 2005 1 commit
    • unknown's avatar
      Bug #9317: Wrong count for tables in INFORMATION_SCHEMA · 23f377fc
      unknown authored
        there was no check of result of 
        table->file->write_row() function. When count of rows was
        more than table max_rows(HEAP table) the following recodrs
        were not inserted to the table
        -'schema_table_store_record' function is added. 
          The function checks result of write_row function
          and convert HEAP table to MyISAM if necessary
        - Result check after write_row is added into all 
          I_S function which store the records to I_S tables  
      
      
      mysql-test/r/information_schema.result:
        Bug #9317: Wrong count for tables in INFORMATION_SCHEMA
      mysql-test/t/information_schema.test:
        Bug #9317: Wrong count for tables in INFORMATION_SCHEMA
      sql/sql_select.cc:
        Bug #9317: Wrong count for tables in INFORMATION_SCHEMA
      sql/sql_show.cc:
        Bug #9317: Wrong count for tables in INFORMATION_SCHEMA
      sql/table.h:
        Bug #9317: Wrong count for tables in INFORMATION_SCHEMA
      23f377fc
  8. 19 Mar, 2005 1 commit
    • unknown's avatar
      Eliminate warnings noticed by VC7. This includes fixing my_mmap() on · 22234f31
      unknown authored
      Windows to call CreateFileMapping() with correct arguments, and
      propogating the introduction of query_id_t to everywhere query ids are
      passed around. (Bug #8826)
      
      
      libmysql/libmysql.c:
        Make implicit cast explicit
      myisam/mi_open.c:
        Make cast of value to smaller data size explicit
      myisam/mi_packrec.c:
        Cast file size (my_off_t) to size_t for mmap
      mysys/my_mmap.c:
        Fix Windows version of my_mmap() to use the right parameters
        for call to CreateFileMapping()
      sql/field.cc:
        Use temporary value of correct type
      sql/field.h:
        Use query_id_t for query_id value
      sql/ha_berkeley.cc:
        Fix flag check
      sql/ha_innodb.h:
        Use query_id_t for query_id value
      sql/handler.cc:
        Explain opt_using_transactions calculation, and add cast
      sql/handler.h:
        Fix forward declaration of COND
      sql/item.cc:
        Fix val_bool() tests of val_int() to avoid implicit cast
      sql/item_cmpfunc.cc:
        Fix typo in switch label
      sql/item_func.cc:
        Make implicit cast explicit
      sql/item_strfunc.cc:
        Now that query_id is a query_id_t, need to cast it to a ulong here
      sql/item_subselect.cc:
        Fix test of value
      sql/log.cc:
        Cast my_off_t used for file size to size_t for memory allocation
        Also cast my_off_t when using it to calculate the number of pages for TC log
        Cast total_ha_2pc to uchar when saving it
      sql/mysql_priv.h:
        Move up query_id definition so it can be used more widely
      sql/opt_range.cc:
        Add unused delete operator to prevent compiler warning
      sql/set_var.cc:
        Cast value for max_user_connections
      sql/sql_cache.cc:
        Remove unused label
      sql/sql_class.h:
        Fix query id values to be of type query_id_t
      sql/sql_db.cc:
        Move variable only used inside #ifdef within the #ifdef
      sql/sql_help.cc:
        Remove unused label
      sql/sql_insert.cc:
        Use query_id_t for query id values
      sql/sql_lex.h:
        Add unused delete operator to prevent compiler warning
      sql/sql_select.cc:
        Remove unused variable
        Make cast of value explicit
      sql/sql_select.h:
        Use query_id_t for query id values
      sql/sql_table.cc:
        Make comparison to function pointer explicit
      sql/sql_update.cc:
        Use query_id_t for query id values
      sql/table.h:
        Use query_id_t for query id values
      strings/ctype-simple.c:
        Add cast of long value to (char) in expression
      strings/ctype-ucs2.c:
        Add cast of long value to (char) in expression
      strings/ctype-utf8.c:
        Make cast to smaller size explicit
      22234f31
  9. 04 Mar, 2005 1 commit
    • unknown's avatar
      Better approach for prelocking of tables for stored routines execution · adcf9d1d
      unknown authored
      and some SP-related cleanups.
      
      - We don't have separate stage for calculation of list of tables
        to be prelocked and doing implicit LOCK/UNLOCK any more.
        Instead we calculate this list at open_tables() and do implicit
        LOCK in lock_tables() (and UNLOCK in close_thread_tables()).
        Also now we support cases when same table (with same alias) is
        used several times in the same query in SP.
      
      - Cleaned up execution of SP. Moved all common code which handles
        LEX and does preparations before statement execution or complex
        expression evaluation to auxilary sp_lex_keeper class. Now 
        all statements in SP (and corresponding instructions) that
        evaluate expression which can contain subquery have their
        own LEX.
      
      
      mysql-test/r/lock.result:
        Replaced wrong error code with the correct one after fixing bug in
        SP-locking.
      mysql-test/r/mysqldump.result:
        Added dropping of view which is used in test to its beginning.
      mysql-test/r/sp.result:
        Added tests for improved SP-locking.
        Temporarily disabled tests for SHOW PROCEDURE STATUS and alike
        (Until Monty will allow to open mysql.proc under LOCK TABLES without
        mentioning it in lock list).
        Replaced wrong results of test for bug #5240 with correct results after
        fixing bug in handling of cursors.
      mysql-test/t/lock.test:
        Replaced wrong error code with the correct one after fixing bug in
        SP-locking.
      mysql-test/t/mysqldump.test:
        Added dropping of view which is used in test to its beginning.
      mysql-test/t/sp.test:
        Added tests for improved SP-locking.
        Temporarily disabled tests for SHOW PROCEDURE STATUS and alike
        (Until Monty will allow to open mysql.proc under LOCK TABLES without
        mentioning it in lock list).
        Removed test for bug #1654 since we already test exactly this function
        in one of SP-locking tests.
        Removed comment about cursor's wrong behavior in test for bug #5240
        after fixing bug which was its cause.
      sql/item_func.cc:
        Removed comment which is no longer true.
      sql/mysql_priv.h:
        Changed open_tables() signature.
        Now its 2nd parameter is in/out since it can add elements to table list.
      sql/sp.cc:
        sp_find_procedure():
         Added one more parameter which enforces cache only lookup.
        
        sp_merge_hash():
         Now uses its return value to indicate that first of two hashes changed
         as result of merge.
        
        sp_cache_routines():
         This function caches all stored routines used in query now.
      sql/sp.h:
        - sp_find_procedure() now has one more parameter which enforces cache only
          lookup.
        - sp_merge_hash() now uses its return value to indicate that first of two
          hashes changed as result of merge.
        - sp_cache_routines() caches all stored routines now. So it does not need
          third argument any more.
      sql/sp_head.cc:
        sp_head::sp_head():
         Added initialization of new m_spfuns and m_spprocs members.
        
        sp_head::execute():
         Let us save/restore part of thread context which can be damaged by
         execution of instructions.
        sp_head::execute_function()/execute_procedure():
         Now it is responsibility of caller to close tables used in
         subqueries which are passed as routine parameters.
        
        sp_head::restore_lex():
         Let us accumulate information about routines used by this one
         in new m_spfuns, m_spprocs hashes.
        
        sp_lex_keeper::reset_lex_and_exec_core()
         Main method of new auxilary sp_lex_keeper class to which instructions 
         delegate responsibility for handling LEX and preparations before
         executing statement or calculating complex expression.
        
        Since all instructions which calculate complex expression or execute
        command now use sp_lex_keeper they have to implement
        sp_instr::exec_core() method. Most of instruction specific logic
        has moved from sp_instr::execute() to this new method.
        
        Removed sp_instr_set_user_var class which is no longer used, because
        nowdays we allow execution of statements in stored functions and
        triggers.
        
        sp_merge_table_list() became sp_head::merge_table_list() method. It
        also treats sp_head::m_sptabs as multi-set of tables now.
        
        sp_hash_to_table_list() became sp_head::add_used_tables_to_table_list().
        It takes into account that sp_head::m_sptabs is multi-set and allocates
        object into persistent arena of PS.
        
        Removed sp_merge_table_hash(), sp_open_and_lock_tables(),
        sp_unlock_tables(), sp_merge_routine_tables() methods since they are not
        used by new prelocking mechanism.
        
        Added sp_add_sp_tables_to_table_list() which serves for adding tables needed
        by routines used in query to the query table list for prelocking.
      sql/sp_head.h:
        class sp_head:
        - Added m_spfuns, m_spprocs members for storing names of routines used
          by this routine.
        - Added add_used_tables_to_table_list() method which allows to add
          tables needed by this routine to query's table list.
        - Converted sp_merge_table_list() to sp_head::merge_table_list() method.
        - Changed semantics of THD::m_sptabs. Now it is multi-set which contains
          only tables which are used by this routine and not routines that are
          called from this one.
        
        Removed sp_merge_routine_tables(), sp_merge_table_hash(),
        sp_open_and_lock_tables(), sp_unlock_tables() calls since they are not
        used for our prelocking list calculation.
        
        Added auxilary sp_lex_keeper class to which instructions delegate
        responsibility for handling LEX and preparations before executing
        statement or calculating complex expression. This class uses
        new sp_instr::exec_core() method which is responsible for executing
        instruction's core function after all preparations were made.
        
        All instructions which hold and calculate complex expression now have
        their own LEX (by aggregating sp_lex_keeper instance). sp_instr_stmt
        now uses sp_lex_keeper too.
        
        Removed sp_instr_set_user_var class which is no longer used, because
        nowdays we allow execution of statements in stored functions and
        triggers.
      sql/sp_rcontext.cc:
        Now sp_cursor holds pointer to sp_lex_keeper instead of LEX.
      sql/sp_rcontext.h:
        Now sp_cursor holds pointer to sp_lex_keeper instead of LEX.
      sql/sql_acl.cc:
        acl_init(), grant_init():
          Now we use simple_open_n_lock_tables() instead of explicit
          calls to open_tables() and mysql_lock_tables().
      sql/sql_base.cc:
        Implemented support for execution of statements in "prelocked" mode.
        
        When we have statement which uses stored routines explicitly or
        implicitly (via views or triggers) we have to open and lock all tables
        for these routines at the same time as tables for the main statement.
        In fact we have to do implicit LOCK TABLES at the begining of such
        statement and implict UNLOCK TABLES at its end. We call such mode
        "prelocked".
        
        When open_tables() is called for the statement tables which are needed
        for execution of routines used by it are added to its tables list
        (this process also caches all routines used). Implicit use of routines
        is discovered when we open view or table with trigger and apropriate
        tables are added to the table list at this moment. Statement which has
        such extra tables in its list (well actually any that uses functions)
        is marked as requiring prelocked mode for its execution.
        
        When lock_tables() sees such statement it will issue implicit LOCK TABLES
        for this extended table list instead of doing usual locking, it will also
        set THD::prelocked_mode to indicate that we are in prelocked mode.
        
        When open_tables()/lock_tables() are called for statement of stored
        routine (substatement), they notice that we are running in prelocked mode
        and use one of prelocked tables from those that are not used by upper
        levels of execution.
        
        close_thread_tables() for substatement won't really close tables used
        but will mark them as free for reuse instead.
        
        Finally when close_thread_tables() is called for the main statement it
        really unlocks and closes all tables used.
        
        Everything will work even if one uses such statement under real LOCK
        TABLES (we are simply not doing implicit LOCK/UNLOCK in this case).
      sql/sql_class.cc:
        Added initialization of THD::prelocked_mode member.
      sql/sql_class.h:
        - Added prelocked_mode_type enum and THD::prelocked_mode member
          which are used for indication whenever "prelocked mode" is on 
          (i.e. that statement uses stored routines and is executed under
           implicit LOCK TABLES).
        - Removed THD::shortcut_make_view which is no longer needed.
          We use TABLE_LIST::prelocking_placeholder for the same purprose
          now.
      sql/sql_handler.cc:
        Changed open_tables() invocation.
        Now its 2nd parameter is in/out since it can add elements to table list.
      sql/sql_lex.cc:
        lex_start():
          Added initialization of LEX::query_tables_own_last.
          Unused LEX::sptabs member was removed.
        st_lex::unlink_first_table()/link_first_table_back():
          We should update LEX::query_tables_last properly if table list
          contains(ed) only one element.
      sql/sql_lex.h:
        LEX:
        - Removed sptabs member since it is no longer used.
        - Added query_tables_own_last member, which if non-0 indicates that
          statement requires prelocking (implicit LOCK TABLES) for its execution
          and points to last own element in query table list. If it is zero
          then this query does not need prelocking.
        - Added requires_prelocking(), mark_as_requiring_prelocking(),
          first_not_own_table() inline methods to incapsulate and simplify
          usage of this new member.
      sql/sql_parse.cc:
        dispatch_command():
          To properly leave prelocked mode when needed we should call
          close_thread_tables() even if there are no open tables.
        mysql_execute_command():
        - Removed part of function which were responsible for doing implicit
          LOCK TABLES before statement execution if statement used stored 
          routines (and doing UNLOCK TABLES at the end).
          Now we do all this in open_tables()/lock_tables()/close_thread_tables()
          instead.
        - It is also sensible to reset errors before execution of statement
          which uses routines.
        - SQLCOM_DO, SQLCOM_SET_OPTION, SQLCOM_CALL
          We should always try to open tables because even if statement has empty
          table list, it can call routines using tables, which should be preopened
          before statement execution.
        - SQLCOM_CALL
          We should not look up routine called in mysql.proc, since it should be
          already cached by this moment by open_tables() call.
        - SQLCOM_LOCK_TABLES
          it is better to use simple_open_n_lock_tables() since we want to avoid
          materialization of derived tables for this command.
      sql/sql_prepare.cc:
        mysql_test_update():
          Changed open_tables() invocations. Now its 2nd parameter is in/out
          since it can add elements to table list.
        check_prepared_statement():
          Since now we cache all routines used by statement in open_tables() we 
          don't need to do it explicitly.
        mysql_stmt_prepare():
          Now we should call close_thread_tables() when THD::lex points to the
          LEX of statement which opened tables.
        reset_stmt_for_execute():
          Commented why we are resetting all tables in table list.
      sql/sql_trigger.h:
        Table_triggers_list::process_triggers():
          We should surpress sending of ok packet when we are calling trigger's
          routine, since now we allow statements in them.
      sql/sql_update.cc:
        Changed open_tables() invocations.
        Now its 2nd parameter is in/out since it can add elements to table list.
      sql/sql_view.cc:
        mysql_make_view():
        - Removed handling of routines used in view. Instead we add tables which
          are needed for their execution to statement's table list in 
          open_tables().
        - Now we use TABLE_LIST::prelocking_placeholder instead of 
          THD::shortcut_make_view for indicating that view is opened
          only to discover which tables and routines it uses (this happens
          when we build extended table list for prelocking). Also now we try
          to avoid to modify main LEX in this case (except of its table list).
        - Corrected small error we added tables to the table list of the main
          LEX without updating its query_tables_last member properly.
      sql/sql_yacc.yy:
        Now each expression which is used in SP statements and can contain
        subquery has its own LEX. This LEX is stored in corresponding sp_instr
        object and used along with Item tree for expression calculation.
        
        We don't need sp_instr_set_user_var() anymore since now we allow
        execution of statements in stored functions and triggers.
      sql/table.h:
        Added TABLE_LIST::prelocking_placeholder member for distinguishing
        elements of table list which does not belong to the statement itself
        and added there only for prelocking (as they are to be used by routines
        called by this statement).
      sql/tztime.cc:
        my_tz_init():
          Now we use more simplier simple_open_n_lock_tables() call instead of 
          open_tables()/lock_tables() pair.
      adcf9d1d
  10. 03 Mar, 2005 1 commit
    • unknown's avatar
      Fixes for bug#8115 "Server Crash with prepared statement" · 27f13b17
      unknown authored
       and bug#8849 "problem with insert statement with table alias's": 
      make equality propagation work in stored procedures and prepared 
      statements.
      Equality propagation can change AND/OR structure of ON expressions,
      so the fix is to provide each execution of PS/SP with it's own
      copy of AND/OR tree. We have been doing that already for WHERE clauses,
      now ON clauses are also copied.
      
      
      mysql-test/r/ps.result:
        Bug#8115: test results fixed.
      mysql-test/r/sp.result:
        Bug#8849: test results fixed.
      mysql-test/t/ps.test:
        A test case for Bug#8115 "Server Crash with prepared statement".
      mysql-test/t/sp.test:
        A test case for Bug#8849 "problem with insert statement with table 
        alias's".
      sql/item_cmpfunc.cc:
        Comment a parse tree transformation.
      sql/item_cmpfunc.h:
        Comment how Item_equal works with PS/SP.
      sql/mysql_priv.h:
        Add declaration for init_stmt_after_parse.
      sql/sp_head.cc:
        Call init_stmt_after_parse in restore_lex(), which is used to
        grab TABLE_LIST and SELECT_LEX list of a parsed substatement of
        stored procedure. This is a necessary post-init step which 
        must be done for any statement which can be executed many times.
      sql/sql_prepare.cc:
        Implement init_stmt_after_parse() which prepares AND/OR
        structure of all ON expressions and WHERE clauses of a statement
        for copying.
      sql/sql_select.cc:
        Implementation of equality propagation inspected with regard to 
        prepared statements and stored procedures. We now restore
        AND/OR structure of every ON expression in addition to AND/OR
        structure of WHERE clauses when reexecuting a PS/SP.
      sql/table.h:
        Add declaration for TABLE::prep_on_expr.
      27f13b17
  11. 05 Feb, 2005 1 commit
    • unknown's avatar
      Outer joins cleanup: Remove TABLE::outer_join and use TABLE::maybe_null only... · e2c82051
      unknown authored
      Outer joins cleanup: Remove TABLE::outer_join and use TABLE::maybe_null only (2nd patch after Monty's comments).
      
      
      sql/mysql_priv.h:
        Outer joins cleanup: Remove TABLE::outer_join and use TABLE::maybe_null only.
      sql/opt_range.cc:
        Outer joins cleanup: Remove TABLE::outer_join and use TABLE::maybe_null only.
      sql/sql_base.cc:
        Outer joins cleanup: Remove TABLE::outer_join and use TABLE::maybe_null only.
      sql/sql_select.cc:
        Outer joins cleanup: Remove TABLE::outer_join and use TABLE::maybe_null only.
      sql/table.h:
        Outer joins cleanup: 
         * Remove TABLE::outer_join and use TABLE::maybe_null only.
         * Added comments.
      e2c82051
  12. 24 Jan, 2005 1 commit
    • unknown's avatar
      Additional fix for WL#1629: SHOW with WHERE(discussed with PeterG) · 04dabc2b
      unknown authored
       - Do not allow a column list as part of SHOW WITH WHERE task.
       - The WHERE clause must accept field names which are
         valid in SHOW, not INFORMATION_SCHEMA names.
      
      
      mysql-test/r/information_schema.result:
        The test correction
      mysql-test/t/information_schema.test:
        The test correction
      sql/sql_base.cc:
        Process field translation table for 'show' commands
      sql/sql_parse.cc:
        schema_table_seformed is always true for 'show' commands
      sql/sql_show.cc:
        - Do not allow a column list as part of SHOW WITH WHERE task.
        - The WHERE clause must accept field names which are
          valid in SHOW, not INFORMATION_SCHEMA names.
      sql/sql_yacc.yy:
        Do not allow a column list as part of SHOW WITH WHERE task
      sql/table.h:
        A new 'schema_table_reformed' variable in table_list
        If schema_table_reformed is true select items should be 
        translated using field translation table
      04dabc2b
  13. 12 Jan, 2005 1 commit
    • unknown's avatar
      Fixed memory reference errors found by valgrind · b90a9b32
      unknown authored
      sql/ha_federated.cc:
        Change mode to -rw-rw-r--
      myisam/mi_create.c:
        Ensure that all referenced memory is reset
      mysql-test/r/type_timestamp.result:
        More tests
      mysql-test/t/func_compress.test:
        Added comment
      mysql-test/t/type_timestamp.test:
        More tests
      sql/field.h:
        Count number of varchars in table
      sql/item_cmpfunc.cc:
        Safety fix (to avoid warning from valgrind)
      sql/opt_range.cc:
        Simple optimzation
      sql/sql_acl.cc:
        Safety fix (to avoid warning from valgrind)
      sql/sql_parse.cc:
        Safety fix for prepared statements
      sql/sql_show.cc:
        Move variable declarations first in function
        Remove hidden variable (it)
        Remove accessing freed memory (table_list->table_name)
      sql/sql_update.cc:
        Compare records with varchars correctly
      sql/table.cc:
        Safety fix when running with purify/valgrind
        Fix wrong memory reference in case of errors
      sql/table.h:
        Added counting of varchar fields
      strings/ctype-mb.c:
        Fill max_str properly
      b90a9b32
  14. 06 Jan, 2005 1 commit
    • unknown's avatar
      First stage of table definition cache · ff6097bd
      unknown authored
      Split TABLE to TABLE and TABLE_SHARE (TABLE_SHARE is still allocated as part of table, will be fixed soon)
      Created Field::make_field() and made Field_num::make_field() to call this
      Added 'TABLE_SHARE->db' that points to database name; Changed all usage of table_cache_key as database name to use this instead
      Changed field->table_name to point to pointer to alias. This allows us to change alias for a table by just updating one pointer.
      Renamed TABLE_SHARE->real_name to table_name
      Renamed TABLE->table_name to alias
      Renamed TABLE_LIST->real_name to table_name
      
      
      include/myisam.h:
        Added const before names
      mysql-test/r/group_min_max.result:
        Make results repeatable
      mysql-test/t/group_min_max.test:
        Make results repeatable
      sql/field.cc:
        Created Field::make_field() and made Field_num::make_field() to call this
        Use TABLE_SHARE
        Use sql_strmake() instead of sql_memdup() to simplify code
      sql/field.h:
        Changed table_name to be pointer to table_name. This allows us to change alias for all fields by just changing one pointer.
        Use TABLE_SHARE
      sql/field_conv.cc:
        Use TABLE_SHARE
      sql/filesort.cc:
        Use TABLE_SHARE
      sql/ha_berkeley.cc:
        Use TABLE_SHARE
      sql/ha_heap.cc:
        Use TABLE_SHARE
      sql/ha_innodb.cc:
        Use TABLE_SHARE
      sql/ha_myisam.cc:
        Use TABLE_SHARE
      sql/ha_myisammrg.cc:
        Use TABLE_SHARE
        Change some pointer handling to use const char*
      sql/ha_ndbcluster.cc:
        Use TABLE_SHARE
      sql/handler.cc:
        Use TABLE_SHARE
      sql/item.cc:
        Use TABLE_SHARE
      sql/item_func.cc:
        Use TABLE_SHARE
      sql/item_subselect.cc:
        Use TABLE_SHARE
      sql/item_sum.cc:
        Use TABLE_SHARE
      sql/key.cc:
        Use TABLE_SHARE
      sql/lock.cc:
        Use TABLE_SHARE
      sql/log_event.cc:
        real_name -> table_name
      sql/mysql_priv.h:
        Use TABLE_SHARE
      sql/opt_range.cc:
        Use TABLE_SHARE
      sql/opt_sum.cc:
        Use TABLE_SHARE
      sql/records.cc:
        Use TABLE_SHARE
      sql/repl_failsafe.cc:
        real_name -> table_name
      sql/slave.cc:
        Use TABLE_SHARE
      sql/sp.cc:
        Use TABLE_SHARE
      sql/sp_head.cc:
        real_name -> table_name
      sql/sql_acl.cc:
        Use TABLE_SHARE
        removed unnecessary assert
        fixed indentation
        changed some char * -> const char*
      sql/sql_acl.h:
        changed some char* -> const char*
      sql/sql_base.cc:
        Use TABLE_SHARE
      sql/sql_cache.cc:
        Use TABLE_SHARE
      sql/sql_class.cc:
        Use TABLE_SHARE
      sql/sql_db.cc:
        real_name -> table_name
      sql/sql_delete.cc:
        Use TABLE_SHARE
      sql/sql_derived.cc:
        Use TABLE_SHARE
      sql/sql_handler.cc:
        Use TABLE_SHARE
      sql/sql_help.cc:
        Use TABLE_SHARE
      sql/sql_insert.cc:
        Use TABLE_SHARE
      sql/sql_load.cc:
        Use TABLE_SHARE
      sql/sql_parse.cc:
        Use TABLE_SHARE
      sql/sql_rename.cc:
        real_name -> table_name
      sql/sql_select.cc:
        Use TABLE_SHARE
        table->blob_fields now points to field offsets, not fields
        tmp_table->table_name now points to alias name
      sql/sql_show.cc:
        Use TABLE_SHARE
      sql/sql_table.cc:
        Use TABLE_SHARE
      sql/sql_test.cc:
        Use TABLE_SHARE
      sql/sql_trigger.cc:
        Use TABLE_SHARE
      sql/sql_udf.cc:
        Use TABLE_SHARE
      sql/sql_union.cc:
        real_name -> table_name
      sql/sql_update.cc:
        Use TABLE_SHARE
      sql/sql_view.cc:
        Use TABLE_SHARE
      sql/table.cc:
        Split TABLE to TABLE and TABLE_SHARE
        Changed blob_field to be field offsets instead of pointer to fields
        Only initialize table->s->default_values with default record (not all table->record[#])
        Some indentation changes
      sql/table.h:
        Split TABLE to TABLE and TABLE_SHARE
      sql/tztime.cc:
        real_name -> table_name
      sql/unireg.cc:
        Use TABLE_SHARE
      sql/unireg.h:
        Use TABLE_SHARE
      ff6097bd
  15. 05 Jan, 2005 1 commit
    • unknown's avatar
      fixed views with PS protocol · db101da7
      unknown authored
      mysql-test/r/view.result:
        query cache part moved to separate test
      mysql-test/t/view.test:
        query cache part moved to separate test
      sql/item_func.cc:
        fixed for safety
      sql/sql_base.cc:
        do not use real table call with view
        fixed wrapping * substitured items
        fixed fix_fields call parameter (refference)
      sql/sql_yacc.yy:
        added initialisation of SELECT in commands which can use subqueries
      sql/table.cc:
        fised fix_fields call parameter
      sql/table.h:
        new view specific method
      db101da7
  16. 03 Jan, 2005 2 commits
    • unknown's avatar
      Better handling of ensuring that setup_tables() are not called twice · a1a4c2c6
      unknown authored
      This fixed a bug in prepared statements when used with outher joins
      Fixed a bug in SUM(DISTINCT) when used with prepared statements.
      Some safety fixes in test scripts to ensure that previous test failures shouldn't affect other tests
      
      
      mysql-test/r/mysqldump.result:
        Safety fix if a previous test would fail
      mysql-test/r/show_check.result:
        Safety fix if a previous test would fail
      mysql-test/r/sp.result:
        Fix for --ps-protocol
      mysql-test/r/synchronization.result:
        Safety fix if a previous test would fail
      mysql-test/r/system_mysql_db.result:
        Safety fix if a previous test would fail
      mysql-test/t/mysqldump.test:
        Safety fix if a previous test would fail
      mysql-test/t/select.test:
        Safety fix if a previous test would fail
      mysql-test/t/show_check.test:
        Safety fix if a previous test would fail
      mysql-test/t/sp.test:
        fix for --ps-protocol
      mysql-test/t/strict.test:
        Fix for --ps-protocol
      mysql-test/t/synchronization.test:
        Safety fix if a previous test would fail
      mysql-test/t/system_mysql_db.test:
        Safety fix if a previous test would fail
      sql/item_sum.cc:
        Fix bug in SUM(DISTINCT...) when using with prepared statements
      sql/item_sum.h:
        Fix bug in SUM(DISTINCT...) when using with prepared statements
      sql/mysql_priv.h:
        Better handling of ensuring that setup_tables() are not called twice
      sql/sql_base.cc:
        Better handling of ensuring that setup_tables() are not called twice
      sql/sql_insert.cc:
        Better handling of ensuring that setup_tables() are not called twice
      sql/sql_parse.cc:
        Better handling of ensuring that setup_tables() are not called twice
      sql/sql_prepare.cc:
        Better handling of ensuring that setup_tables() are not called twice
      sql/sql_select.cc:
        Better handling of ensuring that setup_tables() are not called twice
      sql/sql_union.cc:
        Better handling of ensuring that setup_tables() are not called twice
      sql/sql_update.cc:
        Better handling of ensuring that setup_tables() are not called twice
      sql/table.h:
        Better handling of ensuring that setup_tables() are not called twice
      a1a4c2c6
    • unknown's avatar
      Remove clear_insert_values() because it was far from trivial to handle the cleanup in all cases · b76b2ba6
      unknown authored
      (Old code failed for INSERT ... ON DUPLICATE with prepared statements) 
      Instead, always reset table->insert_values on open.
      
      
      mysql-test/t/trigger.test:
        Fix test for --ps-protocol
      sql/sql_base.cc:
        Clear insert_values on open_table
      sql/sql_insert.cc:
        Remove clear_insert_values()
      sql/sql_parse.cc:
        Remove clear_insert_values()
      sql/sql_prepare.cc:
        Remove clear_insert_values()
      sql/table.cc:
        Remove clear_insert_values()
      sql/table.h:
        Remove clear_insert_values()
      b76b2ba6
  17. 30 Dec, 2004 1 commit
    • unknown's avatar
      wl#1629 SHOW with WHERE(final part, after review) · a8491ce5
      unknown authored
        added syntax:
        'show variables where', 'show status where', 'show open tables where'
      
      
      mysql-test/r/grant_cache.result:
        wl#1629 SHOW with WHERE(final part,after review)
      mysql-test/r/information_schema.result:
        wl#1629 SHOW with WHERE(final part,after review)
      mysql-test/r/query_cache.result:
        wl#1629 SHOW with WHERE(final part,after review)
      mysql-test/r/temp_table.result:
        wl#1629 SHOW with WHERE(final part,after review)
      mysql-test/r/union.result:
        wl#1629 SHOW with WHERE(final part,after review)
      mysql-test/t/information_schema.test:
        wl#1629 SHOW with WHERE(final part,after review)
      mysql-test/t/query_cache.test:
        wl#1629 SHOW with WHERE(final part,after review)
      sql/item.cc:
        wl#1629 SHOW with WHERE(final part,after review)
      sql/mysql_priv.h:
        wl#1629 SHOW with WHERE(final part,after review)
      sql/sql_parse.cc:
        wl#1629 SHOW with WHERE(final part,after review)
      sql/sql_select.cc:
        wl#1629 SHOW with WHERE(final part,after review)
      sql/sql_show.cc:
        wl#1629 SHOW with WHERE(final part,after review)
      sql/sql_yacc.yy:
        wl#1629 SHOW with WHERE(final part,after review)
      sql/table.h:
        wl#1629 SHOW with WHERE(final part,after review)
      a8491ce5
  18. 18 Dec, 2004 1 commit
  19. 11 Dec, 2004 1 commit
    • unknown's avatar
      Fix for BUG#5837 - attempt 3. · 4ca0670d
      unknown authored
        Call mark_as_null_row in join_read_const and join_read_system.
      
      
      mysql-test/r/multi_update.result:
        Testcase for BUG#5837
      mysql-test/t/multi_update.test:
        Testcase for BUG#5837
      sql/table.h:
        Added comments
      4ca0670d
  20. 06 Dec, 2004 1 commit
    • unknown's avatar
      Add support for up to VARCHAR (size up to 65535) · e04e1dd2
      unknown authored
      Renamed HA_VAR_LENGTH to HA_VAR_LENGTH_PART
      Renamed in all files FIELD_TYPE_STRING and FIELD_TYPE_VAR_STRING to MYSQL_TYPE_STRING and MYSQL_TYPE_VAR_STRING to make it easy to catch all possible errors
      Added support for VARCHAR KEYS to heap
      Removed support for ISAM
      Now only long VARCHAR columns are changed to TEXT on demand (not CHAR)
      Internal temporary files can now use fixed length tables if the used VARCHAR columns are short
      
      
      BitKeeper/deleted/.del-ha_isam.cc~4dce65904db2675e:
        Delete: sql/ha_isam.cc
      BitKeeper/deleted/.del-_cache.c~b5d80b5c3ae233b1:
        Delete: isam/_cache.c
      BitKeeper/deleted/.del-_dbug.c~88d7964ae5e3c9bd:
        Delete: isam/_dbug.c
      BitKeeper/deleted/.del-_dynrec.c~48dd758f5a5450df:
        Delete: isam/_dynrec.c
      BitKeeper/deleted/.del-_key.c~ce62d47a6c681084:
        Delete: isam/_key.c
      BitKeeper/deleted/.del-_locking.c~dea4cdc6ea425c67:
        Delete: isam/_locking.c
      BitKeeper/deleted/.del-_packrec.c~47ae1b16c007e9be:
        Delete: isam/_packrec.c
      BitKeeper/deleted/.del-_page.c~148b1a613d052ee8:
        Delete: isam/_page.c
      BitKeeper/deleted/.del-_search.c~f509292aa1ff18ff:
        Delete: isam/_search.c
      BitKeeper/deleted/.del-_statrec.c~58d9263b3475d58b:
        Delete: isam/_statrec.c
      BitKeeper/deleted/.del-changed.c~d075de80a314b02d:
        Delete: isam/changed.c
      BitKeeper/deleted/.del-close.c~fd62629496ee5bcc:
        Delete: isam/close.c
      BitKeeper/deleted/.del-create.c~96cecc433c0c2242:
        Delete: isam/create.c
      BitKeeper/deleted/.del-delete.c~65ee8daaa75a14b6:
        Delete: isam/delete.c
      BitKeeper/deleted/.del-extra.c~706f29d72beb2565:
        Delete: isam/extra.c
      BitKeeper/deleted/.del-info.c~96cfb747af8da0d:
        Delete: isam/info.c
      BitKeeper/deleted/.del-isamchk.c~c0f59c2687d2248f:
        Delete: isam/isamchk.c
      BitKeeper/deleted/.del-isamlog.c~85b6b31c6e2b8519:
        Delete: isam/isamlog.c
      BitKeeper/deleted/.del-log.c~55a973013d55cade:
        Delete: isam/log.c
      BitKeeper/deleted/.del-open.c~95b3b75042fae00a:
        Delete: isam/open.c
      BitKeeper/deleted/.del-pack_isam.c~43801f0df7504834:
        Delete: isam/pack_isam.c
      BitKeeper/deleted/.del-panic.c~f7fd71605324f8f3:
        Delete: isam/panic.c
      BitKeeper/deleted/.del-range.c~142f1f8ac4948082:
        Delete: isam/range.c
      BitKeeper/deleted/.del-rfirst.c~66f494291dc005d3:
        Delete: isam/rfirst.c
      BitKeeper/deleted/.del-rkey.c~cc54c6498352f999:
        Delete: isam/rkey.c
      BitKeeper/deleted/.del-rlast.c~d1fe1866139e9866:
        Delete: isam/rlast.c
      BitKeeper/deleted/.del-rnext.c~b308eaa1e11ea7de:
        Delete: isam/rnext.c
      BitKeeper/deleted/.del-rprev.c~b359f71fdea4bbce:
        Delete: isam/rprev.c
      BitKeeper/deleted/.del-rrnd.c~7fcfcce88d4a5200:
        Delete: isam/rrnd.c
      BitKeeper/deleted/.del-rsame.c~75a62d5548103a15:
        Delete: isam/rsame.c
      BitKeeper/deleted/.del-rsamepos.c~5b5652dd2cda6d5d:
        Delete: isam/rsamepos.c
      BitKeeper/deleted/.del-sort.c~e2e56b5a37ce86f4:
        Delete: isam/sort.c
      BitKeeper/deleted/.del-static.c~3a1354b84f4a9cc7:
        Delete: isam/static.c
      BitKeeper/deleted/.del-test1.c~64d52e9412d457ed:
        Delete: isam/test1.c
      BitKeeper/deleted/.del-test2.c~2f9a632cab572958:
        Delete: isam/test2.c
      BitKeeper/deleted/.del-test3.c~e8a7a4afe8a087:
        Delete: isam/test3.c
      BitKeeper/deleted/.del-isamdef.h~ac8d49e7e2201c66:
        Delete: isam/isamdef.h
      BitKeeper/deleted/.del-update.c~670264f51dc44934:
        Delete: isam/update.c
      BitKeeper/deleted/.del-write.c~8f1918b1f6770e54:
        Delete: isam/write.c
      BitKeeper/deleted/.del-Makefile.am~6cfa0db5e7778d09:
        Delete: isam/Makefile.am
      BitKeeper/deleted/.del-make-ccc~3ee55391eda0b0ab:
        Delete: isam/make-ccc
      BitKeeper/deleted/.del-ChangeLog~208984fb7a51e568:
        Delete: isam/ChangeLog
      BitKeeper/deleted/.del-test_all.res~c2aafb49a3a77db7:
        Delete: isam/test_all.res
      BitKeeper/deleted/.del-test_all~93c701e44a9c5b65:
        Delete: isam/test_all
      BitKeeper/deleted/.del-.cvsignore~54f6f0f2d5012561:
        Delete: isam/.cvsignore
      BitKeeper/deleted/.del-ha_isammrg.cc~dc682e4755d77a2e:
        Delete: sql/ha_isammrg.cc
      BitKeeper/deleted/.del-ha_isam.h~bf53d533be3d3927:
        Delete: sql/ha_isam.h
      BitKeeper/deleted/.del-ha_isammrg.h~66fd2e5bfe7207dc:
        Delete: sql/ha_isammrg.h
      acinclude.m4:
        Remove ISAM
      client/mysqldump.c:
        FIELD_TYPE -> MYSQL_TYPE
      client/mysqltest.c:
        Add missing DBUG_RETURN
      configure.in:
        Remove ISAM
      heap/heapdef.h:
        Add support for VARCHAR
      heap/hp_create.c:
        Add support for VARCHAR
      heap/hp_delete.c:
        Add support for VARCHAR
      heap/hp_hash.c:
        Add support for VARCHAR
        (VARCHAR keys was not supported before)
      heap/hp_rkey.c:
        Add support for VARCHAR
      heap/hp_update.c:
        Add support for VARCHAR
      heap/hp_write.c:
        Add support for VARCHAR
        (Added flag SEARCH_UPDATE to mark that this is an update)
      include/decimal.h:
        Remove not needed my_global.h
      include/m_ctype.h:
        Add support for VARCHAR
      include/my_base.h:
        Add support for VARCHAR
      include/my_handler.h:
        Moved general purpose macro from MyISAM code
      include/mysql_com.h:
        Add support for VARCHAR
      libmysql/libmysql.c:
        Add support for VARCHAR
      libmysqld/Makefile.am:
        Removed ISAM
      myisam/ft_static.c:
        Add support for VARCHAR
      myisam/ft_test1.c:
        Add support for VARCHAR
      myisam/ft_update.c:
        Add support for VARCHAR
      myisam/mi_check.c:
        Add support for VARCHAR
      myisam/mi_create.c:
        Add support for VARCHAR
        - VARCHAR key segments are marked with HA_VAR_LENGTH_PART
      myisam/mi_key.c:
        Add support for VARCHAR
        Fixed bug in old VARCHAR code when reading index-only
      myisam/mi_range.c:
        Fixed comment style
      myisam/mi_rnext_same.c:
        Handle case where equal keys can be of different length
      myisam/mi_search.c:
        Add support for VARCHAR
      myisam/mi_test1.c:
        Add support for VARCHAR
      myisam/mi_unique.c:
        Add support for VARCHAR
        (Some new code to handle keys that are equal but have different lengths)
      myisam/mi_write.c:
        Fixed comment
      myisam/myisamchk.c:
        Better infotext if wrong type
      mysql-test/r/bdb.result:
        Updated old result and new results for VARCHAR
      mysql-test/r/create.result:
        Updated old result and new results for VARCHAR
      mysql-test/r/ctype_tis620.result:
        Updated old result and new results for VARCHAR
        (Old code sorted tis620 wrong)
      mysql-test/r/ctype_ucs.result:
        Updated old result and new results for VARCHAR
      mysql-test/r/endspace.result:
        Updated old result and new results for VARCHAR
      mysql-test/r/func_like.result:
        Updated old result and new results for VARCHAR
      mysql-test/r/heap.result:
        Updated old result and new results for VARCHAR
      mysql-test/r/innodb.result:
        Updated old result. This will change a bit when also InnoDB supports VARCHAR
      mysql-test/r/merge.result:
        Updated old result and new results for VARCHAR
      mysql-test/r/myisam.result:
        Updated old result and new results for VARCHAR
      mysql-test/r/mysqldump.result:
        Updated old result and new results for VARCHAR
      mysql-test/r/order_by.result:
        Updated old result and new results for VARCHAR
        (Key length is different for VARCHAR)
      mysql-test/r/ps.result:
        Updated old result and new results for VARCHAR
      mysql-test/r/ps_1general.result:
        Updated results for new .frm version
        Don't print seconds in show full process list as this may change
      mysql-test/r/ps_2myisam.result:
        Updated old result and new results for VARCHAR
      mysql-test/r/ps_3innodb.result:
        Updated old result and new results for VARCHAR
      mysql-test/r/ps_4heap.result:
        Updated old result and new results for VARCHAR
      mysql-test/r/ps_5merge.result:
        Updated old result and new results for VARCHAR
      mysql-test/r/ps_6bdb.result:
        Updated old result and new results for VARCHAR
      mysql-test/r/select.result.es:
        Updated results by hand
      mysql-test/r/select.result:
        Updated old result and new results for VARCHAR
      mysql-test/r/select_found.result:
        Updated old result and new results for VARCHAR
      mysql-test/r/show_check.result:
        Updated old result and new results for VARCHAR
      mysql-test/r/strict.result:
        Updated old result and new results for VARCHAR
      mysql-test/r/subselect.result:
        Updated old result and new results for VARCHAR
      mysql-test/r/system_mysql_db.result:
        Updated old result and new results for VARCHAR
      mysql-test/r/type_blob.result:
        Updated old result and new results for VARCHAR
      mysql-test/r/type_ranges.result:
        Updated old result and new results for VARCHAR
      mysql-test/r/type_ranges.result.es:
        Updated some results by hand
      mysql-test/t/bdb.test:
        Test VARCHAR
      mysql-test/t/ctype_ucs.test:
        Some fixes related to VARCHAR
      mysql-test/t/endspace.test:
        Fixes to make it easier to compare columns with end space
      mysql-test/t/heap.test:
        Test VARCHAR
      mysql-test/t/innodb.test:
        Prepare for testing VARCHAR
      mysql-test/t/myisam.test:
        Test VARCHAR
      mysql-test/t/ps_1general.test:
        Don't show seconds for show processlist
      mysql-test/t/ps_4heap.test:
        Update for VARCHAR
      mysql-test/t/strict.test:
        Fix test for VARCHAR
      mysql-test/t/type_blob.test:
        Update test for VARCHAR
        Note that now you can't store 'a' and 'a ' in an unique varchar/text index if the column is not binary
      mysys/my_handler.c:
        Add support for VARCHAR
      ndb/src/common/util/NdbSqlUtil.cpp:
        Fix for usage of strnncollsp
      scripts/mysql_fix_privilege_tables.sh:
        Simple fix so that my_print_defaults works
      sql/Makefile.am:
        Remove ISAM
      sql/field.cc:
        Add support for VARCHAR
        Fixed the keys for blob's are compared with strnncollsp
        Ensure that old tables from MySQL 4.0 works as they did before.
        (Old VARCHAR will be converted to new VARCHAR on ALTER TABLE)
      sql/field.h:
        Add support for VARCHAR
      sql/field_conv.cc:
        Change FIELD_TYPE_VAR_STRING -> MYSQL_TYPE_VARCHAR
        Added usage of HA_KEY_BLOB_LENGTH
      sql/ha_berkeley.cc:
        Add support for VARCHAR
        Added usage of table->insert_or_update if we would ever want to know in key_cmp if we are changing keys
      sql/ha_heap.cc:
        Add support for VARCHAR
      sql/ha_innodb.cc:
        Changed MYSQL_TYPE_VAR_STRING to MYSQL_TYPE_VARCHAR.
        Waiting for Heikki to add full VARCHAR support
      sql/ha_innodb.h:
        InnoDB doesn't support full VARCHAR yet
      sql/ha_myisam.cc:
        Add support for VARCHAR
      sql/ha_ndbcluster.cc:
        Add support for VARCHAR
      sql/handler.h:
        Added HA_NO_VARCHAR for table handler that doesn't support VARCHAR. In this case MySQL will create a normal CHAR instead
      sql/item.cc:
        Fixed access of already freed memory
        Added support of VARCHAR
        - varchar length is now checked in mysql_prepare
      sql/item_cmpfunc.cc:
        Added new parameter to strncollsp
      sql/item_sum.cc:
        Added new parameter to strncollsp
        FIELD_TYPE -> MYSQL_TYPE
      sql/key.cc:
        Add support for VARCHAR
      sql/opt_range.cc:
        Remove character set parameter from set_key_image()
      sql/opt_sum.cc:
        Remove character set parameter from set_key_image()
      sql/protocol.cc:
        Return MYSQL_TYPE_VAR_STRING instead of MYSQL_TYPE_VARCHAR to clients (to not cause compatiblity problems)
      sql/sql_acl.cc:
        Change key handling code so that we can use CHAR or VARCHAR for the user table columns
      sql/sql_base.cc:
        Remove old, not used code
      sql/sql_help.cc:
        Remove charset from get_key_image
      sql/sql_parse.cc:
        Ensure that OPTION_TABLE_LOCK is cleared ASAP; This fixed a problem in BDB transaction code when one used LOCK TABLES on a BDB table
        Added support for VARCHAR
        Moved field length checking and VARCHAR -> TEXT convert to mysql_prepare (as we need the know the character set for the column)
      sql/sql_select.cc:
        Added support of VARCHAR
        Added heuristic to use fixed size rows for tmp tables if we are using only a few short VARCHAR's
      sql/sql_string.cc:
        Added extra argument to strnncollsp
      sql/sql_table.cc:
        Add support for VARCHAR
        Automaticly convert (with warning) big VARCHAR (but not CHAR) to TEXT
        If handler doesn't support VARCHAR convert VARCHAR to CHAR
      sql/sql_update.cc:
        Fixed compiler warning
      sql/sql_yacc.yy:
        Add support for VARCHAR
      sql/strfunc.cc:
        Fixed valgrind warning
      sql/structs.h:
        Added 'table' to KEY structure to make life easier for some handler functions
      sql/table.cc:
        Add support for VARCHAR
        - New .frm version
        - FIELD_TYPE -> MYSQL_TYPE
      sql/table.h:
        Added insert_or_update; A bool flag a handler can set/reset if needed (for handler internal usage)
      sql/unireg.h:
        Add support for VARCHAR
      strings/ctype-big5.c:
        Added new argument to strnncollsp() to allow one to define if end space are significant or not
        Changed my_like_range... to correctly calculate min_length & max_length
      strings/ctype-bin.c:
        Added new argument to strnncollsp() to allow one to define if end space are significant or not
      strings/ctype-czech.c:
        Changed my_like_range... to correctly calculate min_length & max_length
      strings/ctype-gbk.c:
        Added new argument to strnncollsp() to allow one to define if end space are significant or not
        Changed my_like_range... to correctly calculate min_length & max_length
      strings/ctype-latin1.c:
        Added new argument to strnncollsp() to allow one to define if end space are significant or not
      strings/ctype-mb.c:
        Added new argument to strnncollsp() to allow one to define if end space are significant or not
        Changed my_like_range... to correctly calculate min_length & max_length
      strings/ctype-simple.c:
        Added new argument to strnncollsp() to allow one to define if end space are significant or not
        Changed my_like_range... to correctly calculate min_length & max_length
      strings/ctype-sjis.c:
        Added new argument to strnncollsp() to allow one to define if end space are significant or not
        Changed my_like_range... to correctly calculate min_length & max_length
      strings/ctype-tis620.c:
        Added new argument to strnncollsp() to allow one to define if end space are significant or not
        Changed my_like_range... to correctly calculate min_length & max_length
      strings/ctype-uca.c:
        Added new argument to strnncollsp() to allow one to define if end space are significant or not
      strings/ctype-ucs2.c:
        Changed my_like_range... to correctly calculate min_length & max_length
      strings/ctype-utf8.c:
        Added new argument to strnncollsp() to allow one to define if end space are significant or not
      strings/ctype-win1250ch.c:
        Changed my_like_range... to correctly calculate min_length & max_length
      strings/decimal.c:
        Fixed include files usage
        Fixed some compiler warnings
      tests/client_test.c:
        Ensure tests works with VARCHAR
      e04e1dd2
  21. 24 Nov, 2004 3 commits
    • unknown's avatar
      fixed problem in MacOS · 12ac3d30
      unknown authored
      correct printing of aliases
      
      
      mysql-test/r/lowercase_view.result:
        aliases in VIEWs
      mysql-test/t/lowercase_view.test:
        aliases in VIEWs
      sql/item.cc:
        tracking using aliases in indentifiers
      sql/item.h:
        tracking using aliases in indentifiers
      sql/sql_base.cc:
        tracking using aliases in indentifiers
      sql/sql_lex.cc:
        tracking using aliases in indentifiers
      sql/sql_lex.h:
        tracking using aliases in indentifiers
      sql/table.h:
        tracking using aliases in indentifiers
      12ac3d30
    • unknown's avatar
      Fixed bug related to lower case table names on Power Mac · 1987e3f4
      unknown authored
      'information_schema' test is splitted because of innodb  
      
      
      mysql-test/r/information_schema.result:
        Test is splitted because of innodb
      mysql-test/t/information_schema.test:
        Test is splitted because of innodb
      sql/sql_show.cc:
        Fixed bug related to lower case table names on Power Mac
      sql/table.h:
        Fixed bug related to lower case table names on Power Mac
      tests/client_test.c:
        Don't check field length for blob filed
      1987e3f4
    • unknown's avatar
      sql/ha_innodb.cc · 908f2936
      unknown authored
          enabled query cache for ndb
          modified engine interface somewhat
      sql/ha_innodb.h
          enabled query cache for ndb
          modified engine interface somewhat
      sql/ha_ndbcluster.cc
          enabled query cache for ndb
          modified engine interface somewhat
          ndb will only allow caching and retrieval if running autocommit
            - return false, but do not invalidate
          commit count is used as engine data, i.e.
            - store commit count before store of cache
            - allow retrieval if commit count has not changed on a table
            - invalidate if commit count has changed
      sql/ha_ndbcluster.h
          enabled query cache for ndb
          modified engine interface somewhat
      sql/handler.cc
          enabled query cache for ndb
          modified engine interface somewhat
      sql/handler.h
          enabled query cache for ndb
          modified engine interface somewhat
          new virtual handler method cached_table_registration called on each table before alowing store in query cache
            - return TRUE - ok to cache, FALSE - not allowed to cache, invalidate queries if engine_data below has changed
            - sets ulonglong (engine_data) that is stored in query cache for each table
            - sets callback to be called for each table before usage of cached query, callback = 0 -> no check later
      sql/mysql_priv.h
          enabled query cache for ndb
          modified engine interface somewhat
          callcack prototype for callback to engine before query cache retrieval
      sql/sql_cache.cc
          enabled query cache for ndb
          modified engine interface somewhat
          if callback is set on table in cache, do callback to check if allowed to use cache
          if not allowed to use cache, check if engine_data has changed, if so, invalidate all queries with that table
          + changes to store and pass callback and engine_data around
      sql/sql_cache.h
          enabled query cache for ndb
          modified engine interface somewhat
          changes to store callback and engine_data
      sql/table.h
          enabled query cache for ndb
          modified engine interface somewhat
          changes to store callback and engine_data
      
      
      sql/ha_innodb.cc:
        enabled query cache for ndb
        modified engine interface somewhat
      sql/ha_innodb.h:
        enabled query cache for ndb
        modified engine interface somewhat
      sql/ha_ndbcluster.cc:
        enabled query cache for ndb
        modified engine interface somewhat
        ndb will only allow caching and retrieval if running autocommit
          - return false, but do not invalidate
        commit count is used as engine data, i.e.
          - store commit count before store of cache
          - allow retrieval if commit count has not changed on a table
          - invalidate if commit count has changed
      sql/ha_ndbcluster.h:
        enabled query cache for ndb
        modified engine interface somewhat
      sql/handler.cc:
        enabled query cache for ndb
        modified engine interface somewhat
      sql/handler.h:
        enabled query cache for ndb
        modified engine interface somewhat
        new virtual handler method cached_table_registration called on each table before alowing store in query cache
          - return TRUE - ok to cache, FALSE - not allowed to cache, invalidate queries if engine_data below has changed
          - sets ulonglong (engine_data) that is stored in query cache for each table
          - sets callback to be called for each table before usage of cached query, callback = 0 -> no check later
      sql/mysql_priv.h:
        enabled query cache for ndb
        modified engine interface somewhat
        callcack prototype for callback to engine before query cache retrieval
      sql/sql_cache.cc:
        enabled query cache for ndb
        modified engine interface somewhat
        if callback is set on table in cache, do callback to check if allowed to use cache
        if not allowed to use cache, check if engine_data has changed, if so, invalidate all queries with that table
        + changes to store and pass callback and engine_data around
      sql/sql_cache.h:
        enabled query cache for ndb
        modified engine interface somewhat
        changes to store callback and engine_data
      sql/table.h:
        enabled query cache for ndb
        modified engine interface somewhat
        changes to store callback and engine_data
      908f2936
  22. 23 Nov, 2004 1 commit
    • unknown's avatar
      More test cases are added · 2999284a
      unknown authored
      Fixed bug 'using of alias with information schema tables in views'
      removed compiler warnings
      
      
      mysql-test/r/information_schema.result:
        More test cases are added
      mysql-test/t/information_schema.test:
        More test cases are added
      sql/sql_select.cc:
        Fixed bug 'using of alias with information schema tables in views'
      sql/sql_show.cc:
        Fixed bug 'using of alias with information schema tables in views'
        Changed length of some columns
      sql/table.h:
        Fixed bug 'using of alias with information schema tables in views'
      tests/client_test.c:
        Changed length of some columns
      2999284a
  23. 18 Nov, 2004 1 commit
    • unknown's avatar
      remove unused parts of code · 5110b048
      unknown authored
      fix for 'show create schema_table'
      fix for usage schema tables in subselect
      'wrong schema table charset' fix
      
      
      mysql-test/r/information_schema.result:
        'wrong schema table charset' fix
      mysql-test/t/information_schema.test:
        'wrong schema table charset' fix
      sql/mysql_priv.h:
        fix for 'show create schema_table'
      sql/sql_class.cc:
        'wrong schema table charset' fix
      sql/sql_class.h:
        'wrong schema table charset' fix
      sql/sql_parse.cc:
        fix for 'show create schema_table'
      sql/sql_select.cc:
        'wrong schema table charset' fix
      sql/sql_show.cc:
        remove unused parts of code
        fix for 'show create schema_table'
        fix for usage schema tables in subselect
      sql/table.h:
        remove unused parts of coed
      tests/client_test.c:
        'wrong schema table charset' fix
      5110b048
  24. 17 Nov, 2004 2 commits
    • unknown's avatar
      fixing compiler warnings · d6d4cadf
      unknown authored
      sql/item_func.cc:
        fixed type
      sql/sql_base.cc:
        keep kompiller happy about unused lable in libmysqld
      sql/sql_view.cc:
        keep kompiller happy about unused variable in libmysqld
      sql/table.h:
        correct type casting
      d6d4cadf
    • unknown's avatar
      Fix warnings and compilation failures (Windows). · 5c3b2c33
      unknown authored
      sql/field.cc:
        Fix warning.
      sql/item_func.cc:
        Fix Windows compilation failure.
      sql/opt_range.cc:
        Fix warnings and errors (Windows)
      sql/sp_pcontext.h:
        Fix warning (Windows).
      sql/table.h:
        Fix warning (Windows).
      5c3b2c33
  25. 13 Nov, 2004 2 commits
    • unknown's avatar
      posmerge fixes · 9a837b13
      unknown authored
      mysql-test/r/view.result:
        erorr reported
      sql/item.cc:
        removed starnge code
      sql/mysql_priv.h:
        now error represented by Bool value
      sql/sql_parse.cc:
        removed old send_error calls
      sql/sql_select.cc:
        removed starnge code
      sql/sql_show.cc:
        show functions fixed
      sql/table.h:
        now error represented by Bool value
      9a837b13
    • unknown's avatar
      WL#1629: SHOW with WHERE(partially) & · 4e06d372
      unknown authored
      WL#173:  Create Data Dictionary Tables for SHOW Commands
      
      4e06d372
  26. 07 Nov, 2004 1 commit
    • unknown's avatar
      postreview fixes · 77462222
      unknown authored
      mysql-test/r/multi_update.result:
        test with multiupdate reopening tables
      mysql-test/t/multi_update.test:
        test with multiupdate reopening tables
      sql/item.cc:
        processor for cleunuping items in item tree
      sql/item.h:
        processor for cleunuping items in item tree
      sql/sql_update.cc:
        fixed case when lock reopened tables
      sql/table.cc:
        methos for cleunup view itema of table if they are present
      sql/table.h:
        methos for cleunup view itema of table if they are present
      77462222
  27. 05 Nov, 2004 1 commit
    • unknown's avatar
      new lock for multiupdate: · ccad3ab0
      unknown authored
      - open and create derived tables
      - detect which tables should be locked for write
      - lock and fill derived tables
      some unitialized variables fixed
      
      
      mysql-test/r/lock_multi.result:
        correct results returned
      mysql-test/r/multi_update.result:
        correct results returned
      mysql-test/r/view.result:
        correct results returned
      mysql-test/t/multi_update.test:
        correct results returned
      mysql-test/t/view.test:
        correct results returned
      sql/mysql_priv.h:
        derived tables processing splited on table creation and table filling
      sql/sql_base.cc:
        derived tables processing splited on table creation and table filling
      sql/sql_class.h:
        function to detect when we need fill derived tables
      sql/sql_derived.cc:
        derived tables processing splited on table creation and table filling
      sql/sql_lex.cc:
        fixed uninitialized value
      sql/sql_load.cc:
        fixed uninitialized value
      sql/sql_parse.cc:
        initialization muved (will be done for all queries)
      sql/sql_prepare.cc:
        preparation of multiupdate changed a bit because new locking procedure
      sql/sql_update.cc:
        new lock for multiupdate:
        - open and create derived tables
        - detect which tables should be locked for write
        - lock and fill derived tables
      sql/table.h:
        place to store select_result between creation and filling tables
      ccad3ab0
  28. 25 Oct, 2004 1 commit
    • unknown's avatar
      fixed detection of updating table on which we select (BUG#6032) · c96a77d3
      unknown authored
      mysql-test/r/view.result:
        Trys update table from which we select using views and subqueries
      mysql-test/t/view.test:
        Trys update table from which we select using views and subqueries
      sql/sql_acl.cc:
        fix of fix for bug BUG#5976
      sql/sql_base.cc:
        protection against temporary tables which have not table->table->table_cache_key
        fixed unique check to skip the same table instences
      sql/sql_delete.cc:
        removed next_independent to allow to check VIEW subqueries
      sql/sql_insert.cc:
        removed next_independent to allow to check VIEW subqueries
      sql/sql_parse.cc:
        removed next_independent to allow to check VIEW subqueries
      sql/sql_update.cc:
        removed next_independent to allow to check VIEW subqueries
      sql/sql_view.cc:
        removed next_independent to allow to check VIEW subqueries
        optimisation to mark as non-updatable views with subqueries by same table.
      sql/table.h:
        removed next_independent to allow to check VIEW subqueries
      c96a77d3
  29. 22 Oct, 2004 1 commit
    • unknown's avatar
      A fix and test case for Bug#6050 "EXECUTE stmt reports ambiguous field · f306f414
      unknown authored
      names with ident. tables fr. diff. schemata": revise all uses of
      Item_field and make them prepared-statements friendly when necessary.
      
      
      mysql-test/r/ps.result:
        Test results fixed: the test case for Bug#6050
      mysql-test/r/ps_1general.result:
        Test results fixed: in prepared statements we expand '*' to a list
        of fully qualified fields (db.table.column).
      mysql-test/t/ps.test:
        A test for Bug#6050 "EXECUTE stmt reports ambiguous fieldnames with 
        ident. tables fr. diff. schemata"
      sql/item.cc:
        Revise all Item_field constructors: we need to make sure that no Item_field
        object points to unaccessible memory in prepared statements.
      sql/item.h:
        Revise all Item_field constructors: we need to make sure that no Item_field
        object points to unaccessible memory in prepared statements.
      sql/sql_base.cc:
        Item_field use changed to be prepared statements friendly.
      sql/sql_class.h:
        New check of Item_arena state.
      sql/sql_union.cc:
        Fixing the problem with name resolving in UNION and prepared statements:
        In case of SELECT a, b, c FROM t1 UNION SELECT a, b, c FROM t2 the list of
        selected items is represented as a List<Item_field>, where each 
        Item_field points to a field of temporary table.
        But the temporary table is created anew on each execution of the prepared 
        statement. So on each subsequent execution we should reset Item_field
        items to point to fields from freshly-created temporary table.
      sql/table.h:
        Comment TABLE member.
      f306f414
  30. 21 Oct, 2004 1 commit
    • unknown's avatar
      new behaviour of CHECK option build, for mor efficience and more correct: · 11d8bf16
      unknown authored
      check option build only according most top VIEW  CHECK OPTION TYPE  (BUG#5993)
      
      
      mysql-test/r/view.result:
        CASCADED should be used for all underlaying VIEWs
      mysql-test/t/view.test:
        CASCADED should be used for all underlaying VIEWs
      sql/sql_base.cc:
        new behaviour of CHECK option build, for mor efficience and more correct.
      sql/table.cc:
        new behaviour of CHECK option build, for mor efficience and more correct.
      sql/table.h:
        new behaviour of CHECK option build, for mor efficience and more correct.
      11d8bf16
  31. 19 Oct, 2004 1 commit
    • unknown's avatar
      table.h, sql_select.h: · fcab6583
      unknown authored
        Added the code processing on expressions for applying
        multiple equalities.
      sql_select.cc:
        Post-merge fixes for Item_equal patch.
        Added the code processing on expressions for applying
        multiple equalities.
      Many files:
        Post-merge fixes for Item_equal patch.
      item_cmpfunc.cc:
        Post-merge fixes for Item_equal patch.
        Fixed a problem when an equality field=const cannot be applied to
        the predicate P(field,c) for constant propagation as a conversion
        of field is needed.
      item.h, item.cc:
        Fixed a problem when an equality field=const cannot be applied to
        the predicate P(field,c) for constant propagation as a conversion
        of field is needed.
      
      
      mysql-test/r/func_test.result:
        Post-merge fixes for Item_equal patch.
      mysql-test/r/index_merge.result:
        Post-merge fixes for Item_equal patch.
      mysql-test/r/join_nested.result:
        Post-merge fixes for Item_equal patch.
      mysql-test/r/range.result:
        Post-merge fixes for Item_equal patch.
      sql/item.cc:
        Fixed a problem when an equality field=const cannot be applied to
        the predicate P(field,c) for constant propagation as a conversion
        of field is needed.
      sql/item.h:
        Fixed a problem when an equality field=const cannot be applied to
        the predicate P(field,c) for constant propagation as a conversion
        of field is needed.
      sql/item_cmpfunc.cc:
        Post-merge fixes for Item_equal patch.
        Fixed a problem when an equality field=const cannot be applied to
        the predicate P(field,c) for constant propagation as a conversion
        of field is needed.
      sql/opt_range.cc:
        Post-merge fixes for Item_equal patch.
      sql/sql_select.cc:
        Post-merge fixes for Item_equal patch.
        Added the code processing on expressions for applying
        multiple equalities.
      sql/sql_select.h:
        Added the code processing on expressions for applying
        multiple equalities.
      sql/table.h:
        Added the code processing on expressions for applying
        multiple equalities.
      fcab6583
  32. 07 Oct, 2004 1 commit
    • unknown's avatar
      test of DELETE privilege and cyclic reference added in case of altering view (BUG#5148) · e99d1415
      unknown authored
      fixed ALTER VIEW syntax
      fixed WITH CHECK OPTION clause printing in SHOW CREATE VIEW
      
      
      mysql-test/r/view.result:
        test of VIEW altering
      mysql-test/t/view.test:
        test of VIEW altering
      sql/lex.h:
        explicitly mentioned undefined algorithm
      sql/sql_show.cc:
        explicitly mentioned undefined algorithm
        added printing WITH CHECK OPTION clause
      sql/sql_view.cc:
        test of DELETE privilege and cyclic reference added in case of altering view
        effective and requested WITH CHECK OPTION parameters divided
      sql/sql_yacc.yy:
        fixed ALTER VIEW
      sql/table.cc:
        effective and requested WITH CHECK OPTION parameters divided
      sql/table.h:
        effective and requested WITH CHECK OPTION parameters divided
      e99d1415
  33. 06 Oct, 2004 1 commit
    • unknown's avatar
      fixed & added comments (according to Igor's review and a bit more) · d75b2662
      unknown authored
      sql/item_strfunc.h:
        spelling fixed
      sql/parse_file.cc:
        spelling fixed
      sql/parse_file.h:
        spelling fixed
      sql/password.c:
        spelling fixed
      sql/sql_acl.cc:
        spelling fixed
      sql/sql_lex.cc:
        comments added and fixed
      sql/sql_parse.cc:
        spelling fixed
      sql/sql_show.cc:
        spelling fixed
      sql/sql_update.cc:
        comments fixed
      sql/sql_view.cc:
        comments added
        spelling and comments fixed
        // comments changed with /* */ ones
      sql/sql_yacc.yy:
        comments fixed
      sql/table.cc:
        spelling fixed
        comments added and fixed
      sql/table.h:
        spelling fixed
        comments fixed
      d75b2662
  34. 01 Oct, 2004 1 commit
    • unknown's avatar
      Support for TIMESTAMP columns holding NULL values. Unlike all other · c2a25521
      unknown authored
      column types TIMESTAMP is NOT NULL by default, so in order to have 
      TIMESTAMP column holding NULL valaues you have to specify NULL as
      one of its attributes (this needed for backward compatibility).
      
      Main changes:
      Replaced TABLE::timestamp_default_now/on_update_now members with
      TABLE::timestamp_auto_set_type flag which is used everywhere
      for determining if we should auto-set value of TIMESTAMP field 
      during this operation or not. We are also use Field_timestamp::set_time()
      instead of handler::update_timestamp() in handlers.
      
      
      mysql-test/r/type_timestamp.result:
        Added test for TIMESTAMP columns which are able to store NULL values.
      mysql-test/t/type_timestamp.test:
        Added test for TIMESTAMP columns which are able to store NULL values.
      sql/field.cc:
        Added support for TIMESTAMP fields holding NULL values.
        We don't need Field_timestamp::set_timestamp_offsets() anymore.
        Instead we need Field_timestamp::get_auto_set_type() function
        which will convert TIMESTAMP auto-set type stored in Field in 
        unireg_check to value from timestamp_auto_set_type_enum.
        (We can't replace this function with additional Field_timestamp member
        and some code in constructor because then we will have troubles
        with Field::new_field() method).
        We should also set field to not null in Field_timestamp::set_time() now.
      sql/field.h:
        Added support for TIMESTAMP fields holding NULL values.
        We don't need Field_timestamp::set_timestamp_offsets() anymore.
        Instead we need Field_timestamp::get_auto_set_type() function,
        which will convert TIMESTAMP auto-set type stored in Field in 
        unireg_check to value from timestamp_auto_set_type_enum.
        We also have to support NULL values in Field_timestamp::get_timestamp()
        function.
      sql/field_conv.cc:
        Added comment clarifying behavior in case of TIMESTAMP fields which are
        able to store NULL values.
      sql/ha_berkeley.cc:
        Now we use TABLE::timestamp_field_type instead of 
        TABLE::timestamp_default_now/on_update_now for determining 
        if we should auto-set value of TIMESTAMP field during this operation.
        We are also use Field_timestamp::set_time() instead of 
        handler::update_timestamp().
      sql/ha_heap.cc:
        Now we use TABLE::timestamp_field_type instead of 
        TABLE::timestamp_default_now/on_update_now for determining 
        if we should auto-set value of TIMESTAMP field during this operation.
        We are also use Field_timestamp::set_time() instead of 
        handler::update_timestamp().
      sql/ha_innodb.cc:
        Now we use TABLE::timestamp_field_type instead of 
        TABLE::timestamp_default_now/on_update_now for determining 
        if we should auto-set value of TIMESTAMP field during this operation.
        We are also use Field_timestamp::set_time() instead of 
        handler::update_timestamp().
      sql/ha_isam.cc:
        Now we use TABLE::timestamp_field_type instead of 
        TABLE::timestamp_default_now/on_update_now for determining 
        if we should auto-set value of TIMESTAMP field during this operation.
        We are also use Field_timestamp::set_time() instead of 
        handler::update_timestamp().
      sql/ha_isammrg.cc:
        Now we use TABLE::timestamp_field_type instead of 
        TABLE::timestamp_default_now/on_update_now for determining 
        if we should auto-set value of TIMESTAMP field during this operation.
        We are also use Field_timestamp::set_time() instead of 
        handler::update_timestamp().
      sql/ha_myisam.cc:
        Now we use TABLE::timestamp_field_type instead of 
        TABLE::timestamp_default_now/on_update_now for determining 
        if we should auto-set value of TIMESTAMP field during this operation.
        We are also use Field_timestamp::set_time() instead of 
        handler::update_timestamp().
      sql/ha_myisammrg.cc:
        Now we use TABLE::timestamp_field_type instead of 
        TABLE::timestamp_default_now/on_update_now for determining 
        if we should auto-set value of TIMESTAMP field during this operation.
        We are also use Field_timestamp::set_time() instead of 
        handler::update_timestamp().
      sql/ha_ndbcluster.cc:
        Now we use TABLE::timestamp_field_type instead of 
        TABLE::timestamp_default_now/on_update_now for determining 
        if we should auto-set value of TIMESTAMP field during this operation.
        We are also use Field_timestamp::set_time() instead of 
        handler::update_timestamp().
      sql/handler.cc:
        handler::update_timestamp() is no longer needed since now we use
        Field_timestamp::set_time() instead.
        (we can't use handler::update_timestamp() anyway since field position
        only is not enough for TIMESTAMP fields which are able to store NULLs)
      sql/handler.h:
        handler::update_timestamp() is no longer needed since now we use
        Field_timestamp::set_time() instead.
      sql/item_timefunc.cc:
        Since now TIMESTAMP fields can hold NULL values we should take this into
        account.
      sql/sql_base.cc:
        Now we use TABLE::timestamp_field_type instead of 
        TABLE::timestamp_default_now/on_update_now. 
        (Here we use Field_timestamp::get_auto_set_type() to setup its value
         before further statement execution).
      sql/sql_insert.cc:
        Now we use TABLE::timestamp_field_type instead of 
        TABLE::timestamp_default_now/on_update_now.
      sql/sql_load.cc:
        Now we use TABLE::timestamp_field_type instead of 
        TABLE::timestamp_default_now/on_update_now.
      sql/sql_parse.cc:
        Added support for TIMESTAMP fields holding NULL values.
        We should distinguish NULL default values and non-specified default
        values for such fields (because latter could mean DEFAULT NOW()
        ON UPDATE NOW() in some cases).
      sql/sql_show.cc:
        Added support for TIMESTAMP fields holding NULL values.
        Unlike all other fields these are NOT NULL by default
        so we have to specify NULL attribute explicitly for them.
      sql/sql_table.cc:
        Now we use TABLE::timestamp_field_type instead of 
        TABLE::timestamp_default_now/on_update_now.
      sql/sql_update.cc:
        Now we use TABLE::timestamp_field_type instead of 
        TABLE::timestamp_default_now/on_update_now.
      sql/sql_yacc.yy:
        Added support for TIMESTAMP fields holding NULL values.
        Unlike all other fields these are NOT NULL by default
        (so we have to set NOT_NULL_FLAG properly for them).
      sql/table.h:
        Added timestamp_auto_set_type enum which values are used for indicating
        during which operations we should automatically set TIMESTAPM field
        value to current timestamp.
        TABLE: Replaced timestamp_default_now/on_update_now members with
        timestamp_auto_set_type flag (Now when TIMESTAMP field are able to 
        store NULL values, single position of field in record is not enough 
        for updating this field anyway).
      c2a25521
  35. 29 Sep, 2004 1 commit
    • unknown's avatar
      post review changes: · a132f3db
      unknown authored
      CHECK OPTION moved to one function
      view name added to error messages
      
      
      mysql-test/r/view.result:
        error messages changed
      sql/share/czech/errmsg.txt:
        view name added
      sql/share/danish/errmsg.txt:
        view name added
      sql/share/dutch/errmsg.txt:
        view name added
      sql/share/english/errmsg.txt:
        view name added
      sql/share/estonian/errmsg.txt:
        view name added
      sql/share/french/errmsg.txt:
        view name added
      sql/share/german/errmsg.txt:
        view name added
      sql/share/greek/errmsg.txt:
        view name added
      sql/share/hungarian/errmsg.txt:
        view name added
      sql/share/italian/errmsg.txt:
        view name added
      sql/share/japanese/errmsg.txt:
        view name added
      sql/share/korean/errmsg.txt:
        view name added
      sql/share/norwegian-ny/errmsg.txt:
        view name added
      sql/share/norwegian/errmsg.txt:
        view name added
      sql/share/polish/errmsg.txt:
        view name added
      sql/share/portuguese/errmsg.txt:
        view name added
      sql/share/romanian/errmsg.txt:
        view name added
      sql/share/russian/errmsg.txt:
        view name added
      sql/share/serbian/errmsg.txt:
        view name added
      sql/share/slovak/errmsg.txt:
        view name added
      sql/share/spanish/errmsg.txt:
        view name added
      sql/share/swedish/errmsg.txt:
        view name added
      sql/share/ukrainian/errmsg.txt:
        view name added
      sql/sql_class.h:
        view reference saved
      sql/sql_insert.cc:
        CHECK OPTION moved to one function
      sql/sql_update.cc:
        CHECK OPTION moved to one function
      sql/sql_view.cc:
        view name added to error message
      sql/table.cc:
        CHECK OPTION moved to one function
      sql/table.h:
        CHECK OPTION moved to one function
      a132f3db