@@ -466,16 +466,23 @@ TEST(ImportStatementTest) {
466466}
467467
468468TEST (CopyStatementTest) {
469- TEST_PARSE_SINGLE_SQL (" COPY students FROM 'students_file' WITH (FORMAT BINARY); " , kStmtImport , ImportStatement ,
470- import_result, import_stmt);
469+ TEST_PARSE_SINGLE_SQL (" COPY students FROM 'students_file' WITH (FORMAT CSV, DELIMITER '|', NULL '', QUOTE ' \" '); " ,
470+ kStmtImport , ImportStatement, import_result, import_stmt);
471471
472- ASSERT_EQ (import_stmt->type , kImportBinary );
472+ ASSERT_EQ (import_stmt->type , kImportCSV );
473473 ASSERT_NOTNULL (import_stmt->tableName );
474474 ASSERT_STREQ (import_stmt->tableName , " students" );
475475 ASSERT_NOTNULL (import_stmt->filePath );
476476 ASSERT_STREQ (import_stmt->filePath , " students_file" );
477477 ASSERT_NULL (import_stmt->whereClause );
478478 ASSERT_NULL (import_stmt->encoding );
479+ ASSERT_NOTNULL (import_stmt->csv_options );
480+ ASSERT_NOTNULL (import_stmt->csv_options ->delimiter );
481+ ASSERT_STREQ (import_stmt->csv_options ->delimiter , " |" );
482+ ASSERT_NOTNULL (import_stmt->csv_options ->null );
483+ ASSERT_STREQ (import_stmt->csv_options ->null , " " );
484+ ASSERT_NOTNULL (import_stmt->csv_options ->quote );
485+ ASSERT_STREQ (import_stmt->csv_options ->quote , " \" " );
479486
480487 TEST_PARSE_SINGLE_SQL (" COPY students FROM 'students_file' WHERE lastname = 'Potter';" , kStmtImport , ImportStatement,
481488 import_filter_result, import_filter_stmt);
@@ -492,17 +499,19 @@ TEST(CopyStatementTest) {
492499 ASSERT_EQ (import_filter_stmt->whereClause ->expr2 ->type , kExprLiteralString );
493500 ASSERT_STREQ (import_filter_stmt->whereClause ->expr2 ->name , " Potter" );
494501 ASSERT_NULL (import_filter_stmt->encoding );
502+ ASSERT_NULL (import_filter_stmt->csv_options );
495503
496- TEST_PARSE_SINGLE_SQL (" COPY students TO 'students_file' WITH (ENCODING 'FSST', FORMAT CSV );" , kStmtExport ,
504+ TEST_PARSE_SINGLE_SQL (" COPY students TO 'students_file' WITH (ENCODING 'FSST', FORMAT BINARY );" , kStmtExport ,
497505 ExportStatement, export_table_result, export_table_stmt);
498506
499- ASSERT_EQ (export_table_stmt->type , kImportCSV );
507+ ASSERT_EQ (export_table_stmt->type , kImportBinary );
500508 ASSERT_NOTNULL (export_table_stmt->tableName );
501509 ASSERT_STREQ (export_table_stmt->tableName , " students" );
502510 ASSERT_NOTNULL (export_table_stmt->filePath );
503511 ASSERT_STREQ (export_table_stmt->filePath , " students_file" );
504512 ASSERT_NULL (export_table_stmt->select );
505513 ASSERT_STREQ (export_table_stmt->encoding , " FSST" );
514+ ASSERT_NULL (export_table_stmt->csv_options );
506515
507516 TEST_PARSE_SINGLE_SQL (
508517 " COPY (SELECT firstname, lastname FROM students) TO 'students_file' WITH (ENCODING 'Dictionary');" , kStmtExport ,
@@ -513,6 +522,7 @@ TEST(CopyStatementTest) {
513522 ASSERT_NOTNULL (export_select_stmt->filePath );
514523 ASSERT_STREQ (export_select_stmt->filePath , " students_file" );
515524 ASSERT_STREQ (export_select_stmt->encoding , " Dictionary" );
525+ ASSERT_NULL (export_select_stmt->csv_options );
516526
517527 ASSERT_NOTNULL (export_select_stmt->select );
518528 const auto & select_stmt = export_select_stmt->select ;
0 commit comments