BNF

Accept ::= statements

1: statements ::= statements statement ';'

2: statements ::= statement ';'

3: statement ::= insertStatement

4: statement ::= describeSpecification

5: statement ::= rollbackWork

6: statement ::= deleteStatementSearched

7: statement ::= updateStatementSearched

8: statement ::= beginWork

9: statement ::= querySpecification

10: statement ::= showSpecification

11: statement ::= commitWork

12: insertStatement ::= insert into targetTable insertColumnsAndSource

13: describeSpecification ::= describe identifier

14: rollbackWork ::= rollback work?

15: deleteStatementSearched ::= delete from targetTable

16: deleteStatementSearched ::= delete from targetTable where searchCondition

17: updateStatementSearched ::= update targetTable set setClause+

18: updateStatementSearched ::= update targetTable set setClause+ where searchCondition

19: beginWork ::= begin work?

20: beginWork ::= start transaction

21: querySpecification ::= select selectList tableExpression

22: showSpecification ::= show identifier

23: commitWork ::= commit work?

24: targetTable ::= identifier

25: insertColumnsAndSource ::= fromConstructor

28: searchCondition ::= booleanValueExpression

31: selectList ::= selectSublist ('\,' selectSublist)*

32: selectList ::= asterisk

33: tableExpression ::= fromClause whereClause? orderByClause?

34: fromConstructor ::= '(' column ('\,' column)* ')' values '(' literal ('\,' literal)* ')'

35: booleanValueExpression ::= booleanValueExpression or booleanTerm

36: booleanValueExpression ::= booleanTerm

37: setClause ::= identifier '=' literal

38: selectSublist ::= identifier

39: selectSublist ::= identifier '.' identifier

42: asterisk ::= '*'

43: fromClause ::= from tableReference ('\,' tableReference)*

48: column ::= identifier

51: literal ::= dateValue

52: literal ::= ':' identifier placeholderType

53: literal ::= string

54: literal ::= timeValue

55: literal ::= timestampValue

56: literal ::= integer

57: literal ::= ':' identifier default literal

58: literal ::= decimal

61: booleanTerm ::= booleanFactor

62: booleanTerm ::= booleanTerm and booleanFactor

64: tableReference ::= identifier as? identifier

65: tableReference ::= identifier

68: whereClause ::= where searchCondition

69: orderByClause ::= order by sortSpecification ('\,' sortSpecification)*

71: dateValue ::= date string

72: placeholderType ::=

73: timeValue ::= time string

74: timestampValue ::= timestamp string

76: booleanFactor ::= not booleanTest

77: booleanFactor ::= booleanTest

81: sortSpecification ::= rowValuePredicant desc

82: sortSpecification ::= rowValuePredicant

83: sortSpecification ::= rowValuePredicant asc

86: booleanTest ::= booleanPrimary

87: booleanTest ::= booleanPrimary is truthValue

88: booleanTest ::= booleanPrimary is not truthValue

89: rowValuePredicant ::= identifier

90: rowValuePredicant ::= identifier '.' identifier

91: rowValuePredicant ::= literal

93: booleanPrimary ::= predicate

94: booleanPrimary ::= booleanPredicate

95: truthValue ::= falseL

96: truthValue ::= unknown

97: truthValue ::= trueL

98: predicate ::= comparisonPredicate

99: predicate ::= betweenPredicate

100: predicate ::= likePredicate

101: predicate ::= nullPredicate

102: predicate ::= inPredicate

103: booleanPredicate ::= parenthesizedBooleanValueExpression

104: comparisonPredicate ::= rowValuePredicant '<>' rowValuePredicant

105: comparisonPredicate ::= rowValuePredicant '<=' rowValuePredicant

106: comparisonPredicate ::= rowValuePredicant '>' rowValuePredicant

107: comparisonPredicate ::= rowValuePredicant '>=' rowValuePredicant

108: comparisonPredicate ::= rowValuePredicant '=' rowValuePredicant

109: comparisonPredicate ::= rowValuePredicant '<' rowValuePredicant

110: betweenPredicate ::= rowValuePredicant not between rowValuePredicant and rowValuePredicant

111: betweenPredicate ::= rowValuePredicant between rowValuePredicant and rowValuePredicant

112: likePredicate ::= rowValuePredicant like string

113: likePredicate ::= rowValuePredicant not like string

114: likePredicate ::= rowValuePredicant like string escape string

115: likePredicate ::= rowValuePredicant not like string escape string

116: nullPredicate ::= rowValuePredicant is not null

117: nullPredicate ::= rowValuePredicant is null

118: inPredicate ::= rowValuePredicant not in inPredicateValue

119: inPredicate ::= rowValuePredicant in inPredicateValue

120: parenthesizedBooleanValueExpression ::= '(' booleanValueExpression ')'

121: inPredicateValue ::= '(' inValueList ')'

122: inValueList ::= rowValuePredicant

123: inValueList ::= inValueList ',' rowValuePredicant

Terminals

