1. 23 Nov, 2007 2 commits
    • marko's avatar
      branches/zip: Correct mistakes made in r2114. · 30358fe6
      marko authored
      row_upd_index_replace_new_col_vals(): Declare fetch_ext.
      
      row_upd_index_replace_new_col_vals_index_pos(): Add a type conversion
      to the initialization expression of fetch_ext, to avoid a warning about
      comparison between signed and unsigned.
      30358fe6
    • marko's avatar
      branches/zip: Fix a bug in the updates of index records that contain a · 36874d65
      marko authored
      column prefix of an externally stored column.
      
      row_upd_ext_fetch(): New function.
      
      row_upd_index_replace_new_col_vals(),
      row_upd_index_replace_new_col_vals_index_pos(): Fetch prefixes of
      externally stored columns when they are needed for column prefix
      indexes.  For memory allocation, add the parameter ext_heap.  Avoid
      repeating the inner loop after finding a  matching upd_field->field_no.
      36874d65
  2. 22 Nov, 2007 4 commits
  3. 21 Nov, 2007 12 commits
    • vasil's avatar
      branches/zip: · 759af551
      vasil authored
      Fix the size of the static buffer for lock_table and lock_index.
      I was not realizing that NAME_LEN contains the mbmaxlen multiplier and thus
      a quote, when converted to 2 quotes, will take 2 bytes while there are 3
      bytes reserved.
      
      Spotted by:	Marko
      Pointyhat to:	Vasil
      759af551
    • vasil's avatar
      branches/zip: · 5c8a9ce2
      vasil authored
      Add C test for innobase_convert_name() in addition to the mysql-test one.
      5c8a9ce2
    • marko's avatar
      branches/zip: When writing an externally stored column to the undo log, · 71b3c265
      marko authored
      set the "external storage" flag.  When parsing the undo log, do not
      misinterpret a SQL NULL column for externally stored.
      
      These bugs were spotted by Heikki and Sunny.
      
      trx_undo_page_report_modify(): Set the UNIV_EXTERN_STORAGE_FIELD flag
      when needed.
      
      trx_undo_rec_get_partial_row(): Check for len == UNIV_SQL_NULL.
      71b3c265
    • vasil's avatar
      branches/zip: · 5cd14d70
      vasil authored
      Fix a bug where the static buffer for innodb_locks.lock_table may not
      have enough space.
      
      Pointyhat to:	Marko
      5cd14d70
    • vasil's avatar
      branches/zip: · 6edf3ef1
      vasil authored
      Bugfix1: Set innodb_locks.lock_index to NOT NULL.
      If a column in INFORMATION_SCHEMA table has the flag
      MY_I_S_MAYBE_NULL and it is not explicitly marked as NOT NULL
      with the method ::set_notnull() then it is always rendered as
      NULL by MySQL.
      
      Bugfix2: Avoid crashes if lock_index is NULL. It is NULL for table
      level locks.
      
      Pointyhat to:	Marko
      6edf3ef1
    • vasil's avatar
      branches/zip: · 30d19bf4
      vasil authored
      Non-functional change:
      Fix consistency of the sizeof() operator with the rest of i_s.cc
      
      Pointyhat to:	Marko
      
      30d19bf4
    • vasil's avatar
      branches/zip: · 857c6501
      vasil authored
      Move test that depends on ucs2 to a separate file that is disabled if
      ucs2 is not compiled in.
      857c6501
    • vasil's avatar
      branches/zip: · 9d76b526
      vasil authored
      Move common SQL commands to an .inc file.
      9d76b526
    • vasil's avatar
      branches/zip: · 62a46de2
      vasil authored
      Synchronize the utf8 and ucs2 tests.
      62a46de2
    • marko's avatar
      branches/zip: INFORMATION_SCHEMA.INNODB_LOCKS: Quote lock_table, lock_index. · e1eb788f
      marko authored
      innodb_information_schema.test. Add tests that display most columns from
      INFORMATION_SCHEMA.INNODB_LOCKS.  Test that quoting of table names works
      and respects SQL_MODE='ANSI_QUOTES'.
      
      innobase_print_identifier(): Remove.
      
      innobase_convert_identifier(): New function,
      based on innobase_print_identifier().
      
      innobase_convert_name(): New function, similar to ut_print_namel(), but
      using a memory buffer.
      
      ut_print_namel(): Use innobase_convert_name().
      
      fill_innodb_locks_from_cache(): Convert lock_table and lock_index by
      calling innobase_convert_name().
      e1eb788f
    • marko's avatar
      f6c6980f
    • vasil's avatar
      branches/zip: · 3dfa0568
      vasil authored
      Convert INFORMATION_SCHEMA tables' names to upper case so that they are
      consistent with other INFORMATION_SCHEMA tables.
      
       mysql> show tables;
       +---------------------------------------+
       | Tables_in_information_schema          |
       +---------------------------------------+
       | CHARACTER_SETS                        | 
       | COLLATIONS                            | 
       | COLLATION_CHARACTER_SET_APPLICABILITY | 
       | COLUMNS                               | 
       | COLUMN_PRIVILEGES                     | 
       | ENGINES                               | 
       | EVENTS                                | 
       | FILES                                 | 
       | GLOBAL_STATUS                         | 
       | GLOBAL_VARIABLES                      | 
       | KEY_COLUMN_USAGE                      | 
       | PARTITIONS                            | 
       | PLUGINS                               | 
       | PROCESSLIST                           | 
       | REFERENTIAL_CONSTRAINTS               | 
       | ROUTINES                              | 
       | SCHEMATA                              | 
       | SCHEMA_PRIVILEGES                     | 
       | SESSION_STATUS                        | 
       | SESSION_VARIABLES                     | 
       | STATISTICS                            | 
       | TABLES                                | 
       | TABLE_CONSTRAINTS                     | 
       | TABLE_PRIVILEGES                      | 
       | TRIGGERS                              | 
       | USER_PRIVILEGES                       | 
       | VIEWS                                 | 
       | innodb_zip_reset                      | 
       | innodb_trx                            | 
       | innodb_locks                          | 
       | innodb_lock_waits                     | 
       | innodb_zip                            | 
       +---------------------------------------+
      
      3dfa0568
  4. 16 Nov, 2007 3 commits
  5. 15 Nov, 2007 1 commit
    • marko's avatar
      branches/zip: Introduce the function page_zip_fail_func() and · 7be8ffc2
      marko authored
      the wrapper macro page_zip_fail() for displaying error messages.
      When the error output is enabled (at compile-time), a breakpoint
      may be set in page_zip_fail_func to easily debug all decompression
      errors in the context where they occur.
      7be8ffc2
  6. 13 Nov, 2007 2 commits
    • vasil's avatar
      branches/zip: · 6162deb6
      vasil authored
      Remove unnecessary code. Environment variables are passed to children anyway,
      no need to export them.
      
      Approved by:	Sunny (via IM)
      6162deb6
    • vasil's avatar
      branches/zip: · 13c99e8b
      vasil authored
      Fix typos in comment.
      13c99e8b
  7. 12 Nov, 2007 3 commits
  8. 09 Nov, 2007 4 commits
  9. 07 Nov, 2007 9 commits
    • vasil's avatar
      branches/zip: · e7c63e2c
      vasil authored
      Add the query in information_schema.innodb_trx.trx_query. Add it even
      though it is available in information_schema.processlist.info to make
      inconsistencies between those two tables obvious.
      
      It is rather confusting to see a transaction shown in innodb_trx and
      innodb_locks that holds a lock on one table and the corresponding query
      in processlist executing INSERT on another table. We do not want users
      to contact us asking to explain that. It is caused by the fact that the
      data for innodb_* tables and processlist is fetched at different time.
      
      Approved by:	Marko
      e7c63e2c
    • vasil's avatar
      branches/zip: · e3c2d271
      vasil authored
      Fix comment: sync variable name in comment with the actual variable name.
      e3c2d271
    • vasil's avatar
      branches/zip: · 8424daa6
      vasil authored
      Add mysql_addons.(cc|h) to Makefile.am, forgotten in r2072.
      
      Pointyhat to:	Vasil
      8424daa6
    • marko's avatar
      branches/zip: Improve Valgrind instrumentation. · 96c6fe18
      marko authored
      page_zip_get_trailer_len(), page_zip_write_header(): Correct the
      UNIV_MEM_ASSERT_RW() assertions.
      
      page_zip_validate(): Read the validity bits of page, page_zip, and
      page_zip->data.
      96c6fe18
    • marko's avatar
      branches/zip: Improve Valgrind instrumentation. · cf7d4071
      marko authored
      page_zip_decompress(): Assert that the uncompressed page is completely defined.
      
      page_zip_validate(): Assert that the compressed and uncompressed pages are
      completely defined.  Fetch the "valid" bits, so that they can be examined
      when run under valgrind --db-attach=yes.
      cf7d4071
    • vasil's avatar
      branches/zip: · 193e2376
      vasil authored
      Introduce a generic soultion to the common problem that MySQL do not add
      functions needed by us in a reasonable time.
      
      Start with a function that retrieves THD::thread_id, this is needed for
      the information_schema.innodb_trx.mysql_thread_id column.
      
      Approved by:	Marko
      193e2376
    • marko's avatar
      branches/zip: row_insert_for_mysql(), row_update_for_mysql(), · 23d99475
      marko authored
      row_prebuilt_free(): Add UNIV_UNLIKELY hints around tests for
      ROW_PREBUILT_OBSOLETE and some other tests.
      23d99475
    • marko's avatar
      branches/zip: page_zip_apply_log(): Write the status bits of the record · 98546caa
      marko authored
      before invoking rec_get_offsets().
      98546caa
    • marko's avatar
      branches/zip: Return a meaningful error message when refusing to create · 9a9a952c
      marko authored
      a compressed table in the system tablespace.
      
      db0err.h: Introduce the error code DB_TABLE_ZIP_NO_IBD.  Replace the
      #define directives with an enum, to ease future code merges.  These
      error codes are never written out to files or displayed to the user.
      Thus they need not remain constant.
      
      dict_build_table_def_step(): Return DB_TABLE_ZIP_NO_IBD instead of DB_ERROR.
      
      create_table_def(): Report ER_ILLEGAL_HA_CREATE_OPTION "KEY_BLOCK_SIZE"
      when the table creation fails with DB_TABLE_ZIP_NO_IBD.
      9a9a952c