1. 13 Mar, 2005 8 commits
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.0 · a67e6d53
      unknown authored
      into mysql.com:/media/sda1/mysql/mysql-5.0-926
      
      a67e6d53
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.0 · c9796185
      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
      c9796185
    • unknown's avatar
      WL#926 "SUM(DISTINCT) and AVG(DISTINCT)": improvement of SUM(DISTINCT) and · 56012000
      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.
      56012000
    • unknown's avatar
      row0mysql.c: · b47ac187
      unknown authored
        Correct web links
      fil0fil.c:
        Correct (?) English grammar
      
      
      innobase/fil/fil0fil.c:
        Correct (?) English grammar
      innobase/row/row0mysql.c:
        Correct web links
      b47ac187
    • unknown's avatar
      set_var.cc, mysqld.cc, ha_innodb.cc, sql_class.h: · 7f6658db
      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
      7f6658db
    • unknown's avatar
      join_outer.test: · d83bb4ed
      unknown authored
        Correction after manual merge.
      
      
      mysql-test/t/join_outer.test:
        Correction after manual merge.
      d83bb4ed
    • unknown's avatar
      Manual merge · 9c892564
      unknown authored
      
      sql/item_cmpfunc.h:
        Auto merged
      9c892564
    • unknown's avatar
      join_outer.result, join_outer.test: · 017f7897
      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.
      017f7897
  2. 11 Mar, 2005 15 commits
  3. 10 Mar, 2005 17 commits
    • unknown's avatar
      Merge mysql.com:/home/psergey/mysql-4.1-bug8711 · 9e99496e
      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
      9e99496e
    • unknown's avatar
      Merge · 9e57dd00
      unknown authored
      
      sql/item_cmpfunc.h:
        Auto merged
      mysql-test/r/join_outer.result:
        SCCS merged
      mysql-test/t/join_outer.test:
        SCCS merged
      9e57dd00
    • unknown's avatar
      Fix for BUG#8711: "<=>" may have true value for NULL arguments, so make · b2dae8bd
      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)
      b2dae8bd
    • unknown's avatar
      Correct "make_win_src_distribution" to not introduce additional directory layers, · 68b82f08
      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.
      68b82f08
    • unknown's avatar
      More portability fixes · 346e358a
      unknown authored
      346e358a
    • unknown's avatar
      Merge mysql.com:/M41/mysql-4.1 into mysql.com:/M41/push-4.1 · 3bd5de1e
      unknown authored
      
      Build-tools/Do-compile:
        Auto merged
      mysql-test/mysql-test-run.sh:
        Auto merged
      3bd5de1e
    • unknown's avatar
      Merge marko@bk-internal.mysql.com:/home/bk/mysql-5.0 · 2e21369e
      unknown authored
      into hundin.mysql.fi:/home/marko/mysql-5.0
      
      2e21369e
    • unknown's avatar
      Merge mysql.com:/home/timka/mysql/src/5.0-virgin · de2af8cb
      unknown authored
      into mysql.com:/home/timka/mysql/src/5.0-dbg
      
      de2af8cb
    • unknown's avatar
      InnoDB: Keep the "compact format" flag in SYS_TABLES.N_COLS · 23ceb9a6
      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.
      23ceb9a6
    • unknown's avatar
      Merge marko@bk-internal.mysql.com:/home/bk/mysql-5.0 · 50dbe323
      unknown authored
      into hundin.mysql.fi:/home/marko/mysql-5.0
      
      50dbe323
    • unknown's avatar
      rem0rec.h: · fe0fd907
      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.
      fe0fd907
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.0 · 9d97417a
      unknown authored
      into mysql.com:/home/dlenev/src/mysql-5.0-sp
      
      9d97417a
    • unknown's avatar
      InnoDB: Introduce the symbols REC_OFFS_NORMAL_SIZE and · b581eb44
      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/
      b581eb44
    • unknown's avatar
      a fix (bug #9029 Traditional: Wrong SQLSTATE returned for string truncation). · d7453fec
      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.
      d7453fec
    • unknown's avatar
      Fix for sp.test failure in --ps-protocol mode (2nd attempt). · 384faf57
      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).
      384faf57
    • unknown's avatar
      Merge · dd11c15d
      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
      dd11c15d
    • unknown's avatar
      Merge tulin@bk-internal.mysql.com:/home/bk/mysql-5.0 · 24dcc5a4
      unknown authored
      into poseidon.ndb.mysql.com:/home/tomas/mysql-5.0
      
      24dcc5a4