1. 16 Mar, 2005 36 commits
    • unknown's avatar
      drop database on the right server :) · 94ad6930
      unknown authored
      94ad6930
    • unknown's avatar
      log_event.cc: · e28dc4c7
      unknown authored
        #ifdef USING_TRANSACTIONS
      ha_innodb.cc:
        comment
      rpl_drop_temp.test, rpl_drop_temp.result:
        cleanup
      
      
      mysql-test/r/rpl_drop_temp.result:
        cleanup
      mysql-test/t/rpl_drop_temp.test:
        cleanup
      sql/ha_innodb.cc:
        comment
      sql/log_event.cc:
        #ifdef USING_TRANSACTIONS
      e28dc4c7
    • unknown's avatar
      Merge bk-internal:/home/bk/mysql-5.0 · b3ff091f
      unknown authored
      into serg.mylan:/usr/home/serg/Abk/mysql-5.0
      
      
      sql/sql_parse.cc:
        Auto merged
      b3ff091f
    • 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
      merged · 1f919052
      unknown authored
      
      sql/ha_innodb.cc:
        Auto merged
      sql/mysql_priv.h:
        Auto merged
      sql/sql_parse.cc:
        Auto merged
      1f919052
    • 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
      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
      sql/ha_innodb.cc · 608b63c7
      unknown authored
          protect prepare-...-commit with a mutex to ensure that commits in binlog and in the innodb have the same order
          store binlog position with the commit
      
      
      innobase/include/trx0trx.h:
        comment modified
      sql/ha_innodb.cc:
        protect prepare-...-commit with a mutex to ensure that commits in binlog and in the innodb have the same order
        store binlog position with the commit
      sql/handler.cc:
        ha_prepare cannot return -1
      608b63c7
    • 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
      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
      WinAMD64 compat fix · 929b3009
      unknown authored
      929b3009
    • 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
  2. 15 Mar, 2005 4 commits
    • 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
    • unknown's avatar
      Merge mdk10.(none):/home/reggie/bk/mysql-4.1 · 799e4522
      unknown authored
      into mdk10.(none):/home/reggie/bk/mysql-5.0
      
      
      sql/sql_show.cc:
        Auto merged
      799e4522
    • unknown's avatar
      Bug #6660 mysqldump creates bad pathnames on Windows · 32e027ea
      unknown authored
      sql_show.cc:
        changed strdup to thd->memdup per Serg's advice
      
      
      sql/sql_show.cc:
        changed strdup to thd->memdup per Serg's advice
      32e027ea