From ad14a7ff237d2e532f1707b7919c89bf36501c8f Mon Sep 17 00:00:00 2001 From: Boris Tyshkevich Date: Thu, 24 Sep 2026 10:53:36 +0200 Subject: [PATCH] parser: support SHOW ACCESS --- parser/altinity_show_access_test.go | 22 ++++++++++++++++++++++ parser/parser_table.go | 7 ++++++- 2 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 parser/altinity_show_access_test.go diff --git a/parser/altinity_show_access_test.go b/parser/altinity_show_access_test.go new file mode 100644 index 0000000..8000b47 --- /dev/null +++ b/parser/altinity_show_access_test.go @@ -0,0 +1,22 @@ +package parser + +import ( + "testing" + + "github.com/stretchr/testify/require" +) + +func TestShowAccess(t *testing.T) { + stmts, err := NewParser("SHOW ACCESS").ParseStmts() + require.NoError(t, err) + require.Len(t, stmts, 1) + show, ok := stmts[0].(*ShowStmt) + require.True(t, ok) + require.Equal(t, "ACCESS", show.ShowType) + require.Equal(t, "SHOW ACCESS", Format(show)) + + for _, sql := range []string{"SHOW ACCESS JUNK", "SHOW ACCESS LIMIT 1", "SHOW ACCESS FROM system.users"} { + _, err := NewParser(sql).ParseStmts() + require.Error(t, err, sql) + } +} diff --git a/parser/parser_table.go b/parser/parser_table.go index 6d962c5..30ef6bc 100644 --- a/parser/parser_table.go +++ b/parser/parser_table.go @@ -1780,8 +1780,13 @@ func (p *Parser) parseShowStmt(pos Pos) (*ShowStmt, error) { showType = "TABLES" _ = p.lexer.consumeToken() + case strings.EqualFold(p.currentTokenString(), "ACCESS"): + // SHOW ACCESS has no arguments or optional clauses. + showType = "ACCESS" + _ = p.lexer.consumeToken() + default: - return nil, fmt.Errorf("expected CREATE, DATABASES, or TABLES after SHOW, got %q", p.currentTokenString()) + return nil, fmt.Errorf("expected ACCESS, CREATE, DATABASES, or TABLES after SHOW, got %q", p.currentTokenString()) } stmt := &ShowStmt{