Commit graph

9 commits

Author SHA1 Message Date
V Narayanan
065321f0be Bug#39616: Missing quotes from .CSV crashes server
When a CSV file contained comma separated elements 
that were not enclosed in quotes, it was causing the
mysql server to crash.
      
The old algorithm that parsed the content of a row in
mysql 5.0 was assuming that the values of the fields
in a .CSV file will be enclosed in quotes and will be
separated by commas.

This was causing the old algorithm to fail when the 
content of the file resembled the following
3,"sans quotes"
The CSV engine that is part of mysql 5.0 was expecting
the above to be
"3","sans quotes"
      
The above is just one example of where the engine was
failing for what would be recognized as a valid .CSV 
file content otherwise.
      
The proposed fix changes the old algorithm being used
to parse rows from the .CSV file to handle two separate
cases

1) When the current field of the row is enclosed in quotes
2) When the current field of the row is not enclosed in 
   quotes

mysql-test/r/csv.result:
  Contains additional test output corresponding to the new 
  tests added.
mysql-test/t/csv.test:
  Contains additional tests for testing the behaviour of the CSV 
  storage engine when the fields are not enclosed in quotes.
sql/examples/ha_tina.cc:
  Changes the parsing logic of the rows in a CSV file to account for
  fields that are not enclosed in quotes.
2008-11-18 11:31:03 +05:30
unknown
0724eb88e2 protect bug31473 from regressing into 5.0 2007-10-25 17:23:12 -07:00
unknown
39700afdb9 Bug#28862 Extended Latin1 characters get lost in CVS engine
Problem: Temporary buffer which is used for quoting and escaping
  was initialized to character set utf8, and thus didn't allow
  to store data in other character sets.
  Fix: changing character set of the buffer to be able to
  store any arbitrary sequence of bytes.


mysql-test/r/csv.result:
  Adding test case
mysql-test/t/csv.test:
  Adding test case
sql/examples/ha_tina.cc:
  Changing character set of the buffer to "binary".
2007-06-15 11:19:35 +05:00
unknown
9cf998e6a9 Update tests and result files after running with new mysqltest that better detects problems with test files
mysql-test/r/csv.result:
  Update after add of missing semicolon
mysql-test/r/drop.result:
  Update result file, no space before commands that has been "sent"
mysql-test/r/flush.result:
  Update result file, no space before commands that has been "sent"
mysql-test/r/flush_block_commit.result:
  Update result file, no space before commands that has been "sent"
mysql-test/r/flush_read_lock_kill.result:
  Update result file, no space before commands that has been "sent"
mysql-test/r/grant2.result:
  Update result file, no space before commands that has been "sent"
mysql-test/r/handler.result:
  Update result file, no space before commands that has been "sent"
mysql-test/r/innodb_notembedded.result:
  Update result file, no space before commands that has been "sent"
mysql-test/r/kill.result:
  Update result file, no space before commands that has been "sent"
mysql-test/r/lock_multi.result:
  Update result file, no space before commands that has been "sent"
mysql-test/r/multi_update.result:
  Update result file, no space before commands that has been "sent"
mysql-test/r/mysqltest.result:
  Update result
mysql-test/r/query_cache.result:
  Update after add of missing semicolon
mysql-test/r/query_cache_notembedded.result:
  Update result file, no space before commands that has been "sent"
mysql-test/r/sp-threads.result:
  Update result file, no space before commands that has been "sent"
mysql-test/r/sp_notembedded.result:
  Update after add of missing semicolon
mysql-test/r/type_blob.result:
  Remove extra drop table
mysql-test/t/csv.test:
  Add missing semicolon
mysql-test/t/query_cache.test:
  Add missing semicolon
mysql-test/t/sp-error.test:
  Remove "tab" from end of error declaration
mysql-test/t/sp.test:
  Wrong delimiter, used ; instead of |
mysql-test/t/sp_notembedded.test:
  Wrong delimiter, used ; instead of |
mysql-test/t/view_grant.test:
  An incomplete error name specification was used.
2006-10-04 13:09:37 +02:00
unknown
83aade7387 Fix Bug#15205 "Select from CSV table without the datafile causes crash"
mysql-test/r/csv.result:
  update result file
mysql-test/t/csv.test:
  add a test for the bug
sql/examples/ha_tina.cc:
  move open() call before my_hash_insert, so that we don't insert invalid
  share to the hash. To avoid other possible problems also add
  hash_delete(), so that the share is removed from hash before it is freed.
2006-07-11 15:54:52 +04:00
unknown
f2af624e45 BUG#13406 - incorrect amount of "records deleted" in CSV.
Fallback to row-wise delete if number or rows in the table is unknown


mysql-test/r/csv.result:
  BUG#13406 - incorrect amount of "records deleted"
mysql-test/t/csv.test:
  BUG#13406 - incorrect amount of "records deleted"
sql/examples/ha_tina.cc:
  BUG#13406 - incorrect amount of "records deleted".
  Fallback to row-wise delete if number or rows in the table is unknown
sql/examples/ha_tina.h:
  BUG#13406 - incorrect amount of "records deleted".
  Fallback to row-wise delete if number or rows in the table is unknown
2005-11-17 22:52:31 +01:00
unknown
b0829011b8 Fix Bug#14672 Bug in deletion
mysql-test/r/csv.result:
  correct result file
mysql-test/t/csv.test:
  Add test for a bug
sql/examples/ha_tina.cc:
  Add O_APPEND flag to my_open. We should always add rows to the end of file
2005-11-06 02:11:12 +03:00
unknown
1b65c70413 Fix Bug#13894 Server crashes on update of CSV table
mysql-test/r/csv.result:
  update result file
mysql-test/t/csv.test:
  Add test for a bug
sql/examples/ha_tina.cc:
  sort function should return reverted values for chains to be sorted in
  the right orded. don't do a strange memmove
2005-11-05 15:08:15 +03:00
unknown
89987fa104 This is the addition of the CSV engine "aka tina". Its an example engine that works as a plain text file.
acconfig.h:
  Adding HAVE CSV rule
acinclude.m4:
  Build option of csv engine
configure.in:
  Update for building CSV
sql/Makefile.am:
  Added files for CSV build
sql/handler.cc:
  Needed options for CSV to be created.
sql/handler.h:
  CSV type engine enum.
sql/mysql_priv.h:
  Addition of the have_csv_db variable.
sql/mysqld.cc:
  Code to show csv option.
sql/set_var.cc:
  Adding have show variables for both csv and example.
2004-08-12 20:57:18 -07:00