1. 13 Mar, 2005 6 commits
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.0 · 7652a389
      unknown authored
      into mysql.com:/media/sda1/mysql/mysql-5.0-926
      
      
      sql/field.cc:
        Auto merged
      sql/item.cc:
        Auto merged
      sql/sql_select.cc:
        Auto merged
      7652a389
    • unknown's avatar
      WL#926 "SUM(DISTINCT) and AVG(DISTINCT)": improvement of SUM(DISTINCT) and · 1534ed8e
      unknown authored
       implementation of AVG(DISTINCT) which utilizes the approach with Fields.
      The patch implemented in October is portede to the up-to-date tree 
      containing DECIMAL type.
      Tests for AVG(DISTINCT) (although there is not much to test provided
      that SUM(DISTINCT) works), cleanups for COUNT(DISTINCT) and GROUP_CONCAT()
      will follow in another changeset.
      
      
      sql/field.cc:
        A handy way to init create_field used for use with virtual tmp tables.
        Feel free to extend it for your own needs.
      sql/field.h:
        Declaration for create_field::init_for_tmp_table()
      sql/item.cc:
        Implementation for a framework used to easily handle different result
        types of SQL expressions. Instead of having instances of each possible 
        result type (integer, decimal, double) in every item, variables
        of all used types are moved to struct Hybrid_type.
        Hybrid_type can change its dynamic type in runtime, and become,
        for instance, DECIMAL from INTEGER.
        All type-specific Item operations are moved to the class hierarchy
        Hybrid_type_traits. Item::decimals and Item::max_length can
        be moved to Hybrid_type as well.
      sql/item.h:
        Declaration for Hybrid_type framework. See also comments for item.cc
        in this changeset.
      sql/item_sum.cc:
        Rewritten implementation for Item_sum_sum_distinct (SUM(DISTINCT))
        and added implementation for Item_sum_avg_distinct (AVG(DISTINCT)).
        The classes utilize Hybrid_type class hierarchy and Fields to
        convert SUM/AVG arguments to binary representation and store in a RB-tree.
      sql/item_sum.h:
        Declarations for Item_sum_distinct (the new intermediate class used
        for SUM and AVG distinct), Item_sum_sum_distinct, Item_sum_avg_distinct.
      sql/sql_select.cc:
        Implementatio of create_virtual_tmp_table().
      sql/sql_select.h:
        Declaration for create_virtual_tmp_table.
      sql/sql_yacc.yy:
        Grammar support for Item_sum_avg_distinct.
      1534ed8e
    • unknown's avatar
      set_var.cc, mysqld.cc, ha_innodb.cc, sql_class.h: · a569b083
      unknown authored
        Add a settable session variable innodb_support_xa; setting it to 0 can save up to 10 % of CPU time and 150 bytes of space in each undo log
      trx0trx.h, trx0undo.c, trx0trx.c, trx0roll.c:
        Enable XA if innodb_support_xa is not set to 0; make prepare to do log fsync's according to innodb_flush_log_at_trx_commit
      
      
      innobase/trx/trx0roll.c:
        Enable XA if innodb_support_xa is not set to 0; make prepare to do log fsync's according to innodb_flush_log_at_trx_commit
      innobase/trx/trx0trx.c:
        Enable XA if innodb_support_xa is not set to 0; make prepare to do log fsync's according to innodb_flush_log_at_trx_commit
      innobase/trx/trx0undo.c:
        Enable XA if innodb_support_xa is not set to 0; make prepare to do log fsync's according to innodb_flush_log_at_trx_commit
      innobase/include/trx0trx.h:
        Enable XA if innodb_support_xa is not set to 0; make prepare to do log fsync's according to innodb_flush_log_at_trx_commit
      sql/sql_class.h:
        Add a settable session variable innodb_support_xa; setting it to 0 can save up to 10 % of CPU time and 150 bytes of space in each undo log
      sql/ha_innodb.cc:
        Add a settable session variable innodb_support_xa; setting it to 0 can save up to 10 % of CPU time and 150 bytes of space in each undo log
      sql/mysqld.cc:
        Add a settable session variable innodb_support_xa; setting it to 0 can save up to 10 % of CPU time and 150 bytes of space in each undo log
      sql/set_var.cc:
        Add a settable session variable innodb_support_xa; setting it to 0 can save up to 10 % of CPU time and 150 bytes of space in each undo log
      a569b083
    • unknown's avatar
      join_outer.test: · dad8e1f5
      unknown authored
        Correction after manual merge.
      
      
      mysql-test/t/join_outer.test:
        Correction after manual merge.
      dad8e1f5
    • unknown's avatar
      Manual merge · 7bf4a418
      unknown authored
      
      sql/item_cmpfunc.h:
        Auto merged
      7bf4a418
    • unknown's avatar
      join_outer.result, join_outer.test: · 7cecea52
      unknown authored
        Added a test case for bug #9017.
      item_cmpfunc.h:
        A wrong not_null_tables method for Item_cond_xor
        caused a conversion of a left join into an inner join
        that was not valid.
      
      
      sql/item_cmpfunc.h:
        A wrong not_null_tables method for Item_cond_xor
        caused a conversion of a left join into an inner join
        that was not valid.
      mysql-test/t/join_outer.test:
        Added a test case for bug #9017.
      mysql-test/r/join_outer.result:
        Added a test case for bug #9017.
      7cecea52
  2. 11 Mar, 2005 15 commits
  3. 10 Mar, 2005 19 commits
    • unknown's avatar
      Merge mysql.com:/home/psergey/mysql-4.1-bug8711 · 324a5668
      unknown authored
      into mysql.com:/home/psergey/mysql-5.0-bug8711
      
      
      mysql-test/r/join_outer.result:
        Auto merged
      mysql-test/t/join_outer.test:
        Auto merged
      sql/item_cmpfunc.h:
        Auto merged
      324a5668
    • unknown's avatar
      Merge · ff2fcba3
      unknown authored
      
      sql/item_cmpfunc.h:
        Auto merged
      mysql-test/r/join_outer.result:
        SCCS merged
      mysql-test/t/join_outer.test:
        SCCS merged
      ff2fcba3
    • unknown's avatar
      Fix for BUG#8711: "<=>" may have true value for NULL arguments, so make · 7c90fa7b
      unknown authored
      Item_func_equal::not_null_tables() always return 0.
      
      
      mysql-test/r/join_outer.result:
        Testcase for BUG#8711
      mysql-test/t/join_outer.test:
        Testcase for BUG#8711
      sql/item_cmpfunc.h:
        Fix for BUG#8711: "<=>" may have true value for NULL arguments, i.e. it can accept NULL-complemented 
        table rows. This differs from assumptions made in Item_func::not_null_tables(), so add 
        Item_func_equal::not_null_tables().
        Item_func_equal::not_null_tables_cache value doesn't make sense now, but we still let it be
        calculated (and ignore it)
      7c90fa7b
    • unknown's avatar
      Correct "make_win_src_distribution" to not introduce additional directory layers, · 33f9d926
      unknown authored
      adapt the Windows build files accordingly.
      
      
      VC++Files/tests/mysql_client_test.dsp:
        As the directory structure on Windows now resembles that on Unix (no more
        "tests/tests", by the correction in "make_win_src_distribution.sh"), the location
        of "mysql_client_test.*" has changed. Adapt the build tools accordingly.
      VC++Files/tests/mysql_client_test_ia64.dsp:
        As the directory structure on Windows now resembles that on Unix (no more
        "tests/tests", by the correction in "make_win_src_distribution.sh"), the location
        of "mysql_client_test.*" has changed. Adapt the build tools accordingly.
      scripts/make_win_src_distribution.sh:
        1) The semantics of "cp -R src targ" depend on the (non)existence of "targ".
        By simply doing "$CP -R $i $BASE/$i", the directory hierarchy below $BASE differed
        from the source for each "$i" that already existed as a target directory.
        This is now prevented by checking the existence and adapting the command.
        
        2) Comment where "$BASE" (the target directory) comes into existence.
        
        3) Introduce an "abort" function as a start point for more sanity checks, use it.
      33f9d926
    • unknown's avatar
      More portability fixes · 5aed4129
      unknown authored
      5aed4129
    • unknown's avatar
      Merge mysql.com:/M41/mysql-4.1 into mysql.com:/M41/push-4.1 · 20ab3dc9
      unknown authored
      
      Build-tools/Do-compile:
        Auto merged
      mysql-test/mysql-test-run.sh:
        Auto merged
      20ab3dc9
    • unknown's avatar
      Merge marko@bk-internal.mysql.com:/home/bk/mysql-5.0 · 48e33114
      unknown authored
      into hundin.mysql.fi:/home/marko/mysql-5.0
      
      
      48e33114
    • unknown's avatar
      Merge mysql.com:/home/timka/mysql/src/5.0-virgin · 03ecb6bd
      unknown authored
      into mysql.com:/home/timka/mysql/src/5.0-dbg
      
      
      03ecb6bd
    • unknown's avatar
      InnoDB: Keep the "compact format" flag in SYS_TABLES.N_COLS · db32cb17
      unknown authored
      instead of SYS_TABLES.MIX_LEN, because the latter was not
      initialized to zero in old MySQL 3.23 releases. This will break
      existing MySQL/InnoDB 5.0.3-bk databases for which
      SHOW TABLE STATUS displays Row_format=Compact.
      
      
      innobase/dict/dict0crea.c:
        Write the "compact format" flag to N_COLS instead of MIX_LEN.
        Remove corruption analysis for MIX_LEN, as it has been tracked down
        to MySQL 3.23.4x not initializing MIX_LEN.
      innobase/dict/dict0load.c:
        Read the "compact format" flag from N_COLS instead of MIX_LEN.
      db32cb17
    • unknown's avatar
      Merge marko@bk-internal.mysql.com:/home/bk/mysql-5.0 · 380c64b1
      unknown authored
      into hundin.mysql.fi:/home/marko/mysql-5.0
      
      
      380c64b1
    • unknown's avatar
      rem0rec.h: · 5054fdd8
      unknown authored
        Restore sensible values to REC_OFFS_NORMAL_SIZE and REC_OFFS_SMALL_SIZE.
      
      
      innobase/include/rem0rec.h:
        Restore sensible values to REC_OFFS_NORMAL_SIZE and REC_OFFS_SMALL_SIZE.
      5054fdd8
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.0 · 90eff10b
      unknown authored
      into mysql.com:/home/dlenev/src/mysql-5.0-sp
      
      
      90eff10b
    • unknown's avatar
      InnoDB: Introduce the symbols REC_OFFS_NORMAL_SIZE and · 066e8900
      unknown authored
      REC_OFFS_SMALL_SIZE for the initial allocation sizes of
      arrays passed to rec_get_offsets().
      
      
      innobase/btr/btr0btr.c:
        s/100/REC_OFFS_NORMAL_SIZE/
      innobase/btr/btr0cur.c:
        s/100/REC_OFFS_NORMAL_SIZE/
      innobase/btr/btr0sea.c:
        s/100/REC_OFFS_NORMAL_SIZE/
      innobase/include/rem0rec.h:
        Define REC_OFFS_NORMAL_SIZE and REC_OFFS_SMALL_SIZE.
      innobase/lock/lock0lock.c:
        s/100/REC_OFFS_NORMAL_SIZE/
      innobase/page/page0cur.c:
        s/100/REC_OFFS_NORMAL_SIZE/
      innobase/page/page0page.c:
        s/100/REC_OFFS_NORMAL_SIZE/
      innobase/rem/rem0rec.c:
        s/100/REC_OFFS_NORMAL_SIZE/
      innobase/row/row0ins.c:
        s/100/REC_OFFS_NORMAL_SIZE/
      innobase/row/row0mysql.c:
        s/100/REC_OFFS_NORMAL_SIZE/
      innobase/row/row0purge.c:
        s/100/REC_OFFS_NORMAL_SIZE/
      innobase/row/row0row.c:
        s/100/REC_OFFS_NORMAL_SIZE/
      innobase/row/row0sel.c:
        s/100/REC_OFFS_NORMAL_SIZE/
        s/10/REC_OFFS_SMALL_SIZE/
      innobase/row/row0undo.c:
        s/100/REC_OFFS_NORMAL_SIZE/
      innobase/row/row0upd.c:
        s/100/REC_OFFS_NORMAL_SIZE/
        s/10/REC_OFFS_SMALL_SIZE/
      innobase/trx/trx0rec.c:
        s/100/REC_OFFS_NORMAL_SIZE/
      066e8900
    • unknown's avatar
      a fix (bug #9029 Traditional: Wrong SQLSTATE returned for string truncation). · 1690bab9
      unknown authored
      
      sql/field.cc:
        a fix (bug #9029 Traditional: Wrong SQLSTATE returned for string truncation).
        Should issue ER_DATA_TOO_LONG in 'traditional' mode when data truncated.
      1690bab9
    • unknown's avatar
      Fix for sp.test failure in --ps-protocol mode (2nd attempt). · 8c6a02df
      unknown authored
      Now we should call open_and_lock_tables() even if table list is empty -
      to cache stored routines used by query and open and lock tables required
      for their execution.
      
      
      sql/sql_insert.cc:
        Now we should call open_and_lock_tables() even if table list is empty -
        to cache stored routines used by query and open and lock tables required
        for their execution.
      sql/sql_prepare.cc:
        Now we should call open_and_lock_tables() even if table list is empty -
        to cache stored routines used by query and open and lock tables required
        for their execution. Thus we have to move most of functionality from 
        select_like_statement_test() to separate function to be able to reuse it
        for multi-update processing (for which tables are open and locked in 
        mysql_multi_update_prepare() call).
      8c6a02df
    • unknown's avatar
      Merge · db93db85
      unknown authored
      
      mysql-test/r/select.result:
        Auto merged
      mysql-test/t/select.test:
        Auto merged
      sql/filesort.cc:
        Auto merged
      sql/item.cc:
        SCCS merged
      db93db85
    • unknown's avatar
      Merge tulin@bk-internal.mysql.com:/home/bk/mysql-5.0 · cf732466
      unknown authored
      into poseidon.ndb.mysql.com:/home/tomas/mysql-5.0
      
      
      cf732466
    • unknown's avatar
      Merge mysql.com:/home/timka/mysql/src/4.1-bug-7425 · dd843ee4
      unknown authored
      into mysql.com:/home/timka/mysql/src/4.1-dbg
      
      
      dd843ee4
    • unknown's avatar
      Merge tulin@bk-internal.mysql.com:/home/bk/mysql-5.0 · fb9d4dca
      unknown authored
      into poseidon.ndb.mysql.com:/home/tomas/mysql-5.0
      
      
      sql/ha_ndbcluster.cc:
        Auto merged
      fb9d4dca