MySQL Lists are EOL. Please join:

List:Commits« Previous MessageNext Message »
From:Sergey Vojtovich Date:December 8 2009 11:19am
Subject:Re: bzr commit into mysql-5.6-next-mr branch (v.narayanan:2926)
Bug#40814
View as plain text  
Hi VN,

ok to push.

Regards,
Sergey

On Thu, Dec 03, 2009 at 11:48:47AM +0000, V Narayanan wrote:
> #At
> file:///home/narayanan/Work/mysql_checkouts/shared_repository_directory/mysql-next-mr-svoj-40814-01/
> based on revid:svoj@stripped
> 
>  2926 V Narayanan	2009-12-03
>       Bug#40814 CSV engine does not parse \X characters when they occur in unquoted
> fields
>           
>       When a .CSV file for table in the CSV engine contains
>       \X characters as part of unquoted fields, e.g.
>           
>       2,naraya\nan
>           
>       \n is not interpreted as a new line (it is however interpreted as a
>       newline in a quoted field).
>           
>       The old algorithm copied the entire value for a unquoted field without
>       parsing the \X characters. 
>           
>       The new algorithm adds the capability to handle \X characters in the 
>       unquoted fields of a .CSV file.
>      @ mysql-test/r/csv.result
>         Bug#40814 CSV engine does not parse \X characters when they occur in unquoted
> fields
>         
>         Contains additional test output corresponding to the new 
>         tests added.
>      @ mysql-test/t/csv.test
>         Bug#40814 CSV engine does not parse \X characters when they occur in unquoted
> fields
>         
>         Contains additional tests for testing the behaviour of the CSV 
>         storage engine when the fields are not enclosed in quotes and
>         contain \X characters.
>      @ storage/csv/ha_tina.cc
>         Bug#40814 CSV engine does not parse \X characters when they occur in unquoted
> fields
>         
>         Changes the parsing logic of the rows in a CSV file, to parse
>         \X characters that might be present in the unquoted fields.
> 
>     modified:
>       mysql-test/r/csv.result
>       mysql-test/t/csv.test
>       storage/csv/ha_tina.cc
> === modified file 'mysql-test/r/csv.result'
> --- a/mysql-test/r/csv.result	2009-01-23 12:22:05 +0000
> +++ b/mysql-test/r/csv.result	2009-12-03 11:48:43 +0000
> @@ -5407,4 +5407,60 @@ test.t1	repair	status	OK
>  select * from t1 limit 1;
>  a
>  drop table t1;
> +#
> +# Test for the following cases
> +# 1) integers and strings enclosed in quotes
> +# 2) integers and strings not enclosed in quotes
> +# 3) \X  characters with quotes
> +# 4) \X  characters outside quotes
> +#
> +CREATE TABLE t1(c1 INT NOT NULL, c2 VARCHAR(50) NOT NULL) ENGINE=csv;
> +# remove the already existing .CSV file if any
> +# create the .CSV file that contains the hard-coded data used in
> +# testing
> +1,"integer sans quotes"
> +1,string sans quotes
> +1,quotes"in between" strings 
> +"1",Integer with quote and string with no quote
> +1,"escape sequence \n \" \\ \r \a within quotes"
> +1,escape sequence \n \" \\ \r \a without quotes
> +# select from the table in which the data has been filled in using
> +# the hard-coded .CSV file
> +SELECT * FROM t1;
> +c1	c2
> +1	integer sans quotes
> +1	string sans quotes
> +1	quotes"in between" strings 
> +1	Integer with quote and string with no quote
> +1	escape sequence 
> + " \ 
>  \a within quotes
> +1	escape sequence 
> + " \ 
>  \a without quotes
> +DROP TABLE t1;
> +# Test for the case when a field begins with a quote, but does not end in a
> +# quote.
> +# Note: This results in an error.
> +CREATE TABLE t1(c1 INT NOT NULL, c2 VARCHAR(50) NOT NULL) ENGINE=csv;
> +# remove the already existing .CSV file if any
> +# create the .CSV file that contains the hard-coded data used in
> +# testing
> +1,"string only at the beginning quotes
> +# select from the table in which the data has been filled in using
> +# the hard-coded .CSV file
> +SELECT * FROM t1;
> +ERROR HY000: Table 't1' is marked as crashed and should be repaired
> +DROP TABLE t1;
> +# Test for the case when a field ends with a quote, but does not begin in a
> +# quote.
> +# Note: This results in an error.
> +CREATE TABLE t1(c1 INT NOT NULL, c2 VARCHAR(50) NOT NULL) ENGINE=csv;
> +# remove the already existing .CSV file if any
> +# create the .CSV file that contains the hard-coded data used in
> +# testing
> +1,string with only ending quotes"
> +# select from the table in which the data has been filled in using
> +# the hard-coded .CSV file
> +SELECT * FROM t1;
> +ERROR HY000: Table 't1' is marked as crashed and should be repaired
> +DROP TABLE t1;
>  End of 5.1 tests
> 
> === modified file 'mysql-test/t/csv.test'
> --- a/mysql-test/t/csv.test	2009-05-15 10:15:56 +0000
> +++ b/mysql-test/t/csv.test	2009-12-03 11:48:43 +0000
> @@ -1819,4 +1819,84 @@ repair table t1;
>  select * from t1 limit 1;
>  drop table t1;
>  
> +#
> +# Bug #40814 CSV engine does not parse \X characters when they occur in unquoted
> fields
> +#
> +
> +--echo #
> +--echo # Test for the following cases
> +--echo # 1) integers and strings enclosed in quotes
> +--echo # 2) integers and strings not enclosed in quotes
> +--echo # 3) \X  characters with quotes
> +--echo # 4) \X  characters outside quotes
> +--echo #
> +
> +CREATE TABLE t1(c1 INT NOT NULL, c2 VARCHAR(50) NOT NULL) ENGINE=csv;
> +
> +--echo # remove the already existing .CSV file if any
> +--remove_file $MYSQLD_DATADIR/test/t1.CSV
> +
> +--echo # create the .CSV file that contains the hard-coded data used in
> +--echo # testing
> +--write_file $MYSQLD_DATADIR/test/t1.CSV
> +1,"integer sans quotes"
> +1,string sans quotes
> +1,quotes"in between" strings 
> +"1",Integer with quote and string with no quote
> +1,"escape sequence \n \" \\ \r \a within quotes"
> +1,escape sequence \n \" \\ \r \a without quotes
> +EOF
> +--cat_file $MYSQLD_DATADIR/test/t1.CSV
> +
> +--echo # select from the table in which the data has been filled in using
> +--echo # the hard-coded .CSV file
> +SELECT * FROM t1;
> +
> +DROP TABLE t1; 
> +
> +--echo # Test for the case when a field begins with a quote, but does not end in a
> +--echo # quote.
> +--echo # Note: This results in an error.
> +
> +CREATE TABLE t1(c1 INT NOT NULL, c2 VARCHAR(50) NOT NULL) ENGINE=csv;
> +
> +--echo # remove the already existing .CSV file if any
> +--remove_file $MYSQLD_DATADIR/test/t1.CSV
> +
> +--echo # create the .CSV file that contains the hard-coded data used in
> +--echo # testing
> +--write_file $MYSQLD_DATADIR/test/t1.CSV
> +1,"string only at the beginning quotes
> +EOF
> +--cat_file $MYSQLD_DATADIR/test/t1.CSV
> +
> +--echo # select from the table in which the data has been filled in using
> +--echo # the hard-coded .CSV file
> +--error ER_CRASHED_ON_USAGE
> +SELECT * FROM t1;
> +
> +DROP TABLE t1;
> +
> +--echo # Test for the case when a field ends with a quote, but does not begin in a
> +--echo # quote.
> +--echo # Note: This results in an error.
> +
> +CREATE TABLE t1(c1 INT NOT NULL, c2 VARCHAR(50) NOT NULL) ENGINE=csv;
> +
> +--echo # remove the already existing .CSV file if any
> +--remove_file $MYSQLD_DATADIR/test/t1.CSV
> +
> +--echo # create the .CSV file that contains the hard-coded data used in
> +--echo # testing
> +--write_file $MYSQLD_DATADIR/test/t1.CSV
> +1,string with only ending quotes"
> +EOF
> +--cat_file $MYSQLD_DATADIR/test/t1.CSV
> +
> +--echo # select from the table in which the data has been filled in using
> +--echo # the hard-coded .CSV file
> +--error ER_CRASHED_ON_USAGE
> +SELECT * FROM t1;
> +
> +DROP TABLE t1;
>  --echo End of 5.1 tests
> 
> === modified file 'storage/csv/ha_tina.cc'
> --- a/storage/csv/ha_tina.cc	2009-10-23 11:22:21 +0000
> +++ b/storage/csv/ha_tina.cc	2009-12-03 11:48:43 +0000
> @@ -614,6 +614,33 @@ int ha_tina::find_current_row(uchar *buf
>  
>    memset(buf, 0, table->s->null_bytes);
>  
> +  /*
> +    Parse the line obtained using the following algorithm
> +   
> +    BEGIN
> +      1) Store the EOL (end of line) for the current row
> +      2) Until all the fields in the current query have not been 
> +         filled
> +         2.1) If the current character is a quote
> +              2.1.1) Until EOL has not been reached
> +                     a) If end of current field is reached, move
> +                        to next field and jump to step 2.3
> +                     b) If current character is a \\ handle
> +                        \\n, \\r, \\, \\"
> +                     c) else append the current character into the buffer
> +                        before checking that EOL has not been reached.
> +          2.2) If the current character does not begin with a quote
> +               2.2.1) Until EOL has not been reached
> +                      a) If the end of field has been reached move to the
> +                         next field and jump to step 2.3
> +                      b) If current character begins with \\ handle
> +                        \\n, \\r, \\, \\"
> +                      c) else append the current character into the buffer
> +                         before checking that EOL has not been reached.
> +          2.3) Store the current field value and jump to 2)
> +    TERMINATE
> +  */  
> +
>    for (Field **field=table->field ; *field ; field++)
>    {
>      char curr_char;
> @@ -622,19 +649,23 @@ int ha_tina::find_current_row(uchar *buf
>      if (curr_offset >= end_offset)
>        goto err;
>      curr_char= file_buff->get_value(curr_offset);
> +    /* Handle the case where the first character is a quote */
>      if (curr_char == '"')
>      {
> -      curr_offset++; // Incrementpast the first quote
> +      /* Increment past the first quote */
> +      curr_offset++;
>  
> -      for(; curr_offset < end_offset; curr_offset++)
> +      /* Loop through the row to extract the values for the current field */
> +      for ( ; curr_offset < end_offset; curr_offset++)
>        {
>          curr_char= file_buff->get_value(curr_offset);
> -        // Need to convert line feeds!
> +        /* check for end of the current field */
>          if (curr_char == '"' &&
>              (curr_offset == end_offset - 1 ||
>               file_buff->get_value(curr_offset + 1) == ','))
>          {
> -          curr_offset+= 2; // Move past the , and the "
> +          /* Move past the , and the " */
> +          curr_offset+= 2;
>            break;
>          }
>          if (curr_char == '\\' && curr_offset != (end_offset - 1))
> @@ -656,7 +687,7 @@ int ha_tina::find_current_row(uchar *buf
>          else // ordinary symbol
>          {
>            /*
> -            We are at final symbol and no last quote was found =>
> +            If we are at final symbol and no last quote was found =>
>              we are working with a damaged file.
>            */
>            if (curr_offset == end_offset - 1)
> @@ -667,15 +698,41 @@ int ha_tina::find_current_row(uchar *buf
>      }
>      else 
>      {
> -      for(; curr_offset < end_offset; curr_offset++)
> +      for ( ; curr_offset < end_offset; curr_offset++)
>        {
>          curr_char= file_buff->get_value(curr_offset);
> +        /* Move past the ,*/
>          if (curr_char == ',')
>          {
> -          curr_offset++;       // Skip the ,
> +          curr_offset++;
>            break;
>          }
> -        buffer.append(curr_char);
> +        if (curr_char == '\\' && curr_offset != (end_offset - 1))
> +        {
> +          curr_offset++;
> +          curr_char= file_buff->get_value(curr_offset);
> +          if (curr_char == 'r')
> +            buffer.append('\r');
> +          else if (curr_char == 'n' )
> +            buffer.append('\n');
> +          else if (curr_char == '\\' || curr_char == '"')
> +            buffer.append(curr_char);
> +          else  /* This could only happed with an externally created file */
> +          {
> +            buffer.append('\\');
> +            buffer.append(curr_char);
> +          }
> +        }
> +        else
> +        {
> +          /*
> +             We are at the final symbol and a quote was found for the
> +             unquoted field => We are working with a damaged field.
> +          */
> +          if (curr_offset == end_offset - 1 && curr_char == '"')
> +            goto err;
> +          buffer.append(curr_char);
> +        }
>        }
>      }
>  
> 

> # Bazaar merge directive format 2 (Bazaar 0.90)
> # revision_id: v.narayanan@stripped
> # target_branch: file:///home/narayanan/Work/mysql_checkouts\
> #   /shared_repository_directory/mysql-next-mr-svoj-40814-01/
> # testament_sha1: d56579c64c389276173b044891c63e3ee62dee21
> # timestamp: 2009-12-03 17:18:52 +0530
> # base_revision_id: svoj@stripped
> # 
> # Begin bundle
> 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
> nChIfwmR5AA=
> 
> 

> 
> -- 
> MySQL Code Commits Mailing List
> For list archives: http://lists.mysql.com/commits
> To unsubscribe:    http://lists.mysql.com/commits?unsub=1


-- 
Sergey Vojtovich <svoj@stripped>
MySQL AB, Software Engineer
Izhevsk, Russia, www.mysql.com
Thread
bzr commit into mysql-5.6-next-mr branch (v.narayanan:2926) Bug#40814V Narayanan3 Dec
  • Re: bzr commit into mysql-5.6-next-mr branch (v.narayanan:2926)Bug#40814Sergey Vojtovich8 Dec