string = ''[^']*'|"[^"]*"'

unknown = 'unknown'

integer = '[\+\-]?[0-9]+'

cComment = '/\*.*\*/'

falseL = 'false'

trueL = 'true'

hashComment = '#[^\n]*\n'

identifier = '[a-zA-z][a-zA-z0-9_]*'

whiteSpace = '[ \t\r\n]+'

decimal = '[\+\-]?[0-9]+\.[0-9]+'

doubleSlashComment = '\-\-[^\n]*\n'

describe = 'desc|descr|descri|describ|describe'

start = 'start'

transaction = 'transaction'

begin = 'begin'

work = 'work'

commit = 'commit'

rollback = 'rollback'

select = 'select'

insert = 'insert'

delete = 'delete'

update = 'update'

set = 'set'

into = 'into'

values = 'values'

from = 'from'

where = 'where'

order = 'order'

by = 'by'

as = 'as'

or = 'or'

and = 'and'

not = 'not'

is = 'is'

in = 'in'

between = 'between'

like = 'like'

escape = 'escape'

null = 'null'

asc = 'asc'

desc = 'desc'

date = 'date'

time = 'time'

timestamp = 'timestamp'

show = 'show'

default = 'default'

States

State 1

( )

Accept->.statements

insert Shift 4

describe Shift 5

rollback Shift 6

delete Shift 7

update Shift 8

start Shift 9

begin Shift 10

select Shift 11

show Shift 12

commit Shift 13

statement Goto 2

statements Goto 3

commitWork Gt/Rd 11

showSpecification Gt/Rd 10

querySpecification Gt/Rd 9

beginWork Gt/Rd 8

updateStatementSearched Gt/Rd 7

deleteStatementSearched Gt/Rd 6

rollbackWork Gt/Rd 5

describeSpecification Gt/Rd 4

insertStatement Gt/Rd 3

State 2

( 1 )

statements->statement .';'

';' Sh/Rd 2

State 3

( 1 )

Accept->statements . (0)

statements->statements .statement ';'

Accept->statements . (0)

insert Shift 4

describe Shift 5

rollback Shift 6

delete Shift 7

update Shift 8

start Shift 9

begin Shift 10

select Shift 11

show Shift 12

commit Shift 13

statement Goto 14

commitWork Gt/Rd 11

showSpecification Gt/Rd 10

querySpecification Gt/Rd 9

beginWork Gt/Rd 8

updateStatementSearched Gt/Rd 7

deleteStatementSearched Gt/Rd 6

rollbackWork Gt/Rd 5

describeSpecification Gt/Rd 4

insertStatement Gt/Rd 3

Eof Reduce 0

State 4

( 1 3 )

insertStatement->insert .into targetTable insertColumnsAndSource

into Shift 15

State 5

( 1 3 )

describeSpecification->describe .identifier

identifier Sh/Rd 13

State 6

( 1 3 )

rollbackWork->rollback .work?

work?->. (26)

work Sh/Rd 27

work? Gt/Rd 14

';' Reduce 26

State 7

( 1 3 )

deleteStatementSearched->delete .from targetTable

deleteStatementSearched->delete .from targetTable where searchCondition

from Shift 16

State 8

( 1 3 )

updateStatementSearched->update .targetTable set setClause+

updateStatementSearched->update .targetTable set setClause+ where searchCondition

identifier Sh/Rd 24

targetTable Goto 17

State 9

( 1 3 )

beginWork->start .transaction

transaction Sh/Rd 20

State 10

( 1 3 )

beginWork->begin .work?

work?->. (26)

work Sh/Rd 27

work? Gt/Rd 19

';' Reduce 26

State 11

( 1 3 )

querySpecification->select .selectList tableExpression

'*' Sh/Rd 42

identifier Shift 20

selectList Goto 18

asterisk Gt/Rd 32

selectSublist Goto 19

State 12

( 1 3 )

showSpecification->show .identifier

identifier Sh/Rd 22

State 13

( 1 3 )

commitWork->commit .work?

work?->. (26)

work Sh/Rd 27

work? Gt/Rd 23

';' Reduce 26

State 14

( 3 )

statements->statements statement .';'

';' Sh/Rd 1

State 15

( 4 )

insertStatement->insert into .targetTable insertColumnsAndSource

identifier Sh/Rd 24

targetTable Goto 21

State 16

( 7 )

deleteStatementSearched->delete from .targetTable

deleteStatementSearched->delete from .targetTable where searchCondition

identifier Sh/Rd 24

targetTable Goto 22

State 17

( 8 )

updateStatementSearched->update targetTable .set setClause+

updateStatementSearched->update targetTable .set setClause+ where searchCondition

set Shift 23

State 18

( 11 )

querySpecification->select selectList .tableExpression

from Shift 25

tableExpression Gt/Rd 21

fromClause Goto 24

State 19

( 11 )

selectList->selectSublist .('\,' selectSublist)*

('\,' selectSublist)*->. (41)

('\,' selectSublist)* Goto 26

