1. 23 Jun, 2005 28 commits
    • unknown's avatar
      Merge tkatchaounov@bk-internal.mysql.com:/home/bk/mysql-5.0 · 274ae63c
      unknown authored
      into mysql.com:/home/timka/mysql/src/5.0-virgin
      
      
      274ae63c
    • unknown's avatar
      Merge mysql.com:/home/svoj/devel/mysql/mysql-5.0.8-build · d34e2ccb
      unknown authored
      into mysql.com:/home/svoj/devel/mysql/mysql-5.0.9
      
      
      d34e2ccb
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.0 · e5bd4ee8
      unknown authored
      into mysql.com:/opt/local/work/mysql-5.0-sp_instr
      
      
      e5bd4ee8
    • unknown's avatar
      Merge spetrunia@bk-internal.mysql.com:/home/bk/mysql-5.0 · 85a7014d
      unknown authored
      into mysql.com:/home/psergey/mysql-5.0-bug8441
      
      
      85a7014d
    • unknown's avatar
      Merge spetrunia@bk-internal.mysql.com:/home/bk/mysql-5.0 · 287af948
      unknown authored
      into mysql.com:/home/psergey/mysql-5.0-bug8441
      
      
      287af948
    • unknown's avatar
      Merge · 0021ec52
      unknown authored
      
      mysql-test/r/case.result:
        SCCS merged
      mysql-test/t/case.test:
        SCCS merged
      sql/item_cmpfunc.cc:
        SCCS merged
      0021ec52
    • unknown's avatar
      WL#2286 - Compile MySQL w/YASSL support · 74307f39
      unknown authored
      Fix for compilation failure with Forte Developer C++.
      
      
      configure.in:
        Export ARFLAGS, so innobase could pick it up.
      innobase/configure.in:
        Use ARFLAGS exported by parent configure script.
      74307f39
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.0 · 706d3ef8
      unknown authored
      into mysql.com:/opt/local/work/mysql-5.0-sp_instr
      
      
      706d3ef8
    • unknown's avatar
      - implement inheritance of sp_instr: public Query_arena. · 91180cb8
      unknown authored
        We need every instruction to have its own arena, because we want to
        track instruction's state (INITIALIZED_FOR_SP -> EXECUTED). Because of 
        `if' statements and other conditional instructions used in stored 
        procedures, not every instruction of a stored procedure gets executed 
        during the first (or even subsequent) execution of the procedure. 
        So it's better if we track the execution state of every instruction 
        independently.
        All instructions of a given procedure now also share sp_head's 
        mem_root, but keep their own free_list.
        This simplifies juggling with free Item lists in sp_head::execute.
      - free_items() moved to be a member of Query_arena. 
      - logic of 'backup_arena' debug member of Query_arena has been
        changed to support
        multi-backups. Until now, TRUE 'backup_arena' meant that there is
        exactly one active backup of the THD arena. Now it means simply that
        the arena is used for backup, so that we can't accidentally overwrite an 
        existing backup. This allows doing multiple backups, e.g. in
        sp_head::execute and Cursor::fetch, when THD arena is already backed up
        but we want to set yet another arena (usually the 'permanent' arena,
        to save permanent transformations/optimizations of a parsed tree).
      
      
      sql/sp_head.cc:
        - use Query_arena support in sp_head::execute() as now sp_instr inherites
          from it.
      sql/sp_head.h:
        - inherite sp_instr from Query_arena
      sql/sql_class.cc:
        - changed the principle of Query_arena::backup_arena; free_items is now
          a member of Query_arena.
      sql/sql_class.h:
        - changed the principle of Query_arena::backup_arena; free_items is now
          a member of Query_arena.
      sql/sql_prepare.cc:
        free_items() is now a member of Query_arena.
      sql/sql_select.cc:
        free_items() now automatically sets free_list to zero.
      91180cb8
    • unknown's avatar
      Merge mysql.com:/Users/kent/mysql/bk/mysql-5.0-release · ea89196e
      unknown authored
      into mysql.com:/Users/kent/mysql/bk/mysql-5.0
      
      
      ea89196e
    • unknown's avatar
      Merge mysql.com:/Users/kent/mysql/bk/mysql-4.1-gca · 759715eb
      unknown authored
      into mysql.com:/Users/kent/mysql/bk/mysql-5.0-release
      
      
      mysql-test/mysql-test-run.pl:
        Auto merged
      759715eb
    • unknown's avatar
      mysql-test-run.pl: · 744f6a1a
      unknown authored
        Might need a restart after test with special TZ
        Removed unused argument to run_mysqltest()
      
      
      mysql-test/mysql-test-run.pl:
        Might need a restart after test with special TZ
        Removed unused argument to run_mysqltest()
      744f6a1a
    • unknown's avatar
      Merge mysql.com:/home/timka/mysql/src/5.0-virgin · 3bfb668f
      unknown authored
      into mysql.com:/home/timka/mysql/src/5.0-dbg
      
      
      sql/opt_range.cc:
        Auto merged
      3bfb668f
    • unknown's avatar
      Merge mysql.com:/home/svoj/devel/mysql/mysql-5.0.8-build · 5ae3967c
      unknown authored
      into mysql.com:/home/svoj/devel/mysql/mysql-5.0.9
      
      
      5ae3967c
    • unknown's avatar
      Merge ibabaev@bk-internal.mysql.com:/home/bk/mysql-5.0 · 1975702d
      unknown authored
      into rurik.mysql.com:/home/igor/mysql-5.0
      
      
      1975702d
    • unknown's avatar
      opt_range.cc: · dfaf7a01
      unknown authored
        Identation correction.
      
      
      sql/opt_range.cc:
        Identation correction.
      dfaf7a01
    • unknown's avatar
      Merge mysql.com:/space/my/mysql-4.1 · 94990cca
      unknown authored
      into mysql.com:/space/my/mysql-5.0-build
      
      
      94990cca
    • unknown's avatar
      Merge rurik.mysql.com:/home/igor/mysql-5.0 · dadda87f
      unknown authored
      into rurik.mysql.com:/home/igor/dev/mysql-5.0-0
      
      
      sql/opt_range.cc:
        Auto merged
      dadda87f
    • unknown's avatar
      Merge spetrunia@bk-internal.mysql.com:/home/bk/mysql-5.0 · a91620ae
      unknown authored
      into mysql.com:/home/psergey/mysql-5.0-back-vac-look
      
      
      sql/opt_range.cc:
        Auto merged
      a91620ae
    • unknown's avatar
      WL#2286 - Compile MySQL w/YASSL support · 089d2095
      unknown authored
      Fix for "multiple definition of __cxa_pure_virtual" link failure
      when compiling with icc.
      
      
      extra/yassl/taocrypt/include/runtime.hpp:
        Do not define __cxa_pure_virtual for ICC.
        Fixes "multiple definition of __cxa_pure_virtual" link failure on production.
      089d2095
    • unknown's avatar
      Merge mysql.com:/space/my/mysql-4.1-build · ca01b891
      unknown authored
      into mysql.com:/space/my/mysql-5.0.8-clone
      
      
      ca01b891
    • unknown's avatar
      - manual merge of the new node names · a0fedf78
      unknown authored
      a0fedf78
    • unknown's avatar
      - fixed text file generation - the node names in the info page had changed · 0beb0abf
      unknown authored
      
      BitKeeper/deleted/.del-generate-flag-images~f77476753fff8186:
        Delete: Docs/Support/generate-flag-images
      Docs/Makefile.am:
        - fixed node names for the new info file
      Docs/Support/generate-text-files.pl:
        - stop printing if the index was reached
      0beb0abf
    • unknown's avatar
      Fix for BUG#11185. · 1a8c334b
      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:
        - Added test for BUG#11185
        - Added missing test from 4.1. This test also tests the fix for BUG#11185.
      mysql-test/t/range.test:
        - Added test for BUG#11185
        - Added missing test from 4.1. This test also tests the fix for BUG#11185.
      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.
      1a8c334b
    • unknown's avatar
      opt_range.cc: · c4a8325d
      unknown authored
        Fixed buf #11487.
        Added a call of  QUICK_RANGE_SELECT::init to the
        QUICK_RANGE_SELECT::reset method. Without it the second
        evaluation of a subquery employing the range access failed.
      subselect.result, subselect.test:
        Added a test case for bug #11487.
      
      
      mysql-test/t/subselect.test:
        Added a test case for bug #11487.
      mysql-test/r/subselect.result:
        Added a test case for bug #11487.
      sql/opt_range.cc:
        Fixed buf #11487.
        Added a call of  QUICK_RANGE_SELECT::init to the
        QUICK_RANGE_SELECT::reset method. Without it the second
        evaluation of a subquery employing the range access failed.
      c4a8325d
    • unknown's avatar
      Merge mysql.com:/home/timka/mysql/src/4.1-virgin · 1abe8e69
      unknown authored
      into mysql.com:/home/timka/mysql/src/4.1-bug-11185
      
      
      1abe8e69
    • unknown's avatar
      Merge mysql.com:/home/timka/mysql/src/4.1-dbg · 902376e5
      unknown authored
      into mysql.com:/home/timka/mysql/src/5.0-dbg
      
      
      902376e5
    • 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
  2. 22 Jun, 2005 12 commits