Skip to content

Commit 7b2b09b

Browse files
authored
Allow empty partial column in copy from clause (#5180)
1 parent a5094d4 commit 7b2b09b

File tree

5 files changed

+2758
-2755
lines changed

5 files changed

+2758
-2755
lines changed

scripts/antlr4/Cypher.g4

+2-2
Original file line numberDiff line numberDiff line change
@@ -259,10 +259,10 @@ oC_Statement
259259
| kU_UseDatabase;
260260

261261
kU_CopyFrom
262-
: COPY SP oC_SchemaName ( ( SP? kU_ColumnNames SP? ) | SP ) FROM SP kU_ScanSource ( SP? '(' SP? kU_Options SP? ')' )? ;
262+
: COPY SP oC_SchemaName ( SP? '(' SP? kU_ColumnNames? ')' )? SP FROM SP kU_ScanSource ( SP? '(' SP? kU_Options SP? ')' )? ;
263263

264264
kU_ColumnNames
265-
: '(' SP? oC_SchemaName ( SP? ',' SP? oC_SchemaName )* SP? ')';
265+
: oC_SchemaName ( SP? ',' SP? oC_SchemaName )* SP? ;
266266

267267
kU_ScanSource
268268
: kU_FilePaths

scripts/antlr4/hash.md5

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
0ebee60341e5e8e1203a6c8cb1b35151
1+
dc70036c7f774248132e8946275ffc3a

src/antlr4/Cypher.g4

+2-2
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,10 @@ oC_Statement
2828
| kU_UseDatabase;
2929

3030
kU_CopyFrom
31-
: COPY SP oC_SchemaName ( ( SP? kU_ColumnNames SP? ) | SP ) FROM SP kU_ScanSource ( SP? '(' SP? kU_Options SP? ')' )? ;
31+
: COPY SP oC_SchemaName ( SP? '(' SP? kU_ColumnNames? ')' )? SP FROM SP kU_ScanSource ( SP? '(' SP? kU_Options SP? ')' )? ;
3232

3333
kU_ColumnNames
34-
: '(' SP? oC_SchemaName ( SP? ',' SP? oC_SchemaName )* SP? ')';
34+
: oC_SchemaName ( SP? ',' SP? oC_SchemaName )* SP? ;
3535

3636
kU_ScanSource
3737
: kU_FilePaths

test/test_files/copy/copy_partial_column.test

+7
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,13 @@
1414
---- ok
1515
-STATEMENT COPY person FROM "${KUZU_ROOT_DIRECTORY}/dataset/tinysnb/vPerson.csv";
1616
---- ok
17+
-STATEMENT CREATE REL TABLE sees(FROM person to person);
18+
---- ok
19+
-STATEMENT COPY sees() FROM (LOAD FROM "${KUZU_ROOT_DIRECTORY}/dataset/tinysnb/eKnows.csv" RETURN column0, column1);
20+
---- ok
21+
-STATEMENT MATCH ()-[e:sees]->() RETURN count(e)
22+
---- 1
23+
6
1724
-STATEMENT CREATE REL TABLE knows1 (FROM person TO person, nullDouble DOUBLE, date DATE, meetTime TIMESTAMP,
1825
validInterval INTERVAL, comments STRING[], summary STRUCT(locations STRING[],
1926
transfer STRUCT(day DATE, amount INT64[])), notes UNION(firstmet DATE, type INT16, comment STRING), someMap MAP(STRING, STRING), MANY_MANY);

0 commit comments

Comments
 (0)