',' Reduce 41

from Reduce 41

State 20

( 11 36 )

selectSublist->identifier . (38)

selectSublist->identifier .'.' identifier

selectSublist->identifier . (38)

'.' Shift 27

',' Reduce 38

from Reduce 38

State 21

( 15 )

insertStatement->insert into targetTable .insertColumnsAndSource

'(' Shift 28

insertColumnsAndSource Gt/Rd 12

fromConstructor Gt/Rd 25

State 22

( 16 )

deleteStatementSearched->delete from targetTable . (15)

deleteStatementSearched->delete from targetTable .where searchCondition

deleteStatementSearched->delete from targetTable . (15)

where Shift 29

';' Reduce 15

State 23

( 17 )

updateStatementSearched->update targetTable set .setClause+

updateStatementSearched->update targetTable set .setClause+ where searchCondition

identifier Shift 31

setClause+ Goto 30

setClause Gt/Rd 29

State 24

( 18 )

tableExpression->fromClause .whereClause? orderByClause?

whereClause?->. (44)

where Shift 33

whereClause? Goto 32

whereClause Gt/Rd 45

order Reduce 44

';' Reduce 44

State 25

( 18 )

fromClause->from .tableReference ('\,' tableReference)*

identifier Shift 35

tableReference Goto 34

State 26

( 19 )

selectList->selectSublist ('\,' selectSublist)* . (31)

('\,' selectSublist)*->('\,' selectSublist)* .('\,' selectSublist)

selectList->selectSublist ('\,' selectSublist)* . (31)

',' Shift 36

('\,' selectSublist) Gt/Rd 40

from Reduce 31

State 27

( 20 )

selectSublist->identifier '.' .identifier

identifier Sh/Rd 39

State 28

( 21 )

fromConstructor->'(' .column ('\,' column)* ')' values '(' literal ('\,' literal)* ')'

identifier Sh/Rd 48

column Goto 37

State 29

( 22 )

deleteStatementSearched->delete from targetTable where .searchCondition

identifier Shift 39

date Shift 40

time Shift 41

timestamp Shift 42

decimal Sh/Rd 58

integer Sh/Rd 56

string Sh/Rd 53

':' Shift 43

'(' Shift 45

not Shift 46

searchCondition Gt/Rd 16

booleanFactor Gt/Rd 61

booleanPrimary Goto 38

inPredicate Gt/Rd 102

nullPredicate Gt/Rd 101

likePredicate Gt/Rd 100

betweenPredicate Gt/Rd 99

comparisonPredicate Gt/Rd 98

literal Gt/Rd 91

timestampValue Gt/Rd 55

timeValue Gt/Rd 54

dateValue Gt/Rd 51

rowValuePredicant Goto 44

parenthesizedBooleanValueExpression Gt/Rd 103

booleanPredicate Gt/Rd 94

predicate Gt/Rd 93

booleanTest Gt/Rd 77

booleanTerm Goto 47

booleanValueExpression Goto 48

State 30

( 23 )

updateStatementSearched->update targetTable set setClause+ . (17)

updateStatementSearched->update targetTable set setClause+ .where searchCondition

setClause+->setClause+ .setClause

updateStatementSearched->update targetTable set setClause+ . (17)

where Shift 49

identifier Shift 31

setClause Gt/Rd 30

';' Reduce 17

State 31

( 23 30 )

setClause->identifier .'=' literal

'=' Shift 50

State 32

( 24 )

tableExpression->fromClause whereClause? .orderByClause?

orderByClause?->. (47)

order Shift 51

orderByClause? Gt/Rd 33

orderByClause Gt/Rd 46

';' Reduce 47

State 33

( 24 )

whereClause->where .searchCondition

identifier Shift 39

date Shift 40

time Shift 41

timestamp Shift 42

decimal Sh/Rd 58

integer Sh/Rd 56

string Sh/Rd 53

':' Shift 43

'(' Shift 45

not Shift 46

searchCondition Gt/Rd 68

booleanFactor Gt/Rd 61

booleanPrimary Goto 38

inPredicate Gt/Rd 102

nullPredicate Gt/Rd 101

likePredicate Gt/Rd 100

betweenPredicate Gt/Rd 99

comparisonPredicate Gt/Rd 98

literal Gt/Rd 91

timestampValue Gt/Rd 55

timeValue Gt/Rd 54

dateValue Gt/Rd 51

rowValuePredicant Goto 44

parenthesizedBooleanValueExpression Gt/Rd 103

booleanPredicate Gt/Rd 94

predicate Gt/Rd 93

booleanTest Gt/Rd 77

booleanTerm Goto 47

booleanValueExpression Goto 48

State 34

( 25 )

fromClause->from tableReference .('\,' tableReference)*

('\,' tableReference)*->. (66)

('\,' tableReference)* Goto 52

',' Reduce 66

where Reduce 66

order Reduce 66

';' Reduce 66

State 35

( 25 73 )

tableReference->identifier .as? identifier

