Skip to content

Commit 0a9971d

Browse files
hayssamsclaude
andcommitted
fix: restore lines dropped during conflict resolution and fix LOAD DATA lookahead
The merge of master resolved 26 conflict hunks by concatenating both sides while dropping the closing braces, @OverRide annotations and return statements that git had hoisted out of the conflict markers, leaving 6 visitor/deparser classes and the grammar unparseable. Also exclude LOAD DATA from the ExtensionStatement lookahead so BigQuery's LOAD DATA statement is not swallowed by DuckDB's LOAD extension alternative. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1 parent aee7cbc commit 0a9971d

7 files changed

Lines changed: 78 additions & 1 deletion

File tree

‎src/main/java/net/sf/jsqlparser/statement/StatementFeatureVisitor.java‎

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -529,6 +529,10 @@ public <S> Void visit(Drop drop, S context) {
529529
public <S> Void visit(PragmaStatement pragmaStatement, S context) {
530530
analysis.claimTopLevel();
531531
analysis.certain(StmtFeature.MODIFIES_SESSION);
532+
return null;
533+
}
534+
535+
@Override
532536
public <S> Void visit(AssertStatement assertStatement, S context) {
533537
analysis.claimTopLevel();
534538
analysis.certain(StmtFeature.READS_DATA);
@@ -586,6 +590,12 @@ public <S> Void visit(DeallocateStatement deallocateStatement, S context) {
586590

587591
@Override
588592
public <S> Void visit(CopyStatement copyStatement, S context) {
593+
analysis.claimTopLevel();
594+
analysis.certain(StmtFeature.READS_DATA, StmtFeature.MODIFIES_DATA);
595+
return null;
596+
}
597+
598+
@Override
589599
public <S> Void visit(ExportDataStatement exportDataStatement, S context) {
590600
analysis.claimTopLevel();
591601
analysis.certain(StmtFeature.READS_DATA, StmtFeature.MODIFIES_DATA);
@@ -603,6 +613,10 @@ public <S> Void visit(CreateMacro createMacro, S context) {
603613
public <S> Void visit(CreateExtensionRepository createExtensionRepository, S context) {
604614
analysis.claimTopLevel();
605615
analysis.certain(StmtFeature.MODIFIES_SCHEMA);
616+
return null;
617+
}
618+
619+
@Override
606620
public <S> Void visit(LoadDataStatement loadDataStatement, S context) {
607621
analysis.claimTopLevel();
608622
analysis.certain(StmtFeature.MODIFIES_DATA);

‎src/main/java/net/sf/jsqlparser/statement/StatementVisitor.java‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -439,6 +439,8 @@ default void visit(CreateMacro createMacro) {
439439

440440
default void visit(CreateExtensionRepository createExtensionRepository) {
441441
this.visit(createExtensionRepository, null);
442+
}
443+
442444
<S> T visit(AssertStatement assertStatement, S context);
443445

444446
default void visit(AssertStatement assertStatement) {

‎src/main/java/net/sf/jsqlparser/statement/StatementVisitorAdapter.java‎

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -622,12 +622,20 @@ public <S> T visit(RenameTableStatement renameTableStatement, S context) {
622622

623623
@Override
624624
public <S> T visit(PragmaStatement pragmaStatement, S context) {
625+
return null;
626+
}
627+
628+
@Override
625629
public <S> T visit(AssertStatement assertStatement, S context) {
626630
return null;
627631
}
628632

629633
@Override
630634
public <S> T visit(ExtensionStatement extensionStatement, S context) {
635+
return null;
636+
}
637+
638+
@Override
631639
public <S> T visit(ExportDataStatement exportDataStatement, S context) {
632640
return null;
633641
}
@@ -674,6 +682,10 @@ public <S> T visit(CreateMacro createMacro, S context) {
674682

675683
@Override
676684
public <S> T visit(CreateExtensionRepository createExtensionRepository, S context) {
685+
return null;
686+
}
687+
688+
@Override
677689
public <S> T visit(LoadDataStatement loadDataStatement, S context) {
678690
return null;
679691
}

‎src/main/java/net/sf/jsqlparser/util/TablesNamesFinder.java‎

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2519,6 +2519,10 @@ public void visit(RenameTableStatement renameTableStatement) {
25192519
@Override
25202520
public <S> Void visit(PragmaStatement pragmaStatement, S context) {
25212521
// no tables involved in this statement
2522+
return null;
2523+
}
2524+
2525+
@Override
25222526
public <S> Void visit(AssertStatement assertStatement, S context) {
25232527
assertStatement.getExpression().accept(this, context);
25242528
return null;
@@ -2532,6 +2536,10 @@ public void visit(PragmaStatement pragmaStatement) {
25322536
@Override
25332537
public <S> Void visit(ExtensionStatement extensionStatement, S context) {
25342538
// no tables involved in this statement
2539+
return null;
2540+
}
2541+
2542+
@Override
25352543
public void visit(AssertStatement assertStatement) {
25362544
StatementVisitor.super.visit(assertStatement);
25372545
}
@@ -2550,6 +2558,10 @@ public void visit(ExtensionStatement extensionStatement) {
25502558
@Override
25512559
public <S> Void visit(AttachStatement attachStatement, S context) {
25522560
// no tables involved in this statement
2561+
return null;
2562+
}
2563+
2564+
@Override
25532565
public void visit(ExportDataStatement exportDataStatement) {
25542566
StatementVisitor.super.visit(exportDataStatement);
25552567
}
@@ -2657,6 +2669,9 @@ public <S> Void visit(CreateExtensionRepository createExtensionRepository, S con
26572669
@Override
26582670
public void visit(CreateExtensionRepository createExtensionRepository) {
26592671
StatementVisitor.super.visit(createExtensionRepository);
2672+
}
2673+
2674+
@Override
26602675
public void visit(LoadDataStatement loadDataStatement) {
26612676
StatementVisitor.super.visit(loadDataStatement);
26622677
}

‎src/main/java/net/sf/jsqlparser/util/deparser/StatementDeParser.java‎

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -576,6 +576,10 @@ public <S> StringBuilder visit(RenameTableStatement renameTableStatement, S cont
576576
@Override
577577
public <S> StringBuilder visit(PragmaStatement pragmaStatement, S context) {
578578
pragmaStatement.appendTo(builder);
579+
return builder;
580+
}
581+
582+
@Override
579583
public <S> StringBuilder visit(AssertStatement assertStatement, S context) {
580584
assertStatement.appendTo(builder);
581585
return builder;
@@ -584,6 +588,10 @@ public <S> StringBuilder visit(AssertStatement assertStatement, S context) {
584588
@Override
585589
public <S> StringBuilder visit(ExtensionStatement extensionStatement, S context) {
586590
extensionStatement.appendTo(builder);
591+
return builder;
592+
}
593+
594+
@Override
587595
public <S> StringBuilder visit(ExportDataStatement exportDataStatement, S context) {
588596
exportDataStatement.appendTo(builder);
589597
return builder;
@@ -640,6 +648,10 @@ public <S> StringBuilder visit(CreateMacro createMacro, S context) {
640648
@Override
641649
public <S> StringBuilder visit(CreateExtensionRepository createExtensionRepository, S context) {
642650
createExtensionRepository.appendTo(builder);
651+
return builder;
652+
}
653+
654+
@Override
643655
public <S> StringBuilder visit(LoadDataStatement loadDataStatement, S context) {
644656
loadDataStatement.appendTo(builder);
645657
return builder;

‎src/main/java/net/sf/jsqlparser/util/validation/validator/StatementValidator.java‎

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -487,13 +487,23 @@ public <S> Void visit(RenameTableStatement renameTableStatement, S context) {
487487

488488
@Override
489489
public <S> Void visit(PragmaStatement pragmaStatement, S context) {
490+
// TODO: not yet implemented
491+
return null;
492+
}
493+
494+
@Override
490495
public <S> Void visit(AssertStatement assertStatement, S context) {
491496
// TODO: not yet implemented
492497
return null;
493498
}
494499

495500
@Override
496501
public <S> Void visit(ExtensionStatement extensionStatement, S context) {
502+
// TODO: not yet implemented
503+
return null;
504+
}
505+
506+
@Override
497507
public <S> Void visit(ExportDataStatement exportDataStatement, S context) {
498508
// TODO: not yet implemented
499509
return null;
@@ -549,6 +559,11 @@ public <S> Void visit(CreateMacro createMacro, S context) {
549559

550560
@Override
551561
public <S> Void visit(CreateExtensionRepository createExtensionRepository, S context) {
562+
// TODO: not yet implemented
563+
return null;
564+
}
565+
566+
@Override
552567
public <S> Void visit(LoadDataStatement loadDataStatement, S context) {
553568
// TODO: not yet implemented
554569
return null;
@@ -812,6 +827,8 @@ public void visit(CreateMacro createMacro) {
812827

813828
public void visit(CreateExtensionRepository createExtensionRepository) {
814829
visit(createExtensionRepository, null);
830+
}
831+
815832
public void visit(AssertStatement assertStatement) {
816833
visit(assertStatement, null);
817834
}

‎src/main/jjtree/net/sf/jsqlparser/parser/JSqlParserCC.jjt‎

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3051,7 +3051,8 @@ Statement SingleStatement() :
30513051
|
30523052
LOOKAHEAD({ getToken(1).kind == K_PRAGMA }) stm = PragmaStatement()
30533053
|
3054-
LOOKAHEAD({ getToken(1).kind == K_INSTALL || getToken(1).kind == K_LOAD
3054+
LOOKAHEAD({ getToken(1).kind == K_INSTALL
3055+
|| (getToken(1).kind == K_LOAD && getToken(2).kind != K_DATA)
30553056
|| (getToken(1).kind == K_FORCE && getToken(2).kind == K_INSTALL) })
30563057
stm = ExtensionStatement()
30573058
|
@@ -3070,6 +3071,7 @@ Statement SingleStatement() :
30703071
LOOKAHEAD({ getToken(1).kind == K_DEALLOCATE }) stm = DeallocateStatement()
30713072
|
30723073
LOOKAHEAD({ getToken(1).kind == K_COPY }) stm = CopyStatement()
3074+
|
30733075
LOOKAHEAD({ getToken(1).kind == K_ASSERT }) stm = AssertStatement()
30743076
|
30753077
LOOKAHEAD({ getToken(1).kind == K_EXPORT && getToken(2).kind == K_DATA }) stm = ExportDataStatement()
@@ -4756,6 +4758,9 @@ PragmaStatement PragmaStatement() #PragmaStatement:
47564758
)
47574759
]
47584760
{ return pragmaStatement; }
4761+
}
4762+
4763+
/**
47594764
* BigQuery's LOAD DATA {INTO | OVERWRITE} table [(column_definitions)] [OPTIONS (option_list)]
47604765
* FROM FILES (file_options) [WITH PARTITION COLUMNS] [WITH CONNECTION connection].
47614766
*/

0 commit comments

Comments
 (0)