mariadb/storage
unknown b16b2683e5 Complementary fix for bug #29353: inserting a negative value to a csv table
leads to the table corruption

New Field::store() method implemented to explicitly set thd->count_cuted_fields
before value storing, instead of (incorrectly) setting it in the CSV storage engine.
Thread row counter now properly incremented during check and repair in the CSV engine.


include/mysql/plugin.h:
  Complementary fix for bug #29353: inserting a negative value to a csv table 
  leads to the table corruption
    - thd_inc_row_count() function prototype added, which allows a storage 
      engine to increment thread row counter.
mysql-test/r/csv.result:
  Complementary fix for bug #29353: inserting a negative value to a csv table 
  leads to the table corruption
    - result adjusted.
sql/field.cc:
  Complementary fix for bug #29353: inserting a negative value to a csv table 
  leads to the table corruption
    - Field::store(const char *to, uint length, CHARSET_INFO *cs,
                   enum_check_fields check_level)
      method introduced in order to explicitly set count_cuted_fields before 
      a ::store call, then reset it back after.
sql/field.h:
  Complementary fix for bug #29353: inserting a negative value to a csv table 
  leads to the table corruption
    - Field::store(const char *to, uint length, CHARSET_INFO *cs,
                   enum_check_fields check_level)
      method introduced in order to explicitly set count_cuted_fields before 
      a ::store call, then reset it back after.
sql/mysql_priv.h:
  Complementary fix for bug #29353: inserting a negative value to a csv table 
  leads to the table corruption
    - enum enum_check_fields moved from sql/sql_class.h to sql/mysql_priv.h
      as it's used now in the field.h
sql/sql_class.cc:
  Complementary fix for bug #29353: inserting a negative value to a csv table 
  leads to the table corruption
    - implementation of the new thd_inc_row_count() function which increments
      thread row counter.
sql/sql_class.h:
  Complementary fix for bug #29353: inserting a negative value to a csv table 
  leads to the table corruption
    - enum enum_check_fields moved from sql/sql_class.h to sql/mysql_priv.h
      as it's used now in the field.h
storage/csv/ha_tina.cc:
  Complementary fix for bug #29353: inserting a negative value to a csv table 
  leads to the table corruption
    - removed #define MYSQL_SERVER 1 - "a storage engine should not need 
      internals of the server"
    - removed thd->count_cuted_fields= CHECK_FIELD_WARN as we are not allowed to 
      access internals of THD.
    - used new Field::store() method to explicitly set thd->count_cuted_fields to
      CHECK_FIELD_WARN
    - thd_inc_row_count() calls added to ha_tina::repair() and ha_tina::check()
      to get proper row count values.
2007-07-03 17:17:58 +05:00
..
archive
blackhole
csv Complementary fix for bug #29353: inserting a negative value to a csv table 2007-07-03 17:17:58 +05:00
example
federated
heap
innobase
myisam Merge tsmith@bk-internal.mysql.com:/home/bk/mysql-5.1-maint 2007-06-22 11:30:17 +02:00
myisammrg Merge mysql.com:/nfsdisk1/lars/bkroot/mysql-5.1-new-rpl 2007-06-18 12:10:36 +02:00
ndb Merge whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-new-ndb 2007-06-20 06:26:23 +02:00
Makefile.am