From 6f5dd62b6ddc4c6f1ab8f0f610ce8aeef4af94f1 Mon Sep 17 00:00:00 2001 From: qw4990 Date: Tue, 8 Aug 2023 15:44:39 +0800 Subject: [PATCH 1/2] fixup --- parser/lexer.go | 1 + parser/parser_test.go | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/parser/lexer.go b/parser/lexer.go index c379b029d0bac..526ed2eb74ede 100644 --- a/parser/lexer.go +++ b/parser/lexer.go @@ -101,6 +101,7 @@ func (s *Scanner) reset(sql string) { s.stmtStartPos = 0 s.inBangComment = false s.lastKeyword = 0 + s.identifierDot = true } func (s *Scanner) stmtText() string { diff --git a/parser/parser_test.go b/parser/parser_test.go index 04f3d335cd537..d5eb04b2f6b93 100644 --- a/parser/parser_test.go +++ b/parser/parser_test.go @@ -7269,6 +7269,18 @@ func TestTTLTableOption(t *testing.T) { RunTest(t, table, false) } +func TestIssue45898(t *testing.T) { + p := parser.New() + p.ParseSQL("a.") + stmts, _, err := p.ParseSQL("select count(1) from t") + require.NoError(t, err) + var sb strings.Builder + restoreCtx := NewRestoreCtx(DefaultRestoreFlags, &sb) + sb.Reset() + stmts[0].Restore(restoreCtx) + require.Equal(t, sb.String(), "SELECT COUNT(1) FROM `t`") +} + func TestMultiStmt(t *testing.T) { p := parser.New() stmts, _, err := p.Parse("SELECT 'foo'; SELECT 'foo;bar','baz'; select 'foo' , 'bar' , 'baz' ;select 1", "", "") From f7ab10c3428187176cec6e937799635b767436ff Mon Sep 17 00:00:00 2001 From: qw4990 Date: Tue, 8 Aug 2023 15:46:31 +0800 Subject: [PATCH 2/2] fixup --- parser/lexer.go | 2 +- parser/parser_test.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/parser/lexer.go b/parser/lexer.go index 526ed2eb74ede..dcfae1d1f5f54 100644 --- a/parser/lexer.go +++ b/parser/lexer.go @@ -101,7 +101,7 @@ func (s *Scanner) reset(sql string) { s.stmtStartPos = 0 s.inBangComment = false s.lastKeyword = 0 - s.identifierDot = true + s.identifierDot = false } func (s *Scanner) stmtText() string { diff --git a/parser/parser_test.go b/parser/parser_test.go index d5eb04b2f6b93..dcfa5a7a5c806 100644 --- a/parser/parser_test.go +++ b/parser/parser_test.go @@ -7278,7 +7278,7 @@ func TestIssue45898(t *testing.T) { restoreCtx := NewRestoreCtx(DefaultRestoreFlags, &sb) sb.Reset() stmts[0].Restore(restoreCtx) - require.Equal(t, sb.String(), "SELECT COUNT(1) FROM `t`") + require.Equal(t, "SELECT COUNT(1) FROM `t`", sb.String()) } func TestMultiStmt(t *testing.T) {