tableReference->identifier . (65)

as?->. (78)

tableReference->identifier . (65)

as Sh/Rd 79

as? Goto 53

identifier Reduce 78

',' Reduce 65

where Reduce 65

order Reduce 65

';' Reduce 65

State 36

( 26 )

('\,' selectSublist)->',' .selectSublist

identifier Shift 20

selectSublist Gt/Rd 63

State 37

( 28 )

fromConstructor->'(' column .('\,' column)* ')' values '(' literal ('\,' literal)* ')'

('\,' column)*->. (50)

('\,' column)* Goto 54

')' Reduce 50

',' Reduce 50

State 38

( 29 33 45 46 49 70 71 )

booleanTest->booleanPrimary . (86)

booleanTest->booleanPrimary .is truthValue

booleanTest->booleanPrimary .is not truthValue

booleanTest->booleanPrimary . (86)

is Shift 55

and Reduce 86

or Reduce 86

';' Reduce 86

')' Reduce 86

order Reduce 86

State 39

( 29 33 45 46 49 61 63 64 65 66 67 68 70 71 72 78 84 91 96 98 99 )

rowValuePredicant->identifier . (89)

rowValuePredicant->identifier .'.' identifier

rowValuePredicant->identifier . (89)

'.' Shift 56

desc Reduce 89

asc Reduce 89

',' Reduce 89

';' Reduce 89

is Reduce 89

and Reduce 89

or Reduce 89

')' Reduce 89

order Reduce 89

'<>' Reduce 89

'<=' Reduce 89

'>' Reduce 89

'>=' Reduce 89

'=' Reduce 89

'<' Reduce 89

not Reduce 89

between Reduce 89

like Reduce 89

in Reduce 89

State 40

( 29 33 45 46 49 50 61 63 64 65 66 67 68 70 71 72 77 78 84 91 95 96 98 99 102 )

dateValue->date .string

string Sh/Rd 71

State 41

( 29 33 45 46 49 50 61 63 64 65 66 67 68 70 71 72 77 78 84 91 95 96 98 99 102 )

timeValue->time .string

string Sh/Rd 73

State 42

( 29 33 45 46 49 50 61 63 64 65 66 67 68 70 71 72 77 78 84 91 95 96 98 99 102 )

timestampValue->timestamp .string

string Sh/Rd 74

State 43

( 29 33 45 46 49 50 61 63 64 65 66 67 68 70 71 72 77 78 84 91 95 96 98 99 102 )

literal->':' .identifier placeholderType

literal->':' .identifier default literal

identifier Shift 57

State 44

( 29 33 45 46 49 70 71 )

comparisonPredicate->rowValuePredicant .'<>' rowValuePredicant

comparisonPredicate->rowValuePredicant .'<=' rowValuePredicant

comparisonPredicate->rowValuePredicant .'>' rowValuePredicant

comparisonPredicate->rowValuePredicant .'>=' rowValuePredicant

comparisonPredicate->rowValuePredicant .'=' rowValuePredicant

comparisonPredicate->rowValuePredicant .'<' rowValuePredicant

betweenPredicate->rowValuePredicant .not between rowValuePredicant and rowValuePredicant

betweenPredicate->rowValuePredicant .between rowValuePredicant and rowValuePredicant

likePredicate->rowValuePredicant .like string

likePredicate->rowValuePredicant .not like string

likePredicate->rowValuePredicant .like string escape string

likePredicate->rowValuePredicant .not like string escape string

nullPredicate->rowValuePredicant .is not null

nullPredicate->rowValuePredicant .is null

inPredicate->rowValuePredicant .not in inPredicateValue

inPredicate->rowValuePredicant .in inPredicateValue

in Shift 58

is Shift 59

like Shift 60

between Shift 61

not Shift 62

'<' Shift 63

'=' Shift 64

'>=' Shift 65

'>' Shift 66

'<=' Shift 67

'<>' Shift 68

State 45

( 29 33 45 46 49 70 71 )

parenthesizedBooleanValueExpression->'(' .booleanValueExpression ')'

identifier Shift 39

date Shift 40

time Shift 41

timestamp Shift 42

decimal Sh/Rd 58

integer Sh/Rd 56

string Sh/Rd 53

':' Shift 43

'(' Shift 45

not Shift 46

booleanValueExpression Goto 69

booleanTest Gt/Rd 77

booleanPredicate Gt/Rd 94

predicate Gt/Rd 93

parenthesizedBooleanValueExpression Gt/Rd 103

timestampValue Gt/Rd 55

timeValue Gt/Rd 54

dateValue Gt/Rd 51

literal Gt/Rd 91

rowValuePredicant Goto 44

inPredicate Gt/Rd 102

nullPredicate Gt/Rd 101

likePredicate Gt/Rd 100

betweenPredicate Gt/Rd 99

comparisonPredicate Gt/Rd 98

booleanPrimary Goto 38

booleanTerm Goto 47

booleanFactor Gt/Rd 61

State 46

