An error occurred fetching the project authors.
  1. 04 Mar, 2005 3 commits
    • unknown's avatar
      Fix for bug #8431 (FLOOR returns incorrect result) · 6e362a20
      unknown authored
      mysql-test/r/type_newdecimal.result:
        test result fixed
      mysql-test/t/type_newdecimal.test:
        test case enlarged for FLOOR and CEILING functions
      sql/item_func.cc:
        floor::int_op fixed - it should work differently depending on operand's type
      6e362a20
    • unknown's avatar
      Fix for bug #8430 (CEILING returns incorrect result) · 329a3dea
      unknown authored
      sql/item_func.cc:
        ceiling::int_op should work differently depending on argument's type
      329a3dea
    • unknown's avatar
      Better approach for prelocking of tables for stored routines execution · ac9f68b9
      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.
      ac9f68b9
  2. 02 Mar, 2005 2 commits
    • unknown's avatar
      First part of fix for BUG#7998 "Replication should be more clever about when... · 463ee77d
      unknown authored
      First part of fix for BUG#7998 "Replication should be more clever about when to replicate RELEASE_LOCK()"
      (next part is updating test results)
      
      
      sql/item_func.cc:
        no need for binlogging DO RELEASE_LOCK() anymore. Make GET_LOCK() do nothing in slave thread.
      sql/log_event.cc:
        comment fixes
      sql/mysqld.cc:
        warning removed
      sql/slave.cc:
        fix after merge
      463ee77d
    • unknown's avatar
      bug#8151 - truncate leaves a transaction open · e1ba1632
      unknown authored
      deadlock in MYSQL_LOG::new_file()
      style fixes
      
      
      mysql-test/r/innodb.result:
        one more test for truncate
      mysql-test/t/innodb.test:
        one more test for truncate
      sql/ha_innodb.cc:
        bug#8151 - truncate leaves a transaction open
      sql/handler.cc:
        bug#8151 - truncate leaves a transaction open
      sql/item.h:
        style fix
      sql/item_cmpfunc.cc:
        style fix
      sql/item_cmpfunc.h:
        style fix
      sql/item_func.cc:
        style fix
      sql/item_func.h:
        style fix
      sql/log.cc:
        let new_file() to lock LOCK_index,
        don't check for prepared_xids in rotate_and_purge()
        increase thread_safe_increment when LOCK_log is taken
      sql/log_event.cc:
        mysqlbinlog now prints a warning if binlog was not closed properly
      sql/sql_class.h:
        comments
      sql/sql_repl.cc:
        DBUG_ENTER tag corrected
      e1ba1632
  3. 24 Feb, 2005 1 commit
  4. 22 Feb, 2005 1 commit
    • unknown's avatar
      A user variable are now always have IMPLICIT coercibility, · 2fb807d1
      unknown authored
      independently from the expression it is initialized from.
      In other words, this change treats a user variable like
      a table with one column and one record. Discussed with 
      PeterG, Serg and Lars. This change also simplifies replication
      allowing not to replicate variables' coercibility.
      
      
      mysql-test/r/user_var.result:
        Test changes accordintly
      mysql-test/t/user_var.test:
        Test changes accordintly
      2fb807d1
  5. 19 Feb, 2005 1 commit
    • unknown's avatar
      Fixed BUILD script to use --with-berkeley-db instead of --with-bdb · 64cc538b
      unknown authored
      Lots of small fixes to multi-precision-math path
      Give Note for '123.4e'
      Added helper functions type 'val_string_from_real()
      Don't give warnings for end space for string2decimal()
      Changed storage of values for SP so that we can detect length of argument without strlen()
      Changed interface for str2dec() so that we must supple the pointer to the last character in the buffer
      
      
      
      BUILD/SETUP.sh:
        with-bdb ->with-berkeley-db
      include/decimal.h:
        Make string2decimal and string2decimal_fixed inline
      mysql-test/r/func_group.result:
        More tests (to find bugs in precision math fixes)
      mysql-test/r/func_set.result:
        Test to cover more Item_func_field::val_xxx() code
      mysql-test/r/ps_6bdb.result:
        update results
      mysql-test/r/type_decimal.result:
        New tests
        Give note for '123.4e'
      mysql-test/r/type_newdecimal.result:
        Number of decimal changes (probably right, but hard to verify)
      mysql-test/t/func_group.test:
        More tests (to find bugs in precision math fixes)
      mysql-test/t/func_set.test:
        Test to cover more Item_func_field::val_xxx() code
      mysql-test/t/type_decimal.test:
        New tests to cover more cases in decimal.c
      sql/item.cc:
        Added helper functions type 'val_string_from_real()'
        Use new interfase to str2my_decimal()
        Moved nr_of_decimals() here (and made it static)
      sql/item.h:
        Added helper functions type 'val_string_from_real()'
      sql/item_func.cc:
        Style fixes
        Trivial optimizations
        Ensure null_value is set if my_decimal_add/sub/mul/div returns error
        Remove not needed Item_func_int_div::val_str()
        Join Item_func_signproc and Item_func_neg
        Fix that FIELD() works when first argument is NULL or one if it's arguments are NULL
        new str2my_decimal interface
      sql/item_func.h:
        Make Item_func_int_div inherit from Item_int_func (allows us to remove some virtual functions)
        Join Item_func_signproc & Item_func_neg
      sql/item_strfunc.cc:
        Move nr_of_decmails() to Item.cc (as it was only used here)
      sql/item_sum.cc:
        Style fixes
        Change a lot of code to use new helper converter functions in item.cc
        Moved Item_sum::val_decimal() to Item_sum_int::val_decimal()
        Fixed calls to wrong functions (Item_sum_num::val_int())
        Ensure that all hybrid functions checks hybrid_type in val_xxx() (As there is no gurantee that they are called in the right context)
        Simplify key_length allocation in Item_sum_sum_distinct()
        Simplified create_tmp_field() and reset_field()
        Fixed potential error in Item_sum_hybrid::reset_field()
        Optimize Item_sum_avg::update_field()
        Item_std_field() functions musted be fully coded becasue Item_variance_field::val_xxx functions called helper functions
        Coded missing Item_sum_ufd_xxx::val_decimal() functions
      sql/item_sum.h:
        Moved Item_sum::val_decimal() to Item_sum_int::val_decimal()
        Added missing Item_sum_ufd_xxx::val_decimal() functions
        Removed not used scale() function.
        Fixed that Item_std_field() works with decimal arguments
        Fixed that CREATE ... STD() will create a REAL field
      sql/log_event.cc:
        Ensure that we use same format for all types
      sql/my_decimal.cc:
        Don't give warnings for end space for string2decimal()
        Added dbug_print_decimal()
      sql/my_decimal.h:
        Style fixes
        Prototypes for new functions
        New interface for str2my_decimal()
      sql/mysql_priv.h:
        Made nr_of_decimals() static
      sql/protocol.cc:
        Simplify code (by assume that decimal can't be bigger than DECIMAL_MAX_STR_LENGTH]
      sql/protocol_cursor.cc:
        Changed storage of values for SP so that we can detect length of argument without strlen()
      sql/sp_head.cc:
        Simplify code for decimal handling by letting item handling conversion to decimal
      sql/sp_rcontext.cc:
        Use new method to get length of arguments
      sql/sql_analyse.cc:
        if -> switch
        Increase 'empty' if decimal value=0
        Remove usage of strcat()
      sql/sql_base.cc:
        Remove unnecessary checks
      sql/sql_class.cc:
        Remove not needed 'else'
        Removed not used variables
      sql/sql_select.cc:
        remove test for impossible condtion
      strings/decimal.c:
        Made two trivial functions macros
        Changed interface for str2dec() so that we must supple the pointer to the last character in the buffer
        This safer than before as we don't require an end \0 anymore (old code gave wrong answers in MySQL for some internals strings that where not \0 terminated)
        Detect error numbers of type '12.55e'
        str2dec() will now set 'to' to zero in case of errors
      64cc538b
  6. 18 Feb, 2005 1 commit
    • unknown's avatar
      Changes and fixes for windows compilation · af4b5c89
      unknown authored
      VC++Files/libmysqld/libmysqld.dsp:
        added sql/my_decimal.cc
      VC++Files/sql/mysqld.dsp:
        added my_decimal.cpp
      VC++Files/strings/strings.dsp:
        added decimal.c
      sql/field.cc:
        conversion fixes for windows compilation
      sql/item.h:
        fix for windows compilation
      sql/item_func.cc:
        fixed conversion for windows (cast from ulonglong to double 
        is not supported)
      sql/item_sum.cc:
        typecast fix for windows compilation
      sql/sp_head.cc:
        typecast fix fo windows compilation
      sql/sql_cache.cc:
        typecast fix for windows compilation
      af4b5c89
  7. 11 Feb, 2005 1 commit
  8. 08 Feb, 2005 3 commits
    • 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
    • unknown's avatar
      WL#2130: Table locking for stored FUNCTIONs · 3f249321
      unknown authored
      Collect all tables and SPs refered by a statement, and open all tables
      with an implicit LOCK TABLES. Do find things refered by triggers and views,
      we open them first (and then repeat this until nothing new is found), before
      doing the actual lock tables.
      
      
      mysql-test/r/information_schema.result:
        Updated result for WL#2130.
      mysql-test/r/lock.result:
        Updated result for WL#2130.
      mysql-test/r/sp-error.result:
        Updated result for WL#2130.
      mysql-test/r/sp.result:
        Updated result for WL#2130.
      mysql-test/r/view.result:
        Updated result for WL#2130.
      mysql-test/t/information_schema.test:
        Disabled one test case due to a bug involving LOCK TABLES,
        which shows up with WL#2130.
      mysql-test/t/lock.test:
        New error message with WL#2130. This change is under debate and might change
        in the future, but will do for now.
      mysql-test/t/sp-error.test:
        Updated for WL#2130. Some tests are voided when table access does work from
        functions.
      mysql-test/t/sp.test:
        Updated for WL#2130.
      mysql-test/t/view.test:
        Updated for WL#2130.
      sql/item_func.cc:
        We now have to set net.no_send_ok for functions too, with WL#2130.
      sql/share/errmsg.txt:
        Reused an error code since the old use was voided by WL#2130, but a new
        one was needed instead (similar, but more specific restriction).
      sql/sp.cc:
        Fixed error handling and collection of used tables for WL#2130.
      sql/sp.h:
        Fixed error handling and collection of used tables for WL#2130.
      sql/sp_head.cc:
        Added support functions for collecting and merging hash tables and lists
        of used tables from SPs and substatements, for WL#2130.
      sql/sp_head.h:
        Added support functions for collecting and merging hash tables and lists
        of used tables from SPs and substatements, for WL#2130.
      sql/sql_base.cc:
        Changed the way table->query_id is tested and set during with locked tables
        in effect. This makes some SP test cases work with WL#2130, but has a side
        effect on some error cases with explicit LOCK TABLES. It's still debated if
        this is the correct way, so it might change.
      sql/sql_class.h:
        Added flags for circumventing some interference between WL#2130 and mysql_make_view().
      sql/sql_derived.cc:
        Added some missing initializations. (Potential bugs.)
      sql/sql_lex.cc:
        Clear the new hash tables for WL#2130.
      sql/sql_lex.h:
        Added hash tables for procedures and tables too (as for functions), for WL#2130.
      sql/sql_parse.cc:
        WL#2130: Make table accesses from stored functions work by adding an implicit
        LOCK TABLES around (most) executed statements. To do this, we have to go through
        a loop where we collect all SPs and tables in mysql_execute_statement.
      sql/sql_prepare.cc:
        Cache both functions and procedures for WL#2130.
      sql/sql_show.cc:
        Added some missing initializations. (Potential bugs.)
      sql/sql_view.cc:
        Shortcut mysql_make_view() if thd->shortcut_make_view is true during
        the pre-open phase for collecting tables in WL#2130. Otherwise, the
        similar mechanism here causes interference.
      sql/sql_yacc.yy:
        For WL#2130, added caching of procedures and disallowed LOCK/UNLOCK TABLES in SPs.
      3f249321
    • unknown's avatar
      Better bugfix for "HAVING when refering to RAND()" (Bug #8216) · 63982db9
      unknown authored
      Ensure that references in HAVING, ORDER BY or GROUP BY are calculated after fields in SELECT.
      This will ensure that any reference to these has a valid value.
      Generalized the code for split_sum_func()
      
      
      BitKeeper/etc/ignore:
        added support-files/ndb-config-2-node.ini
      mysql-test/r/group_by.result:
        More complicated test to assure that rand() is only calulated once
      mysql-test/r/user_var.result:
        Back to old results :(  (ok but not perfect)
      mysql-test/t/group_by.test:
        More complicated test to assure that rand() is only calulated once
      sql/item.cc:
        Better bugfix for "HAVING when refering to RAND()"
        This will ensure that when refering to things like RAND() in HAVING through an alias we will not recalculate that rand() value in the HAVING part but use the value in the row
        Generalize split_sum_func()
      sql/item.h:
        Better bugfix for "HAVING when refering to RAND()"
        T
      sql/item_cmpfunc.cc:
        Better bugfix for "HAVING when refering to RAND()"
        Use generalized split_sum_func2() function
      sql/item_func.cc:
        Better bugfix for "HAVING when refering to RAND()"
        Use generalized split_sum_func2() function
      sql/item_row.cc:
        Better bugfix for "HAVING when refering to RAND()"
        Use generalized split_sum_func2() function
      sql/item_strfunc.cc:
        Better bugfix for "HAVING when refering to RAND()"
        Use generalized split_sum_func2() function
      sql/sql_list.h:
        Add functions to concatenate lists
      sql/sql_select.cc:
        Better bugfix for "HAVING when refering to RAND()"
        Ensure that references in HAVING, ORDER BY or GROUP BY are calculated after fields in SELECT.
        This will ensure that any reference to these has a valid value.
      63982db9
  9. 07 Feb, 2005 1 commit
    • unknown's avatar
      Fixed bug in HAVING when refering to RAND() through alias · d6ed8cd7
      unknown authored
      (BUG 8216)
      
      
      mysql-test/r/group_by.result:
        New test case
      mysql-test/r/user_var.result:
        Test changed (to be more correct) with bug fix
      mysql-test/t/group_by.test:
        Added test for HAVING bug
      sql/item_cmpfunc.cc:
        Fixed bug in HAVING when refering to RAND()
      sql/item_func.cc:
        Fixed bug in HAVING when refering to RAND()
      sql/item_row.cc:
        Fixed bug in HAVING when refering to RAND()
      sql/item_strfunc.cc:
        Fixed bug in HAVING when refering to RAND()
      sql/unireg.h:
        Added PSEUDO_TABLES_BITS for easy testing of real table reference
      d6ed8cd7
  10. 05 Feb, 2005 1 commit
    • unknown's avatar
      Fixed bug detected by sp-tests · 5cf29b3b
      unknown authored
      Cleanup during reviews of new pushed code
      
      
      BUILD/compile-pentium-debug-max:
        Use --debug=full as default
      BUILD/compile-pentium-debug:
        Use --debug=full as default
      mysys/my_alloc.c:
        More debugging
      sql/item_func.cc:
        Cleanup new code
        Don't call insert_id() for last_insert_id(value) to avoid side effects
      sql/item_subselect.cc:
        Fixed DBUG output
      sql/sp_head.cc:
        Simple cleanup
      sql/sql_lex.cc:
        Moved usage of arguments first in lex_start to make their usage clearer
        Remove sl->expr_list.deleete_elements() becasue:
        - It didn't do anything (delete_elements on a list of list is a no-op operation)
        - The deleted for loop used SELECT_LEX elements that was allocated in mysql_new_select() in sp-head, but freed
        when sphead->mem_root was freed. (delete sphead doesn't remove used SELECT_LEX elements from the global all_selects_list)
      sql/sql_parse.cc:
        More DBUG entries
      5cf29b3b
  11. 04 Feb, 2005 1 commit
    • unknown's avatar
      indexless boolean fulltext search was depending on default_charset_info - Bug#8159 · 8c750c46
      unknown authored
      ftbw->off wasn't cleared on reinit - Bug#8234
      
      
      include/ft_global.h:
        get rid of default_charset_info in indexless fulltext searches
      myisam/ft_boolean_search.c:
        get rid of default_charset_info in indexless fulltext searches
        clear ftbw->off on reinits
      myisam/ft_static.c:
        get rid of default_charset_info in indexless fulltext searches
      myisam/ftdefs.h:
        get rid of default_charset_info in indexless fulltext searches
      sql/ha_myisam.h:
        get rid of default_charset_info in indexless fulltext searches
      sql/handler.h:
        get rid of default_charset_info in indexless fulltext searches
      sql/item_func.cc:
        get rid of default_charset_info in indexless fulltext searches
      8c750c46
  12. 03 Feb, 2005 1 commit
    • unknown's avatar
      Bug#8057 · 3c925ee0
      unknown authored
        Fix crash with LAST_INSERT_ID() in UPDATE,
        Tests included,
      
      
      mysql-test/r/update.result:
        Bug#8057
          Test for bug
      mysql-test/t/update.test:
        Bug#8057
          Test for bug
      sql/item_func.cc:
        Bug#8057
          Don't create new Item in val_int()
      3c925ee0
  13. 27 Jan, 2005 1 commit
    • unknown's avatar
      query_id and my_xid -> ulonglong · 042448aa
      unknown authored
      fix for binlog+autocommit+tclog
      comments, style fixes
      
      
      libmysqld/libmysqld.rc:
        Change mode to -rw-rw-r--
      libmysqld/resource.h:
        Change mode to -rw-rw-r--
      configure.in:
        check for getpagesize
      include/my_global.h:
        typo ?
      include/my_pthread.h:
        bug in thread_safe_decrement_and_test()
      mysql-test/r/bdb.result:
        results updated
      mysql-test/r/innodb.result:
        results updated
      mysql-test/r/mix_innodb_myisam_binlog.result:
        results updated
      mysql-test/r/rpl_relayrotate.result:
        results updated
      sql/ha_berkeley.cc:
        style fixes
      sql/ha_innodb.cc:
        fixes to follow innodb coding style
      sql/handler.cc:
        more comments. XA COMMIT ONE PHASE fix.
      sql/handler.h:
        my_xid -> ulonglong. comments
      sql/item_func.cc:
        DO RELEASE_LOCK("...") is no cache_stmt
      sql/log.cc:
        comments, better error messages
      sql/log_event.cc:
        even in autocommit mode we may need to cache_stmt
        xid is ulonglong
      sql/log_event.h:
        more comments.
      sql/mysql_priv.h:
        query_id is ulonglong
      sql/mysqld.cc:
        default value for --log-tc changed
      sql/share/errmsg.txt:
        better error messages
      sql/sql_class.h:
        cleanup, comments
      sql/sql_delete.cc:
        deleting from temporary tables is not always transactional
      sql/sql_insert.cc:
        insert into temporary table is not always transactional
      sql/sql_load.cc:
        load data into temp table is not always transactional
      sql/sql_parse.cc:
        comments. bad merge fixed. xa_state_names[]
      sql/sql_table.cc:
        create/drop temp table is not always transactional
      sql/sql_update.cc:
        update temp table is not always transactional
      042448aa
  14. 24 Jan, 2005 1 commit
    • unknown's avatar
      fixed column number fetchinmg for subqueries. (BUG#8020) · d514a06a
      unknown authored
      fixed cols() method call (it have to be called only after fix_fields())
      
      
      mysql-test/r/subselect.result:
        Comparison subquery with * and row
      mysql-test/t/subselect.test:
        Comparison subquery with * and row
      sql/item_cmpfunc.h:
        initialization allowed_arg_cols for autodetection
      sql/item_func.cc:
        support of allowed_arg_cols autodetection by first argument
      sql/item_func.h:
        commant
      sql/item_subselect.cc:
        correct column number fetching for subqueries
      sql/sql_lex.h:
        method to check that UNION is prepared
      d514a06a
  15. 20 Jan, 2005 1 commit
    • unknown's avatar
      Fixed problem of sending ERROR to client after OK or EOF (BUG#6804) · 7a528488
      unknown authored
      include/mysql_com.h:
        Flag which prevent sending error after EOF or OK sent
      mysql-test/r/kill.result:
        test of blocking of sending ERROR after OK or EOF
      mysql-test/t/kill.test:
        test of blocking of sending ERROR after OK or EOF
      sql/item_func.cc:
        typo fixed
      sql/net_serv.cc:
        initialization of flag
      sql/protocol.cc:
        check and set of flag no_send_error
      sql/sql_parse.cc:
        droping flag no_send_error before new command/query execution
      7a528488
  16. 06 Jan, 2005 1 commit
    • unknown's avatar
      First stage of table definition cache · acf76e3b
      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
      acf76e3b
  17. 05 Jan, 2005 1 commit
    • unknown's avatar
      fixed views with PS protocol · 47dc78e6
      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
      47dc78e6
  18. 31 Dec, 2004 1 commit
    • unknown's avatar
      After merge fixes · 45199f54
      unknown authored
      Cleanup of mi_print_error() handling
      Deleted 'merge' directory
      
      
      BitKeeper/deleted/.del-mrg_close.c~1fa9230422daa62a:
        Delete: merge/mrg_close.c
      BitKeeper/deleted/.del-mrg_create.c~b747c8ec2b801f6:
        Delete: merge/mrg_create.c
      BitKeeper/deleted/.del-mrg_delete.c~38b4156885bb4537:
        Delete: merge/mrg_delete.c
      BitKeeper/deleted/.del-mrg_extra.c~7eb6181e1761907e:
        Delete: merge/mrg_extra.c
      BitKeeper/deleted/.del-mrg_info.c~37728e7238cc5a11:
        Delete: merge/mrg_info.c
      BitKeeper/deleted/.del-mrg_locking.c~112756a2d581e1d0:
        Delete: merge/mrg_locking.c
      BitKeeper/deleted/.del-mrg_open.c~6e1d5c8bfa62a519:
        Delete: merge/mrg_open.c
      BitKeeper/deleted/.del-mrg_panic.c~e204e43cd6d55406:
        Delete: merge/mrg_panic.c
      BitKeeper/deleted/.del-mrg_rrnd.c~6087c3dd7ecb77:
        Delete: merge/mrg_rrnd.c
      BitKeeper/deleted/.del-mrg_rsame.c~3e8ed4be2a0952b1:
        Delete: merge/mrg_rsame.c
      BitKeeper/deleted/.del-mrg_static.c~75a4b78a165dbd0:
        Delete: merge/mrg_static.c
      BitKeeper/deleted/.del-mrg_update.c~4110a4f1fbf1ab45:
        Delete: merge/mrg_update.c
      BitKeeper/deleted/.del-Makefile.am~41238af048e60515:
        Delete: merge/Makefile.am
      BitKeeper/deleted/.del-make-ccc~4f1acbfc127e25d5:
        Delete: merge/make-ccc
      BitKeeper/deleted/.del-mrg_def.h~a10557d12a87ef1c:
        Delete: merge/mrg_def.h
      BitKeeper/deleted/.del-.cvsignore~2f287ba794db3da7:
        Delete: merge/.cvsignore
      include/myisam.h:
        Added 'share' to st_mi_keydef' to not have to pass 'st_myisam_info' to functions
      myisam/ft_static.c:
        Removed compiler warning
      myisam/mi_delete.c:
        Cleanup of mi_print_error() handling
        Break if get_key() return 0
        Don't test for HA_ERR_CRASHED; Print errors when my_errno is set
      myisam/mi_extra.c:
        Cleanup of mi_print_error() handling
      myisam/mi_key.c:
        Cleanup of mi_print_error() handling
      myisam/mi_keycache.c:
        Cleanup of mi_print_error() handling
      myisam/mi_locking.c:
        Cleanup of mi_print_error() handling
      myisam/mi_open.c:
        Added 'my_isam_share' to MI_KEYDEF
      myisam/mi_page.c:
        Cleanup of mi_print_error() handling
      myisam/mi_range.c:
        get_key() calls mi_print_error() if needed
      myisam/mi_rkey.c:
        Cleanup of mi_print_error() handling
      myisam/mi_search.c:
        Cleanup of mi_print_error() handling
        Break if get_key() return 0
        Don't test for HA_ERR_CRASHED; Print errors when my_errno is set
      myisam/mi_update.c:
        Cleanup of mi_print_error() handling
      myisam/mi_write.c:
        Cleanup of mi_print_error() handling
        Break if get_key() return 0
        Don't test for HA_ERR_CRASHED; Print errors when my_errno is set
      myisam/myisamdef.h:
        Cleanup of mi_print_error() handling
      mysql-test/r/grant.result:
        Update results after merge
      mysql-test/r/timezone2.result:
        Update results after merge
      mysql-test/t/grant.test:
        New error numbers
      mysql-test/t/timezone2.test:
        New error numbers
      sql/item_func.cc:
        Remove duplicate include file
      sql/sql_acl.cc:
        Remove warnings from valgrind
      sql/tztime.cc:
        Print wrong timezone names to log
      45199f54
  19. 23 Dec, 2004 1 commit
    • unknown's avatar
      WL#925 - Privileges for stored routines · 09ce0b33
      unknown authored
        Implement fine-grained control over access to stored procedures
        Privileges are cached (same way as existing table/column privs)
        
      
      
      mysql-test/include/system_db_struct.inc:
        WL#925 - Privileges for stored routines
          New system table: procs_priv
      mysql-test/r/connect.result:
        WL#925 - Privileges for stored routines
          New system table: procs_priv
      mysql-test/r/grant.result:
        WL#925 - Privileges for stored routines
          user table has additional privilege attributes
          SHOW PRIVILEGES amended
      mysql-test/r/grant2.result:
        Fix result
      mysql-test/r/information_schema.result:
        WL#925 - Privileges for stored routines
          New system table procs_priv
          New user privileges
      mysql-test/r/show_check.result:
        Fix result
      mysql-test/r/sp-security.result:
        WL#925 - Privileges for stored routines
          Fix existing tests to work with new privileges
          New tests for new privileges
      mysql-test/r/sp.result:
        WL#925 - Privileges for stored routines
          Fix SHOW PRIVILEGES results
      mysql-test/r/system_mysql_db.result:
        WL#925 - Privileges for stored routines
          New system table: procs_priv
          user and db tables have new privilege attributes
      mysql-test/t/grant2.test:
        Fix test
      mysql-test/t/show_check.test:
        Fix test
      mysql-test/t/sp-security.test:
        WL#925 - Privileges for stored routines
          Allow existing tests to run with new privilege checks
          New tests for privileges
      mysql-test/t/system_mysql_db_fix.test:
        WL#925 - Privileges for stored routines
          New system table: procs_priv
      scripts/mysql_create_system_tables.sh:
        WL#925 - Privileges for stored routines
          db and user has new privilege attributes
          new system table: procs_priv
      scripts/mysql_fix_privilege_tables.sql:
        WL#925 - Privileges for stored routines
          new system table: procs_priv
      scripts/mysql_install_db.sh:
        WL#925 - Privileges for stored routines
          Amend comment
      sql/item_func.cc:
        WL#925 - Privileges for stored routines
          Privilege check for stored FUNCTION routine
      sql/lex.h:
        WL#925 - Privileges for stored routines
          new token ROUTINE
      sql/mysql_priv.h:
        WL#925 - Privileges for stored routines
          New function: check_procedure_access()
      sql/mysqld.cc:
        WL#925 - Privileges for stored routines
          system option automatic-sp-privileges
      sql/set_var.cc:
        WL#925 - Privileges for stored routines
          system option automatic-sp-privileges
      sql/share/errmsg.txt:
        WL#925 - Privileges for stored routines
          rename errormessage to conform:
            ER_SP_ACCESS_DENIED_ERROR -> ER_PROCACCESS_DENIED_ERROR
          New error messages
            ER_NONEXISTING_PROC_GRANT, ER_PROC_AUTO_GRANT_FAIL, ER_PROC_AUTO_REVOKE_FAIL
      sql/sp.cc:
        WL#925 - Privileges for stored routines
          new function: sp_exists_routine()
      sql/sp.h:
        WL#925 - Privileges for stored routines
          new function: sp_exists_routine()
      sql/sql_acl.cc:
        WL#925 - Privileges for stored routines
          Implementation for SP privileges.
          Privileges are cached in memory hash.
          New functions:
            mysql_procedure_grant()
            check_grant_procedure()
            sp_revoke_privileges()
            sp_grant_privileges()
      sql/sql_acl.h:
        WL#925 - Privileges for stored routines
          New privilege bits: CREATE_PROC_ACL, ALTER_PROC_ACL
          Alter confusing bit-segments to be shifted
          New macros: fix_rights_for_procedure() get_rights_for_procedure()
          New functions:
            mysql_procedure_grant()
            check_grant_procedure()
            sp_grant_privileges()
            sp_revoke_privileges()
      sql/sql_lex.h:
        WL#925 - Privileges for stored routines
          new all_privileges attribute in LEX
      sql/sql_parse.cc:
        WL#925 - Privileges for stored routines
          Remove function: check_sp_definer_access()
          Add handling for SP grants/revokes
          Add privilege checks for stored procedure invocation
      sql/sql_show.cc:
        WL#925 - Privileges for stored routines
          update result for SHOW PRIVILEGES
      sql/sql_yacc.yy:
        WL#925 - Privileges for stored routines
          New token ROUTINE
          rename some rules
          handle CREATE ROUTINE / ALTER ROUTINE privileges
      09ce0b33
  20. 20 Dec, 2004 2 commits
  21. 17 Dec, 2004 2 commits
    • unknown's avatar
      Condition pushdown to storage engine · bda84af2
      unknown authored
      bda84af2
    • unknown's avatar
      Fix for BUG#6825: When calculating Item_func_neg::max_length, add 1 for '-'. · f7193b92
      unknown authored
      For numeric constants we only need to add, since the parser doesn't produce 
      negative numbers. 
      For strings we only add (we actually could substract 1 if given string is a constant 
      and it has '-number' form but we're not doing that because 
       * we set max_length bigger then necessary in other cases as well.  
       * the current solution is simpler and safer (bigger max_length is better then cutting out)
      
      
      mysql-test/r/func_concat.result:
        Test for BUG#6825
      mysql-test/r/metadata.result:
        Ajusted results according to fix of bug BUG#6825:length(-1) = 2 , not 1
      mysql-test/t/func_concat.test:
        Test for BUG#6825
      f7193b92
  22. 14 Dec, 2004 1 commit
    • unknown's avatar
      * Added comments and one assert · 8322eb0a
      unknown authored
       * Backport of safety measures from 5.0: make numeorous replaces:
          s/item->fix_fields()/if (!item->fixed) item->fix_fields()
      
      
      sql/item.cc:
         * More comments
         * Backport of safety measures from 5.0: make numeorous replaces:
            s/item->fix_fields()/if (!item->fixed) item->fix_fields()
      sql/item.h:
        Assert added
      sql/item_cmpfunc.cc:
        Backport of safety measures from 5.0: make numeorous replaces:
          s/item->fix_fields()/if (!item->fixed) item->fix_fields()
      sql/item_func.cc:
        Backport of safety measures from 5.0: make numeorous replaces:
          s/item->fix_fields()/if (!item->fixed) item->fix_fields()
      sql/item_strfunc.h:
        Backport of safety measures from 5.0: make numeorous replaces:
          s/item->fix_fields()/if (!item->fixed) item->fix_fields()
      sql/item_subselect.cc:
        Backport of safety measures from 5.0: make numeorous replaces:
          s/item->fix_fields()/if (!item->fixed) item->fix_fields()
      sql/item_sum.cc:
        Backport of safety measures from 5.0: make numeorous replaces:
          s/item->fix_fields()/if (!item->fixed) item->fix_fields()
      sql/set_var.cc:
        Backport of safety measures from 5.0: make numeorous replaces:
          s/item->fix_fields()/if (!item->fixed) item->fix_fields()
      sql/sql_base.cc:
        Backport of safety measures from 5.0: make numeorous replaces:
          s/item->fix_fields()/if (!item->fixed) item->fix_fields()
      sql/sql_handler.cc:
        Backport of safety measures from 5.0: make numeorous replaces:
          s/item->fix_fields()/if (!item->fixed) item->fix_fields()
      sql/sql_help.cc:
        Backport of safety measures from 5.0: make numeorous replaces:
          s/item->fix_fields()/if (!item->fixed) item->fix_fields()
      sql/sql_select.cc:
        Backport of safety measures from 5.0: make numeorous replaces:
          s/item->fix_fields()/if (!item->fixed) item->fix_fields()
      8322eb0a
  23. 13 Dec, 2004 2 commits
    • unknown's avatar
      Merge of fix for BUG#6976 continued: pulling in some Item_ref changes from 5.0 · 0e486852
      unknown authored
       * Added Item_ref::set_properties 
       * Item_ref::Item_ref now expects to get in *item either
           NULL - then fix_fields() will be called later  or 
           ptr to Item it will refer to - then an equivalent of fix_fields() call is performed
      
      
      sql/item.cc:
        Merge of fix for BUG#6976 continued: pulling in some Item_ref changes from 5.0
         * Added Item_ref::set_properties 
         * Adjusted Item_ref::Item_ref calls to match new calling convention
      sql/item.h:
        Merge of fix for BUG#6976 continued: pulling in some Item_ref changes from 5.0
         * Added Item_ref::set_properties 
         * Item_ref::Item_ref now expects to get in *item either
             NULL - then fix_fields() will be called later or
             ptr to Item it will refer to - then an equivalent of fix_fields() call is performed
      sql/item_cmpfunc.cc:
        Merge of fix for BUG#6976 continued: pulling in some Item_ref changes from 5.0
         * Adjusted Item_ref::Item_ref calls to match new calling convention
      sql/item_func.cc:
        Merge of fix for BUG#6976 continued: pulling in some Item_ref changes from 5.0
         * Added Item_ref::set_properties 
         * Adjusted Item_ref::Item_ref calls to match new calling convention
      sql/item_row.cc:
        Merge of fix for BUG#6976 continued: pulling in some Item_ref changes from 5.0
         * Added Item_ref::set_properties 
         * Adjusted Item_ref::Item_ref calls to match new calling convention
      sql/item_strfunc.cc:
        Merge of fix for BUG#6976 continued: pulling in some Item_ref changes from 5.0
         * Added Item_ref::set_properties 
         * Adjusted Item_ref::Item_ref calls to match new calling convention
      0e486852
    • unknown's avatar
      Merging fix for BUG#6976 from 4.0 to 4.1 · 6d7fe852
      unknown authored
      The problem in 4.1 was the same as in 4.0 - fix_fields() not called for created Item_ref. 
      The fix is similar too - initialize Item_refs in ctor (but don't interfere with cases when 
      Item_ref is used by subselects). 
      
      
      sql/item.cc:
        Fix for BUG#6976 ported from 4.0
      sql/item_cmpfunc.cc:
        Fix for BUG#6976 ported from 4.0
      sql/item_func.cc:
        Fix for BUG#6976 ported from 4.0
      sql/item_row.cc:
        Fix for BUG#6976 ported from 4.0
      sql/item_strfunc.cc:
        Fix for BUG#6976 ported from 4.0
      6d7fe852
  24. 07 Dec, 2004 1 commit
    • unknown's avatar
      Update results for new varchar handling · 9ca50fe1
      unknown authored
      Fixed compiler warnings
      String results in CREATE ... SELECT are now created as CHAR(0), VARCHAR(X) or TEXT() depending on item->max_length
      
      
      myisam/myisampack.c:
        Indentation cleanup
      mysql-test/r/analyse.result:
        Update results for new varchar handling
      mysql-test/r/case.result:
        Update results for new varchar handling
      mysql-test/r/cast.result:
        Update results for new varchar handling
      mysql-test/r/create.result:
        Update results for new varchar handling
      mysql-test/r/ctype_mb.result:
        Update results for new varchar handling
      mysql-test/r/ctype_ucs.result:
        Update results for new varchar handling
      mysql-test/r/ctype_utf8.result:
        Update results for new varchar handling
      mysql-test/r/func_group.result:
        Update results for new varchar handling
      mysql-test/r/func_str.result:
        Update results for new varchar handling
      mysql-test/r/func_system.result:
        Update results for new varchar handling
      mysql-test/r/heap.result:
        Update results for new varchar handling
      mysql-test/r/heap_hash.result:
        Update results for new varchar handling
      mysql-test/r/information_schema.result:
        Update results for new varchar handling
      mysql-test/r/metadata.result:
        Update results for new varchar handling
      mysql-test/r/null.result:
        Update results for new varchar handling
      mysql-test/r/ps_2myisam.result:
        Update results for new varchar handling
      mysql-test/r/ps_3innodb.result:
        Update results for new varchar handling
      mysql-test/r/ps_4heap.result:
        Update results for new varchar handling
      mysql-test/r/ps_5merge.result:
        Update results for new varchar handling
      mysql-test/r/ps_6bdb.result:
        Update results for new varchar handling
      mysql-test/r/subselect.result:
        Update results for new varchar handling
      mysql-test/r/type_ranges.result:
        Update results for new varchar handling
      mysql-test/r/union.result:
        Update results for new varchar handling
      mysql-test/t/heap.test:
        Update results for new varchar handling
      mysql-test/t/type_ranges.test:
        Added extra test to test generated type for string functions
      sql/field.cc:
        Update results for new varchar handling
      sql/field.h:
        Update results for new varchar handling
        We have to use orig_table instead of table as 'table' may point to a new field in the created table
      sql/field_conv.cc:
        Update results for new varchar handling
      sql/ha_heap.cc:
        Indentation fixes
      sql/ha_innodb.cc:
        Update results for new varchar handling
      sql/item.cc:
        Update results for new varchar handling
        Remove compiler warnings
        String results in CREATE ... SELECT are now created as CHAR(0), VARCHAR(X) or TEXT() depending on item->max_length
      sql/item.h:
        Update results for new varchar handling
      sql/item_func.cc:
        Update results for new varchar handling
        String results in CREATE ... SELECT are now created as CHAR(0), VARCHAR(X) or TEXT() depending on item->max_length
      sql/item_func.h:
        ANALYZE now return VARCHAR columns
      sql/procedure.h:
        Update results for new varchar handling
      sql/sql_acl.cc:
        After merge fixes
      sql/sql_select.cc:
        Update results for new varchar handling
        String results in temporary tables are now created as CHAR(0), VARCHAR(X) or TEXT() depending on item->max_length
      sql/sql_show.cc:
        After merge fixes
      sql/sql_table.cc:
        After merge fixes
      strings/ctype-tis620.c:
        After merge fixes
      tests/client_test.c:
        Fixed results, as in MySQL 5.0 strings in CREATE ... SELECT are creates VARCHAR columns
      9ca50fe1
  25. 03 Dec, 2004 1 commit
    • unknown's avatar
      Bug#6391 (binlog-do-db rules ignored) · 220acb32
      unknown authored
        CREATE DATABASE statement used the current database instead of the
        database created when checking conditions for replication.
        CREATE/DROP/ALTER DATABASE statements are now replicated based on
        the manipulated database.
      
      
      mysql-test/t/rpl_until.test:
        Longer sleep to allow slave to stop.
      mysql-test/t/rpl_charset.test:
        Position change in binary file.
      mysql-test/r/drop_temp_table.result:
        Position change in binlog.
      mysql-test/r/rpl_loaddata_rule_m.result:
        Position change in binlog.
      mysql-test/r/rpl_charset.result:
        Position change in binlog.
      sql/log_event.h:
        Added new flag and parameter to suppress generation of
        USE statements.
      sql/log_event.cc:
        Added parameter and code to suppress generation of
        USE statements.
      sql/sql_db.cc:
        Suppress generation of USE before CREATE/ALTER/DROP DATABASE
        statements.
      sql/log.cc:
        Query_log_event have new extra parameter.
      sql/sql_table.cc:
        Query_log_event have new extra parameter.
      sql/sql_base.cc:
        Query_log_event have new extra parameter.
      sql/sql_update.cc:
        Query_log_event have new extra parameter.
      sql/sql_insert.cc:
        Query_log_event have new extra parameter.
      sql/sql_rename.cc:
        Query_log_event have new extra parameter.
      sql/sql_delete.cc:
        Query_log_event have new extra parameter.
      sql/sql_acl.cc:
        Query_log_event have new extra parameter.
      sql/handler.cc:
        Query_log_event have new extra parameter.
      sql/item_func.cc:
        Query_log_event have new extra parameter.
      sql/sql_parse.cc:
        Query_log_event have new extra parameter.
      220acb32
  26. 02 Dec, 2004 1 commit
  27. 28 Nov, 2004 1 commit
  28. 19 Nov, 2004 1 commit
    • unknown's avatar
      Bug #6658 MAX(column) returns incorrect coercibility · aa6785d7
      unknown authored
      Also, Item_sum_hybrid->charset was removed as redundant,
      and switched to use collation.collation instead.
      
      
      mysql-test/r/func_group.result:
        Bug #6658 MAX(column) returns incorrect coercibility
      mysql-test/r/func_str.result:
        Bug #6658 MAX(column) returns incorrect coercibility
      mysql-test/t/func_group.test:
        Bug #6658 MAX(column) returns incorrect coercibility
      sql/item_func.cc:
        Bug #6658 MAX(column) returns incorrect coercibility
      sql/item_sum.cc:
        Bug #6658 MAX(column) returns incorrect coercibility
      sql/item_sum.h:
        Bug #6658 MAX(column) returns incorrect coercibility
      aa6785d7
  29. 17 Nov, 2004 2 commits
    • unknown's avatar
      fixing compiler warnings · 6eb81bbb
      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
      6eb81bbb
    • unknown's avatar
      Fix warnings and compilation failures (Windows). · 7cd9cc1b
      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).
      7cd9cc1b
  30. 16 Nov, 2004 1 commit
    • unknown's avatar
      Fix comment. · a710ebb4
      unknown authored
      sql/item_func.cc:
        Fix comment (used_table_cache is completely different from 
        used_tables_cache :)
      a710ebb4
  31. 13 Nov, 2004 1 commit
    • unknown's avatar
      now my_printf_error is not better then my_error, but my_error call is shorter · 8d71bcec
      unknown authored
      used only one implementation of format parser of (printf)
      fixed multistatement
      
      
      include/mysqld_error.h:
        newerror messages
      mysql-test/t/key.test:
        unknown error replaced with real error
      mysys/my_error.c:
        my_error & my_printf_error use my_vsprintf
      sql/field_conv.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/ha_innodb.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/handler.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/item.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/item_cmpfunc.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/item_func.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/item_strfunc.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/lock.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/log.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/parse_file.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/procedure.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/protocol.cc:
        no need reset thd->lex->found_colon to break multiline sequance now, send_error called too late
      sql/repl_failsafe.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/set_var.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/share/czech/errmsg.txt:
        new errors converted from unknown error
      sql/share/danish/errmsg.txt:
        new errors converted from unknown error
      sql/share/dutch/errmsg.txt:
        new errors converted from unknown error
      sql/share/english/errmsg.txt:
        new errors converted from unknown error
      sql/share/estonian/errmsg.txt:
        new errors converted from unknown error
      sql/share/french/errmsg.txt:
        new errors converted from unknown error
      sql/share/german/errmsg.txt:
        new errors converted from unknown error
      sql/share/greek/errmsg.txt:
        new errors converted from unknown error
      sql/share/hungarian/errmsg.txt:
        new errors converted from unknown error
      sql/share/italian/errmsg.txt:
        new errors converted from unknown error
      sql/share/japanese/errmsg.txt:
        new errors converted from unknown error
      sql/share/korean/errmsg.txt:
        new errors converted from unknown error
      sql/share/norwegian-ny/errmsg.txt:
        new errors converted from unknown error
      sql/share/norwegian/errmsg.txt:
        new errors converted from unknown error
      sql/share/polish/errmsg.txt:
        new errors converted from unknown error
      sql/share/portuguese/errmsg.txt:
        new errors converted from unknown error
      sql/share/romanian/errmsg.txt:
        new errors converted from unknown error
      sql/share/russian/errmsg.txt:
        new errors converted from unknown error
      sql/share/serbian/errmsg.txt:
        new errors converted from unknown error
      sql/share/slovak/errmsg.txt:
        new errors converted from unknown error
      sql/share/spanish/errmsg.txt:
        new errors converted from unknown error
      sql/share/swedish/errmsg.txt:
        new errors converted from unknown error
      sql/share/ukrainian/errmsg.txt:
        new errors converted from unknown error
      sql/slave.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/sp.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/sp_head.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/sql_acl.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/sql_analyse.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/sql_base.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/sql_class.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/sql_db.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/sql_delete.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/sql_handler.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/sql_insert.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/sql_load.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/sql_map.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/sql_parse.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
        multi-row command fixed
      sql/sql_prepare.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
        remover send_error ingected from 4.1
      sql/sql_rename.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/sql_repl.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/sql_select.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/sql_show.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/sql_table.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/sql_trigger.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/sql_udf.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/sql_update.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/sql_view.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/sql_yacc.yy:
        now my_printf_error is not better then my_error, but my_error call is shorter
      sql/table.cc:
        now my_printf_error is not better then my_error, but my_error call is shorter
      strings/my_vsnprintf.c:
        * format support added to my_vsprint
      8d71bcec