An error occurred fetching the project authors.
  1. 11 Nov, 2004 3 commits
    • unknown's avatar
      Rename: Item::val -> Item::val_real(). · 2e6fb936
      unknown authored
      sql/filesort.cc:
        val -> val_real
      sql/item.cc:
        val -> val_real
      sql/item.h:
        val -> val_real
      sql/item_buff.cc:
        val -> val_real
      sql/item_cmpfunc.cc:
        val -> val_real
      sql/item_cmpfunc.h:
        val -> val_real
      sql/item_func.cc:
        val -> val_real
      sql/item_func.h:
        val -> val_real
      sql/item_geofunc.cc:
        val -> val_real
      sql/item_geofunc.h:
        val -> val_real
      sql/item_row.h:
        val -> val_real
      sql/item_strfunc.cc:
        val -> val_real
      sql/item_strfunc.h:
        val -> val_real
      sql/item_subselect.cc:
        val -> val_real
      sql/item_subselect.h:
        val -> val_real
      sql/item_sum.cc:
        val -> val_real
      sql/item_sum.h:
        val -> val_real
      sql/item_timefunc.h:
        val -> val_real
      sql/item_uniq.h:
        val -> val_real
      sql/procedure.h:
        val -> val_real
      sql/sp_head.cc:
        val -> val_real
      sql/sql_analyse.cc:
        val -> val_real
      sql/sql_class.cc:
        val -> val_real
      sql/sql_select.cc:
        val -> val_real
      2e6fb936
    • unknown's avatar
      post-merge fixes for WL#1972 · 7ecaf256
      unknown authored
      sql/item.cc:
        post-merge fixes
      sql/sql_select.cc:
        post-merge fixes
      7ecaf256
    • unknown's avatar
      WL#1972 - manual merge with latest bk source tree · a5585f62
      unknown authored
      sql/item.cc:
        manual merge with latest bk source tree
      a5585f62
  2. 10 Nov, 2004 3 commits
    • unknown's avatar
      19e3c98b
    • unknown's avatar
      WL#1972 "Evaluate HAVING before SELECT select-list" · 69dcc5b4
      unknown authored
      - post-review changes
      
      
      sql/item.cc:
        - more/improved comments
      69dcc5b4
    • unknown's avatar
      1. When mixing NULL to a character string, · c5e6941e
      unknown authored
      the result takes its charset/collation
      attributes from the character string,
      e.g.  SELECT func(NULL, _latin2'string')
      now returns a latin2 result. This is
      done by introducing a new derivation
      (aka coercibility) level DERIVATION_IGNORABLE,
      which is used with Item_null.
      2. 'Pure' NULL is now BINARY(0), not CHAR(0).
      I.e. NULL is now more typeless.
      
      
      mysql-test/r/metadata.result:
        Fixing test results:
        CHAR(0) -> BINARY(0) for NULLs
      mysql-test/r/null.result:
        Testing mixing NULL with a character string with a number of functions.
      mysql-test/r/ps_2myisam.result:
        Fixing test results:
        CHAR(0) -> BINARY(0) for NULLs
      mysql-test/r/ps_3innodb.result:
        Fixing test results:
        CHAR(0) -> BINARY(0) for NULLs
      mysql-test/r/ps_4heap.result:
        Fixing test results:
        CHAR(0) -> BINARY(0) for NULLs
      mysql-test/r/ps_5merge.result:
        Fixing test results:
        CHAR(0) -> BINARY(0) for NULLs
      mysql-test/r/ps_6bdb.result:
        Fixing test results:
        CHAR(0) -> BINARY(0) for NULLs
      mysql-test/r/ps_7ndb.result:
        Fixing test results:
        CHAR(0) -> BINARY(0) for NULLs
      mysql-test/t/null.test:
        Testing mixing NULL with a character string with a number of functions.
      sql/item.cc:
        New derivation level.
      sql/item.h:
        New derivation level.
      c5e6941e
  3. 09 Nov, 2004 1 commit
    • unknown's avatar
      WL#1972 "Evaluate HAVING before SELECT select-list" · afbb5d8f
      unknown authored
      - post-review fix regarding Item_fields
      - added test for the changed name resolution
      
      
      mysql-test/r/having.result:
        Test for changed name resolution of Item_fields
      mysql-test/t/having.test:
        Test for changed name resolution of Item_fields
      sql/item.cc:
        - Changed Item_field::fix_fields to perform the same name
          resolution as Item_ref::fix_fields because column references
          of subqueries inside HAVING may be represented as Item_fields,
          and they need to be resolved as Item_refs.
        - Adjusted Item_field::fix_fields so that it has the same variable
          names and structure as Item_ref::fix_fields.
      afbb5d8f
  4. 07 Nov, 2004 2 commits
    • unknown's avatar
      postreview fixes · f1b9bf69
      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
      f1b9bf69
    • unknown's avatar
      After merge fixes · a23fdf7f
      unknown authored
      a23fdf7f
  5. 05 Nov, 2004 2 commits
    • unknown's avatar
      A fix and test case for the bug reported by Reggie: if character set · b3d84df1
      unknown authored
      of client equals to character set of connection, possibly required
      conversion to character set of column is not performed
      (prepared statements, data is supplied using placeholders).
      
      
      sql/item.cc:
        Fix for the bug reported by Reggie: if character_set_connection
        is equal to character_set_client, placeholder's value is not converted
        furhter to character set of column when it's different.
        This is because the original implementation left placeholder's character
        set intact (binary) if there were no need for client->connection conversion.
      tests/client_test.c:
        A test case for the conversion bug.
      b3d84df1
    • unknown's avatar
      WL#1972 "Evaluate HAVING before SELECT" · 47a96b31
      unknown authored
      - more tests, post-review changes, bug-fixes, simplifications, and improved comments
      
      
      mysql-test/r/having.result:
        - added tests for subqueries with HAVING
        - added tests for few other discovered bugs
        - renamed tables to the more standard t1,t2,..
      mysql-test/t/having.test:
        - added tests for subqueries with HAVING
        - added tests for few other discovered bugs
        - renamed tables to the more standard t1,t2,..
      sql/item.cc:
        - Extended the name resolution to support nested HAVING clauses in nested sub-queries
        - Factored out the code that resolves a column ref against a single query
        - Fixed several logical bugs
        - Removed unused variables
        - More/better comments
      sql/sql_base.cc:
        Corrected function spec.
      47a96b31
  6. 03 Nov, 2004 1 commit
    • unknown's avatar
      Fixes after merge with 4.1 · f5a47f15
      unknown authored
      FOUND is not a reserved keyword anymore
      Added Item_field::set_no_const_sub() to be able to mark fields that can't be substituted
      Added 'simple_select' method to be able to quickly determinate if a select_result is a normal SELECT
      Note that the 5.0 tree is not yet up to date: Sanja will have to fix multi-update-locks for this merge to be complete
      
      
      BUILD/SETUP.sh:
        Portability fix
      client/mysqltest.c:
        Portability fix
      mysql-test/r/drop.result:
        updated results
      mysql-test/r/func_str.result:
        New warnings (after merge)
      mysql-test/r/insert.result:
        Updated tests
      mysql-test/r/join_nested.result:
        Updated results (because of new column types in 5.0)
      mysql-test/r/lock_multi.result:
        Temporarly wrong results until Sanja fixes multi-update-lock in 5.0
      mysql-test/r/multi_update.result:
        Temporary fix until Sanja fixes multi-update locking
      mysql-test/r/ps_1general.result:
        Update of results after merge
      mysql-test/r/ps_2myisam.result:
        Update of results after merge
      mysql-test/r/ps_3innodb.result:
        Update of results after merge
      mysql-test/r/ps_4heap.result:
        Update of results after merge
      mysql-test/r/ps_5merge.result:
        Update of results after merge
      mysql-test/r/ps_6bdb.result:
        Update of results after merge
      mysql-test/r/query_cache.result:
        Update of results after merge
      mysql-test/r/range.result:
        New results for new tests
      mysql-test/r/rpl_auto_increment.result:
        Update with new 4.0 information
      mysql-test/r/rpl_charset.result:
        After merge fixes
      mysql-test/r/subselect.result:
        After merge fixes
      mysql-test/r/view.result:
        Temporary fix until multi-update-locking is fixed
      mysql-test/t/drop.test:
        Safety fix
      mysql-test/t/multi_update.test:
        Temporary fix until multi-update-locking is fixed
      mysql-test/t/rpl_charset.test:
        More comments
      mysql-test/t/sp-error.test:
        Updated comments
      mysql-test/t/view.test:
        Temporary fix until multi-update-locking is fixed
      scripts/mysql_fix_privilege_tables.sh:
        Better error message
      sql-common/client.c:
        More debugging
      sql/ha_ndbcluster.cc:
        After merge fixes
      sql/handler.cc:
        After merge fixes
      sql/item.cc:
        Simple optimization of creating item
        After merge fixed
        Added Item_field::set_no_const_sub() to be able to mark fields that can't be substituted
        The problem is that if you compare a string field to a binary string, you can't replace the field with a string constant as the binary comparison may then fail (The original field value may be in a different case)
      sql/item.h:
        Added Item::set_no_const_sub() to be able to mark fields that can't be substituted
      sql/item_cmpfunc.cc:
        Mark fields compared as binary to not be substituted.
      sql/item_func.cc:
        After merge fix
      sql/log_event.cc:
        After merge fix
      sql/mysql_priv.h:
        After merge fix
      sql/opt_range.cc:
        After merge fix
      sql/protocol.cc:
        Made flags uint instead of int (as it's used as a bit mask)
      sql/protocol.h:
        Made flags uint instead of int (as it's used as a bit mask)
      sql/protocol_cursor.cc:
        Made flags uint instead of int (as it's used as a bit mask)
        Indentation cleanups
      sql/sp.cc:
        After merge fixes
        Removed compiler warnings
      sql/sp_head.cc:
        After merge fixes
      sql/sql_base.cc:
        After merge fixes
        Removed 'send_error' from 'insert_fields()' as the error is sent higher up
      sql/sql_class.cc:
        Give assert if set_n_backup_item_arena is used twice
      sql/sql_class.h:
        Give assert if set_n_backup_item_arena is used twice
        After merge fixes
        Added 'simple_select' method to be able to quickly determinate if a select_result is a normal SELECT
      sql/sql_handler.cc:
        After merge fixes
      sql/sql_parse.cc:
        After merge fixes
      sql/sql_prepare.cc:
        After merge fixes
      sql/sql_select.cc:
        After merge fixes
        Moved 'build_equal_items' to optimize_cond() (logical place)
      sql/sql_table.cc:
        After merge fixes
      sql/sql_trigger.cc:
        After merge fixes
      sql/sql_update.cc:
        After merge fixes
        (This should be fixed by Sanja to have lower granuality locking of tables in multi-update)
      sql/sql_view.cc:
        After merge fixes
      sql/sql_yacc.yy:
        After merge fixes
        Don't have FOUND as a reserved keyword
      f5a47f15
  7. 02 Nov, 2004 2 commits
    • unknown's avatar
      WL#1972 "Evaluate HAVING before SELECT select-list" · 048d731a
      unknown authored
      - Changed name resolution for GROUP BY so that derived columns do not shadow table columns
        from the FROM clause. As a result GROUP BY now is handled as a true ANSI extentsion.
      - Issue a warning when HAVING is resolved into ambiguous columns, and prefer the columns from
        the GROUP BY clause over SELECT columns.
      
      
      mysql-test/r/having.result:
        Correct result for updated GROUP BY name resolution.
      sql/item.cc:
        - prefer GROUP columns, but if none is found use SELECT list
        - issue a waring when a field may be resolved ambiguously
        - more/fixed comments
      sql/mysql_priv.h:
        More flexible find_field_in_tables().
      sql/sp.cc:
        More flexible find_field_in_tables().
      sql/sql_base.cc:
        More flexible find_field_in_tables().
      sql/sql_help.cc:
        More flexible find_field_in_tables().
      sql/sql_select.cc:
        - name resolution of GROUP/ORDER BY column references is differentiated:
          - GROUP BY is resolved in SELECT and FROM clauses
          - ORDER BY is resolved only in SELECT (as before)
        - more informative variable names
        - more comments
      048d731a
    • unknown's avatar
      Many files: · fc04692c
      unknown authored
        Allow mixing of different character sets for more SQL functions.
      item_func.h:
        Allow mixing of different character sets for more SQL functions..
      
      
      sql/item_cmpfunc.cc:
        Allow mixing of different character sets for more SQL functions.
      sql/item_func.cc:
        Allow mixing of different character sets for more SQL functions.
      sql/item_func.h:
        Allow mixing of different character sets for more SQL functions..
      sql/item_strfunc.cc:
        Allow mixing of different character sets for more SQL functions.
      sql/item.cc:
        Allow mixing of different character sets for more SQL functions.
      sql/item.h:
        Allow mixing of different character sets for more SQL functions.
      mysql-test/t/ctype_recoding.test:
        Allow mixing of different character sets for more SQL functions.
      mysql-test/r/ctype_recoding.result:
        Allow mixing of different character sets for more SQL functions.
      fc04692c
  8. 29 Oct, 2004 2 commits
    • unknown's avatar
      A fix according to Monty's request: · 6e781e11
      unknown authored
      "uint *errors" is now a non-optional parameter in String:copy()
      and copy_and_convert().
      
      
      6e781e11
    • unknown's avatar
      Allow to convert to non-Unicode charset when mixing a string · a739f2d6
      unknown authored
      constant with a column. The string is converted into the column
      character set. It conversion doesn't lose data, then operation
      is possible. Otherwise, give an error, as it was earlier.
      
      
      sql/item.h:
        Change bool argument to uint flags:
        we have now two different flags.
      a739f2d6
  9. 28 Oct, 2004 1 commit
  10. 22 Oct, 2004 2 commits
    • unknown's avatar
      Followup to fix for bug#6050: fix valgrind warnings. · 1cd249e0
      unknown authored
      sql/item.cc:
        Fix valgrind errors: we need Item::name to point to PS memory
        as well.
      sql/item.h:
        set_field no longer can be reused as is for PS purposes.
      sql/sql_union.cc:
        Item_field::set_field -> Item_field::reset_field.
      1cd249e0
    • unknown's avatar
      A fix and test case for Bug#6050 "EXECUTE stmt reports ambiguous field · 4512a46e
      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.
      4512a46e
  11. 19 Oct, 2004 2 commits
    • unknown's avatar
      Review of all code pushed since last review · 4736d0fe
      unknown authored
      Simple optimzations and cleanups
      Removed compiler warnings and fixed portability issues
      Added client functions 'mysql_embedded()' to allow client to check if we are using embedded server
      Fixes for purify
      
      
      client/mysqlimport.c:
        Remove not used variable
      client/mysqltest.c:
        Remove usage of MAXPATHLEN (all MySQL code uses FN_REFLEN)
        Simplified code
        Remove usage of sprintf("%llu") as this is not portable
      include/mysql.h:
        Added mysql_embedded() to be able to easily check if we are using the embedded server
      innobase/srv/srv0start.c:
        Don't use memcmp() when using purify (to avoid false warnings)
      libmysql/libmysql.c:
        Added mysql_embedded() to be able to easily check if we are using the embedded server
      libmysql/libmysql.def:
        Added mysql_embedded() to be able to easily check if we are using the embedded server
      myisam/myisam_ftdump.c:
        Remove compiler warning
      myisam/myisamchk.c:
        Remove compiler warning
      myisam/rt_test.c:
        #ifdef not used code
      mysys/hash.c:
        Remove compiler warning (from last push)
      mysys/my_gethwaddr.c:
        Remove compiler warning
      ndb/src/ndbapi/ndberror.c:
        #ifdef not used code
      regex/regcomp.c:
        Remove not used code
      regex/regcomp.ih:
        Remove not used code (to remove compiler warnings)
      sql-common/client.c:
        Remove compiler warnings
      sql/field.cc:
        Simple optimization
      sql/ha_innodb.cc:
        Rename mysql_embedded -> mysqld_embedded
      sql/item.cc:
        Fix comments
        Move variables first on block
        Remove else after return
        Simple optimizations
        (no logic changes)
      sql/item_cmpfunc.cc:
        Added comment
      sql/mysql_priv.h:
        Rename mysql_embedded -> mysqld_embedded
      sql/mysqld.cc:
        Rename mysql_embedded -> mysqld_embedded
      sql/sql_acl.cc:
        Added comments
        simple optimization
        Fixed 'very unlikely' bug when doing REVOKE ALL PRIVILEGES
      sql/sql_select.cc:
        More comments
        Simple optimization
      sql/sql_show.cc:
        Simple changes to make similar code similar
        More comments
      sql/sql_string.cc:
        Trivial optimization and better code layout
      strings/Makefile.am:
        Change xml.c to use bcmp to avoid warnings from purify
      strings/xml.c:
        Change xml.c to use bcmp to avoid warnings from purify
      tests/client_test.c:
        Remove usage of MAXPATHLEN (all MySQL code uses FN_REFLEN)
      4736d0fe
    • unknown's avatar
      table.h, sql_select.h: · 05933f13
      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.
      05933f13
  12. 18 Oct, 2004 1 commit
  13. 15 Oct, 2004 1 commit
    • unknown's avatar
      A fix and test case for Bug#6049 "Loss of sign when using prepared · 9aefc403
      unknown authored
      statements and negative time/date values". 
      The bug was in wrong sprintf format used in the client library.
      The fix moves TIME -> string conversion functions to sql-common and
      utilized them in the client library.
      
      
      include/my_time.h:
        Declarations for new functions shared between the client and server.
      libmysql/libmysql.c:
        Fix for Bug#6049 "Loss of sign when using prepared statements and negative
        time/date values": use the same function as the server to convert
        date/time/datetime values to strings.
      sql-common/my_time.c:
        Implementation of my_{time,datetime,date,TIME}_to_str: it's
        needed by the client library, so it should be shared.
      sql/field.cc:
        Don't create String object if it's not needed.
      sql/item.cc:
        Don't create String object if it's not needed: TIME_to_string was
        moved to my_TIME_to_str, with different arguments.
      sql/item_timefunc.cc:
        Don't create String object if it's not needed.
      sql/mysql_priv.h:
        TIME_to_string and MAX_DATE_REP_LENGTH moved to the client library.
        MAX_DATE_REP_LENGTH was renamed to MAX_DATE_STRING_REP_LENGTH to not 
        conflict with the same name in libmysql.c
      sql/protocol.cc:
        Don't create String object if it's not needed.
      sql/time.cc:
        Implementation of my_{time,date,datetime,TIME}_to_str moved to my_time.c
        shared between the client and the server.
      tests/client_test.c:
        A test case for Bug#6049.
      9aefc403
  14. 11 Oct, 2004 1 commit
    • unknown's avatar
      Fixes for WL#1724 required by the third code review. · 0f0e514f
      unknown authored
      sql/item.cc:
        Document actual behavior.
      sql/opt_range.cc:
        - Added a test for range predicates comparing incomparable argumens
        - Removed TRP_GROUP_MIN_MAX class members that are not used.
        - Uncommented CPU cost
        - More standard function return values
      sql/sql_select.cc:
        Remove unnecessary test.
      0f0e514f
  15. 09 Oct, 2004 2 commits
    • unknown's avatar
      A small simplification: perform two actions at once, register a · acecc4dd
      unknown authored
      change, and perform it (the new Item changes registry).
      
      
      sql/item.cc:
        A small simplification: perform two actions at once, register a
        change, and perform it.
      sql/item_cmpfunc.cc:
        register_item_tree_change -> change_item_tree
      sql/item_func.cc:
        register_item_tree_change -> change_item_tree
      sql/item_row.cc:
        register_item_tree_change -> change_item_tree
      sql/item_strfunc.cc:
        register_item_tree_change -> change_item_tree
      sql/sql_class.h:
        register_item_tree_change -> change_item_tree
      sql/sql_select.cc:
        register_item_tree_change -> change_item_tree
      acecc4dd
    • unknown's avatar
      A fix and test case for Bug#5987 "subselect in bool function · 1d48aec2
      unknown authored
      crashes server (prepared statements)": the bug was that all boolean
      items always recovered its original arguments at statement cleanup 
      stage.
      This collided with Item_subselect::select_transformer, which tries to 
      permanently change the item tree to use a transformed subselect instead of
      original one.
      So we had this call sequence for prepare:
      mysql_stmt_prepare -> JOIN::prepare -> 
      Item_subselect::fix_fields -> the item tree gets transformed ->
      Item_bool_rowready_func2::cleanup, item tree is recovered to original
      state, while it shouldn't have been;
      mysql_stmt_execute -> attempts to execute a broken tree -> crash.
      Now instead of bluntly recovering all arguments of bool functions in 
      Item_bool_rowready_func2::cleanup, we recover only those
      which were changed, and do it in one place.
      There still would exist a possibility for a collision with subselect
      tranformation, if permanent and temporary changes were performed at the 
      same stage.
      But fortunately subselect transformation is always done first, so it 
      doesn't conflict with the optimization done by propogate_cond_constants.
      Now we have: 
      mysql_stmt_prepare -> JOIN::prepare -> subselect transformation 
      permanently changes the tree -> cleanup doesn't recover anything, 
      because nothing was registered for recovery.
      mysql_stmt_execute -> JOIN::prepare (the tree is already transformed, 
      so it doesn't change), JOIN::optimize -> 
      propogate_cond_constants -> temporary changes the item tree 
      with constants -> JOIN::execute -> cleanup -> 
      the changes done by propogate_cond_constants are recovered, as
      they were registered for recovery.
      
      
      mysql-test/r/ps.result:
        Bug#5987: test results fixed.
      mysql-test/t/ps.test:
        A test for bug#5987 "subselect in bool function crashes server 
        (prepared statements)"
      sql/item.cc:
        resolve_const_item is now responsible to register all changes of the 
        item tree for recovery
      sql/item.h:
        resolve_const_item signagture changed
      sql/item_cmpfunc.h:
        Arguments of boolean functions are now recovered using the 
        centralized registry of THD.
      sql/sql_class.cc:
        It's crucial to add new items to the beginning of the recovery list,
        so that the recovery is performed in LIFO mode: otherwise if we 
        change one node of a tree twice, it will be recovered to some intermediate
        state.
      sql/sql_select.cc:
        change_cond_ref_to_const and propogate_cond_constants are now responsible
        to register all changes of the item tree for recovery.
        The recovery is done using the centralized THD registry of
        changed tree items.
      1d48aec2
  16. 08 Oct, 2004 2 commits
    • unknown's avatar
      args_copy and cleunup() removed from Item_sum · c6b382d6
      unknown authored
      registration changing ITEM_SUM arguments added
      
      
      sql/item.cc:
        cleunup for Item_result_field
      sql/item.h:
        cleunup for Item_result_field
      sql/item_sum.cc:
        args_copy and cleunup() removed from Item_sum
      sql/item_sum.h:
        args_copy and cleunup() removed from Item_sum
      sql/sql_select.cc:
        registration changing ITEM_SUM arguments
      c6b382d6
    • unknown's avatar
      Deployment of centralized Item change registry, step 2: Item_ref · 166d19e9
      unknown authored
      doesn't need to have it's own recovery mechanism.
      
      
      sql/item.cc:
        Deployment of centralized Item change registry, step 2: Item_ref 
        doesn't need to have it's own recovery mechanism, so it was simplified.
      sql/item.h:
        Deployment of centralized Item change registry, step 2: Item_ref 
        doesn't need to have it's own recovery mechanism, so it was simplified.
      sql/item_cmpfunc.cc:
        - Item::split_sum_func now requires THD
        - use THD::register_item_tree_change
      sql/item_cmpfunc.h:
        - Item::split_sum_func now requires THD
      sql/item_func.cc:
        - Item::split_sum_func now requires THD
        - use THD::register_item_tree_change
      sql/item_func.h:
        - Item::split_sum_func now requires THD
      sql/item_row.cc:
        - Item::split_sum_func now requires THD
        - use THD::register_item_tree_change
      sql/item_row.h:
        - Item::split_sum_func now requires THD
      sql/item_strfunc.cc:
        - Item::split_sum_func now requires THD
        - use THD::register_item_tree_change to register changes in the item
          tree
      sql/item_strfunc.h:
        - Item::split_sum_func now requires THD
      sql/item_subselect.cc:
        - use updated Item_ref constructor
      sql/sql_base.cc:
        - Item::split_sum_func now requires THD
      sql/sql_select.cc:
        - Item::split_sum_func now requires THD
      sql/sql_yacc.yy:
        - use updated Item_ref constructor
      166d19e9
  17. 07 Oct, 2004 1 commit
    • unknown's avatar
      A fix for Bug#5748 "Prepared statement with BETWEEN and bigint values · 8fa6f37a
      unknown authored
      crashes mysqld": implementation for a generic item tree modifications
      registry. Every item tree modification which should be rolled back for
      subsequent execution of a prepared statement or stored procedure should
      be saved in the registry. All such modifications are rolled back at once
      during cleanup stage of PS.
      Actual fix for the bug just adds a call to register modifications to
      convert_constant_item.
      Post review fixes implemented.
      
      
      mysql-test/r/ps.result:
        A fix for bug#5748, test results fixed.
      mysql-test/t/ps.test:
        A test case for Bug#5748 "Prepared statement with BETWEEN and bigint 
        values crashes mysqld"
      sql/item.cc:
        Fix for Bug#5748 "Prepared statement with BETWEEN and bigint values
        crashes mysqld":
        First step in removing up item-specific cleanups: now all such
        tree modifications should be done using the genericm mechanism implemented
        in this changeset.
      sql/item.h:
        Fix for Bug#5748 "Prepared statement with BETWEEN and bigint values
        crashes mysqld": no need for an item-specific change record any more.
      sql/item_cmpfunc.cc:
        A fix for Bug#5748 "Prepared statement with BETWEEN and bigint 
        values crashes mysqld": register item tree transformation performed by
        convert_constant_item.
      sql/sql_class.cc:
        Implementation for item tree transformations registry.
      sql/sql_class.h:
        Declarations, necessary for the tree transformations registry.
      sql/sql_parse.cc:
        Assert that the item tree transformations registry is not used for 
        conventional execution.
      sql/sql_prepare.cc:
        Use of the item tree modifications registry in prepared statements:
        rollback all modifications in the end of statement prepare and execute.
        Also we now always set thd->current_arena to be able to determine that
        this is an execution of prepared statement inside the registry code.
      tests/client_test.c:
        A typo fixed.
      8fa6f37a
  18. 04 Oct, 2004 1 commit
    • unknown's avatar
      A couple of typos fixed. · 48bf8259
      unknown authored
      sql/item.cc:
        A typo fixed in a comment, which is probably not valid any more
      sql/sql_class.h:
        no such class Ttem_subselect.
      48bf8259
  19. 02 Oct, 2004 1 commit
    • unknown's avatar
      More fixes for strict mode: · 6966e869
      unknown authored
      More tests.
      Better error messages.
      Fixed bug when checking if we updated all needed columns for INSERT.
      Give an error if we encounter a wrong float value during parsing.
      Don't print DEFAULT for columns without a default value in SHOW CREATE/SHOW FIELDS.
      Fixed UPDATE IGNORE when using STRICT mode.
      
      
      include/mysqld_error.h:
        More error messages for strict mode
      include/sql_state.h:
        Fixed wrong state
        New error message
      mysql-test/r/alter_table.result:
        Updated results for not automatic default fields
      mysql-test/r/auto_increment.result:
        Better error messages
      mysql-test/r/create.result:
        Updated results for not automatic default fields
        Better error messages
      mysql-test/r/ctype_collate.result:
        Updated results for not automatic default fields
      mysql-test/r/ctype_latin1_de.result:
        Updated results for not automatic default fields
      mysql-test/r/ctype_many.result:
        Updated results for not automatic default fields
      mysql-test/r/ctype_recoding.result:
        Updated results for not automatic default fields
      mysql-test/r/gis-rtree.result:
        Updated results for not automatic default fields
      mysql-test/r/gis.result:
        Updated results for not automatic default fields
      mysql-test/r/innodb.result:
        Updated results for not automatic default fields
      mysql-test/r/insert.result:
        Better error messages
      mysql-test/r/insert_select.result:
        Better error messages
      mysql-test/r/isam.result:
        Updated results for not automatic default fields
      mysql-test/r/key.result:
        Better error messages
      mysql-test/r/merge.result:
        Updated results for not automatic default fields
      mysql-test/r/null.result:
        Better error messages
      mysql-test/r/null_key.result:
        Better error messages
      mysql-test/r/ps_1general.result:
        Updated results for not automatic default fields
      mysql-test/r/select.result:
        Drop views that may interfere with later results
      mysql-test/r/show_check.result:
        Updated results for not automatic default fields
      mysql-test/r/sp.result:
        Updated results for not automatic default fields
      mysql-test/r/strict.result:
        More tests
      mysql-test/r/type_set.result:
        Updated results for not automatic default fields
      mysql-test/r/warnings.result:
        Better error messages
      mysql-test/t/insert.test:
        Using wrong float values now gives an error
      mysql-test/t/select.test:
        Drop views that may interfere with later results
      mysql-test/t/strict.test:
        More tests
      scripts/mysql_fix_privilege_tables.sql:
        Add missing DEFAULT's
      sql/field.cc:
        Fix some strict mode issues for float and double
      sql/field.h:
        Fix DEFAULT handling
      sql/item.cc:
        Give an error if we encounter a wrong float value during parsing.
        Give an error if we use DEFAULT() on a field that doesn't have a default value.
      sql/item.h:
        Give an error if we encounter a wrong float value during parsing.
      sql/mysqld.cc:
        More debug info
      sql/share/czech/errmsg.txt:
        Better error messages
      sql/share/danish/errmsg.txt:
        Better error messages
      sql/share/dutch/errmsg.txt:
        Better error messages
      sql/share/english/errmsg.txt:
        Better error messages
      sql/share/estonian/errmsg.txt:
        Better error messages
      sql/share/french/errmsg.txt:
        Better error messages
      sql/share/german/errmsg.txt:
        Better error messages
      sql/share/greek/errmsg.txt:
        Better error messages
      sql/share/hungarian/errmsg.txt:
        Better error messages
      sql/share/italian/errmsg.txt:
        Better error messages
      sql/share/japanese/errmsg.txt:
        Better error messages
      sql/share/korean/errmsg.txt:
        Better error messages
      sql/share/norwegian-ny/errmsg.txt:
        Better error messages
      sql/share/norwegian/errmsg.txt:
        Better error messages
      sql/share/polish/errmsg.txt:
        Better error messages
      sql/share/portuguese/errmsg.txt:
        Better error messages
      sql/share/romanian/errmsg.txt:
        Better error messages
      sql/share/russian/errmsg.txt:
        Better error messages
      sql/share/serbian/errmsg.txt:
        Better error messages
      sql/share/slovak/errmsg.txt:
        Better error messages
      sql/share/spanish/errmsg.txt:
        Better error messages
      sql/share/swedish/errmsg.txt:
        Better error messages
      sql/share/ukrainian/errmsg.txt:
        Better error messages
      sql/sql_insert.cc:
        Fixed bug in last push of checking of default values.
      sql/sql_parse.cc:
        Enum fields has always a default value
      sql/sql_show.cc:
        Don't print DEFAULT for columns without a default value in SHOW CREATE/SHOW FIELDS
      sql/sql_table.cc:
        Fixed storing/retrieving of NO_DEFAULT_VALUE_FLAG
      sql/sql_update.cc:
        Don't abort for wrong values for UPDATE IGNORE
      sql/sql_yacc.yy:
        Abort if we find a wrong float value
      sql/table.cc:
        Fixed storing/retrieving of NO_DEFAULT_VALUE_FLAG
      6966e869
  20. 30 Sep, 2004 1 commit
    • unknown's avatar
      Final solution for bug# 4302 "Ambiguos order by when renamed column is · 53edc92c
      unknown authored
      identical to another in result"
      According to SQL standard queries like 
      "select t1.a as col from t1, t2 order by a" should return an error if
      both tables contain field a.
      
      
      mysql-test/r/order_by.result:
        Updated test to conform SQL-standard.
      mysql-test/t/order_by.test:
        Updated test to conform SQL-standard.
      sql/item.cc:
        find_item_in_list() has now one more out parameter which is not used
        in item.cc functions.
      sql/mysql_priv.h:
        find_item_in_list(): Added boolean out parameter "unaliased" which
        indicates that we have found field by its original name and not by
        its alias in item (select) list.
      sql/sql_base.cc:
        find_item_in_list(): Added boolean out parameter "unaliased" which
        indicates that we have found field by its original name and not by
        its alias in item (select) list. This means that additional check is
        required to ensure there will be no ambiguity if we would search for this
        field in all tables.
      sql/sql_select.cc:
        find_order_in_list(): If we have found field in select list by its
        original name and not by its alias then we should perform additional
        check to ensure that there will be no ambiguity if we will search for
        this field in all tables. Also small cleanup.
      53edc92c
  21. 26 Sep, 2004 1 commit
    • unknown's avatar
      postreview fix · 28ab42bb
      unknown authored
      sql/field.cc:
        comments added
      sql/item.cc:
        comments added
        code made more clean
      28ab42bb
  22. 25 Sep, 2004 1 commit
    • unknown's avatar
      postreview fixes (BUG#5618 & BUG#5590) · 4038218b
      unknown authored
      sql/field.cc:
        fixed compatibility fields type detection
      sql/item.cc:
        fixed compatibility fields detection with using standard method for all fields, also some bugs are fixed
      sql/sql_derived.cc:
        some cleanup
      4038218b
  23. 17 Sep, 2004 4 commits
    • unknown's avatar
      A fix and test case for bug#5510 "inserting Null in AutoIncrement primary · 52683755
      unknown authored
      key Column Fails".
      
      
      mysql-test/r/ps.result:
        Test results updated: a test case for Bug#5510 "inserting Null in 
        AutoIncrement primary key Column Fails".
      mysql-test/r/ps_2myisam.result:
        Bug#5510: a different warning in case of NULL->default truncation.This is 
        OK, the new warning is the same as produced by conventional execution.
      mysql-test/r/ps_3innodb.result:
        Bug#5510: a different warning in case of NULL->default truncation.This is 
        OK, the new warning is the same as produced by conventional execution.
      mysql-test/r/ps_4heap.result:
        Bug#5510: a different warning in case of NULL->default truncation.This is 
        OK, the new warning is the same as produced by conventional execution.
      mysql-test/r/ps_5merge.result:
        Bug#5510: a different warning in case of NULL->default truncation.This is 
        OK, the new warning is the same as produced by conventional execution.
      mysql-test/r/ps_6bdb.result:
        Bug#5510: a different warning in case of NULL->default truncation.This is 
        OK, the new warning is the same as produced by conventional execution.
      mysql-test/t/ps.test:
        A test case for Bug#5510 "inserting Null in AutoIncrement primary key Column 
        Fails".
      sql/item.cc:
        A fix for bug#5510 "inserting Null in AutoIncrement primary key Column 
        Fails": use proper Field API function for NULL placholeders.
      52683755
    • unknown's avatar
      fixed error handling if creating derived table failed · 580f12cc
      unknown authored
      single row subquery always can return NULL (no rows found) (BUG#5590)
      
      
      mysql-test/r/subselect.result:
        maybe_null flag returning by subquwery for temporary table creation
      mysql-test/t/subselect.test:
        maybe_null flag returning by subquwery for temporary table creation
      sql/item.cc:
        storing maybe_null in type holder
      sql/item_subselect.cc:
        single row subquery always can return NULL (no rows found)
      sql/sql_derived.cc:
        fixed error handling if creating derived table failed
      580f12cc
    • unknown's avatar
      Do not try use fields examples is expression and fiend used or SET/ENUM field... · f177c76f
      unknown authored
      Do not try use fields examples is expression and fiend used or SET/ENUM field used in types merging procedure (BUG#5618)
      
      
      mysql-test/r/union.result:
        merging ENUM and SET fields in one UNION
      mysql-test/t/union.test:
        merging ENUM and SET fields in one UNION
      f177c76f
    • unknown's avatar
      Removed wrong warnings in test suite (This was because select_insert /... · e74b00bb
      unknown authored
      Removed wrong warnings in test suite (This was because select_insert / select_create results was not freed.
      Added thd to openfrm() for initialization of TABLE->in_use. This fixed a bug in BDB handling where table->in_use was used early
      
      
      mysql-test/r/key.result:
        Added new tests that shows a bug in warnings hat
      mysql-test/t/key.test:
        Added new tests that shows a bug in warnings hat
      sql/handler.cc:
        Added thd to openfrm() for initialization of TABLE->in_use
      sql/item.cc:
        New function to avoid warnings when giving field a value
      sql/item.h:
        New function to avoid warnings when giving field a value
      sql/mysql_priv.h:
        Added thd to openfrm() for initialization of TABLE->in_use
      sql/opt_range.cc:
        Don't give warnings in optimizer when internally storing a field value in a field. (Should be ok as we ar checking the feild in the WHERE clause later)
      sql/sql_base.cc:
        Give memroot explicitely to open_unireg_entry() and open_table() (Makes code simpler)
        Ensure that table->in_use is set early
        New arguments for openfrm()
      sql/sql_insert.cc:
        More debugging & comments
      sql/sql_parse.cc:
        Delete results for select_insert and select_create. This fixed a bug that generated warnings in test suite
      sql/sql_select.h:
        Don't give warnings in optimizer when internally storing a field value in a field. (Should be ok as we ar checking the feild in the WHERE clause later)
      sql/sql_table.cc:
        New arguments to open_table() and openfrm()
      sql/table.cc:
        Added thd to openfrm() for initialization of TABLE->in_use
        This fixes some bugs in BDB where table->in_use was used
      e74b00bb
  24. 16 Sep, 2004 1 commit
    • unknown's avatar
      item.cc: · 79d33f95
      unknown authored
        Bug #5561 No BINARY_FLAG in metadata
      
      
      sql/item.cc:
        Bug #5561 No BINARY_FLAG in metadata
      79d33f95
  25. 09 Sep, 2004 1 commit
    • unknown's avatar
      After merge fixes of merge with 4.1 that included the new arena code. · 33efc967
      unknown authored
      Fixed (together with Guilhem) bugs in mysqlbinlog regarding --offset
      Prefix addresses with 0x for easier comparisons of debug logs
      Fixed problem where MySQL choosed index-read even if there would be a much better range on the same index
      This fix changed some 'index' queries to 'range' queries in the test suite
      Don't create 'dummy' WHERE clause for trivial WHERE clauses where we can remove the WHERE clause.
      This fix removed of a lot of 'Using where' notes in the test suite.
      Give NOTE instead of WARNING if table/function doesn't exists when using DROP IF EXISTS
      Give NOTE instead of WARNING for safe field-type conversions
      
      
      Makefile.am:
        Don't automaticly update files from bk
      client/mysqlbinlog.cc:
        Merge with 4.1 (+ apply bug fixes for --offset and --start-position)
      include/my_sys.h:
        Faster clear_alloc_root()
      mysql-test/r/bdb.result:
        Updated results after merge
      mysql-test/r/create.result:
        Updated results after merge
      mysql-test/r/func_group.result:
        Updated results after merge
      mysql-test/r/func_if.result:
        Updated results after merge
      mysql-test/r/heap_btree.result:
        Updated results after merge
      mysql-test/r/index_merge.result:
        Updated results after merge
      mysql-test/r/index_merge_ror.result:
        Updated results after merge
      mysql-test/r/innodb.result:
        Updated results after merge
      mysql-test/r/join_outer.result:
        Updated results after merge
      mysql-test/r/mysqlbinlog2.result:
        Updated results after merge
      mysql-test/r/negation_elimination.result:
        Updated results after merge
      mysql-test/r/null.result:
        Updated results after merge
        Added more tests
      mysql-test/r/null_key.result:
        Updated results after merge
        Added more tests
      mysql-test/r/order_by.result:
        Updated results after merge
      mysql-test/r/range.result:
        Updated results after merge
        Added more tests
      mysql-test/r/rpl_charset.result:
        Updated results after merge
      mysql-test/r/sp-error.result:
        Updated results after merge
      mysql-test/r/sp.result:
        Updated results after merge
        Added delete of some stored procedures in an attempt to be able to re-run test even if it aborts in the middle
      mysql-test/r/type_blob.result:
        Updated results after merge
        (Some warnings are now notes)
      mysql-test/r/user_var.result:
        Updated results after merge
        Added more tests
      mysql-test/r/variables.result:
        Updated results after merge
      mysql-test/r/view.result:
        Updated results after merge
      mysql-test/t/mysqlbinlog2.test:
        Updated tests to use new positions
      mysql-test/t/null.test:
        More tests
      mysql-test/t/null_key.test:
        More tests
      mysql-test/t/range.test:
        More tests
      mysql-test/t/rpl_charset.test:
        Avoid big diffs in the future if tests changes
      mysql-test/t/sp-error.test:
        Updated error numbers
      mysql-test/t/sp-security.test:
        Updated error numbers
      mysql-test/t/sp.test:
        Updated results after merge
        Added delete of some stored procedures in an attempt to be able to re-run test even if it aborts in the middle
      mysql-test/t/user_var.test:
        More tests
      mysql-test/t/view.test:
        Updated error numbers
      mysys/my_alloc.c:
        Write into debug log the address of the allocated area
      sql/ha_isam.cc:
        Prefix addresses with 0x for easier comparisons of debug logs
      sql/ha_myisam.cc:
        Prefix addresses with 0x for easier comparisons of debug logs
      sql/ha_ndbcluster.cc:
        Add missing enum to switch
      sql/handler.cc:
        remove compiler warning
      sql/item.cc:
        More debugging
        Simple cleanup
      sql/item.h:
        Move Item::cleanup() to item.cc
      sql/item_cmpfunc.cc:
        Fix arena code
      sql/item_subselect.cc:
        After merge fixes
      sql/item_subselect.h:
        After merge fixes
      sql/item_sum.cc:
        Updated comment
      sql/log_event.cc:
        Remove wrong test
      sql/mysql_priv.h:
        Indentation fixes
      sql/mysqld.cc:
        After merge fixes
        Added 0x to pointers in debug log
      sql/opt_range.cc:
        Fixed problem where MySQL choosed index-read even if there would be a much better range on the same index
        This fix changed some 'index' queries to 'range' queries in the test suite
      sql/set_var.cc:
        Indentation fixes
      sql/sp_head.cc:
        Set state to INITIALIZED to make SP work with new arena code
      sql/sql_base.cc:
        After merge fixes
      sql/sql_class.cc:
        More debugging
        Use clear_alloc_root() instead of init_alloc_root() as the former is faster
      sql/sql_class.h:
        New method 'only_prepare()'
      sql/sql_lex.cc:
        After merge fixes
      sql/sql_lex.h:
        After merge fixes
      sql/sql_parse.cc:
        Fix for timezone tables. (The old way to add timezone tables to global list in 'create_total_list' doesn't work anymore)
        Give NOTE instead of WARNING if table/function doesn't exists when using DROP IF EXISTS
      sql/sql_prepare.cc:
        After merge fixes
      sql/sql_select.cc:
        Don't create 'dummy' WHERE clause for trivial WHERE clauses where we can remove the WHERE clause.
        This fix removed of a lot of 'Using where' notes in the test suite
      sql/sql_table.cc:
        Give NOTE instead of WARNING if table/function doesn't exists when using DROP IF EXISTS
      sql/sql_union.cc:
        After merge fix
      sql/sql_view.cc:
        After merge fix
      sql/table.cc:
        After merge fix
      sql/tztime.cc:
        Update timezone table handling to use new table lists structure
      sql/tztime.h:
        Update timezone table handling to use new table lists structure
      sql/unireg.cc:
        Use 0x before pointers
      33efc967