1. 17 Mar, 2005 1 commit
    • unknown's avatar
      Fixed two bugs in MySQL ACL. · 5de05a3a
      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.
      
      5de05a3a
  2. 16 Mar, 2005 33 commits
    • unknown's avatar
      Merge with global tree · 0436eb08
      unknown authored
      
      mysql-test/r/federated.result:
        merge
      sql/ha_federated.cc:
        merge
      0436eb08
    • unknown's avatar
      Move handler dependent tests to the specific handler (myisam, bdb, innodb) · de53c2b3
      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
      de53c2b3
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.0 · 157e3ada
      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
      157e3ada
    • unknown's avatar
      Merge pgalbraith@bk-internal.mysql.com:/home/bk/mysql-5.0 · 292edcdd
      unknown authored
      into krsna.:/home/patg/test/mysql-5.0
      
      292edcdd
    • unknown's avatar
      Fixed binlog.test failure which occured after patch implementing · b32ecfc4
      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.
      b32ecfc4
    • unknown's avatar
      Merge pgalbraith@bk-internal.mysql.com:/home/bk/mysql-5.0 · 0505c67e
      unknown authored
      into krsna.:/home/patg/test/mysql-5.0
      
      0505c67e
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.0 · b09934b1
      unknown authored
      into pcgem.rdg.cyberkinetica.com:/var/db/bk/work-acurtis/bug8670.3
      
      b09934b1
    • unknown's avatar
      Merge pcgem.rdg.cyberkinetica.com:/var/db/bk/work-acurtis/bug8670.2 · 0feec36b
      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
      0feec36b
    • unknown's avatar
      data0data.c: · 316f2d66
      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
      316f2d66
    • unknown's avatar
    • unknown's avatar
      Merge pgalbraith@bk-internal.mysql.com:/home/bk/mysql-5.0 · 7a5f168f
      unknown authored
      into krsna.:/home/patg/test/mysql-5.0
      
      7a5f168f
    • unknown's avatar
      Small fix to innodb.test that Heikki probably simply forgot to commit. · 84e9ab66
      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.
      84e9ab66
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.0 · aa31ea79
      unknown authored
      into mysql.com:/home/dlenev/src/mysql-5.0-eld-exp
      
      aa31ea79
    • unknown's avatar
      Cleanup during reviews · 1637a873
      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
      1637a873
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.0 · 84f259a4
      unknown authored
      into mysql.com:/home/dlenev/src/mysql-5.0-eld-exp
      
      84f259a4
    • unknown's avatar
      subselect2.result: · aeba80b7
      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
      aeba80b7
    • unknown's avatar
      ha_innodb.cc: · e4c10e5d
      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
      e4c10e5d
    • unknown's avatar
      data0type.h, row0sel.c: · e5c76f5b
      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
      e5c76f5b
    • unknown's avatar
      Merge mskold@bk-internal.mysql.com:/home/bk/mysql-5.0 · 1097f773
      unknown authored
      into mysql.com:/usr/local/home/marty/MySQL/mysql-5.0
      
      1097f773
    • unknown's avatar
      Merge mskold@bk-internal.mysql.com:/home/bk/mysql-4.1 · da125e26
      unknown authored
      into mysql.com:/usr/local/home/marty/MySQL/mysql-5.0
      
      da125e26
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.0 · 592ee30c
      unknown authored
      into mysql.com:/home/my/mysql-5.0
      
      592ee30c
    • unknown's avatar
      DATA_MYSQL_TRUE_VARCHAR can be DATA_VARCHAR, DATA_BINARY, or · b399fe8b
      unknown authored
      DATA_VARMYSQL so remove unnecessary condition.
      
      
      b399fe8b
    • unknown's avatar
      Fixed behavior of LOAD DATA with subqueries in SET clause. · b5a176a5
      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).
      b5a176a5
    • unknown's avatar
      fba770b3
    • unknown's avatar
      mysql-test-run.sh: · 30da9ba3
      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
      30da9ba3
    • unknown's avatar
      ha_innodb.cc: · d6fa9b6c
      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.
      d6fa9b6c
    • unknown's avatar
      Merge grichter@bk-internal.mysql.com:/home/bk/mysql-5.0 · 692b146b
      unknown authored
      into lmy002.wdf.sap.corp:/home/georg/work/mysql/sap/mysql-5.0
      
      692b146b
    • unknown's avatar
      typecast fix for windows 64-bit compilation error · ff252936
      unknown authored
      
      BitKeeper/etc/ignore:
        Added VC++Files/client/mysql_amd64.dsp to the ignore list
      ff252936
    • unknown's avatar
      Merge mskold@bk-internal.mysql.com:/home/bk/mysql-4.1 · 936ec001
      unknown authored
      into mysql.com:/usr/local/home/marty/MySQL/mysql-4.1
      
      936ec001
    • unknown's avatar
      WL #2094 Federated Storage Engine · fc002139
      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)
      fc002139
    • unknown's avatar
      WL #2094 Federated Storage Handler. · 3258485e
      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
      3258485e
    • unknown's avatar
      WL#874 "Extended LOAD DATA". · fc573786
      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.
      fc573786
    • unknown's avatar
      Bug#8670 · 51afb8c7
      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.
      51afb8c7
  3. 15 Mar, 2005 6 commits