File tree Expand file tree Collapse file tree 14 files changed +656
-17
lines changed
Baselines120_CommitTransactionStatementTests120
Baselines90_CreateCredentialStatementTests
Baselines90_SendStatementTests
Baselines90_WaitForStatementTests90
CreateCredentialStatementTests Expand file tree Collapse file tree 14 files changed +656
-17
lines changed Original file line number Diff line number Diff line change 1+ package ast
2+
3+ // SearchedCaseExpression represents a CASE WHEN ... THEN ... ELSE ... END expression.
4+ type SearchedCaseExpression struct {
5+ WhenClauses []* SearchedWhenClause
6+ ElseExpression ScalarExpression
7+ }
8+
9+ func (s * SearchedCaseExpression ) node () {}
10+ func (s * SearchedCaseExpression ) scalarExpression () {}
11+
12+ // SearchedWhenClause represents a WHEN ... THEN clause.
13+ type SearchedWhenClause struct {
14+ WhenExpression BooleanExpression
15+ ThenExpression ScalarExpression
16+ }
17+
18+ // SimpleCaseExpression represents a CASE expression WHEN value THEN result END.
19+ type SimpleCaseExpression struct {
20+ InputExpression ScalarExpression
21+ WhenClauses []* SimpleWhenClause
22+ ElseExpression ScalarExpression
23+ }
24+
25+ func (s * SimpleCaseExpression ) node () {}
26+ func (s * SimpleCaseExpression ) scalarExpression () {}
27+
28+ // SimpleWhenClause represents a WHEN value THEN result clause.
29+ type SimpleWhenClause struct {
30+ WhenExpression ScalarExpression
31+ ThenExpression ScalarExpression
32+ }
Original file line number Diff line number Diff line change 1+ package ast
2+
3+ // CreateCredentialStatement represents a CREATE CREDENTIAL statement.
4+ type CreateCredentialStatement struct {
5+ Name * Identifier
6+ Identity ScalarExpression
7+ Secret ScalarExpression
8+ IsDatabaseScoped bool
9+ }
10+
11+ func (c * CreateCredentialStatement ) node () {}
12+ func (c * CreateCredentialStatement ) statement () {}
Original file line number Diff line number Diff line change 1+ package ast
2+
3+ // ReceiveStatement represents a RECEIVE ... FROM queue statement.
4+ type ReceiveStatement struct {
5+ Top ScalarExpression
6+ SelectElements []SelectElement
7+ Queue * SchemaObjectName
8+ Into * VariableTableReference
9+ Where BooleanExpression
10+ IsConversationGroupIdWhere bool
11+ }
12+
13+ func (r * ReceiveStatement ) node () {}
14+ func (r * ReceiveStatement ) statement () {}
Original file line number Diff line number Diff line change 1+ package ast
2+
3+ // SendStatement represents a SEND ON CONVERSATION statement.
4+ type SendStatement struct {
5+ ConversationHandles []ScalarExpression
6+ MessageTypeName * IdentifierOrValueExpression
7+ MessageBody ScalarExpression
8+ }
9+
10+ func (s * SendStatement ) node () {}
11+ func (s * SendStatement ) statement () {}
Original file line number Diff line number Diff line change 1+ #! /bin/bash
2+ cd /home/user/teesql/parser/testdata
3+ for dir in * /; do
4+ d=" ${dir%/ } "
5+ if [ -f " $d /ast.json" ] && grep -q ' "skip": true' " $d /metadata.json" 2> /dev/null; then
6+ echo " $d "
7+ fi
8+ done
Original file line number Diff line number Diff line change @@ -113,6 +113,9 @@ const (
113113 TokenDeclare
114114 TokenIf
115115 TokenElse
116+ TokenCase
117+ TokenWhen
118+ TokenThen
116119 TokenWhile
117120 TokenBegin
118121 TokenEnd
@@ -172,6 +175,10 @@ const (
172175 TokenLineno
173176 TokenStatusonly
174177 TokenNoreset
178+ TokenSend
179+ TokenMessage
180+ TokenTyp
181+ TokenReceive
175182)
176183
177184// Token represents a lexical token.
@@ -547,6 +554,9 @@ var keywords = map[string]TokenType{
547554 "DECLARE" : TokenDeclare ,
548555 "IF" : TokenIf ,
549556 "ELSE" : TokenElse ,
557+ "CASE" : TokenCase ,
558+ "WHEN" : TokenWhen ,
559+ "THEN" : TokenThen ,
550560 "WHILE" : TokenWhile ,
551561 "BEGIN" : TokenBegin ,
552562 "END" : TokenEnd ,
@@ -596,6 +606,10 @@ var keywords = map[string]TokenType{
596606 "LINENO" : TokenLineno ,
597607 "STATUSONLY" : TokenStatusonly ,
598608 "NORESET" : TokenNoreset ,
609+ "SEND" : TokenSend ,
610+ "MESSAGE" : TokenMessage ,
611+ "TYPE" : TokenTyp ,
612+ "RECEIVE" : TokenReceive ,
599613}
600614
601615func lookupKeyword (ident string ) TokenType {
You can’t perform that action at this time.
0 commit comments