1. 27 Dec, 2004 1 commit
    • unknown's avatar
      Many files: · b24e3fdb
      unknown authored
        Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1
      
      
      innobase/buf/buf0rea.c:
        Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1
      innobase/include/dict0load.h:
        Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1
      innobase/include/fil0fil.h:
        Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1
      innobase/include/row0mysql.h:
        Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1
      innobase/include/trx0trx.h:
        Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1
      innobase/dict/dict0load.c:
        Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1
      innobase/fil/fil0fil.c:
        Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1
      innobase/row/row0ins.c:
        Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1
      innobase/row/row0mysql.c:
        Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1
      innobase/row/row0sel.c:
        Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1
      innobase/srv/srv0start.c:
        Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1
      innobase/trx/trx0trx.c:
        Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1
      sql/ha_innodb.cc:
        Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1
      b24e3fdb
  2. 22 Dec, 2004 2 commits
    • unknown's avatar
      ha_innodb.cc: · 030a8c11
      unknown authored
        Add a comment that no InnoDB table lock is now acquired in LOCK TABLES if AUTOCOMMIT=1. This helps to avoid deadlocks when porting old MyISAM applications to InnoDB.
      
      
      sql/ha_innodb.cc:
        Add a comment that no InnoDB table lock is now acquired in LOCK TABLES if AUTOCOMMIT=1. This helps to avoid deadlocks when porting old MyISAM applications to InnoDB.
      030a8c11
    • unknown's avatar
      ha_innodb.cc: · 5da6294e
      unknown authored
        If AUTOCOMMIT=1, do not acquire an InnoDB table lock in LOCK TABLES; this makes porting of old MyISAM applications to InnoDB easier, since in that mode InnoDB table locks caused deadlocks very easily
      
      
      sql/ha_innodb.cc:
        If AUTOCOMMIT=1, do not acquire an InnoDB table lock in LOCK TABLES; this makes porting of old MyISAM applications to InnoDB easier, since in that mode InnoDB table locks caused deadlocks very easily
      5da6294e
  3. 10 Dec, 2004 1 commit
    • unknown's avatar
      dict0dict.h, dict0dict.c, ha_innodb.cc: · e641e53f
      unknown authored
        Fix for the 0xA0 character problem in the InnoDB FOREIGN KEY parser: if my_isspace() treats 0xA0 as space, then let InnoDB do the same; this might break some multi-byte charset id's, though for big5, ujis, sjis this seems not to change the current behavior (I checked the tables in /share/charsets); this fix must NOT be merged to 4.1 because in 4.1 everything is in UTF-8
      
      
      sql/ha_innodb.cc:
        Fix for the 0xA0 character problem in the InnoDB FOREIGN KEY parser: if my_isspace() treats 0xA0 as space, then let InnoDB do the same; this might break some multi-byte charset id's, though for big5, ujis, sjis this seems not to change the current behavior (I checked the tables in /share/charsets); this fix must NOT be merged to 4.1 because in 4.1 everything is in UTF-8
      innobase/dict/dict0dict.c:
        Fix for the 0xA0 character problem in the InnoDB FOREIGN KEY parser: if my_isspace() treats 0xA0 as space, then let InnoDB do the same; this might break some multi-byte charset id's, though for big5, ujis, sjis this seems not to change the current behavior (I checked the tables in /share/charsets); this fix must NOT be merged to 4.1 because in 4.1 everything is in UTF-8
      innobase/include/dict0dict.h:
        Fix for the 0xA0 character problem in the InnoDB FOREIGN KEY parser: if my_isspace() treats 0xA0 as space, then let InnoDB do the same; this might break some multi-byte charset id's, though for big5, ujis, sjis this seems not to change the current behavior (I checked the tables in /share/charsets); this fix must NOT be merged to 4.1 because in 4.1 everything is in UTF-8
      e641e53f
  4. 30 Nov, 2004 1 commit
    • unknown's avatar
      InnoDB: Allow ALTER TABLE to do intermediate COMMIT also when the table · fb8c2315
      unknown authored
      contains auto_increment columns.  (Bug #6633)
      
      
      innobase/include/lock0lock.h:
        Replaced lock_get_table()
        with lock_get_src_table() and lock_is_table_exclusive()
      innobase/lock/lock0lock.c:
        Replaced lock_get_table()
        with lock_get_src_table() and lock_is_table_exclusive()
      sql/ha_innodb.cc:
        ha_innobase::write_row(): Improve the ALTER TABLE optimization
        (do intermediate COMMIT also if table contains auto_increment columns)
      fb8c2315
  5. 26 Nov, 2004 1 commit
    • unknown's avatar
      InnoDB: Make intermediate COMMITs in ALTER TABLE more robust (Bug #6633) · 90f3262a
      unknown authored
      innobase/include/lock0lock.h:
        Replaced lock_get_ix_table() with lock_get_table().
      innobase/lock/lock0lock.c:
        Replaced lock_get_ix_table() with lock_get_table().
      innobase/include/row0mysql.h:
        row_lock_table_for_mysql(): Added parameter mode.
      innobase/row/row0mysql.c:
        row_lock_table_for_mysql(): Added parameter mode.
      sql/ha_innodb.cc:
        ha_innobase::write_row(): Make ALTER TABLE commits more robust:
        account for conversions from non-InnoDB format,
        do not attempt to commit if there are other than
        a single IX or IS lock on the source table, and
        the source table is in InnoDB format.  This
        prohibits intermediate commits for OPTIMIZE TABLE
        if the table contains an auto_increment field.
      90f3262a
  6. 25 Nov, 2004 1 commit
    • unknown's avatar
      ha_innodb.cc: · afc6dade
      unknown authored
        Add conversion of the InnoDB error DB_LOCK_TABLE_FULL to the corresponding MySQL error
      
      
      sql/ha_innodb.cc:
        Add conversion of the InnoDB error DB_LOCK_TABLE_FULL to the corresponding MySQL error
      afc6dade
  7. 16 Nov, 2004 3 commits
    • unknown's avatar
      ha_innodb.cc: · 341dba87
      unknown authored
        Anthony's http://lists.mysql.com/internals/18505 patch for DROP DATABASE broke caused it to return errno if .ibd files were present (bas_ext() was obsolete in ha_innodb.cc); fix this
      
      
      sql/ha_innodb.cc:
        Anthony's http://lists.mysql.com/internals/18505 patch for DROP DATABASE broke caused it to return errno if .ibd files were present (bas_ext() was obsolete in ha_innodb.cc); fix this
      341dba87
    • unknown's avatar
      ha_innodb.cc: · c612fb50
      unknown authored
      Manually ported this bug fix from 4.0: 
       Fix InnoDB bug #6287: if one uses INSERT IGNORE to insert several rows at a time, and the first inserts are ignored because of a duplicate key collision, then InnoDB in a replication slave assigns AUTO_INCREMENT values 1 bigger than in the master
      
      
      sql/ha_innodb.cc:
        Fix InnoDB bug #6287: if one uses INSERT IGNORE to insert several rows at a time, and the first inserts are ignored because of a duplicate key collision, then InnoDB in a replication slave assigns AUTO_INCREMENT values 1 bigger than in the master
      c612fb50
    • unknown's avatar
      ha_innodb.cc: · 305a9468
      unknown authored
        Fix InnoDB bug #6287: if one uses INSERT IGNORE to insert several rows at a time, and the first inserts are ignored because of a duplicate key collision, then InnoDB in a replication slave assigns AUTO_INCREMENT values 1 bigger than in the master
      
      
      sql/ha_innodb.cc:
        Fix InnoDB bug #6287: if one uses INSERT IGNORE to insert several rows at a time, and the first inserts are ignored because of a duplicate key collision, then InnoDB in a replication slave assigns AUTO_INCREMENT values 1 bigger than in the master
      305a9468
  8. 04 Nov, 2004 1 commit
    • unknown's avatar
      ha_innodb.cc: · c6bcc6d2
      unknown authored
        write_row(): document the ALTER TABLE tweak better,
        and commit every n*10000 rows, not n*10000-1 rows.
      
      
      sql/ha_innodb.cc:
        write_row(): document the ALTER TABLE tweak better,
        and commit every n*10000 rows, not n*10000-1 rows.
      c6bcc6d2
  9. 03 Nov, 2004 1 commit
    • unknown's avatar
      InnoDB: commit after every 10000 rows in ALTER TABLE · e45a57d3
      unknown authored
      innobase/include/lock0lock.h:
        Added function lock_get_ix_table()
      innobase/include/row0mysql.h:
        Added parameter "table" to row_lock_table_for_mysql()
      innobase/lock/lock0lock.c:
        Added function lock_get_ix_table()
      innobase/row/row0mysql.c:
        Added parameter "table" to row_lock_table_for_mysql()
      sql/ha_innodb.cc:
        write_row(): commit every 10000 rows in ALTER TABLE
      sql/ha_innodb.h:
        Added member variable num_write_row
      e45a57d3
  10. 02 Nov, 2004 2 commits
    • unknown's avatar
      ha_innodb.cc: · b6795af9
      unknown authored
        Correct English grammar
      
      
      sql/ha_innodb.cc:
        Correct English grammar
      b6795af9
    • unknown's avatar
      ha_innodb.cc: · b7cd3f5e
      unknown authored
        Backport Jan's fix of the LOAD DATA INFILE REPLACE duplicate key error bug (Bug #5835) to 4.0
      
      
      sql/ha_innodb.cc:
        Backport Jan's fix of the LOAD DATA INFILE REPLACE duplicate key error bug (Bug #5835) to 4.0
      b7cd3f5e
  11. 22 Oct, 2004 1 commit
  12. 21 Oct, 2004 1 commit
    • unknown's avatar
      SHOW TABLE STATUS now prints create_time, update_time and check_time · b3eec096
      unknown authored
      for InnoDB tables. Note that these times may always be correct ones,
      because for example ALTER TABLE creates a table again.
      
      
      
      innobase/include/os0file.h:
        Added information of file timestamps and a function os_file_get_status
        to get that information using stat().
      innobase/os/os0file.c:
        Added function that return information obout the specified file.
      sql/ha_innodb.cc:
        Get timestamps for the file where the table is stored.
      b3eec096
  13. 20 Oct, 2004 1 commit
    • unknown's avatar
      Code cleanups (done during review of new code) · 0d873f90
      unknown authored
      Rename innodb_table_locks_old_behavior -> innodb_table_locks
      Set innodb_table_locks to off by default to get same behaviour as in MySQL 4.0.20
      (This means that Innodb ignore table locks by default, which makes it easier to combine MyISAM and InnoDB to simulate a transaction)
      
      
      libmysql/libmysql.c:
        Use ulong instead of unsigned long
        Reuse _dig_vec()
      myisam/myisampack.c:
        Simplify code
      mysql-test/r/innodb-lock.result:
        new test case
      mysql-test/t/innodb-lock.test:
        new test case
      sql/ha_innodb.cc:
        Rename innodb_table_locks_old_behavior -> innodb_table_locks
      sql/mysqld.cc:
        Rename innodb_table_locks_old_behavior -> innodb_table_locks
        Set this off by default to get same behaviour as in MySQL 4.0.20
      sql/set_var.cc:
        Rename innodb_table_locks_old_behavior -> innodb_table_locks
      sql/sql_class.h:
        Rename innodb_table_locks_old_behavior -> innodb_table_locks
      0d873f90
  14. 19 Oct, 2004 2 commits
    • unknown's avatar
      Review of all code pushed since last review · da02110d
      unknown authored
      Simple optimzations and cleanups
      Removed compiler warnings and fixed portability issues
      Added client functions 'mysql_embedded()' to allow client to check if we are using embedded server
      Fixes for purify
      
      
      client/mysqlimport.c:
        Remove not used variable
      client/mysqltest.c:
        Remove usage of MAXPATHLEN (all MySQL code uses FN_REFLEN)
        Simplified code
        Remove usage of sprintf("%llu") as this is not portable
      include/mysql.h:
        Added mysql_embedded() to be able to easily check if we are using the embedded server
      innobase/srv/srv0start.c:
        Don't use memcmp() when using purify (to avoid false warnings)
      libmysql/libmysql.c:
        Added mysql_embedded() to be able to easily check if we are using the embedded server
      libmysql/libmysql.def:
        Added mysql_embedded() to be able to easily check if we are using the embedded server
      myisam/myisam_ftdump.c:
        Remove compiler warning
      myisam/myisamchk.c:
        Remove compiler warning
      myisam/rt_test.c:
        #ifdef not used code
      mysys/hash.c...
      da02110d
    • unknown's avatar
      Fixed bug #5835 load data infile...replace error with InnoDB table. · 815f592e
      unknown authored
      sql/ha_innodb.cc:
        Note that LOAD DATA INFILE REPLACE also handles a duplicate key error
        itself, and we must not decrement the autoinc counter if we are
        performing that statement.
      815f592e
  15. 18 Oct, 2004 2 commits
    • unknown's avatar
      ha_innodb.cc: · f3bd30bb
      unknown authored
        Replace a tolower() loop with innobase_casedn_str()
      
      
      sql/ha_innodb.cc:
        Replace a tolower() loop with innobase_casedn_str()
      f3bd30bb
    • unknown's avatar
      InnoDB: Treat UTF-8 strings properly in case insensitive operations · 4da99978
      unknown authored
      innobase/dict/dict0dict.c:
        Use innobase_strcasecmp() and innobase_casedn_str()
        instead of ut_cmp_in_lower_case() and ut_cpy_in_lower_case()
      innobase/include/ut0byte.h:
        Remove ut_cpy_in_lower_case() and ut_cmp_in_lower_case()
      innobase/ut/ut0byte.c:
        Remove ut_cpy_in_lower_case() and ut_cmp_in_lower_case()
      sql/ha_innodb.cc:
        Add innobase_strcasecmp() and innobase_casedn_str()
        Replace tolower() loop with innobase_casedn_str()
        Replace my_casedn_str() with innobase_casedn_str()
        Replace ut_cmp_in_lower_case() with innobase_strcasecmp()
      4da99978
  16. 15 Oct, 2004 1 commit
    • unknown's avatar
      Use already parsed SQL-query in the current thread when determining · 53957066
      unknown authored
      was the query REPLACE or LOAD DATA INFILE REPLACE.
      
      
      innobase/row/row0ins.c:
        Find SQL-query directly from current thread and see if the
        query was REPLACE or LOAD DATA INFILE REPLACE.
      sql/ha_innodb.cc:
        Find current thread and return true if SQL-query in the current
        thread was either REPLACE or LOAD DATA INFILE REPLACE.
      53957066
  17. 13 Oct, 2004 2 commits
    • unknown's avatar
      Added startup option and settable session variable · 6e7b0910
      unknown authored
      innodb_table_locks_old_behavior: do not acquire an
      InnoDB table lock for LOCK TABLES, as in mysql-4.0.18
      and earlier.
      
      
      sql/ha_innodb.cc:
        Do not acquire an InnoDB table lock for LOCK TABLES if
        innodb_table_locks_old_behavior is enabled.
      sql/mysqld.cc:
        Added innodb_table_locks_old_behavior
      sql/set_var.cc:
        Added innodb_table_locks_old_behavior
      sql/sql_class.h:
        Added innodb_table_locks_old_behavior
      6e7b0910
    • unknown's avatar
      srv0srv.c, log0log.c, srv0srv.h, ha_innodb.cc, ha_innodb.h: · 522b175c
      unknown authored
        Implement innobase_very_fast_shutdown and innobase_start_trx_and_assign_read_view(); these were requested by Guilhem
      
      
      sql/ha_innodb.h:
        Implement innobase_very_fast_shutdown and innobase_start_trx_and_assign_read_view(); these were requested by Guilhem
      sql/ha_innodb.cc:
        Implement innobase_very_fast_shutdown and innobase_start_trx_and_assign_read_view(); these were requested by Guilhem
      innobase/include/srv0srv.h:
        Implement innobase_very_fast_shutdown and innobase_start_trx_and_assign_read_view(); these were requested by Guilhem
      innobase/log/log0log.c:
        Implement innobase_very_fast_shutdown and innobase_start_trx_and_assign_read_view(); these were requested by Guilhem
      innobase/srv/srv0srv.c:
        Implement innobase_very_fast_shutdown and innobase_start_trx_and_assign_read_view(); these were requested by Guilhem
      522b175c
  18. 12 Oct, 2004 1 commit
    • unknown's avatar
      ha_innodb.cc: · d8c37793
      unknown authored
        Change error code to HA_ERR_ROW_IS_REFERENCED if we cannot DROP a parent table referenced by a FOREIGN KEY constraint; this error number is less misleading than the previous value HA_ERR_CANNOT_ADD_FOREIGN, but misleading still; we should introduce to 5.0 a proper MySQL error code
      
      
      sql/ha_innodb.cc:
        Change error code to HA_ERR_ROW_IS_REFERENCED if we cannot DROP a parent table referenced by a FOREIGN KEY constraint; this error number is less misleading than the previous value HA_ERR_CANNOT_ADD_FOREIGN, but misleading still; we should introduce to 5.0 a proper MySQL error code
      d8c37793
  19. 07 Oct, 2004 2 commits
    • unknown's avatar
      Many files: · 7d5716ba
      unknown authored
        Fix bug #5137: if innodb_file_per_table was specified, CREATE TEMPORARY TABLE ... TYPE=InnoDB said that cannot find path specified, and made mysqld to exit(1)
      
      
      sql/ha_innodb.cc:
        Fix bug #5137: if innodb_file_per_table was specified, CREATE TEMPORARY TABLE ... TYPE=InnoDB said that cannot find path specified, and made mysqld to exit(1)
      innobase/row/row0mysql.c:
        Fix bug #5137: if innodb_file_per_table was specified, CREATE TEMPORARY TABLE ... TYPE=InnoDB said that cannot find path specified, and made mysqld to exit(1)
      innobase/fil/fil0fil.c:
        Fix bug #5137: if innodb_file_per_table was specified, CREATE TEMPORARY TABLE ... TYPE=InnoDB said that cannot find path specified, and made mysqld to exit(1)
      innobase/dict/dict0crea.c:
        Fix bug #5137: if innodb_file_per_table was specified, CREATE TEMPORARY TABLE ... TYPE=InnoDB said that cannot find path specified, and made mysqld to exit(1)
      innobase/dict/dict0dict.c:
        Fix bug #5137: if innodb_file_per_table was specified, CREATE TEMPORARY TABLE ... TYPE=InnoDB said that cannot find path specified, and made mysqld to exit(1)
      innobase/dict/dict0load.c:
        Fix bug #5137: if innodb_file_per_table was specified, CREATE TEMPORARY TABLE ... TYPE=InnoDB said that cannot find path specified, and made mysqld to exit(1)
      innobase/dict/dict0mem.c:
        Fix bug #5137: if innodb_file_per_table was specified, CREATE TEMPORARY TABLE ... TYPE=InnoDB said that cannot find path specified, and made mysqld to exit(1)
      innobase/include/mem0mem.ic:
        Fix bug #5137: if innodb_file_per_table was specified, CREATE TEMPORARY TABLE ... TYPE=InnoDB said that cannot find path specified, and made mysqld to exit(1)
      innobase/include/dict0mem.h:
        Fix bug #5137: if innodb_file_per_table was specified, CREATE TEMPORARY TABLE ... TYPE=InnoDB said that cannot find path specified, and made mysqld to exit(1)
      innobase/include/fil0fil.h:
        Fix bug #5137: if innodb_file_per_table was specified, CREATE TEMPORARY TABLE ... TYPE=InnoDB said that cannot find path specified, and made mysqld to exit(1)
      innobase/include/mem0mem.h:
        Fix bug #5137: if innodb_file_per_table was specified, CREATE TEMPORARY TABLE ... TYPE=InnoDB said that cannot find path specified, and made mysqld to exit(1)
      innobase/mem/mem0mem.c:
        Fix bug #5137: if innodb_file_per_table was specified, CREATE TEMPORARY TABLE ... TYPE=InnoDB said that cannot find path specified, and made mysqld to exit(1)
      7d5716ba
    • unknown's avatar
      ha_innodb.cc: · c44414cb
      unknown authored
        Merge manually the InnoDB mysqldump -l crash patch (crash with LOCK TABLES ... LOCAL) from 4.0 to 4.1; some code cleanup
      
      
      sql/ha_innodb.cc:
        Merge manually the mysqldump -l crash pacth from 4.0 to 4.1; some code cleanup
      c44414cb
  20. 05 Oct, 2004 1 commit
    • unknown's avatar
      ha_innodb.cc: · 3d37874b
      unknown authored
        Raise maximum column prefix len to 767 bytes, so that MySQL can create a column prefix index of 255 UTF-8 characters (each takes 3 bytes at the maximum); add comments about why innobase_get_at_most_n_mbchars() works ok
      dict0mem.h:
        Raise maximum column prefix len to 767 bytes, so that MySQL can create a column prefix index of 255 UTF-8 characters (each takes 3 bytes at the maximum)
      row0mysql.c:
        If MySQL tries to create a column prefix index longer that 255 UTF-8 characters, give an error, and drop the table from the InnoDB internal data dictionary. MySQL did not drop the table there in its own error handling.
      
      
      innobase/row/row0mysql.c:
        If MySQL tries to create a column prefix index longer that 255 UTF-8 characters, give an error, and drop the table from the InnoDB internal data dictionary. MySQL did not drop the table there in its own error handling.
      innobase/include/dict0mem.h:
        Raise maximum column prefix len to 767 bytes, so that MySQL can create a column prefix index of 255 UTF-8 characters (each takes 3 bytes at the maximum)
      sql/ha_innodb.cc:
        Raise maximum column prefix len to 767 bytes, so that MySQL can create a column prefix index of 255 UTF-8 characters (each takes 3 bytes at the maximum); add comments about why innobase_get_at_most_n_mbchars() works ok
      3d37874b
  21. 01 Oct, 2004 5 commits
    • unknown's avatar
      ha_innodb.cc: · f9b16928
      unknown authored
        A partial bugfix to a multibyte charset / column prefix index bug: my_charpos() does not handle right some cases, we try to mask the bug for ASCII chars < 128 in the UTF-8 charset
      
      
      sql/ha_innodb.cc:
        A partial bugfix to a multibyte charset / column prefix index bug: my_charpos() does not handle right some cases, we try to mask the bug for ASCII chars < 128 in the UTF-8 charset
      f9b16928
    • unknown's avatar
      Many files: · 8949b3e2
      unknown authored
        Fix bug introduced by the prefix key + multibyte charsets patch today
      
      
      sql/ha_innodb.cc:
        Fix bug introduced by the prefix key + multibyte charsets patch today
      innobase/include/data0type.h:
        Fix bug introduced by the prefix key + multibyte charsets patch today
      innobase/include/fsp0fsp.h:
        Fix bug introduced by the prefix key + multibyte charsets patch today
      innobase/data/data0type.c:
        Fix bug introduced by the prefix key + multibyte charsets patch today
      innobase/row/row0ins.c:
        Fix bug introduced by the prefix key + multibyte charsets patch today
      innobase/row/row0row.c:
        Fix bug introduced by the prefix key + multibyte charsets patch today
      innobase/row/row0sel.c:
        Fix bug introduced by the prefix key + multibyte charsets patch today
      innobase/row/row0upd.c:
        Fix bug introduced by the prefix key + multibyte charsets patch today
      8949b3e2
    • unknown's avatar
      Support for TIMESTAMP columns holding NULL values. Unlike all other · c2a25521
      unknown authored
      column types TIMESTAMP is NOT NULL by default, so in order to have 
      TIMESTAMP column holding NULL valaues you have to specify NULL as
      one of its attributes (this needed for backward compatibility).
      
      Main changes:
      Replaced TABLE::timestamp_default_now/on_update_now members with
      TABLE::timestamp_auto_set_type flag which is used everywhere
      for determining if we should auto-set value of TIMESTAMP field 
      during this operation or not. We are also use Field_timestamp::set_time()
      instead of handler::update_timestamp() in handlers.
      
      
      mysql-test/r/type_timestamp.result:
        Added test for TIMESTAMP columns which are able to store NULL values.
      mysql-test/t/type_timestamp.test:
        Added test for TIMESTAMP columns which are able to store NULL values.
      sql/field.cc:
        Added support for TIMESTAMP fields holding NULL values.
        We don't need Field_timestamp::set_timestamp_offsets() anymore.
        Instead we need Field_timestamp::get_auto_set_type() function
        whic...
      c2a25521
    • unknown's avatar
      Added more comments on the code and made some code polishing. · aaad0704
      unknown authored
      sql/ha_innodb.cc:
        Added more comments and some polishing.
      aaad0704
    • unknown's avatar
      InnoDB: quote identifiers according to MySQL settings (Bug #5292) · ea30886c
      unknown authored
      innobase/btr/btr0btr.c:
        Add parameter to ut_print_name() and dict_index_name_print() calls
      innobase/btr/btr0cur.c:
        Add parameter to dict_index_name_print() calls
      innobase/buf/buf0buf.c:
        Add parameter to dict_index_name_print() calls
      innobase/dict/dict0crea.c:
        Add parameter to ut_print_name() calls
      innobase/dict/dict0dict.c:
        Add parameter to ut_print_name() calls
        Update documentation links to http://dev.mysql.com
      innobase/dict/dict0load.c:
        Add parameter to ut_print_name() calls
      innobase/fil/fil0fil.c:
        Use ut_print_filename()
        Update links to documentation to http://dev.mysql.com
      innobase/ibuf/ibuf0ibuf.c:
        Replaced printf(...) with fprintf(stderr,...)
      innobase/include/dict0dict.h:
        Added trx parameters
      innobase/include/row0row.h:
        Added trx parameter
      innobase/include/row0sel.h:
        Added trx parameter
      innobase/include/row0upd.h:
        Added trx parameters
      innobase/include/row0upd.ic:
        Added trx parameter for dict_index_name_print()
      innobase/include/trx0rec.h:
        Added trx parameter
      innobase/include/ut0ut.h:
        Added ut_print_filename()
        Added trx parameter to ut_print_name() and ut_print_namel()
      innobase/lock/lock0lock.c:
        Added parameter to dict_index_name_print() and ut_print_name() calls
      innobase/page/page0page.c:
        Added parameter to dict_index_name_print() calls
      innobase/pars/pars0opt.c:
        Added parameter to dict_index_name_print() call
      innobase/pars/pars0pars.c:
        Added parameter to upd_field_set_field_no() call
      innobase/row/row0ins.c:
        Added trx parameters
      innobase/row/row0mysql.c:
        Added trx parameters
      innobase/row/row0purge.c:
        Added trx parameter
      innobase/row/row0row.c:
        Added trx parameter
      innobase/row/row0sel.c:
        Added trx parameters
      innobase/row/row0umod.c:
        Added trx parameters
      innobase/row/row0upd.c:
        Added trx parameters
      innobase/trx/trx0rec.c:
        Added trx parameters
      innobase/trx/trx0roll.c:
        Added parameter to ut_print_name() calls
      innobase/ut/ut0ut.c:
        Added ut_print_filename()
        Added trx parameter to ut_print_namel() and ut_print_name() calls
      sql/ha_innodb.cc:
        Added trx parameters
        Rewrote mysql_get_identifier_quote_char()
      sql/mysql_priv.h:
        Added get_quote_char_for_identifier()
      sql/sql_show.cc:
        Added get_quote_char_for_identifier()
        Removed append_quoted_simple_identifier()
        Make append_identifier() use get_quote_char_for_identifier()
      ea30886c
  22. 30 Sep, 2004 1 commit
    • unknown's avatar
      Made innodb_autoextend_increment accessible as a global variable. · 9e9fb4f8
      unknown authored
      sql/ha_innodb.cc:
        Removed variable innobase_auto_extend_increment
        (access srv_auto_extend_increment directly)
      sql/ha_innodb.h:
        Removed variable innobase_auto_extend_increment
        (access srv_auto_extend_increment directly)
      sql/mysqld.cc:
        Moved innodb_autoextend_increment to alphabetically correct position.
        Replaced innobase_auto_extend_increment with srv_auto_extend_increment.
      sql/set_var.cc:
        Added innodb_autoextend_increment
      9e9fb4f8
  23. 17 Sep, 2004 1 commit
  24. 13 Sep, 2004 2 commits
    • unknown's avatar
      row0mysql.h: · f6b77bbc
      unknown authored
        Improve the comment on stored_select_lock_type
      ha_innodb.cc:
        Let InnoDB remember select_lock_type inside LOCK TABLES, also over plain consistent read SELECTs; fix Bug #5538 : assertion failure when using mysqldump with the -l option; in MERGING this patch to 4.1, there may be PROBLEMS; that is because previous patch was never merged to 4.1; Heikki Tuuri has to polish the code in 4.1 after this patch has been merged.
      
      
      sql/ha_innodb.cc:
        Let InnoDB remember select_lock_type inside LOCK TABLES, also over plain consistent read SELECTs; fix Bug #5538 : assertion failure when using mysqldump with the -l option; in MERGING this patch to 4.1, there may be PROBLEMS; that is because previous patch was never merged to 4.1; Heikki Tuuri has to polish the code in 4.1 after this patch has been merged.
      innobase/include/row0mysql.h:
        Improve the comment on stored_select_lock_type
      f6b77bbc
    • unknown's avatar
      Fix for BUG#5117: · c2da5b39
      unknown authored
       * Renamed handler::estimate_number_of_rows to handler::estimate_rows_upper_bound function, which can also return "unknown"
       * made filesort to use full sort buffer if number of rows to sort is not known.
      
      
      sql/examples/ha_tina.h:
        Renamed estimate_number_of_rows -> estimate_rows_upper_bound
      sql/filesort.cc:
         * Fix for BUG#5117: made filesort() to use full sort buffer if number of rows to sort is not known.
         * Comments and assertion added
      sql/ha_berkeley.cc:
        Renamed estimate_number_of_rows -> estimate_rows_upper_bound
      sql/ha_berkeley.h:
        Renamed estimate_number_of_rows -> estimate_rows_upper_bound
      sql/ha_innodb.cc:
        Renamed estimate_number_of_rows -> estimate_rows_upper_bound
      sql/ha_innodb.h:
        Renamed estimate_number_of_rows -> estimate_rows_upper_bound
      sql/handler.h:
        Renamed estimate_number_of_rows -> estimate_rows_upper_bound
      c2da5b39
  25. 07 Sep, 2004 1 commit
    • unknown's avatar
      InnoDB: Add configuration option innodb_autoextend_increment · ad714c14
      unknown authored
      innobase/include/srv0srv.h:
        Add srv_auto_extend_increment and make SRV_AUTO_EXTEND_INCREMENT
        configureable by it
      innobase/srv/srv0srv.c:
        Add srv_auto_extend_increment
      sql/ha_innodb.cc:
        Add innobase_auto_extend_increment and srv_auto_extend_increment
      sql/ha_innodb.h:
        Add innobase_auto_extend_increment
      sql/mysqld.cc:
        Add "innodb_autoextend_increment" configuration option
      ad714c14
  26. 03 Sep, 2004 1 commit
    • unknown's avatar
      Fixed unique prefix key bug for multibyte character sets (BUG #4521) for · dc704231
      unknown authored
      InnoDB. This fixes also a second part of the same problem with prefix keys
      on a multibyte string column for InnoDB.
      
      
      innobase/btr/btr0btr.c:
        Multibyte character set prefix indexes are not any more fixed size. Therefore,
        we have to chect that length of the index field in not greater than
        prefix length.
      innobase/rem/rem0cmp.c:
        Remove unnecessary changes.
      innobase/row/row0ins.c:
        Fixed unique prefix key or prefix key using multibyte character set bugs for
        InnoDB (BUG #4521). For prefix keys we have to get the storage length
        for the prefix length of characters in the key.
      innobase/row/row0row.c:
        Fixed unique prefix key or prefix key using multibyte character set bugs for
        InnoDB (BUG #4521). For prefix keys we have to get the storage length
        for the prefix length of characters in the key.
      innobase/row/row0sel.c:
        Fixed unique prefix key or prefix key using multibyte character set bugs for
        InnoDB (BUG #4521). For prefix keys we have to get the storage length
        for the prefix length of characters in the key.
      innobase/row/row0upd.c:
        Fixed unique prefix key or prefix key using multibyte character set bugs for
        InnoDB (BUG #4521). For prefix keys we have to get the storage length
        for the prefix length of characters in the key.
      mysql-test/r/ctype_utf8.result:
        Added utf8 character test cases for InnoDB.
      mysql-test/t/ctype_utf8.test:
        Added utf8 character expected test results for InnoDB.
      sql/ha_innodb.cc:
        Added function innobase_get_at_most_n_mbchars to return position of
        the nth character in the multibyte character string.
      sql/ha_innodb.h:
        Remove unnecessary changes.
      dc704231
  27. 01 Sep, 2004 1 commit
    • unknown's avatar
      ha_innodb.cc: · e348a2ce
      unknown authored
        If ALTER TABLE ... DROP FOREIGN KEY ... fails because of a wrong constraint name, return a table handler error number 150 instead of 152; the value 152 was misleading, as it referred to '152 = Cannot delete a parent row', whereas '150 = Foreign key constraint is incorrectly formed' is less misleading
      
      
      sql/ha_innodb.cc:
        If ALTER TABLE ... DROP FOREIGN KEY ... fails because of a wrong constraint name, return a table handler error number 150 instead of 152; the value 152 was misleading, as it referred to '152 = Cannot delete a parent row', whereas '150 = Foreign key constraint is incorrectly formed' is less misleading
      e348a2ce