1. 17 Mar, 2005 2 commits
    • unknown's avatar
      Merge bk-internal:/home/bk/mysql-5.0 · 5c1b91f1
      unknown authored
      into serg.mylan:/usr/home/serg/Abk/mysql-5.0
      
      
      sql/handler.cc:
        Auto merged
      sql/lock.cc:
        Auto merged
      sql/mysql_priv.h:
        Auto merged
      sql/mysqld.cc:
        Auto merged
      sql/sql_parse.cc:
        Auto merged
      sql/sql_table.cc:
        Auto merged
      5c1b91f1
    • unknown's avatar
      Fixed two bugs in MySQL ACL. · 2bbde22d
      unknown authored
      First one is related to Bug#7905. One should not be allowed to
      create new user with password without UPDATE privilege to
      MySQL database. Furthermore, executing the same GRANT statement
      twice would actually crash the server and corrupt privilege database.
      
      Other bug was that one could update a column, using the existing
      value as basis to calculate the new value (e.g. UPDATE t1 SET a=a+1)
      without SELECT privilege to the field (a in the above example)
      
      Fixed tests grant.pl and grant2, which were wrong.
      
      
      2bbde22d
  2. 16 Mar, 2005 35 commits
    • unknown's avatar
      Merge with global tree · b766082b
      unknown authored
      
      mysql-test/r/federated.result:
        merge
      sql/ha_federated.cc:
        merge
      b766082b
    • unknown's avatar
      Move handler dependent tests to the specific handler (myisam, bdb, innodb) · 1c5ca806
      unknown authored
      Enabled VARCHAR testing for innodb
      
      NOTE: innodb.test currently fails becasue of a bug in InnoDB. 
      I have informed Heikki about this and expect him to fix this ASAP
      
      
      mysql-test/include/varchar.inc:
        Move handler dependent tests to the specific handler (myisam, bdb, innodb)
      mysql-test/r/innodb.result:
        Added varchar tests
      mysql-test/r/myisam.result:
        Update results
      mysql-test/t/bdb.test:
        Move handler dependent tests to the specific handler (myisam, bdb, innodb)
      mysql-test/t/innodb.test:
        Enabled VARCHAR testing
      mysql-test/t/myisam.test:
        Move handler dependent tests to the specific handler (myisam, bdb, innodb)
      sql/sql_parse.cc:
        Indentation fixes
      sql/sql_table.cc:
        Fixed bug introduced when doing cleanup
      1c5ca806
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.0 · 06f59b28
      unknown authored
      into mysql.com:/home/my/mysql-5.0
      
      
      sql/item_func.cc:
        Auto merged
      sql/log_event.cc:
        Auto merged
      sql/mysql_priv.h:
        Auto merged
      sql/sql_parse.cc:
        Auto merged
      sql/sql_yacc.yy:
        Auto merged
      06f59b28
    • unknown's avatar
      Merge pgalbraith@bk-internal.mysql.com:/home/bk/mysql-5.0 · 61a717f6
      unknown authored
      into krsna.:/home/patg/test/mysql-5.0
      
      
      61a717f6
    • unknown's avatar
      Fixed binlog.test failure which occured after patch implementing · f9792042
      unknown authored
      WL#874 "Extended LOAD DATA" was pushed.
      
      
      mysql-test/r/binlog.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/binlog.test:
        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.
      f9792042
    • unknown's avatar
      Merge pgalbraith@bk-internal.mysql.com:/home/bk/mysql-5.0 · a97fd472
      unknown authored
      into krsna.:/home/patg/test/mysql-5.0
      
      
      a97fd472
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.0 · 7fe43b71
      unknown authored
      into pcgem.rdg.cyberkinetica.com:/var/db/bk/work-acurtis/bug8670.3
      
      
      7fe43b71
    • unknown's avatar
      Merge pcgem.rdg.cyberkinetica.com:/var/db/bk/work-acurtis/bug8670.2 · 91df4830
      unknown authored
      into pcgem.rdg.cyberkinetica.com:/var/db/bk/work-acurtis/bug8670.3
      
      
      sql/sql_parse.cc:
        Auto merged
      sql/sql_yacc.yy:
        Auto merged
      91df4830
    • unknown's avatar
      data0data.c: · 0c0b3ea9
      unknown authored
        Allow also long VARCHARs to be stored externally, not just BLOBs; fixes a bug reported by Trudy Pelzer; needs more testing
      
      
      innobase/data/data0data.c:
        Allow also long VARCHARs to be stored externally, not just BLOBs; fixes a bug reported by Trudy Pelzer; needs more testing
      0c0b3ea9
    • unknown's avatar
    • unknown's avatar
      Merge pgalbraith@bk-internal.mysql.com:/home/bk/mysql-5.0 · a3869dd8
      unknown authored
      into krsna.:/home/patg/test/mysql-5.0
      
      
      a3869dd8
    • unknown's avatar
      Small fix to innodb.test that Heikki probably simply forgot to commit. · 01774e96
      unknown authored
      
      mysql-test/r/innodb.result:
        Added proper cleanup after test.
      mysql-test/t/innodb.test:
        We don't expect error if we create varchar(16384) column in Innodb
        table anymore. (Heikki already removed error message from .result
        file.) Also we should do proper cleanup after the test.
      01774e96
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.0 · 05e25d04
      unknown authored
      into mysql.com:/home/dlenev/src/mysql-5.0-eld-exp
      
      
      05e25d04
    • unknown's avatar
      Cleanup during reviews · 284b8b8b
      unknown authored
      Removed some optional arguments
      Fixed portability problem in federated tests
      
      
      client/sql_string.cc:
        update from sql/sql_string.cc
      client/sql_string.h:
        update from sql/sql_string.h
      mysql-test/r/federated.result:
        Fixed error message
      sql/field.cc:
        Cleanup during review
        Remove const in 'const unsigned int'
      sql/field.h:
        Remove const in 'const unsigned int'
      sql/ha_federated.cc:
        Better error string.  Add missing argument to error (before 'errno' was picked up from stack)
      sql/handler.cc:
        Removed compiler warning
      sql/item_func.cc:
        Cleanup during review
      sql/item_sum.cc:
        Cleanup during review
      sql/lock.cc:
        Remove optional arguments
      sql/log_event.cc:
        Remove optional arguments
      sql/mysql_priv.h:
        Remove optional arguments
        cahnge preapre_create_fields to use pointers instead of references
      sql/opt_range.cc:
        Fix arguments so that return value is last
      sql/sql_base.cc:
        Remove optional arguments
      sql/sql_delete.cc:
        Remove optional arguments
      sql/sql_error.cc:
        Remove optional arguments
      sql/sql_help.cc:
        Remove optional arguments
      sql/sql_parse.cc:
        Remove optional arguments
      sql/sql_prepare.cc:
        Remove optional arguments
      sql/sql_rename.cc:
        Remove optional arguments
      sql/sql_select.cc:
        Remove optional arguments
      sql/sql_show.cc:
        Cleanup during review
      sql/sql_string.cc:
        Simple optimization
      sql/sql_table.cc:
        Remove optional arguments
        Fixed indentation
      sql/sql_update.cc:
        Remove optional arguments
      sql/sql_yacc.yy:
        Change references to pointers
      284b8b8b
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.0 · d5ec9ed8
      unknown authored
      into mysql.com:/home/dlenev/src/mysql-5.0-eld-exp
      
      
      d5ec9ed8
    • unknown's avatar
      subselect2.result: · 8022fc82
      unknown authored
        Update key lengths in EXPLAIN to reflect true VARCHARs
      
      
      mysql-test/r/subselect2.result:
        Update key lengths in EXPLAIN to reflect true VARCHARs
      8022fc82
    • unknown's avatar
      ha_innodb.cc: · 66978616
      unknown authored
        Fix bug: InnoDB created all indexes on true VARCHARs as column prefix keys because field->pack_length() for a true VARCHAR is bigger than key_part->length; FOREIGN KEYs could not be created on true VARCHARs then
      
      
      sql/ha_innodb.cc:
        Fix bug: InnoDB created all indexes on true VARCHARs as column prefix keys because field->pack_length() for a true VARCHAR is bigger than key_part->length; FOREIGN KEYs could not be created on true VARCHARs then
      66978616
    • unknown's avatar
      data0type.h, row0sel.c: · f21905e0
      unknown authored
        Fix a crash in a simple search with a key: the dtype->len of a true VARCHAR is the payload maximum len in bytes: it does not include the 2 bytes MySQL uses to store the string length
      ha_innodb.cc:
        Fix a crash in true VARCHARs in test-innodb: we passed a wrong pointer to the column conversion in an UPDATE
      rowid_order_innodb.result, ps_3innodb.result, innodb.result, endspace.result:
        Edit InnoDB test results to reflect the arrival of true VARCHARs
      
      
      mysql-test/r/endspace.result:
        Edit InnoDB test results to reflect the arrival of true VARCHARs
      mysql-test/r/innodb.result:
        Edit InnoDB test results to reflect the arrival of true VARCHARs
      mysql-test/r/ps_3innodb.result:
        Edit InnoDB test results to reflect the arrival of true VARCHARs
      mysql-test/r/rowid_order_innodb.result:
        Edit InnoDB test results to reflect the arrival of true VARCHARs
      sql/ha_innodb.cc:
        Fix a crash in true VARCHARs in test-innodb: we passed a wrong pointer to the column conversion in an UPDATE
      innobase/row/row0sel.c:
        Fix a crash in a simple search with a key: the dtype->len of a true VARCHAR is the payload maximum len in bytes: it does not include the 2 bytes MySQL uses to store the string length
      innobase/include/data0type.h:
        Fix a crash in a simple search with a key: the dtype->len of a true VARCHAR is the payload maximum len in bytes: it does not include the 2 bytes MySQL uses to store the string length
      f21905e0
    • unknown's avatar
      Merge mskold@bk-internal.mysql.com:/home/bk/mysql-5.0 · ded3d0cb
      unknown authored
      into mysql.com:/usr/local/home/marty/MySQL/mysql-5.0
      
      
      ded3d0cb
    • unknown's avatar
      Merge mskold@bk-internal.mysql.com:/home/bk/mysql-4.1 · 277a9e83
      unknown authored
      into mysql.com:/usr/local/home/marty/MySQL/mysql-5.0
      
      
      277a9e83
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.0 · bfe19493
      unknown authored
      into mysql.com:/home/my/mysql-5.0
      
      
      bfe19493
    • unknown's avatar
      DATA_MYSQL_TRUE_VARCHAR can be DATA_VARCHAR, DATA_BINARY, or · b90feaed
      unknown authored
      DATA_VARMYSQL so remove unnecessary condition.
      
      
      
      b90feaed
    • unknown's avatar
      Fixed behavior of LOAD DATA with subqueries in SET clause. · ec919d74
      unknown authored
      The idea is to use TABLE_LIST::lock_type for passing type of lock for
      target table to mysql_load() instead of using LEX::lock_option 
      (which were rewritten by first subselect in SET clause).
      
      This should also fix potential problem with LOAD DATA in SP
      (it is important for them to have right lock_type in the table
       list by the end of statement parsing).
      
      
      mysql-test/r/loaddata.result:
        Added nice test for LOAD DATA with subquery.
      mysql-test/t/loaddata.test:
        Added nice test for LOAD DATA with subquery.
      sql/log_event.cc:
        Now we don't pass type of lock for target table to mysql_load()
        explicitly . Instead we use TABLE_LIST::lock_type for this table
        which is already properly set here.
      sql/mysql_priv.h:
        Now we don't pass type of lock for target table to mysql_load()
        explicitly . Instead we properly set TABLE_LIST::lock_type for
        this table in parser.
      sql/sql_load.cc:
        Now we don't pass type of lock for target table to mysql_load()
        explicitly . Instead we properly set TABLE_LIST::lock_type for
        this table in parser.
      sql/sql_parse.cc:
        Now we don't pass type of lock for target table to mysql_load()
        explicitly . Instead we properly set TABLE_LIST::lock_type for
        this table in parser.
      sql/sql_yacc.yy:
        load_data:
          Let us use TABLE_LIST::lock_type for passing type of lock for target
          table to mysql_load() instead of using LEX::lock_option (which will
          be rewritten by first subselect in SET clause).
      ec919d74
    • unknown's avatar
      97a281f5
    • unknown's avatar
      mysql-test-run.sh: · 6f36a062
      unknown authored
        Check that there is a disabled.def before using it
      disabled.def:
        Reenable ndb tests accidently disabled
      
      
      mysql-test/t/disabled.def:
        Reenable ndb tests accidently disabled
      mysql-test/mysql-test-run.sh:
        Check that there is a disabled.def before using it
      6f36a062
    • unknown's avatar
      ha_innodb.cc: · 8c45e43e
      unknown authored
        calc_row_difference(): Use non-inlined functions to avoid linking error.
      
      
      sql/ha_innodb.cc:
        calc_row_difference(): Use non-inlined functions to avoid linking error.
      8c45e43e
    • unknown's avatar
      Merge grichter@bk-internal.mysql.com:/home/bk/mysql-5.0 · 5d3c9a9a
      unknown authored
      into lmy002.wdf.sap.corp:/home/georg/work/mysql/sap/mysql-5.0
      
      
      5d3c9a9a
    • unknown's avatar
      typecast fix for windows 64-bit compilation error · 0cd045ca
      unknown authored
      
      BitKeeper/etc/ignore:
        Added VC++Files/client/mysql_amd64.dsp to the ignore list
      0cd045ca
    • unknown's avatar
      sql/handler.cc · 5cb5a11b
      unknown authored
          smarter xid-to-str routiine
          fixed assert crash in XA RECOVER
      sql/sql_parse.cc
          XA COMMIT/ROLLBACK did not send_ok in some cases
      
      
      sql/handler.cc:
        smarter xid-to-str routiine
        fixed assert crash in XA RECOVER
      sql/sql_parse.cc:
        XA COMMIT/ROLLBACK did not send_ok in some cases
      5cb5a11b
    • unknown's avatar
      global read lock code now uses a dedicated mutex · 232dc922
      unknown authored
      (otherwise a deadlock when ALTER writes to
      binlog holding LOCK_open, it causes binlog rotation,
      binlog waits for prepared transactions to commit, and commit
      needs LOCK_open to check for global read lock)
      
      
      mysql-test/r/flush.result:
        global read lock code now uses a dedicated mutex
      mysql-test/t/flush.test:
        global read lock code now uses a dedicated mutex
      sql/lock.cc:
        global read lock code now uses a dedicated mutex
      sql/mysql_priv.h:
        global read lock code now uses a dedicated mutex
      sql/mysqld.cc:
        global read lock code now uses a dedicated mutex
      sql/sql_table.cc:
        global read lock code now uses a dedicated mutex
      232dc922
    • unknown's avatar
      Merge mskold@bk-internal.mysql.com:/home/bk/mysql-4.1 · 2576beab
      unknown authored
      into mysql.com:/usr/local/home/marty/MySQL/mysql-4.1
      
      
      2576beab
    • unknown's avatar
      WL #2094 Federated Storage Engine · 24dc8331
      unknown authored
      Changes to a test with a update to a table with 1001 columns, the last being a blob. 
      On HP, the test worked properly, but on other OSs, there's a problem with using the 
      blob column in an update where clause. The field method val_string(String *, char *) 
      should work, but doesn't seem to deal with blobd, and for some reason, cannot get
      the correct value of the blob column from the byte pointer in update_row, "*old_data"
      which is a byte pointer to the row in mysql format, that will be replaced with 
      "*new_data" (which conveniently has a field pointer to use to get values from).
      
      Will document this.
      
      
      mysql-test/r/federated.result:
        New test results. These results have been tested on production and hpita2 successfully.
      mysql-test/t/federated.test:
        Changed blob column in this test due to some issues with HPUX handling it correctly
        and other OSs not. Will document this (blobs in update where clause)
      24dc8331
    • unknown's avatar
      WL #2094 Federated Storage Handler. · 977784d8
      unknown authored
      Edits to ha_federated.cc per Monty, cleanup
      
      
      sql/ha_federated.cc:
        - changed all debug prints to 'info' from method name per Monty
        - cleanup
      977784d8
    • 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
    • unknown's avatar
      Bug#8670 · 8e7c17a8
      unknown authored
        Rework to resolve ambigious grammer: conflict in join expression
        handling of parentheses for nested joins and derived tables.
        Tests included of failing statements
      Optimize item construction for AND/OR logical expressions
      
      
      mysql-test/r/select.result:
        Bug#8670
          Tests for failing expressions
      mysql-test/t/select.test:
        Bug#8670
          Tests for failing expressions
      sql/sql_parse.cc:
        Bug#8670
          method st_select_lex::end_nested_join() returns NULL when
          there are no elements in the join.
      sql/sql_yacc.yy:
        Optimize construction for Item_cond_or and Item_cond_and
          Reduces object count in case of complex expressions.
        Bug#8670
          Solve ambigious grammar.
          Fix handling of parentheses in join expressions to
          correct handling of nested joins and derived tables.
      8e7c17a8
  3. 15 Mar, 2005 3 commits
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.0 · 00845876
      unknown authored
      into mysql.com:/home/my/mysql-5.0
      
      
      sql/mysqld.cc:
        Auto merged
      sql/sql_show.cc:
        Auto merged
      00845876
    • unknown's avatar
      Many files: · 7955fe52
      unknown authored
        InnoDB true VARCHAR
      
      
      sql/ha_innodb.h:
        InnoDB true VARCHAR
      sql/ha_innodb.cc:
        InnoDB true VARCHAR
      innobase/include/data0type.h:
        InnoDB true VARCHAR
      innobase/include/que0que.h:
        InnoDB true VARCHAR
      innobase/include/row0mysql.h:
        InnoDB true VARCHAR
      innobase/include/data0type.ic:
        InnoDB true VARCHAR
      innobase/include/row0mysql.ic:
        InnoDB true VARCHAR
      innobase/row/row0ins.c:
        InnoDB true VARCHAR
      innobase/row/row0mysql.c:
        InnoDB true VARCHAR
      innobase/row/row0sel.c:
        InnoDB true VARCHAR
      innobase/trx/trx0trx.c:
        InnoDB true VARCHAR
      7955fe52
    • unknown's avatar
      Merge rburnett@bk-internal.mysql.com:/home/bk/mysql-5.0 · 4db638f3
      unknown authored
      into mdk10.(none):/home/reggie/bk/mysql-5.0
      
      
      4db638f3