1. 31 Oct, 2006 8 commits
    • unknown's avatar
      Merge spetrunia@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 361f0468
      unknown authored
      into  mysql.com:/home/psergey/mysql-5.0-bug8804-r4
      
      
      sql/sql_lex.cc:
        Auto merged
      sql/sql_lex.h:
        Auto merged
      361f0468
    • unknown's avatar
      BUG#8804: Incorrect results for NULL IN (SELECT ...): review fixes: · eb5abc14
      unknown authored
      - Better comments
      - Remove redundant and dead code.
      
      
      eb5abc14
    • unknown's avatar
      84526c67
    • unknown's avatar
      BUG#8804: wrong results for NULL IN (SELECT ...) · 48df3b96
      unknown authored
      Evaluate "NULL IN (SELECT ...)" in a special way: Disable pushed-down 
      conditions and their "consequences": 
       = Do full table scans instead of unique_[index_subquery] lookups.
       = Change appropriate "ref_or_null" accesses to full table scans in
         subquery's joins.
      Also cache value of NULL IN (SELECT ...) if the SELECT is not correlated 
      wrt any upper select.
      
      
      mysql-test/r/subselect.result:
        BUG#8804: wrong results for NULL IN (SELECT ...): 
         - Updated test results
      sql/item.h:
        BUG#8804: wrong results for NULL IN (SELECT ...): 
         - Added comments
      sql/item_cmpfunc.cc:
        BUG#8804: wrong results for NULL IN (SELECT ...): 
        Made Item_in_optimizer to:
        - cache the value of "NULL IN (uncorrelated select)"
        - Turn off pushed-down predicates when evaluating "NULL IN (SELECT ...)"
      sql/item_cmpfunc.h:
        BUG#8804: wrong results for NULL IN (SELECT ...): 
        - Made Item_in_optimizer cache the value of "NULL IN (uncorrelated select)"
        - Added comments
      sql/item_subselect.cc:
        BUG#8804: wrong results for NULL IN (SELECT ...):
        - When needed, wrap the predicates we push into subquery into an 
          Item_func_trig_cond so we're able to turn them off when evaluating 
          NULL IN (SELECT ...).
        - Added code to evaluate NULL IN (SELECT ...) in a special way:
          = In [unique_]index_subquery, do full table scan to see if there 
            are any rows.
          = For other subqueries, change ref[_or_null] to ALL if the
            ref[_or_null] was created from pushed-down predicate.
      sql/item_subselect.h:
        BUG#8804: wrong results for NULL IN (SELECT ...):
        - Added Item_subselect::is_correlated
        - Added comments
      sql/records.cc:
        BUG#8804: wrong results for NULL IN (SELECT ...):
        - Make rr_sequential() non-static
      sql/sql_lex.cc:
        BUG#8804: wrong results for NULL IN (SELECT ...):
        - Added st_select_lex::is_correlated and Item_subselect::is_correlated.
      sql/sql_lex.h:
        BUG#8804: wrong results for NULL IN (SELECT ...):
        - Added st_select_lex::is_correlated
      sql/sql_select.cc:
        BUG#8804: wrong results for NULL IN (SELECT ...):
        - Added KEY_FIELD::outer_ref to keep track of which ref accesses are 
          created from predicates that were pushed down into the subquery.
      sql/sql_select.h:
        BUG#8804: wrong results for NULL IN (SELECT ...):
        - Added KEYUSE::outer_ref
      mysql-test/r/subselect3.result:
        New BitKeeper file ``mysql-test/r/subselect3.result''
      mysql-test/t/subselect3.test:
        New BitKeeper file ``mysql-test/t/subselect3.test''
      48df3b96
    • unknown's avatar
      Merge abotchkov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · dcaa684c
      unknown authored
      into  mysql.com:/usersnfs/abotchkov/mysql-5.0-opt1
      
      
      dcaa684c
    • unknown's avatar
      Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 37a823b7
      unknown authored
      into  rakia.gmz:/home/kgeorge/mysql/autopush/B21809-5.0-opt
      
      
      sql/item.cc:
        Auto merged
      sql/item_func.cc:
        Auto merged
      sql/item_func.h:
        Auto merged
      sql/sql_lex.cc:
        Auto merged
      sql/sql_lex.h:
        Auto merged
      37a823b7
    • unknown's avatar
      Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · c805d584
      unknown authored
      into  rakia.gmz:/home/kgeorge/mysql/autopush/B23184-5.0-opt
      
      
      c805d584
    • unknown's avatar
      Bug #23184: SELECT causes server crash · 634d3991
      unknown authored
       Item::val_xxx() may be called by the server several times at execute time 
       for a single query. Calls to val_xxx() may be very expensive and sometimes
       (count(distinct), sum(distinct), avg(distinct)) not possible.
       To avoid that problem the results of calculation for these aggregate 
       functions are cached so that val_xxx() methods just return the calculated 
       value for the second and subsequent calls.
      
      
      mysql-test/r/func_group.result:
        Bug #23184: SELECT causes server crash
         - test case
      mysql-test/t/func_group.test:
        Bug #23184: SELECT causes server crash
         - test case
      sql/item_sum.cc:
        Bug #23184: SELECT causes server crash
         - caching of the aggregate function results so no need to recalculate at val_xxx()
      sql/item_sum.h:
        Bug #23184: SELECT causes server crash
         - caching of the aggregate function results so no need to recalculate at val_xxx()
      634d3991
  2. 24 Oct, 2006 9 commits
    • unknown's avatar
      Merge mysql.com:/usersnfs/abotchkov/mysql-5.0-opt · 1533e884
      unknown authored
      into  mysql.com:/usersnfs/abotchkov/mysql-5.0-opt1
      
      
      1533e884
    • unknown's avatar
      Merge abotchkov@production.mysql.com:mysql-5.0-opt1 · d72b4682
      unknown authored
      into  mysql.com:/home/hf/work/current_stmt/my50-current_stmt
      
      
      d72b4682
    • unknown's avatar
      Merge mysql.com:/home/hf/work/0current_stmt/my41-current_stmt · 81dac08b
      unknown authored
      into  mysql.com:/home/hf/work/current_stmt/my50-current_stmt
      
      
      include/mysql.h:
        merging
      libmysqld/lib_sql.cc:
        merging
      sql/sql_class.h:
        merging
      81dac08b
    • unknown's avatar
      Bug #21809: Error 1356 while selecting from view with grouping though underlying · f51d0812
      unknown authored
                  select OK.
      The SQL parser was using Item::name to transfer user defined function attributes
      to the user defined function (udf). It was not distinguishing between user defined 
      function call arguments and stored procedure call arguments. Setting Item::name 
      was causing Item_ref::print() method to print the argument as quoted identifiers 
      and caused views that reference aggregate functions as udf call arguments (and 
      rely on Item::print() for the text of the view to store) to throw an undefined 
      identifier error.
      Overloaded Item_ref::print to print aggregate functions as such when printing
      the references to aggregate functions taken out of context by split_sum_func2()
      Fixed the parser to properly detect using AS clause in stored procedure arguments
      as an error.
      Fixed printing the arguments of udf call to print properly the udf attribute.
      
      
      mysql-test/r/udf.result:
        Bug #21809: Error 1356 while selecting from view with grouping though underlying
                    select OK.
         - test cases
      mysql-test/t/udf.test:
        Bug #21809: Error 1356 while selecting from view with grouping though underlying
                    select OK.
         - test cases
      sql/item.cc:
        Bug #21809: Error 1356 while selecting from view with grouping though underlying
                    select OK.
         - Don't print the refs to SUM functions as refs.
      sql/item_func.cc:
        Bug #21809: Error 1356 while selecting from view with grouping though underlying
                    select OK.
         - print the aliases in the udf calls
      sql/item_func.h:
        Bug #21809: Error 1356 while selecting from view with grouping though underlying
                    select OK.
         - print the aliases in the udf calls
      sql/sql_lex.cc:
        Bug #21809: Error 1356 while selecting from view with grouping though underlying
                    select OK.
         - disable aliases for arguments in stored routine calls
      sql/sql_lex.h:
        Bug #21809: Error 1356 while selecting from view with grouping though underlying
                    select OK.
         - disable aliases for arguments in stored routine calls
      sql/sql_yacc.yy:
        Bug #21809: Error 1356 while selecting from view with grouping though underlying
                    select OK.
         - disable aliases for arguments in stored routine calls
         - fix bison duplicate symbol warnings
      f51d0812
    • unknown's avatar
      Bug #23427 (incompatible ABI change) · 6c4aa883
      unknown authored
      the incompatibility was caused by current_stmt member added to the MYSQL
      structure.
      It's possible to move it to THD structure instead which saves ABI
      
      
      include/mysql.h:
        member moved to the THD structure
      libmysqld/lib_sql.cc:
        now we use THD member here
      sql/sql_class.h:
        current_stmt member added for the embedded server
      6c4aa883
    • unknown's avatar
      Merge bk@192.168.21.1:mysql-5.0-opt · 7a44896f
      unknown authored
      into  mysql.com:/home/hf/work/w3475/my50-w3475
      
      
      7a44896f
    • unknown's avatar
      Merge mysql.com:/home/hf/work/w3475/my41-w3475 · cc19246f
      unknown authored
      into  mysql.com:/home/hf/work/w3475/my50-w3475
      
      
      client/mysqltest.c:
        Auto merged
      cc19246f
    • unknown's avatar
      WL#3475 merging · 430a4ad3
      unknown authored
      
      client/mysqltest.c:
        merging fixes
      430a4ad3
    • unknown's avatar
      merging fix · 7e233692
      unknown authored
      
      client/mysqltest.c:
        wrong 'while' was added instead of 'if'
      7e233692
  3. 23 Oct, 2006 2 commits
    • unknown's avatar
      Merge mysql.com:/home/hf/work/w3475/my41-w3475 · bda4032f
      unknown authored
      into  mysql.com:/home/hf/work/w3475/my50-w3475
      
      
      mysql-test/t/flush.test:
        Auto merged
      mysql-test/t/flush_block_commit.test:
        Auto merged
      mysql-test/t/innodb-deadlock.test:
        Auto merged
      mysql-test/t/innodb-lock.test:
        Auto merged
      mysql-test/t/lock_multi.test:
        Auto merged
      mysql-test/t/rename.test:
        Auto merged
      mysql-test/t/show_check.test:
        Auto merged
      mysql-test/t/status.test:
        Auto merged
      client/mysqltest.c:
        merging
      libmysql/libmysql.c:
        merging
      bda4032f
    • unknown's avatar
      WL#3475 (Threads for the embedded server in mysqltest) · 4ddb48c6
      unknown authored
      Necessary code added to mysqltest.c.
      Disabled tests are available now.
      
      
      client/mysqltest.c:
        do_send_query function implemented, so now 'send' command will be
        run in separate thread for the embedded server.
        Mutex and condition added to the 'connection' struct for syncronisation
        purposes. Yes it'd be easier if we had pthread_join() command
      libmysql/libmysql.c:
        this isn't actually needed and causes problems in embedded server
      mysql-test/t/bdb-deadlock.test:
        test is available for the embedded server now
      mysql-test/t/flush.test:
        test is available for the embedded server now
      mysql-test/t/flush_block_commit.test:
        test is available for the embedded server now
      mysql-test/t/innodb-deadlock.test:
        test is available for the embedded server now
      mysql-test/t/innodb-lock.test:
        test is available for the embedded server now
      mysql-test/t/lock_multi.test:
        test is available for the embedded server now
      mysql-test/t/rename.test:
        test is available for the embedded server now
      mysql-test/t/show_check.test:
        test is available for the embedded server now
      mysql-test/t/status.test:
        test is available for the embedded server now
      4ddb48c6
  4. 20 Oct, 2006 7 commits
  5. 19 Oct, 2006 12 commits
  6. 18 Oct, 2006 2 commits
    • unknown's avatar
      Merge mysql.com:/data0/bk/mysql-5.0 · ea39ca34
      unknown authored
      into  mysql.com:/data0/bk/mysql-5.0-kt
      
      
      ea39ca34
    • unknown's avatar
      BUG#23175 - MYISAM crash/repair failed during repair · 48cf65c0
      unknown authored
      Repair table could crash a server if there is not sufficient
      memory (myisam_sort_buffer_size) to operate. Affects not only
      repair, but also all statements that use create index by sort:
      repair by sort, parallel repair, bulk insert.
      
      Return an error if there is not sufficient memory to store at
      least one key per BUFFPEK.
      
      Also fixed memory leak if thr_find_all_keys returns an error.
      
      
      myisam/sort.c:
        maxbuffer is number of BUFFPEK-s for repair. It is calculated
        as records / keys. keys is number of keys that can be stored
        in memory (myisam_sort_buffer_size). There must be sufficient
        memory to store both BUFFPEK-s and keys. It was checked
        correctly before this patch. However there is another
        requirement that wasn't checked: there must be sufficient
        memory for at least one key per BUFFPEK, otherwise repair
        by sort/parallel repair cannot operate.
        
        Return an error if there is not sufficient memory to store at
        least one key per BUFFPEK.
        
        Also fixed memory leak if thr_find_all_keys returns an error.
      mysql-test/r/repair.result:
        A test case for BUG#23175.
      mysql-test/t/repair.test:
        A test case for BUG#23175.
      48cf65c0