( 29 33 45 49 70 71 )

booleanFactor->not .booleanTest

identifier Shift 39

date Shift 40

time Shift 41

timestamp Shift 42

decimal Sh/Rd 58

integer Sh/Rd 56

string Sh/Rd 53

':' Shift 43

'(' Shift 45

booleanTest Gt/Rd 76

booleanPrimary Goto 38

inPredicate Gt/Rd 102

nullPredicate Gt/Rd 101

likePredicate Gt/Rd 100

betweenPredicate Gt/Rd 99

comparisonPredicate Gt/Rd 98

literal Gt/Rd 91

timestampValue Gt/Rd 55

timeValue Gt/Rd 54

dateValue Gt/Rd 51

rowValuePredicant Goto 44

parenthesizedBooleanValueExpression Gt/Rd 103

booleanPredicate Gt/Rd 94

predicate Gt/Rd 93

State 47

( 29 33 45 49 )

booleanValueExpression->booleanTerm . (36)

booleanTerm->booleanTerm .and booleanFactor

booleanValueExpression->booleanTerm . (36)

and Shift 70

or Reduce 36

';' Reduce 36

')' Reduce 36

order Reduce 36

State 48

( 29 33 49 )

searchCondition->booleanValueExpression . (28)

booleanValueExpression->booleanValueExpression .or booleanTerm

searchCondition->booleanValueExpression . (28)

or Shift 71

';' Reduce 28

order Reduce 28

State 49

( 30 )

updateStatementSearched->update targetTable set setClause+ where .searchCondition

identifier Shift 39

date Shift 40

time Shift 41

timestamp Shift 42

decimal Sh/Rd 58

integer Sh/Rd 56

string Sh/Rd 53

':' Shift 43

'(' Shift 45

not Shift 46

searchCondition Gt/Rd 18

booleanFactor Gt/Rd 61

booleanPrimary Goto 38

inPredicate Gt/Rd 102

nullPredicate Gt/Rd 101

likePredicate Gt/Rd 100

betweenPredicate Gt/Rd 99

comparisonPredicate Gt/Rd 98

literal Gt/Rd 91

timestampValue Gt/Rd 55

timeValue Gt/Rd 54

dateValue Gt/Rd 51

rowValuePredicant Goto 44

parenthesizedBooleanValueExpression Gt/Rd 103

booleanPredicate Gt/Rd 94

predicate Gt/Rd 93

booleanTest Gt/Rd 77

booleanTerm Goto 47

booleanValueExpression Goto 48

State 50

( 31 )

setClause->identifier '=' .literal

decimal Sh/Rd 58

integer Sh/Rd 56

string Sh/Rd 53

':' Shift 43

timestamp Shift 42

time Shift 41

date Shift 40

literal Gt/Rd 37

timestampValue Gt/Rd 55

timeValue Gt/Rd 54

dateValue Gt/Rd 51

State 51

( 32 )

orderByClause->order .by sortSpecification ('\,' sortSpecification)*

by Shift 72

State 52

( 34 )

fromClause->from tableReference ('\,' tableReference)* . (43)

('\,' tableReference)*->('\,' tableReference)* .('\,' tableReference)

fromClause->from tableReference ('\,' tableReference)* . (43)

',' Shift 73

('\,' tableReference) Gt/Rd 67

where Reduce 43

order Reduce 43

';' Reduce 43

State 53

( 35 )

tableReference->identifier as? .identifier

identifier Sh/Rd 64

State 54

( 37 )

fromConstructor->'(' column ('\,' column)* .')' values '(' literal ('\,' literal)* ')'

('\,' column)*->('\,' column)* .('\,' column)

')' Shift 74

',' Shift 75

('\,' column) Gt/Rd 49

State 55

( 38 )

booleanTest->booleanPrimary is .truthValue

booleanTest->booleanPrimary is .not truthValue

not Shift 76

trueL Sh/Rd 97

unknown Sh/Rd 96

falseL Sh/Rd 95

truthValue Gt/Rd 87

State 56

( 39 )

rowValuePredicant->identifier '.' .identifier

identifier Sh/Rd 90

State 57

( 43 )

literal->':' identifier .placeholderType

literal->':' identifier .default literal

placeholderType->. (72)

default Shift 77

placeholderType Gt/Rd 52

')' Reduce 72

',' Reduce 72

desc Reduce 72

asc Reduce 72

';' Reduce 72

is Reduce 72

and Reduce 72

or Reduce 72

order Reduce 72

'<>' Reduce 72

'<=' Reduce 72

'>' Reduce 72

'>=' Reduce 72

'=' Reduce 72

'<' Reduce 72

not Reduce 72

between Reduce 72

like Reduce 72

in Reduce 72

where Reduce 72

identifier Reduce 72

State 58

( 44 )

inPredicate->rowValuePredicant in .inPredicateValue

'(' Shift 78

inPredicateValue Gt/Rd 119

State 59

( 44 )

nullPredicate->rowValuePredicant is .not null

