1. 16 Mar, 2005 1 commit
    • unknown's avatar
      WL#874 "Extended LOAD DATA". · 5f75c8f5
      unknown authored
      Now one can use user variables as target for data loaded from file
      (besides table's columns). Also LOAD DATA got new SET-clause in which
      one can specify values for table columns as expressions.
      
      For example the following is possible:
      LOAD DATA INFILE 'words.dat' INTO TABLE t1 (a, @b) SET c = @b + 1;
      
      This patch also implements new way of replicating LOAD DATA.
      Now we do it similarly to other queries.
      We store LOAD DATA query in new Execute_load_query event
      (which is last in the sequence of events representing LOAD DATA).
      When we are executing this event we simply rewrite part of query which
      holds name of file (we use name of temporary file) and then execute it
      as usual query. In the beggining of this sequence we use Begin_load_query
      event which is almost identical to Append_file event
      
      
      client/mysqlbinlog.cc:
        Added support of two new binary log events Begin_load_query_log_event and
        Execute_load_query_log_Event which are used to replicate LOAD DATA INFILE.
      mysql-test/r/ctype_ucs.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results and made it more robust for future similar 
        changes.
      mysql-test/r/insert_select.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results and made it more robust for future similar 
        changes.
      mysql-test/r/loaddata.result:
        Added tests for new LOAD DATA features.
      mysql-test/r/mix_innodb_myisam_binlog.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results (don't dare to get rid from binlog positions
        completely since it seems that this test uses them).
      mysql-test/r/mysqlbinlog.result:
        New approach for binlogging of LOAD DATA statement. Now we store it as
        usual query and rewrite part in which file is specified when needed.
        So now mysqlbinlog output for LOAD DATA much more closer to its initial
        form. Updated test'd results accordingly.
      mysql-test/r/mysqldump.result:
        Made test more robust to other tests failures.
      mysql-test/r/rpl000015.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results accordingly.
      mysql-test/r/rpl_change_master.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results.
      mysql-test/r/rpl_charset.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results accordingly
      mysql-test/r/rpl_deadlock.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results accordingly
      mysql-test/r/rpl_error_ignored_table.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results and made it more robust for future similar 
        changes.
      mysql-test/r/rpl_flush_log_loop.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results accordingly.
      mysql-test/r/rpl_flush_tables.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results and made it more robust for future similar 
        changes.
      mysql-test/r/rpl_loaddata.result:
        New way of replicating LOAD DATA. Now we do it similarly to other
        queries. We store LOAD DATA query in new Execute_load_query event
        (which is last in the sequence of events representing LOAD DATA).
        When we are executing this event we simply rewrite part of query which
        holds name of file (we use name of temporary file) and then execute it
        as usual query. In the beggining of this sequence we use Begin_load_query
        event which is almost identical to Append_file event...
        
        Updated test's results wwith new binlog positions.
      mysql-test/r/rpl_loaddata_rule_m.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results and made it more robust for future similar 
        changes.
        Since now LOAD DATA is replicated much in the same way as usual query
        --binlog_do/ignore_db work for it inthe same way as for usual queries.
      mysql-test/r/rpl_loaddata_rule_s.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results accordingly.
      mysql-test/r/rpl_loaddatalocal.result:
        Added nice test for case when it is important that LOAD DATA LOCAL
        ignores duplicates.
      mysql-test/r/rpl_log.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results accordingly (don't dare to get rid from binlog 
        positions completely since it seems that this test uses them).
      mysql-test/r/rpl_log_pos.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results accordingly.
      mysql-test/r/rpl_max_relay_size.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results accordingly.
      mysql-test/r/rpl_multi_query.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results accordingly.
      mysql-test/r/rpl_relayrotate.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results accordingly.
      mysql-test/r/rpl_replicate_do.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results accordingly.
      mysql-test/r/rpl_reset_slave.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results accordingly.
      mysql-test/r/rpl_rotate_logs.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results accordingly.
      mysql-test/r/rpl_server_id1.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results accordingly.
      mysql-test/r/rpl_server_id2.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results accordingly.
      mysql-test/r/rpl_temporary.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results and made it more robust for future similar 
        changes.
      mysql-test/r/rpl_timezone.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results and made it more robust for future similar 
        changes.
      mysql-test/r/rpl_until.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results accordingly and tweaked test a bit to bring it
        back to good shape.
      mysql-test/r/rpl_user_variables.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results and made it more robust for future similar 
        changes.
      mysql-test/r/user_var.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results and made it more robust for future similar 
        changes.
      mysql-test/t/ctype_ucs.test:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test accordingly and made it more robust for future similar
        changes.
      mysql-test/t/insert_select.test:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test accordingly and made it more robust for future similar
        changes.
      mysql-test/t/loaddata.test:
        Added test cases for new LOAD DATA functionality.
      mysql-test/t/mix_innodb_myisam_binlog.test:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test accordingly.
      mysql-test/t/mysqlbinlog.test:
        New way of replicating LOAD DATA local. Now we do it similarly to other
        queries. We store LOAD DATA query in new Execute_load_query event
        (which is last in the sequence of events representing LOAD DATA).
        When we are executing this event we simply rewrite part of query which
        holds name of file (we use name of temporary file) and then execute it
        as usual query. In the beggining of this sequence we use Begin_load_query
        event which is almost identical to Append_file event...
        
        Thus we need new binlog positions for LOAD DATA events.
      mysql-test/t/mysqlbinlog2.test:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test accordingly.
      mysql-test/t/mysqldump.test:
        Made test more robust for failures of other tests.
      mysql-test/t/rpl_charset.test:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test accordingly.
      mysql-test/t/rpl_deadlock.test:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test accordingly.
      mysql-test/t/rpl_error_ignored_table.test:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test accordingly and made it more robust for future similar
        changes.
      mysql-test/t/rpl_flush_tables.test:
        Addition of two new types of binary log events shifted binlog positions.
        Made test more robust for future similar changes.
      mysql-test/t/rpl_loaddata.test:
        New way of replicating LOAD DATA. Now we do it similarly to other
        queries. We store LOAD DATA query in new Execute_load_query event
        (which is last in the sequence of events representing LOAD DATA).
        When we are executing this event we simply rewrite part of query which
        holds name of file (we use name of temporary file) and then execute it
        as usual query. In the beggining of this sequence we use Begin_load_query
        event which is almost identical to Append_file event...
        
        Apropritely updated comments in test.
      mysql-test/t/rpl_loaddata_rule_m.test:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test accordingly and made it more robust for future similar 
        changes.
        Since now LOAD DATA is replicated much in the same way as usual query
        --binlog_do/ignore_db work for it inthe same way as for usual queries.
      mysql-test/t/rpl_loaddata_rule_s.test:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test accordingly.
      mysql-test/t/rpl_loaddatalocal.test:
        Added nice test for case when it is important that LOAD DATA LOCAL
        ignores duplicates.
      mysql-test/t/rpl_log.test:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test accordingly (don't dare to get rid from binlog positions
        completely since it seems that this test uses them).
      mysql-test/t/rpl_log_pos.test:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test accordingly.
      mysql-test/t/rpl_multi_query.test:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test accordingly.
      mysql-test/t/rpl_temporary.test:
        Addition of two new types of binary log events shifted binlog positions.
        Made test more robust for future similar changes.
      mysql-test/t/rpl_timezone.test:
        Addition of two new types of binary log events shifted binlog positions.
        Made test more robust for future similar changes.
      mysql-test/t/rpl_until.test:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test accordingly and tweaked it a bit to bring it back to good
        shape.
      mysql-test/t/rpl_user_variables.test:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test accordingly and made it more robust for future similar
        changes.
      mysql-test/t/user_var.test:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test accordingly and made it more robust for future similar
        changes.
      sql/item_func.cc:
        Added Item_user_var_as_out_param class that represents user variable
        which used as out parameter in LOAD DATA.
        
        Moved code from Item_func_set_user_var::update_hash() function to
        separate static function to be able to reuse it in this new class.
      sql/item_func.h:
        Added Item_user_var_as_out_param class that represents user variable
        which used as out parameter in LOAD DATA.
      sql/log_event.cc:
        New way of replicating LOAD DATA. Now we do it similarly to other
        queries. We store LOAD DATA query in new Execute_load_query event
        (which is last in the sequence of events representing LOAD DATA).
        When we are executing this event we simply rewrite part of query which
        holds name of file (we use name of temporary file) and then execute it
        as usual query. In the beggining of this sequence we use Begin_load_query
        event which is almost identical to Append_file event.
      sql/log_event.h:
        New way of replicating LOAD DATA. Now we do it similarly to other
        queries. We store LOAD DATA query in new Execute_load_query event
        (which is last in the sequence of events representing LOAD DATA).
        When we are executing this event we simply rewrite part of query which
        holds name of file (we use name of temporary file) and then execute it
        as usual query. In the beggining of this sequence we use Begin_load_query
        event which is almost identical to Append_file event.
      sql/mysql_priv.h:
        Now mysql_load() has two more arguments. They are needed to pass list of
        columns and corresponding expressions from new LOAD DATA's SET clause.
      sql/share/errmsg.txt:
        Added new error message which is used to forbid loading of data from
        fixed length rows to variables.
      sql/sql_lex.h:
        Added LEX::fname_start/fname_end members. 
        They are pointers to part of LOAD DATA statement which should be
        rewritten during replication (file name + little extra).
      sql/sql_load.cc:
        Added support for extended LOAD DATA. 
        Now one can use user variables as target for data loaded from file 
        (besides table's columns). Also LOAD DATA got new SET-clause in which
        one can specify values for table columns as expressions.
        
        Updated mysql_load()/read_fixed_length()/read_sep_field() to support
        this functionality (now they can read data from file to both columns and
        variables and assign do calculations and assignments specified in SET
        clause).
        
        We also use new approach for LOAD DATA binlogging/replication.
      sql/sql_parse.cc:
        mysql_execute_command():
          Since now we have SET clause in LOAD DATA we should also check
          permissions for tables used in its expressions. Also mysql_load()
          has two more arguments to pass information about this clause.
      sql/sql_repl.cc:
        New way of replicating LOAD DATA. Now we do it similarly to other
        queries. We store LOAD DATA query in new Execute_load_query event
        (which is last in the sequence of events representing LOAD DATA).
        When we are executing this event we simply rewrite part of query which
        holds name of file (we use name of temporary file) and then execute it
        as usual query. In the beggining of this sequence we use Begin_load_query
        event which is almost identical to Append_file event.
      sql/sql_repl.h:
        struct st_load_file_info:
          Removed memebers which are no longer needed for LOAD DATA binnlogging.
      sql/sql_yacc.yy:
        Added support for extended LOAD DATA syntax. Now one can use
        user variables as target for data loaded from file (besides table's 
        columns). Also LOAD DATA got new SET-clause in which one can specify
        values for table columns as expressions.
        
        For example the following is possible:
        LOAD DATA INFILE 'words.dat' INTO TABLE t1 (a, @b) SET c = @b + 1;
        
        Also now we save pointers to the beginning and to the end of part of 
        LOAD DATA statement which should be rewritten during replication.
      5f75c8f5
  2. 15 Mar, 2005 32 commits
    • unknown's avatar
      Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-5.0 · 268a3ecc
      unknown authored
      into mysql.com:/usr/home/ram/work/5.0
      
      
      268a3ecc
    • unknown's avatar
      after merge fix · 7e743721
      unknown authored
      7e743721
    • unknown's avatar
      merging · 3c42daa9
      unknown authored
      
      heap/hp_create.c:
        Auto merged
      sql/filesort.cc:
        Auto merged
      mysql-test/r/heap.result:
        manual merging
      mysql-test/t/heap.test:
        manual merging
      sql/ha_heap.cc:
        manual merging
      3c42daa9
    • unknown's avatar
      Merged WL#2269 to mysql-5.0 · ef2ca978
      unknown authored
      
      sql/ha_ndbcluster.h:
        Auto merged
      sql/mysqld.cc:
        Auto merged
      sql/set_var.cc:
        Auto merged
      sql/sql_class.h:
        Auto merged
      sql/ha_ndbcluster.cc:
        Manual merge
      ef2ca978
    • unknown's avatar
      WL#2269 Enable query cache for NDB part 2 · aa5dba42
      unknown authored
      -This is mostly fixes for correct behaviour when using query cache + transactions + the thread that
      fetches commit count from NDB at regular intervals. The major fix is to add a
      list in thd_ndb, that keeps a list of NDB_SHARE's that were modified by
      transaction and then "clearing" them in ndbcluster_commit.
      
      
      mysql-test/r/ndb_cache2.result:
        Updated test cases for the ndb_util thread, more simultaneous tables and more tesst
      mysql-test/t/ndb_cache2.test:
        Updated test cases for the ndb_util thread, more simultaneous tables and more advanced tesst
      sql/ha_ndbcluster.cc:
        Add table changed during transaction to list of changed tables in Thd_ndb, this list is then used in ndbcluster_commit to invalidate the cached commit_count in share
        Fix so that ndb_util_thread uses milliseconds "sleeps"
        Changed so that ndb_commit_count uses the commit_count from share if available
      sql/ha_ndbcluster.h:
        Add commit_count_lock to NBD_SHARE, use for detecting simultaneous attempts to update commit_count
        Add list of tables changed by transaction to Thd_ndb
        Change check_ndb_connection to take thd as argument, use current_thd as default
        Added m_rows_changed variable to keep track of if this handler has modified any records within the transaction
      sql/set_var.cc:
        Change format of code
        Sort sys__ variables in aplha order
      aa5dba42
    • unknown's avatar
      Cleanup · 9af776c8
      unknown authored
      9af776c8
    • unknown's avatar
      Merge marko@bk-internal.mysql.com:/home/bk/mysql-5.0 · 6c82fa80
      unknown authored
      into hundin.mysql.fi:/home/marko/mysql-5.0
      
      
      6c82fa80
    • unknown's avatar
      Merge lgrimmer@bk-internal.mysql.com:/home/bk/mysql-5.0 · 33e3c6dc
      unknown authored
      into mysql.com:/space/my/mysql-5.0
      
      
      33e3c6dc
    • unknown's avatar
      A fix (bug #8799: Killed filesorts can fail inited==RND assertion in ha_rnd_end). · 0ba3164e
      unknown authored
      
      sql/filesort.cc:
        A fix (bug #8799: Killed filesorts can fail inited==RND assertion in ha_rnd_end).              
        Should call ha_rnd_end() only if ha_rnd_init() was called.
      0ba3164e
    • unknown's avatar
      Merge mysql.com:/space/my/mysql-4.1-build · 7031cea4
      unknown authored
      into mysql.com:/space/my/mysql-5.0
      
      
      support-files/mysql.server.sh:
        Auto merged
      7031cea4
    • unknown's avatar
      - Build fix for Do-solaris-pkg: fixed package name matching regex to be satisfied with · 8418e31f
      unknown authored
        "mysql-pro-gpl-cert" packages as well (thanks to Kent for the suggestion)
      
      
      Build-tools/Do-solaris-pkg:
        - fixed package name matching regex to be satisfied with "mysql-pro-gpl-cert" packages as well
          (thanks to Kent for the suggestion)
      8418e31f
    • unknown's avatar
      Applied some changes to the mysql.server init script that are already shipped... · 39005884
      unknown authored
      Applied some changes to the mysql.server init script that are already shipped as an additional patch
      in the 4.1.10a RPMs for SLES9/RHEL3:
      
      - small improvement: use LSB functions to display startup success and failure, if available.
        Fall back to more primitive builtin functions otherwise.
      - joined two pieces of code performing the same functionality into one "wait_for_pid" function
      - added a "reload" function (LSB requirement)
      
      
      support-files/mysql.server.sh:
        - small improvement: use LSB functions to display startup success and failure, if available.
          Fall back to builtin functions otherwise.
        - joined two pieces of code performing the same functionality into one "wait_for_pid" function
        - added a "reload" function (LSB requirement)
      39005884
    • unknown's avatar
      Merge pnousiainen@bk-internal.mysql.com:/home/bk/mysql-5.0 · 409b294b
      unknown authored
      into mysql.com:/space/pekka/ndb/version/my50
      
      
      409b294b
    • unknown's avatar
      ndb - valgrind/compile fix Transporter.cpp: missing return · 487d8670
      unknown authored
      
      ndb/src/common/transporter/Transporter.cpp:
        missing return
      487d8670
    • unknown's avatar
      Avoid compilation error: On IRIX, identifiers with loop scope still need to be unique · b0b08e6c
      unknown authored
      at function level.
      
      
      ndb/src/ndbapi/NdbEventOperationImpl.cpp:
        Avoid compilation error: On IRIX, variables declared within a loop control statement
        seem to have function scope. Either use different identifiers, or declare them
        at function level.
      b0b08e6c
    • unknown's avatar
      Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-4.1 · 23d48b7d
      unknown authored
      into mysql.com:/usr/home/ram/work/4.1.b8799
      
      
      23d48b7d
    • unknown's avatar
      Merge jbruehe@bk-internal.mysql.com:/home/bk/mysql-5.0 · 18bc8734
      unknown authored
      into mysql.com:/M50/mysql-5.0
      
      
      18bc8734
    • unknown's avatar
      dict0load.c: · 7d638314
      unknown authored
        dict_load_table(): Remove unused label that was accidentally introduced
        in a 4.0->4.1->5.0 merge.
      
      
      innobase/dict/dict0load.c:
        dict_load_table(): Remove unused label that was accidentally introduced
        in a 4.0->4.1->5.0 merge.
      7d638314
    • unknown's avatar
      A fix (bug #8489: Strange auto_increment behaviour with HEAP table). · 9c04a77e
      unknown authored
      
      heap/hp_create.c:
        A fix (bug #8489: Strange auto_increment behaviour with HEAP table).
        Handle autoincrement keys MyISAM-way.
      include/heap.h:
        A fix (bug #8489: Strange auto_increment behaviour with HEAP table).
        Handle autoincrement keys MyISAM-way.
      sql/ha_heap.cc:
        A fix (bug #8489: Strange auto_increment behaviour with HEAP table).
        Handle autoincrement keys MyISAM-way.
      9c04a77e
    • unknown's avatar
      After merge fixes · 50a6be7d
      unknown authored
      
      BitKeeper/etc/logging_ok:
        auto-union
      innobase/buf/buf0flu.c:
        Manual merge
      innobase/dict/dict0load.c:
        Manual merge: do not refuse to open ROW_FORMAT=COMPACT tables
      50a6be7d
    • unknown's avatar
      Merge hundin.mysql.fi:/home/marko/k/mysql-4.0 · bcabdc22
      unknown authored
      into hundin.mysql.fi:/home/marko/mysql-4.1
      
      
      innobase/dict/dict0load.c:
        SCCS merged
      bcabdc22
    • unknown's avatar
      Merge pgalbraith@bk-internal.mysql.com:/home/bk/mysql-5.0 · 01df5a15
      unknown authored
      into krsna.:/home/patg/test/mysql-5.0
      
      
      BitKeeper/etc/logging_ok:
        auto-union
      01df5a15
    • unknown's avatar
      This changeset contains changes approved in code review by · 2b1a8acd
      unknown authored
      Konstja and Georg, change sets 1.1806, 1.1805. These changes has been successfully 
      tested on both my own workstation (Suse 9.0) and production.mysql.com.
      
      
      mysql-test/r/federated.result:
        new test results for error handling tests.
      mysql-test/t/federated.test:
        new error handling tests
      sql/ha_federated.cc:
        - check_foreign_data source added
        - table names now enclosed in '`' to allow for '%' or other characters
        - better error handling
        - mysql_init now checked to see if it returns true/false, error out if false (Georg)
      BitKeeper/etc/logging_ok:
        Logging to logging@openlogging.org accepted
      2b1a8acd
    • unknown's avatar
      Updated tests results for BUG#8510 · 1defb94d
      unknown authored
      1defb94d
    • unknown's avatar
      buf0flu.c: · f5688932
      unknown authored
        Add diagnostics to track why ut_a(block->state == BUF_BLOCK_FILE_PAGE) failed in buf_flush_ready_for_replace() for a user
      
      
      innobase/buf/buf0flu.c:
        Add diagnostics to track why ut_a(block->state == BUF_BLOCK_FILE_PAGE) failed in buf_flush_ready_for_replace() for a user
      f5688932
    • unknown's avatar
      Merge spetrunia@bk-internal.mysql.com:/home/bk/mysql-4.1 · 7e517f73
      unknown authored
      into mysql.com:/home/psergey/mysql-4.1-bug8510
      
      
      7e517f73
    • unknown's avatar
      Merge mysql.com:/home/psergey/mysql-4.1-bug8510 · 54baac55
      unknown authored
      into mysql.com:/home/psergey/mysql-5.0-bug8510
      
      
      mysql-test/r/ansi.result:
        Auto merged
      sql/set_var.cc:
        Auto merged
      54baac55
    • unknown's avatar
      Merge paul@bk-internal.mysql.com:/home/bk/mysql-4.1 · 786b52e1
      unknown authored
      into snake-hub.snake.net:/src/extern/MySQL/bk/mysql-4.1
      
      
      786b52e1
    • unknown's avatar
      Merge snake-hub.snake.net:/src/extern/MySQL/bk/mysql-4.0 · 62ce8731
      unknown authored
      into snake-hub.snake.net:/src/extern/MySQL/bk/merge-4.1
      
      
      BitKeeper/etc/logging_ok:
        auto-union
      62ce8731
    • unknown's avatar
      mysql.1.in: · 6d0ec316
      unknown authored
        Fix path that needs no parameterization.
      
      
      man/mysql.1.in:
        Fix path that needs no parameterization.
      BitKeeper/etc/logging_ok:
        Logging to logging@openlogging.org accepted
      6d0ec316
    • unknown's avatar
      Merge spetrunia@bk-internal.mysql.com:/home/bk/mysql-4.1 · 155cfb39
      unknown authored
      into mysql.com:/home/psergey/mysql-4.1-bug8510
      
      
      sql/set_var.cc:
        Auto merged
      155cfb39
    • unknown's avatar
      WL#926 "AVG(DISTINCT) and other distincts", part 2 (out of 3): clean up · 897849e5
      unknown authored
      Item_sum_count_distinct, and
      deploy Unique for use with COUNT(DISTINCT) if there is no blob
      column in the list of DISTINCT arguments.
      
      
      mysql-test/r/count_distinct2.result:
        Test results fixed.
      mysql-test/r/func_group.result:
        Updated.
      mysql-test/r/sum_distinct.result:
        Updated.
      mysql-test/t/func_group.test:
        Add a test for COUNT(DISTINCT) and true varchar and case-insensitive
        collation. The table in the test contains only two distinct values.
      mysql-test/t/sum_distinct.test:
        Since now we support INSERT INTO t1 (a) SELECT a+1 FROM t1, shorten
        the test.
        Add a nominal test for AVG(DISTINCT)
      sql/item_sum.cc:
        Implementation of cleaned up Item_sum_count_distinct.
        Fixed a bug with COUNT(DISTINCT) and new VARCHAR and collations.
        Fixed a bug wiht AVG(DISTINCT) and wrong number of output digits
        after decimal point.
      sql/item_sum.h:
        Cleanup for Item_sum_count_distinct.
        Now if the list of distinct arguments doesn't contain a blob column,
        we always use Unique and merge-sort to find distinct values.
      sql/sql_class.h:
        Added a short-cut to find number of elements in Unique if all elements fit
        into memory.
      897849e5
  3. 14 Mar, 2005 7 commits