An error occurred fetching the project authors.
  1. 19 Oct, 2006 1 commit
    • unknown's avatar
      Fix for bug #20732: Partial index and long sjis search with '>' fails sometimes · da7af481
      unknown authored
      We miss some records sometimes using RANGE method if we have
      partial key segments.
      Example:
        Create table t1(a char(2), key(a(1)));
        insert into t1 values ('a'), ('xx');
        select a from t1 where a > 'x';
      We call index_read() passing 'x' key and HA_READ_AFTER_KEY flag
      in the handler::read_range_first() wich is wrong because we have
      a partial key segment for the field and might miss records like 'xx'.
      
      Fix: don't use open segments in such a case.
      
      
      mysql-test/r/range.result:
        Fix for bug #20732: Partial index and long sjis search with '>' fails sometimes
          - test result.
      mysql-test/t/range.test:
        Fix for bug #20732: Partial index and long sjis search with '>' fails sometimes
          - test case.
      sql/opt_range.cc:
        Fix for bug #20732: Partial index and long sjis search with '>' fails sometimes
          - check if we have a partial key segment for a Item_func::GT_FUNC;
            if so, don't set NEAR_MIN flag in order to use HA_READ_KEY_OR_NEXT
            instead of HA_READ_AFTER_KEY.
      sql/opt_range.h:
        Fix for bug #20732: Partial index and long sjis search with '>' fails sometimes
          - key segment 'flag' slot added.
      sql/sql_select.cc:
        Fix for bug #20732: Partial index and long sjis search with '>' fails sometimes
          - test (HA_PART_KEY_SEG | HA_NULL_PART) as we split it in the sql/table.cc
      sql/table.cc:
        Fix for bug #20732: Partial index and long sjis search with '>' fails sometimes
          - set HA_NULL_PART flag instead of HA_PART_KEY_SEG in order not to mix them.
      da7af481
  2. 06 Sep, 2006 1 commit
    • unknown's avatar
      Fixed bug #5500: EXPLAIN returned a wrong select_type for queries using views. · 22c3e7b4
      unknown authored
      Select_type in the EXPLAIN output for the query SELECT * FROM t1 was
      'SIMPLE', while for the query SELECT * FROM v1, where the view v1
      was defined as SELECT * FROM t1, the EXPLAIN output contained 'PRIMARY'
      for the select_type column.
       
      
      
      mysql-test/r/group_by.result:
        Adjusted results after the fix for bug #5500.
      mysql-test/r/information_schema.result:
        Adjusted results after the fix for bug #5500.
      mysql-test/r/olap.result:
        Adjusted results after the fix for bug #5500.
      mysql-test/r/range.result:
        Adjusted results after the fix for bug #5500.
      mysql-test/r/view.result:
        Added a test case for bug #5500.
        Adjusted other results.
      mysql-test/r/view_grant.result:
        Adjusted results after the fix for bug #5500.
      mysql-test/t/view.test:
        Added a test case for bug #5500.
      22c3e7b4
  3. 31 Aug, 2006 1 commit
    • unknown's avatar
      Fixed bug #16249: different results for a range with an without index · c4c36e17
      unknown authored
      when a range condition use an invalid DATETIME constant.
      Now we do not use invalid DATETIME constants to form end keys for
      range intervals: range analysis just ignores predicates with such
      constants.  
      
      
      mysql-test/r/query_cache.result:
        Adjusted result warnings when adding a fix for bug #16249.
      mysql-test/r/range.result:
        Added a test case for bug #16249.
      mysql-test/t/range.test:
        Added a test case for bug #16249.
      c4c36e17
  4. 16 Aug, 2006 1 commit
    • unknown's avatar
      Fixed bug #18165. · c8cafde7
      unknown authored
      Made [NOT]BETWEEN predicates SARGable in respect to the second and 
      the third arguments.
      
      
      mysql-test/r/range.result:
        Added a test case to bug #18165.
      mysql-test/t/range.test:
        Added a test case to bug #18165.
      sql/opt_range.cc:
        Fixed bug #18165.
        Made [NOT]BETWEEN predicates SARGable in respect to the second and 
        the third arguments.
        Put in a separate function called get_full_func_mm_tree the functionality
        that builds a conjunction of all SEL_TREEs for a simple predicate of the
        form (f op c), where f was a field and c was a constant, applying different
        equalities f=f' with f' being another field.
      c8cafde7
  5. 15 Aug, 2006 1 commit
    • unknown's avatar
      BUG#21282: Incorrect query results for "t.key NOT IN (<big const list>) · 9cf4750e
      unknown authored
      In fix for BUG#15872, a condition of type "t.key NOT IN (c1, .... cN)"
      where N>1000, was incorrectly converted to
        (-inf < X < c_min) OR (c_max < X)
      Now this conversion is removed, we dont produce any range lists for such
      conditions.
      
      
      mysql-test/r/range.result:
        BUG#21282: Testcase
      mysql-test/t/range.test:
        BUG#21282: Testcase
      sql/opt_range.cc:
        BUG#21282: Incorrect query results for "t.key NOT IN (<big const list>) 
        In fix for BUG#15872, a condition of type "t.key NOT IN (c1, .... cN)"
        where N>1000, was incorrectly converted to 
          (-inf < X < c_min) OR (c_max < X)
        Now this conversion is removed, we dont produce any range lists for such
        conditions.
      9cf4750e
  6. 01 Jul, 2006 1 commit
  7. 30 Jun, 2006 1 commit
  8. 13 Oct, 2005 1 commit
    • unknown's avatar
      select.result, mysqldump-max.result: · 6bf7a0f3
      unknown authored
        after merge fix.
      range.result:
        fixing result accordingly
        ,
      cast.result:
        after merge fix
      range.test:
        Avoid SELECT'ing of BINARY column not to output 0x00 bytes.
      
      
      mysql-test/t/range.test:
        Avoid SELECT'ing of BINARY column not to output 0x00 bytes.
      mysql-test/r/cast.result:
        after merge fix
      mysql-test/r/mysqldump-max.result:
        after merge fix.
      mysql-test/r/range.result:
        fixing result accordingly
        ,
      mysql-test/r/select.result:
        after merge fix.
      6bf7a0f3
  9. 11 Oct, 2005 1 commit
    • unknown's avatar
      Reviewing new pushed code · 0ce12f70
      unknown authored
      - CHAR() now returns binary string as default
      - CHAR(X*65536+Y*256+Z) is now equal to CHAR(X,Y,Z) independent of the character set for CHAR()
      - Test for both ETIMEDOUT and ETIME from pthread_cond_timedwait()
        (Some old systems returns ETIME and it's safer to test for both values
         than to try to write a wrapper for each old system)
      - Fixed new introduced bug in NOT BETWEEN X and X
      - Ensure we call commit_by_xid or rollback_by_xid for all engines, even if one engine has failed
      - Use octet2hex() for all conversion of string to hex
      - Simplify and optimize code
      
      
      client/mysqldump.c:
        Simple optimizations of new code
        Indentation fixes
      client/mysqltest.c:
        Removed not needed variable
      include/mysql_com.h:
        Made octec2hex() more usable
      mysql-test/r/ctype_utf8.result:
        CHAR() now returns binary string as default
      mysql-test/r/func_str.result:
        CHAR() now returns binary string as default
      mysql-test/r/range.result:
        Added test to verify new introduced bug in NOT BETWEEN X and X
      mysql-test/r/user_var-binlog.result:
        CHAR() now returns binary string as default
      mysql-test/r/view.result:
        More tests of view rename
      mysql-test/t/ctype_utf8.test:
        CHAR() now returns binary string as default
      mysql-test/t/func_str.test:
        CHAR() now returns binary string as default
      mysql-test/t/range.test:
        Added test to verify new introduced bug in NOT BETWEEN X and X
      mysql-test/t/view.test:
        More tests of view rename
      mysys/mf_keycache.c:
        Indentation changes
        Test for both ETIMEDOUT and ETIME from pthread_cond_timedwait()
      mysys/my_os2cond.c:
        Fix to MySQL coding style
        Optimized functions
      mysys/thr_lock.c:
        Test for both ETIMEDOUT and ETIME from pthread_cond_timedwait()
      mysys/thr_mutex.c:
        Test for both ETIMEDOUT and ETIME from pthread_cond_timedwait()
      server-tools/instance-manager/instance.cc:
        Test for both ETIMEDOUT and ETIME from pthread_cond_timedwait()
      server-tools/instance-manager/thread_registry.cc:
        Test for both ETIMEDOUT and ETIME from pthread_cond_timedwait()
      sql/ha_federated.cc:
        Use octet2hex()
      sql/ha_ndbcluster.cc:
        Removed not used variable
      sql/handler.cc:
        Simplify code
        Use *NONE* instead of 'none' for not existing storage engine
        Ensure we call commit_by_xid or rollback_by_xid for all engines, even if one engine has failed
      sql/item.h:
        Remove not needed test for *ref.  (If ref is set, it should never point at 0)
      sql/item_func.cc:
        Test for both ETIMEDOUT and ETIME from pthread_cond_timedwait()
        Simplify code
        More comments
        Require that last argument to find_and_check_access() is given
        (Made code shorter and faster)
      sql/item_strfunc.cc:
        Changed CHAR() to return result in binary collation
        CHAR(X*65536+Y*256+Z) is now equal to CHAR(X,Y,Z) independent of the character set for CHAR()
        
        Bar will shortly add the following syntax:
        CHAR(.... USING character_set)
        and ensure that
        CONVERT(CHAR(....) USING utf8) cuts not legal utf8 strings
        Use ocet2hex()
      sql/item_strfunc.h:
        CHAR() now returns a binary string
      sql/log_event.cc:
        Use octet2hex()
        Simplify code
      sql/parse_file.cc:
        Indentation fixes
        Use for() instead of while()
      sql/password.c:
        Make octet2hex() more generally usable by returning pointer to end 0
      sql/slave.cc:
        Test for both ETIMEDOUT and ETIME from pthread_cond_timedwait()
      sql/sql_base.cc:
        Indentation fixes
      sql/sql_insert.cc:
        Test for both ETIMEDOUT and ETIME from pthread_cond_timedwait()
      sql/sql_manager.cc:
        Test for both ETIMEDOUT and ETIME from pthread_cond_timedwait()
      sql/sql_parse.cc:
        Don't check thd->db when checking for function privileges
      sql/sql_prepare.cc:
        Fixed wrong merge
      sql/sql_select.cc:
        Fixed new bug for NOT BETWEEN X and X
      sql/sql_show.cc:
        Removed not used variable
      sql/sql_table.cc:
        Indentation fixed
        Removed DBUG_PRINT that is obvious from context
      sql/sql_view.cc:
        Simplify code
      sql/unireg.cc:
        Use octet2hex()
      0ce12f70
  10. 29 Sep, 2005 1 commit
    • unknown's avatar
      Fix for BUG#13455: Make "ref" optimizer able to make this inference: · 8bdb41ab
      unknown authored
      "t.key BETWEEN c1 AND c2" and c1 = c2 -> can access table t using "t.key = c1".
      
      
      mysql-test/r/heap.result:
        BUG#13455: updated test results
      mysql-test/r/innodb.result:
        BUG#13455: updated test results
      mysql-test/r/myisam.result:
        BUG#13455: updated test results
      mysql-test/r/range.result:
        Testcase for BUG#13455
      mysql-test/t/range.test:
        Testcase for BUG#13455
      8bdb41ab
  11. 21 Sep, 2005 1 commit
  12. 13 Sep, 2005 1 commit
    • unknown's avatar
      Added option --valgrind-mysqltest to mysql-test-run · f8f1c016
      unknown authored
      Added flag to Field::store(longlong) to specify if value is unsigned.
      This fixes bug #12750: Incorrect storage of 9999999999999999999 in DECIMAL(19, 0)
      Fixed warning from valgrind in CREATE ... SELECT
      Fixed double free of mysql.options if reconnect failed
      
      
      mysql-test/mysql-test-run.sh:
        Added option --valgrind-mysqltest to allow one to run mysqltest with valgrind
      mysql-test/r/bigint.result:
        Update results after fix for Field::store(longlong)
      mysql-test/r/range.result:
        Update results after fix for Field::store(longlong)
      mysql-test/r/strict.result:
        Update results after fix for Field::store(longlong)
        (This fixes some wrong results when storing things into bigint columns)
      mysql-test/r/type_ranges.result:
        Update results after fix for Field::store(longlong)
      mysql-test/t/bigint.test:
        Added testing for #12750: Incorrect storage of 9999999999999999999 in DECIMAL(19, 0)
      mysql-test/t/innodb.test:
        Removed comments affected by this bug fix
      mysql-test/t/mysqldump.test:
        Fixed result to not depend on existing config files
      mysql-test/t/range.test:
        0xff numbers are now unsigned
      mysql-test/t/strict.test:
        Added errors for things that previously (wrongly) succeeded
      sql-common/client.c:
        Fixed double free of mysql.options if reconnect failed
      sql/field.cc:
        Added flag to Field::store(longlong) to specify if value is unsigned
      sql/field.h:
        Added flag to Field::store(longlong) to specify if value is unsigned
      sql/field_conv.cc:
        Fixed calls to Field::store(longlong,flag)
      sql/ha_ndbcluster.cc:
        Fixed calls to Field::store(longlong,flag)
      sql/handler.cc:
        Fixed calls to Field::store(longlong,flag)
      sql/item.cc:
        Fixed calls to Field::store(longlong,flag)
      sql/item_sum.cc:
        Fixed calls to Field::store(longlong,flag)
      sql/sp.cc:
        Fixed calls to Field::store(longlong,flag)
      sql/sql_acl.cc:
        Fixed calls to Field::store(longlong,flag)
      sql/sql_help.cc:
        Fixed calls to Field::store(longlong,flag)
      sql/sql_show.cc:
        Fixed calls to Field::store(longlong,flag)
      sql/sql_table.cc:
        Fixed varning from valgrind
      sql/sql_udf.cc:
        Fixed calls to Field::store(longlong,flag)
      sql/tztime.cc:
        Fixed calls to Field::store(longlong,flag)
      sql/unireg.cc:
        Fixed calls to Field::store(longlong,flag)
      f8f1c016
  13. 16 Jul, 2005 1 commit
    • unknown's avatar
      opt_range.cc: · e2bd7401
      unknown authored
        Fixed bug #11853.
        Corrected the code of the range optimization for
        NOT IN and NOT BETWEEN.
      range.test, range.result:
        Fixed bug #11853.
      
      
      mysql-test/t/range.test:
        Fixed bug #11853.
      sql/opt_range.cc:
        Fixed bug #11853.
        Corrected the code of the range optimization for
        NOT IN and NOT BETWEEN.
      e2bd7401
  14. 28 Jun, 2005 1 commit
    • unknown's avatar
      range.result, range.test: · 1031b871
      unknown authored
        Added a test case for bug #10031.
      opt_range.cc:
        Fixed bug #10031: range condition was not used with
        views. Range analyzer did not take into account that
        view columns were always referred through Item_ref.
      
      
      sql/opt_range.cc:
        Fixed bug #10031: range condition was not used with
        views. Range analyzer did not take into account that
        view columns were always referred through Item_ref.
      mysql-test/t/range.test:
        Added a test case for bug #10031.
      mysql-test/r/range.result:
        Added a test case for bug #10031.
      1031b871
  15. 24 Jun, 2005 1 commit
  16. 23 Jun, 2005 1 commit
    • unknown's avatar
      Fix for BUG#11185. · e4296f58
      unknown authored
      The source of the problem is in Field_longlong::cmp. If 'this' is
      an unsigned number, the method casts both the current value, and
      the constant that we compare with to an unsigned number. As a
      result if the constant we compare with is a negative number, it
      wraps to some unsigned number, and the comparison is incorrect.
      
      When the optimizer chooses the "range" access method, this problem
      causes handler::read_range_next to reject the current key when the
      upper bound key is a negative number because handler::compare_key
      incorrectly considers the positive and negative keys to be equal.
      
      The current patch does not correct the source of the problem in
      Field_longlong::cmp because it is not easy to propagate sign
      information about the constant at query execution time. Instead
      the patch changes the range optimizer so that it never compares
      unsiged fields with negative constants. As an added benefit,
      queries that do such comparisons will execute faster because
      the range optimizer replaces conditions like:
      (a) (unsigned_int [< | <=] negative_constant) == FALSE
      (b) (unsigned_int [> | >=] negative_constant) == TRUE
      with the corresponding constants.
      In some cases this may even result in constant time execution.
      
      
      mysql-test/r/range.result:
        - Changed incorrect result of an old test
        - Added new results for BUG#11185
      mysql-test/t/range.test:
        - Added new tests for BUG#11185
        - Deleted an old comment because now the problem is fixed
      sql/opt_range.cc:
        Added a new optimization to the range optimizer where we detect that
        an UNSIGNED field is compared with a negative constant. Depending on
        the comparison operator, we know directly that the result of the
        comparison is either TRUE or FALSE for all input values, and we need
        not check each value.
        
        This optimization is also necessary so that the index range access
        method produces correct results when comparing unsigned fields with
        negative constants.
      e4296f58
  17. 21 May, 2005 1 commit
    • unknown's avatar
      range.result, range.test: · 8f7bca3a
      unknown authored
        Added test cases for optimization request #10561.
      opt_range.cc, sql_select.cc:
        Fixed bug #10561: an optimization request to allow
        range analysis for NOT IN and NOT BETWEEN.
      
      
      sql/sql_select.cc:
        Fixed bug #10561: an optimization request to allow
        range analysis for NOT IN and NOT BETWEEN.
      sql/opt_range.cc:
        Fixed bug #10561: an optimization request to allow
        range analysis for NOT IN and NOT BETWEEN.
      mysql-test/t/range.test:
        Added test cases for optimization request #10561.
      mysql-test/r/range.result:
        Added test cases for optimization request #10561.
      8f7bca3a
  18. 13 May, 2005 1 commit
    • unknown's avatar
      concurrent-insert can now be set to 2 for concurrent inserts when there is holes in the data file · b21cf962
      unknown authored
      myisam_max_extra_sort_file_size is depricated
      Ensure that myisam_data_pointer_size is honoured when creating new MyISAM files
      Changed default value of myisam_data_pointer_size from 4 to 6 to get rid of 'table-is-full' errors
      
      
      
      include/myisam.h:
        Change type of myisam_block_size and myisam_concurrent_insert to make them changeable in mysqld.cc
        Removed not used varaible myisam_max_extra_temp_length
      include/thr_lock.h:
        Added extra parameter to get_status
      myisam/mi_create.c:
        Ensure that myisam_data_pointer_size is honoured
      myisam/mi_dynrec.c:
        If 'append_insert_at_end' is set, only write at end of myisam record file
      myisam/mi_locking.c:
        Add extra argument to 'mi_get_status' to allow thr_lock to signal that we want to do a concurrent insert
        If this is used, we will append new insert rows at end of data file.
        Change mi_check_status() to allow concurrent_inserts even if there are holes in the file when myisam_concurent_insert=2
      myisam/mi_static.c:
        Change behavior of myisam_concurrent_insert so that setting this to 2 allows inserts even if there is a hole in the data file.
        Default value is 2 for MyISAM direct usage but will be set to 1 (old default) by mysqld.cc
      myisam/mi_statrec.c:
        If 'append_insert_at_end' is set, only write at end of myisam record file
      myisam/mi_write.c:
        If 'append_insert_at_end' is set, only write at end of myisam record file
      myisam/myisamdef.h:
        Support for insert-at-end even if there is holes in data file
      mysql-test/r/gis-rtree.result:
        Test result changed because default value for myisam_data_pointer_size is changed from 4 -> 6
      mysql-test/r/group_min_max.result:
        Test result changed because default value for myisam_data_pointer_size is changed from 4 -> 6
      mysql-test/r/index_merge.result:
        Test result changed because default value for myisam_data_pointer_size is changed from 4 -> 6
      mysql-test/r/index_merge_ror.result:
        Test result changed because default value for myisam_data_pointer_size is changed from 4 -> 6
      mysql-test/r/merge.result:
        Test result changed because default value for myisam_data_pointer_size is changed from 4 -> 6
      mysql-test/r/myisam.result:
        Test of concurrent_insert=2
      mysql-test/r/null.result:
        Test result changed because default value for myisam_data_pointer_size is changed from 4 -> 6
      mysql-test/r/preload.result:
        Test result changed because default value for myisam_data_pointer_size is changed from 4 -> 6
      mysql-test/r/ps_1general.result:
        Test result changed because default value for myisam_data_pointer_size is changed from 4 -> 6
      mysql-test/r/range.result:
        Test result changed because default value for myisam_data_pointer_size is changed from 4 -> 6
      mysql-test/r/variables.result:
        concurrent_insert is now a integer, not a boolean
        myisam_extra_sort_file_size is deleted
      mysql-test/r/view.result:
        Test result changed because default value for myisam_data_pointer_size is changed from 4 -> 6
      mysql-test/t/index_merge.test:
        Test result changed because default value for myisam_data_pointer_size is changed from 4 -> 6
      mysql-test/t/myisam.test:
        Test of concurrent_insert=2
      mysql-test/t/ps_1general.test:
        Drop test table
      mysql-test/t/variables.test:
        concurrent_insert is now a integer, not a boolean
        myisam_extra_sort_file_size is deleted
      mysql-test/t/view.test:
        Drop tables that may be left from previous tests
      mysys/thr_lock.c:
        Extra paramter to get_status to signal if concurrent_insert was used
      sql/mysqld.cc:
        concurrent-insert can now be set to 2 for concurrent inserts when there is holes in the data file
        myisam_max_extra_sort_file_size is depricated
      sql/set_var.cc:
        concurrent-insert is now an integer, not a bool
        myisam_max_extra_sort_file_size is deleted
      b21cf962
  19. 20 Apr, 2005 1 commit
    • unknown's avatar
      Fix for BUG#10037 · a52359e0
      unknown authored
      * Add 0.01 to cost of 'range'+'using index' scan to avoid optimizer choice races with 
        'index' scan.
      
      
      mysql-test/r/range.result:
        Update the test result after the changed cost
      sql/opt_range.cc:
        Fix for BUG#10037
        * Add 0.01 to cost of 'range'+'using index' scan to avoid optimizer choice races with 
          'index' scan.
        * make QUICK_GROUP_MIN_MAX_SELECT handle the case where the source table is empty.
      a52359e0
  20. 16 Apr, 2005 2 commits
  21. 12 Apr, 2005 1 commit
    • unknown's avatar
      BUG#8924 'Explain' shows different strategy · 5b5a1239
      unknown authored
       - If number of records in table is 4, the calculated cost for using "index" and "range" become so close so that any rounding errors becomes visible.
       - Added one more record to the tables for heap test and expoect "range" to be selected
       - Decrease number of records in t1 for range and expect "index" to be choosen.
      
      
      mysql-test/r/heap.result:
        Add one more record to table t1 and expect explain to use "range"
      mysql-test/r/heap_btree.result:
        Add one more record to table t1 and expect explain to use "range"
      mysql-test/r/heap_hash.result:
        Add one more record to table t1 and expect explain to use "range"
      mysql-test/r/range.result:
        Update results
      mysql-test/t/heap.test:
        Add one more record to table t1 and expect explain to use "range"
      mysql-test/t/heap_btree.test:
        Add one more record to table t1 and expect explain to use "range"
      mysql-test/t/heap_hash.test:
        Add one more record to table t1 in order for optimizer to select use of "range" deterministic
      mysql-test/t/range.test:
        Remove one record from table t1 to avoid that cost for "index" and "range" are so close that rounding error become visible.
      5b5a1239
  22. 22 Nov, 2004 2 commits
    • unknown's avatar
      post-merge · e4f75be8
      unknown authored
      e4f75be8
    • unknown's avatar
      Bug #6748 heap_rfirst() doesn't work (and never did!) · 01604355
      unknown authored
      range for BETWEEN typo fixed
      
      
      extra/perror.c:
        meaningless error message fixed
      heap/hp_rfirst.c:
        Bug #6748 heap_rfirst() doesn't work (and never did!)
      mysql-test/r/heap.result:
        Bug #6748 heap_rfirst() doesn't work (and never did!)
      mysql-test/r/range.result:
        range for BETWEEN typo fixed
      mysql-test/t/heap.test:
        Bug #6748 heap_rfirst() doesn't work (and never did!)
      sql/handler.cc:
        Bug #6748 heap_rfirst() doesn't work (and never did!)
      sql/sql_select.cc:
        range for BETWEEN typo fixed
      01604355
  23. 03 Nov, 2004 2 commits
    • unknown's avatar
      opt_range.cc, range.result, range.test: · 0afed4c3
      unknown authored
        Bug #6045: Binary Comparison regression in MySQL 4.1
        Binary searches didn't use a case insensitive index, now they do.
      
      
      mysql-test/t/range.test:
        Bug #6045: Binary Comparison regression in MySQL 4.1
        Binary searches didn't use a case insensitive index, now they do.
      mysql-test/r/range.result:
        Bug #6045: Binary Comparison regression in MySQL 4.1
        Binary searches didn't use a case insensitive index, now they do.
      sql/opt_range.cc:
        Bug #6045: Binary Comparison regression in MySQL 4.1
        Binary searches didn't use a case insensitive index, now they do.
      0afed4c3
    • 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
  24. 20 Oct, 2004 1 commit
  25. 19 Oct, 2004 1 commit
    • 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
  26. 18 Oct, 2004 1 commit
    • unknown's avatar
      compatibility fix · bd5bafe1
      unknown authored
      test results corrected
      
      
      mysql-test/r/range.result:
        test results corrected
      mysql-test/t/range.test:
        test results corrected
      sql/opt_range.cc:
        compatibility fix
      bd5bafe1
  27. 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
  28. 16 Aug, 2004 1 commit
  29. 11 Aug, 2004 1 commit
  30. 26 Jun, 2004 1 commit
    • unknown's avatar
      after merge fixed · 7eb1afab
      unknown authored
      mysql-test/r/flush_table.result:
        after merge fixed
        duplicated tests removed
      mysql-test/t/flush_table.test:
        after merge fixed
        duplicated tests removed
      sql/sql_yacc.yy:
        alias is not db-qualified
      7eb1afab
  31. 22 Jun, 2004 1 commit
    • unknown's avatar
      Range optimizer fix: · b482176b
      unknown authored
      If cost(full_scan_on_shortest_covering_index) < cost(best_range_scan) <  cost(full_table_scan)
        use full_scan_on_shortest_covering_index
      (before this fix best_range_scan was used)
      
      
      b482176b
  32. 21 Jun, 2004 1 commit
  33. 17 Jun, 2004 1 commit
    • unknown's avatar
      Fixed unlikely bug in the range optimzer when using many IN() queries on... · 209cfe77
      unknown authored
      Fixed unlikely bug in the range optimzer when using many IN() queries on different key parts. (Bug #4157)
      
      
      mysql-test/r/range.result:
        Test of range optimizer bug
      mysql-test/t/range.test:
        Test of range optimizer bug
      sql/opt_range.cc:
        Fixed unlikely bug in the range optimzer when using many IN() queries on
        different key parts. (Bug #4157)
      209cfe77
  34. 21 Apr, 2004 1 commit
    • unknown's avatar
      Introduce keys in child tables corresponding to FOREIGN KEYs · c9e15382
      unknown authored
      Remove redundant keys in CREATE TABLE and ALTER TABLE
      
      
      mysql-test/r/constraints.result:
        Remove redundant keys
      mysql-test/r/create.result:
        Remove redundant keys
      mysql-test/r/innodb.result:
        Remove redundant keys
      mysql-test/r/range.result:
        Remove redundant keys
      mysql-test/t/range.test:
        Remove redundant keys
      sql/sql_class.cc:
        Equality comparison of keys (ignoring name)
      sql/sql_class.h:
        Equality comparison of keys (ignoring name)
      sql/sql_table.cc:
        Remove redundant keys
      sql/sql_yacc.yy:
        Introduce keys in child tables corresponding to FOREIGN KEYs
      c9e15382
  35. 26 Mar, 2004 1 commit
    • unknown's avatar
      1. New data types, from the user point of view: · 3eff4316
      unknown authored
         BINARY(N) and VARBIBARY(N)
      2. More 4.0 compatibility and more BINARY keyword consistency:
      2a. CREATE TABLE a (a CHAR(N) BINARY) 
          is now synonym for
          CREATE TABLE a (a CHAR(N) COLLATE xxxx_bin)
      2b. SELECT BINARY x
          is still synonin for
          SELECT x COLLATE xxxxx_bin.
      
      
      3eff4316
  36. 16 Feb, 2004 1 commit
    • unknown's avatar
      After merge fixes · a07e48ec
      unknown authored
      Added more DBUG statements
      Ensure that we are comparing end space with BINARY strings
      Use 'any_db' instead of '' to mean any database. (For HANDLER command)
      Only strip ' ' when comparing CHAR, not other space-like characters (like \t)
      
      
      BitKeeper/deleted/.del-ctype_tis620.result-old~3578ceb0b8284685:
        Delete: mysql-test/r/ctype_tis620.result-old
      BitKeeper/deleted/.del-ctype_tis620.test-old~ffb1bbd2935d1aba:
        Delete: mysql-test/t/ctype_tis620.test-old
      client/mysqlbinlog.cc:
        Added DBUG statements
        Added call of my_end() to free all used memory on exit
      heap/hp_info.c:
        After merge fixes
      heap/hp_open.c:
        After merge fixes
      include/heap.h:
        After merge fixes
      include/m_ctype.h:
        Use pchar instead of 'int' for character parameters.
        Added 'my_binary_compare()'
      include/m_string.h:
        Fixed wrong define
      innobase/ibuf/ibuf0ibuf.c:
        After merge fixes
      innobase/srv/srv0start.c:
        After merge fixes
      mysql-test/r/alter_table.result:
        Fixed results after merge
      mysql-test/r/auto_increment.result:
        Fixed results after merge
      mysql-test/r/bdb.result:
        Fixed results after merge
      mysql-test/r/binary.result:
        Fixed results after merge
      mysql-test/r/create.result:
        Fixed results after merge
      mysql-test/r/ctype_mb.result:
        Fixed results after merge
      mysql-test/r/ctype_tis620.result:
        Fixed results after merge
      mysql-test/r/ctype_utf8.result:
        Fixed results after merge
      mysql-test/r/delete.result:
        Fixed results after merge
      mysql-test/r/func_compress.result:
        Fixed results after merge
      mysql-test/r/func_gconcat.result:
        Fixed results after merge
      mysql-test/r/func_group.result:
        Fixed results after merge
      mysql-test/r/func_str.result:
        Fixed results after merge
      mysql-test/r/innodb.result:
        Fixed results after merge
      mysql-test/r/insert.result:
        Fixed results after merge
      mysql-test/r/insert_select.result:
        Fixed results after merge
      mysql-test/r/key.result:
        Fixed results after merge
      mysql-test/r/loaddata.result:
        Fixed results after merge
      mysql-test/r/lock.result:
        Fixed results after merge
      mysql-test/r/myisam.result:
        Fixed results after merge
      mysql-test/r/null.result:
        Fixed results after merge
      mysql-test/r/null_key.result:
        Fixed results after merge
      mysql-test/r/order_by.result:
        Fixed results after merge
      mysql-test/r/query_cache.result:
        Fixed results after merge
      mysql-test/r/range.result:
        Fixed results after merge
      mysql-test/r/rpl_multi_delete.result:
        Fixed results after merge
      mysql-test/r/rpl_until.result:
        Fixed results after merge
      mysql-test/r/subselect.result:
        Fixed results after merge
      mysql-test/r/subselect_innodb.result:
        Fixed results after merge
      mysql-test/r/type_blob.result:
        Fixed results after merge
      mysql-test/r/type_datetime.result:
        Fixed results after merge
      mysql-test/r/type_decimal.result:
        Fixed results after merge
      mysql-test/r/type_enum.result:
        Fixed results after merge
      mysql-test/r/type_float.result:
        Fixed results after merge
      mysql-test/r/type_ranges.result:
        Fixed results after merge
      mysql-test/r/type_time.result:
        Fixed results after merge
      mysql-test/r/type_timestamp.result:
        Fixed results after merge
      mysql-test/r/type_uint.result:
        Fixed results after merge
      mysql-test/r/type_year.result:
        Fixed results after merge
      mysql-test/r/variables.result:
        Fixed results after merge
      mysql-test/r/warnings.result:
        Fixed results after merge
      mysql-test/t/case.test:
        Fixed shifted error messages
      mysql-test/t/create.test:
        Fixed shifted error messages
      mysql-test/t/ctype_collate.test:
        Fixed shifted error messages
      mysql-test/t/ctype_tis620.test:
        Merge with 4.0 ctype_tis620 test
      mysql-test/t/delete.test:
        Fixed shifted error messages
      mysql-test/t/derived.test:
        Fixed shifted error messages
      mysql-test/t/fulltext.test:
        Fixed shifted error messages
      mysql-test/t/func_in.test:
        Fixed shifted error messages
      mysql-test/t/func_str.test:
        Fixed shifted error messages
      mysql-test/t/func_test.test:
        Fixed shifted error messages
      mysql-test/t/grant.test:
        Fixed shifted error messages
      mysql-test/t/innodb.test:
        Change to 4.1 syntax
      mysql-test/t/key_cache.test:
        Fixed shifted error messages
      mysql-test/t/myisam.test:
        New test of blob and end space
      mysql-test/t/row.test:
        Fixed shifted error messages
      mysql-test/t/rpl_until.test:
        Fixed shifted error messages
      mysql-test/t/subselect.test:
        Fixed shifted error messages
      mysql-test/t/subselect_innodb.test:
        Fix test to take into account foreign key constraints
      mysql-test/t/union.test:
        Fixed shifted error messages
      mysql-test/t/user_var.test:
        Fixed shifted error messages
      mysql-test/t/variables.test:
        Fixed shifted error messages
      mysys/my_handler.c:
        Merge with 4.0 code
      sql/ha_heap.cc:
        After merge fixes
      sql/handler.cc:
        After merge fixes
      sql/item.cc:
        After merge fixes
      sql/item_cmpfunc.cc:
        Ensure that we are comparing end space with BINARY strings
      sql/item_cmpfunc.h:
        Ensure that we are comparing end space with BINARY strings
      sql/log_event.cc:
        More DBUG statements
        Ensure that we use all options to LOAD DATA in replication
      sql/opt_range.cc:
        After merge fixes
      sql/sql_db.cc:
        After merge fixes
      sql/sql_handler.cc:
        After merge fixes
        Use 'any_db' instead of '' to mean 'no database comparison'
      sql/sql_parse.cc:
        After merge fixes
      sql/sql_select.cc:
        After merge fixes
        Added function comment for setup_group()
      sql/sql_string.cc:
        Added stringcmp() for binary comparison.
        Added function comments for sortcmp() and stringcmp()
      sql/sql_string.h:
        Added stringcmp()
      sql/sql_table.cc:
        After merge fixes
      sql/sql_update.cc:
        After merge fixes
      sql/sql_yacc.yy:
        Use 'any_db' instead of '' to mean any database. Using "" causes a 'wrong db name' error.
      strings/ctype-big5.c:
        Strip only end space, not other space characters.
      strings/ctype-bin.c:
        Removed some not needed functions.
        Added function comments
        Don't remove end space in comparisons
        Change my_wildcmp_bin() to be 'identical' with other similar code
      strings/ctype-czech.c:
        Strip only end space, not other space characters.
      strings/ctype-gbk.c:
        Strip only end space, not other space characters.
      strings/ctype-latin1.c:
        Strip only end space, not other space characters.
      strings/ctype-mb.c:
        Strip only end space, not other space characters.
      strings/ctype-simple.c:
        Strip only end space, not other space characters.
      strings/ctype-sjis.c:
        Strip only end space, not other space characters.
      strings/ctype-tis620.c:
        Added usage of my_instr_simple. This needs to be cleaned up!
      strings/ctype-utf8.c:
        Strip only end space, not other space characters.
      strings/ctype-win1250ch.c:
        Strip only end space, not other space characters.
        Fixed indentation
      strings/strto.c:
        Code cleanup
      a07e48ec
  37. 13 Feb, 2004 1 commit
    • unknown's avatar
      Always use libtool with "--preserve-dup-deps" · 0a95bda2
      unknown authored
      Always use all LOAD DATA options in replication.
      Fixed problem in mysqlbinlog where LOAD DATA options could be overwritten.
      
      
      client/mysqlbinlog.cc:
        Ensure that we don't call init_dynamic_array() before my_init() has been done
      configure.in:
        Always use libtool with "--preserve-dup-deps" to prevent link problems with g++
      mysql-test/r/mysqlbinlog.result:
        new results
      mysql-test/r/range.result:
        new results
      mysql-test/t/range.test:
        add missing DROP TABLE
      sql/log_event.cc:
        Always use all LOAD DATA options. This is needed to handle commands of type "FIELDS TERMINATED BY ''"
        Allocate memory for Create_file_log_event options as these may be overwritten in mysqlbinlog
      sql/log_event.h:
        Free buffer
      0a95bda2