nullPredicate->rowValuePredicant is .null

null Sh/Rd 117

not Shift 79

State 60

( 44 )

likePredicate->rowValuePredicant like .string

likePredicate->rowValuePredicant like .string escape string

string Shift 80

State 61

( 44 )

betweenPredicate->rowValuePredicant between .rowValuePredicant and rowValuePredicant

identifier Shift 39

date Shift 40

time Shift 41

timestamp Shift 42

decimal Sh/Rd 58

integer Sh/Rd 56

string Sh/Rd 53

':' Shift 43

rowValuePredicant Goto 81

literal Gt/Rd 91

timestampValue Gt/Rd 55

timeValue Gt/Rd 54

dateValue Gt/Rd 51

State 62

( 44 )

betweenPredicate->rowValuePredicant not .between rowValuePredicant and rowValuePredicant

likePredicate->rowValuePredicant not .like string

likePredicate->rowValuePredicant not .like string escape string

inPredicate->rowValuePredicant not .in inPredicateValue

in Shift 82

like Shift 83

between Shift 84

State 63

( 44 )

comparisonPredicate->rowValuePredicant '<' .rowValuePredicant

identifier Shift 39

date Shift 40

time Shift 41

timestamp Shift 42

decimal Sh/Rd 58

integer Sh/Rd 56

string Sh/Rd 53

':' Shift 43

rowValuePredicant Gt/Rd 109

literal Gt/Rd 91

timestampValue Gt/Rd 55

timeValue Gt/Rd 54

dateValue Gt/Rd 51

State 64

( 44 )

comparisonPredicate->rowValuePredicant '=' .rowValuePredicant

identifier Shift 39

date Shift 40

time Shift 41

timestamp Shift 42

decimal Sh/Rd 58

integer Sh/Rd 56

string Sh/Rd 53

':' Shift 43

rowValuePredicant Gt/Rd 108

literal Gt/Rd 91

timestampValue Gt/Rd 55

timeValue Gt/Rd 54

dateValue Gt/Rd 51

State 65

( 44 )

comparisonPredicate->rowValuePredicant '>=' .rowValuePredicant

identifier Shift 39

date Shift 40

time Shift 41

timestamp Shift 42

decimal Sh/Rd 58

integer Sh/Rd 56

string Sh/Rd 53

':' Shift 43

rowValuePredicant Gt/Rd 107

literal Gt/Rd 91

timestampValue Gt/Rd 55

timeValue Gt/Rd 54

dateValue Gt/Rd 51

State 66

( 44 )

comparisonPredicate->rowValuePredicant '>' .rowValuePredicant

identifier Shift 39

date Shift 40

time Shift 41

timestamp Shift 42

decimal Sh/Rd 58

integer Sh/Rd 56

string Sh/Rd 53

':' Shift 43

rowValuePredicant Gt/Rd 106

literal Gt/Rd 91

timestampValue Gt/Rd 55

timeValue Gt/Rd 54

dateValue Gt/Rd 51

State 67

( 44 )

comparisonPredicate->rowValuePredicant '<=' .rowValuePredicant

identifier Shift 39

date Shift 40

time Shift 41

timestamp Shift 42

decimal Sh/Rd 58

integer Sh/Rd 56

string Sh/Rd 53

':' Shift 43

rowValuePredicant Gt/Rd 105

literal Gt/Rd 91

timestampValue Gt/Rd 55

timeValue Gt/Rd 54

dateValue Gt/Rd 51

State 68

( 44 )

comparisonPredicate->rowValuePredicant '<>' .rowValuePredicant

identifier Shift 39

date Shift 40

time Shift 41

timestamp Shift 42

decimal Sh/Rd 58

integer Sh/Rd 56

string Sh/Rd 53

':' Shift 43

rowValuePredicant Gt/Rd 104

literal Gt/Rd 91

timestampValue Gt/Rd 55

timeValue Gt/Rd 54

dateValue Gt/Rd 51

State 69

( 45 )

booleanValueExpression->booleanValueExpression .or booleanTerm

parenthesizedBooleanValueExpression->'(' booleanValueExpression .')'

')' Sh/Rd 120

or Shift 71

State 70

( 47 85 )

booleanTerm->booleanTerm and .booleanFactor

identifier Shift 39

date Shift 40

time Shift 41

timestamp Shift 42

decimal Sh/Rd 58

integer Sh/Rd 56

string Sh/Rd 53

':' Shift 43

'(' Shift 45

not Shift 46

booleanFactor Gt/Rd 62

booleanTest Gt/Rd 77

booleanPredicate Gt/Rd 94

predicate Gt/Rd 93

parenthesizedBooleanValueExpression Gt/Rd 103

timestampValue Gt/Rd 55

timeValue Gt/Rd 54

dateValue Gt/Rd 51

literal Gt/Rd 91

rowValuePredicant Goto 44

inPredicate Gt/Rd 102

nullPredicate Gt/Rd 101

likePredicate Gt/Rd 100

betweenPredicate Gt/Rd 99

comparisonPredicate Gt/Rd 98

booleanPrimary Goto 38

State 71

( 48 69 )

booleanValueExpression->booleanValueExpression or .booleanTerm

identifier Shift 39

date Shift 40

time Shift 41

timestamp Shift 42

decimal Sh/Rd 58

integer Sh/Rd 56

string Sh/Rd 53

':' Shift 43

'(' Shift 45

not Shift 46

booleanTerm Goto 85

booleanFactor Gt/Rd 61

booleanPrimary Goto 38

inPredicate Gt/Rd 102

nullPredicate Gt/Rd 101

likePredicate Gt/Rd 100

betweenPredicate Gt/Rd 99

comparisonPredicate Gt/Rd 98

literal Gt/Rd 91

timestampValue Gt/Rd 55

timeValue Gt/Rd 54

dateValue Gt/Rd 51

rowValuePredicant Goto 44

parenthesizedBooleanValueExpression Gt/Rd 103

booleanPredicate Gt/Rd 94

predicate Gt/Rd 93

booleanTest Gt/Rd 77

State 72

( 51 )

orderByClause->order by .sortSpecification ('\,' sortSpecification)*

identifier Shift 39

date Shift 40

time Shift 41

timestamp Shift 42

decimal Sh/Rd 58

integer Sh/Rd 56

string Sh/Rd 53

':' Shift 43

sortSpecification Goto 86

rowValuePredicant Goto 87

timestampValue Gt/Rd 55

timeValue Gt/Rd 54

dateValue Gt/Rd 51

literal Gt/Rd 91

State 73

( 52 )

('\,' tableReference)->',' .tableReference

identifier Shift 35

tableReference Gt/Rd 80

State 74

( 54 )

fromConstructor->'(' column ('\,' column)* ')' .values '(' literal ('\,' literal)* ')'

values Shift 88

State 75

( 54 )

('\,' column)->',' .column

identifier Sh/Rd 48

column Gt/Rd 70

State 76

( 55 )

booleanTest->booleanPrimary is not .truthValue

trueL Sh/Rd 97

unknown Sh/Rd 96

falseL Sh/Rd 95

truthValue Gt/Rd 88

State 77

( 57 )

literal->':' identifier default .literal

decimal Sh/Rd 58

integer Sh/Rd 56

string Sh/Rd 53

':' Shift 43

timestamp Shift 42

time Shift 41

date Shift 40

literal Gt/Rd 57

timestampValue Gt/Rd 55

timeValue Gt/Rd 54

dateValue Gt/Rd 51

State 78

( 58 82 )

inPredicateValue->'(' .inValueList ')'

identifier Shift 39

date Shift 40

time Shift 41

timestamp Shift 42

decimal Sh/Rd 58

integer Sh/Rd 56

string Sh/Rd 53

':' Shift 43

inValueList Goto 89

rowValuePredicant Gt/Rd 122

timestampValue Gt/Rd 55

timeValue Gt/Rd 54

dateValue Gt/Rd 51

literal Gt/Rd 91

State 79

( 59 )

nullPredicate->rowValuePredicant is not .null

null Sh/Rd 116

State 80

( 60 )

likePredicate->rowValuePredicant like string . (112)

likePredicate->rowValuePredicant like string .escape string

likePredicate->rowValuePredicant like string . (112)

escape Shift 90

is Reduce 112

and Reduce 112

or Reduce 112

';' Reduce 112

')' Reduce 112

order Reduce 112

State 81

( 61 )

betweenPredicate->rowValuePredicant between rowValuePredicant .and rowValuePredicant

and Shift 91

State 82

( 62 )

inPredicate->rowValuePredicant not in .inPredicateValue

'(' Shift 78

inPredicateValue Gt/Rd 118

State 83

( 62 )

likePredicate->rowValuePredicant not like .string

likePredicate->rowValuePredicant not like .string escape string

string Shift 92

State 84

( 62 )

betweenPredicate->rowValuePredicant not between .rowValuePredicant and rowValuePredicant

identifier Shift 39

date Shift 40

time Shift 41

timestamp Shift 42

decimal Sh/Rd 58

integer Sh/Rd 56

string Sh/Rd 53

':' Shift 43

rowValuePredicant Goto 93

literal Gt/Rd 91

timestampValue Gt/Rd 55

timeValue Gt/Rd 54

dateValue Gt/Rd 51

State 85

( 71 )

booleanValueExpression->booleanValueExpression or booleanTerm . (35)

booleanTerm->booleanTerm .and booleanFactor

booleanValueExpression->booleanValueExpression or booleanTerm . (35)

and Shift 70

or Reduce 35

';' Reduce 35

')' Reduce 35

order Reduce 35

State 86

( 72 )

orderByClause->order by sortSpecification .('\,' sortSpecification)*

('\,' sortSpecification)*->. (84)

('\,' sortSpecification)* Goto 94

',' Reduce 84

';' Reduce 84

State 87

( 72 99 )

sortSpecification->rowValuePredicant .desc

sortSpecification->rowValuePredicant . (82)

sortSpecification->rowValuePredicant .asc

sortSpecification->rowValuePredicant . (82)

asc Sh/Rd 83

desc Sh/Rd 81

',' Reduce 82

';' Reduce 82

State 88

( 74 )

fromConstructor->'(' column ('\,' column)* ')' values .'(' literal ('\,' literal)* ')'

'(' Shift 95

State 89

( 78 )

inPredicateValue->'(' inValueList .')'

inValueList->inValueList .',' rowValuePredicant

',' Shift 96

')' Sh/Rd 121

State 90

( 80 )

likePredicate->rowValuePredicant like string escape .string

string Sh/Rd 114

State 91

( 81 )

betweenPredicate->rowValuePredicant between rowValuePredicant and .rowValuePredicant

identifier Shift 39

date Shift 40

time Shift 41

timestamp Shift 42

decimal Sh/Rd 58

integer Sh/Rd 56

string Sh/Rd 53

':' Shift 43

rowValuePredicant Gt/Rd 111

literal Gt/Rd 91

timestampValue Gt/Rd 55

timeValue Gt/Rd 54

dateValue Gt/Rd 51

State 92

( 83 )

likePredicate->rowValuePredicant not like string . (113)

likePredicate->rowValuePredicant not like string .escape string

likePredicate->rowValuePredicant not like string . (113)

escape Shift 97

is Reduce 113

and Reduce 113

or Reduce 113

';' Reduce 113

')' Reduce 113

order Reduce 113

State 93

( 84 )

betweenPredicate->rowValuePredicant not between rowValuePredicant .and rowValuePredicant

and Shift 98

State 94

( 86 )

orderByClause->order by sortSpecification ('\,' sortSpecification)* . (69)

('\,' sortSpecification)*->('\,' sortSpecification)* .('\,' sortSpecification)

orderByClause->order by sortSpecification ('\,' sortSpecification)* . (69)

',' Shift 99

('\,' sortSpecification) Gt/Rd 85

';' Reduce 69

State 95

( 88 )

fromConstructor->'(' column ('\,' column)* ')' values '(' .literal ('\,' literal)* ')'

decimal Sh/Rd 58

integer Sh/Rd 56

string Sh/Rd 53

':' Shift 43

timestamp Shift 42

time Shift 41

date Shift 40

literal Goto 100

timestampValue Gt/Rd 55

timeValue Gt/Rd 54

dateValue Gt/Rd 51

State 96

( 89 )

inValueList->inValueList ',' .rowValuePredicant

identifier Shift 39

date Shift 40

time Shift 41

timestamp Shift 42

decimal Sh/Rd 58

integer Sh/Rd 56

string Sh/Rd 53

':' Shift 43

rowValuePredicant Gt/Rd 123

literal Gt/Rd 91

timestampValue Gt/Rd 55

timeValue Gt/Rd 54

dateValue Gt/Rd 51

State 97

( 92 )

likePredicate->rowValuePredicant not like string escape .string

string Sh/Rd 115

State 98

( 93 )

betweenPredicate->rowValuePredicant not between rowValuePredicant and .rowValuePredicant

identifier Shift 39

date Shift 40

time Shift 41

timestamp Shift 42

decimal Sh/Rd 58

integer Sh/Rd 56

string Sh/Rd 53

':' Shift 43

rowValuePredicant Gt/Rd 110

literal Gt/Rd 91

timestampValue Gt/Rd 55

timeValue Gt/Rd 54

dateValue Gt/Rd 51

State 99

( 94 )

('\,' sortSpecification)->',' .sortSpecification

identifier Shift 39

date Shift 40

time Shift 41

timestamp Shift 42

decimal Sh/Rd 58

integer Sh/Rd 56

string Sh/Rd 53

':' Shift 43

sortSpecification Gt/Rd 92

rowValuePredicant Goto 87

timestampValue Gt/Rd 55

timeValue Gt/Rd 54

dateValue Gt/Rd 51

literal Gt/Rd 91

State 100

( 95 )

fromConstructor->'(' column ('\,' column)* ')' values '(' literal .('\,' literal)* ')'

('\,' literal)*->. (60)

('\,' literal)* Goto 101

')' Reduce 60

',' Reduce 60

State 101

( 100 )

fromConstructor->'(' column ('\,' column)* ')' values '(' literal ('\,' literal)* .')'

('\,' literal)*->('\,' literal)* .('\,' literal)

')' Sh/Rd 34

',' Shift 102

('\,' literal) Gt/Rd 59

State 102

( 101 )

('\,' literal)->',' .literal

decimal Sh/Rd 58

integer Sh/Rd 56

string Sh/Rd 53

':' Shift 43

timestamp Shift 42

time Shift 41

date Shift 40

literal Gt/Rd 75

timestampValue Gt/Rd 55

timeValue Gt/Rd 54

dateValue Gt/Rd 51