Column-oriented GPU-accelerated Database Management System
CoGaDB
SQL Grammar
src/sql/server/sql_parser.ypp - GNU Bison XML Automaton Report

GNU Bison XML Automaton Report

input grammar: src/sql/server/sql_parser.ypp

Table of Contents

Reductions

Nonterminals useless in grammar

Terminals unused in grammar

Rules useless in grammar

Conflicts

State 333 conflicts: 1 shift/reduce State 371 conflicts: 2 shift/reduce, 1 reduce/reduce State 372 conflicts: 3 shift/reduce, 1 reduce/reduce

Grammar

0 $accept → sql_list "end of file" 1 sql_list → sql ';' 2 | sql_list sql ';' 3 sql → schema 4 schema → CREATE SCHEMA AUTHORIZATION user opt_schema_element_list 5 opt_schema_element_list → ε 6 | schema_element_list 7 schema_element_list → schema_element 8 | schema_element_list schema_element 9 schema_element → base_table_def 10 | view_def 11 | privilege_def 12 base_table_def → CREATE TABLE table '(' base_table_element_commalist ')' 13 base_table_element_commalist → base_table_element 14 | base_table_element_commalist ',' base_table_element 15 base_table_element → column_def 16 | table_constraint_def 17 column_def → column data_type column_def_opt_list 18 column_def_opt_list → ε 19 | column_def_opt_list column_def_opt 20 column_def_opt → NOT NULLX 21 | NOT NULLX UNIQUE 22 | NOT NULLX PRIMARY KEY 23 | DEFAULT literal 24 | DEFAULT NULLX 25 | DEFAULT USER 26 | CHECK '(' search_condition ')' 27 | REFERENCES table 28 | REFERENCES table '(' column_commalist ')' 29 table_constraint_def → UNIQUE '(' column_commalist ')' 30 | PRIMARY KEY '(' column_commalist ')' 31 | FOREIGN KEY '(' column_commalist ')' REFERENCES table 32 | FOREIGN KEY '(' column_commalist ')' REFERENCES table '(' column_commalist ')' 33 | CHECK '(' search_condition ')' 34 column_commalist → column 35 | column_commalist ',' column 36 view_def → CREATE VIEW table opt_column_commalist AS query_spec opt_with_check_option 37 opt_with_check_option → ε 38 | WITH CHECK OPTION 39 opt_column_commalist → ε 40 | '(' column_commalist ')' 41 privilege_def → GRANT privileges ON table TO grantee_commalist opt_with_grant_option 42 opt_with_grant_option → ε 43 | WITH GRANT OPTION 44 privileges → ALL PRIVILEGES 45 | ALL 46 | operation_commalist 47 operation_commalist → operation 48 | operation_commalist ',' operation 49 operation → SELECT 50 | INSERT 51 | DELETE 52 | UPDATE opt_column_commalist 53 | REFERENCES opt_column_commalist 54 grantee_commalist → grantee 55 | grantee_commalist ',' grantee 56 grantee → PUBLIC 57 | user 58 sql → module_def 59 module_def → MODULE opt_module LANGUAGE lang AUTHORIZATION user opt_cursor_def_list procedure_def_list 60 opt_module → ε 61 | module 62 lang → COBOL 63 | FORTRAN 64 | PASCAL 65 | PLI 66 | C 67 | ADA 68 opt_cursor_def_list → ε 69 | cursor_def_list 70 cursor_def_list → cursor_def 71 | cursor_def_list cursor_def 72 cursor_def → DECLARE cursor CURSOR FOR query_exp opt_order_by_clause 73 opt_order_by_clause → ε 74 | ORDER BY ordering_spec_commalist 75 ordering_spec_commalist → ordering_spec 76 | ordering_spec_commalist ',' ordering_spec 77 ordering_spec → INTNUM opt_asc_desc 78 | column_ref opt_asc_desc 79 opt_asc_desc → ε 80 | ASC 81 | DESC 82 procedure_def_list → procedure_def 83 | procedure_def_list procedure_def 84 procedure_def → PROCEDURE procedure parameter_def_list ';' manipulative_statement_list 85 manipulative_statement_list → manipulative_statement 86 | manipulative_statement_list manipulative_statement 87 parameter_def_list → parameter_def 88 | parameter_def_list parameter_def 89 parameter_def → parameter data_type 90 | SQLCODE 91 sql → manipulative_statement 92 manipulative_statement → close_statement 93 | commit_statement 94 | delete_statement_positioned 95 | delete_statement_searched 96 | fetch_statement 97 | insert_statement 98 | open_statement 99 | rollback_statement 100 | select_statement 101 | query_statement 102 | update_statement_positioned 103 | update_statement_searched 104 | create_statement 105 close_statement → CLOSE cursor 106 commit_statement → COMMIT WORK 107 delete_statement_positioned → DELETE FROM table WHERE CURRENT OF cursor 108 delete_statement_searched → DELETE FROM table opt_where_clause 109 fetch_statement → FETCH cursor INTO target_commalist 110 insert_statement → INSERT INTO table opt_column_commalist values_or_query_spec 111 values_or_query_spec → VALUES '(' insert_atom_commalist ')' 112 | query_spec 113 insert_atom_commalist → insert_atom 114 | insert_atom_commalist ',' insert_atom 115 insert_atom → atom 116 | NULLX 117 open_statement → OPEN cursor 118 rollback_statement → ROLLBACK WORK 119 select_statement → SELECT opt_all_distinct selection INTO target_commalist table_exp 120 query_statement → query_exp 121 create_statement → base_table_def 122 opt_all_distinct → ε 123 | ALL 124 | DISTINCT 125 update_statement_positioned → UPDATE table SET assignment_commalist WHERE CURRENT OF cursor 126 assignment_commalist → ε 127 | assignment 128 | assignment_commalist ',' assignment 129 assignment → column '=' scalar_exp 130 | column '=' NULLX 131 update_statement_searched → UPDATE table SET assignment_commalist opt_where_clause 132 target_commalist → target 133 | target_commalist ',' target 134 target → parameter_ref 135 opt_where_clause → ε 136 | where_clause 137 query_exp → query_term 138 | query_exp UNION query_term 139 | query_exp UNION ALL query_term 140 query_term → query_spec 141 | '(' query_exp ')' 142 query_spec → SELECT opt_all_distinct selection table_exp 143 selection → scalar_exp_commalist 144 | '*' 145 table_exp → from_clause opt_where_clause opt_group_by_clause opt_having_clause opt_order_by_clause 146 from_clause → FROM table_ref_commalist 147 table_ref_commalist → table_ref 148 | table_ref_commalist ',' table_ref 149 table_ref → table 150 | table range_variable 151 | joined_table 152 joined_table → cross_join 153 | qualified_join 154 | '(' joined_table ')' 155 cross_join → table_ref CROSS JOIN table_ref 156 qualified_join → table_ref join_type JOIN table_ref join_spec 157 join_type → ε 158 | INNER 159 join_spec → ε 160 | join_condition 161 join_condition → ON search_condition 162 where_clause → WHERE search_condition 163 opt_group_by_clause → ε 164 | GROUP BY column_ref_commalist 165 column_ref_commalist → column_ref 166 | column_ref_commalist ',' column_ref 167 opt_having_clause → ε 168 | HAVING search_condition 169 search_condition → search_condition OR search_condition 170 | search_condition AND search_condition 171 | NOT search_condition 172 | '(' search_condition ')' 173 | predicate 174 predicate → comparison_predicate 175 | between_predicate 176 | like_predicate 177 | test_for_null 178 | in_predicate 179 | all_or_any_predicate 180 | existence_test 181 comparison_predicate → scalar_exp COMPARISON scalar_exp 182 | scalar_exp COMPARISON subquery 183 between_predicate → scalar_exp NOT BETWEEN scalar_exp AND scalar_exp 184 | scalar_exp BETWEEN scalar_exp AND scalar_exp 185 like_predicate → scalar_exp NOT LIKE atom opt_escape 186 | scalar_exp LIKE atom opt_escape 187 opt_escape → ε 188 | ESCAPE atom 189 test_for_null → column_ref IS NOT NULLX 190 | column_ref IS NULLX 191 in_predicate → scalar_exp NOT IN '(' subquery ')' 192 | scalar_exp IN '(' subquery ')' 193 | scalar_exp NOT IN '(' atom_commalist ')' 194 | scalar_exp IN '(' atom_commalist ')' 195 atom_commalist → atom 196 | atom_commalist ',' atom 197 all_or_any_predicate → scalar_exp COMPARISON any_all_some subquery 198 any_all_some → ANY 199 | ALL 200 | SOME 201 existence_test → EXISTS subquery 202 subquery → '(' SELECT opt_all_distinct selection table_exp ')' 203 scalar_exp → scalar_exp '+' scalar_exp 204 | scalar_exp '-' scalar_exp 205 | scalar_exp '*' scalar_exp 206 | scalar_exp '/' scalar_exp 207 | '+' scalar_exp 208 | '-' scalar_exp 209 | atom 210 | column_ref 211 | function_ref 212 | '(' scalar_exp ')' 213 derived_column → scalar_exp 214 | scalar_exp AS column_ref 215 scalar_exp_commalist → derived_column 216 | scalar_exp_commalist ',' derived_column 217 atom → parameter_ref 218 | literal 219 | USER 220 parameter_ref → parameter 221 | parameter parameter 222 | parameter INDICATOR parameter 223 function_ref → AMMSC '(' '*' ')' 224 | AMMSC '(' DISTINCT column_ref ')' 225 | AMMSC '(' ALL scalar_exp ')' 226 | AMMSC '(' scalar_exp ')' 227 literal → STRING 228 | INTNUM 229 | APPROXNUM 230 table → NAME 231 | NAME '.' NAME 232 column_ref → NAME 233 | NAME '.' NAME 234 | NAME '.' NAME '.' NAME 235 data_type → CHARACTER 236 | CHARACTER '(' INTNUM ')' 237 | VARCHAR 238 | VARCHAR '(' INTNUM ')' 239 | NUMERIC 240 | NUMERIC '(' INTNUM ')' 241 | NUMERIC '(' INTNUM ',' INTNUM ')' 242 | DECIMAL 243 | DECIMAL '(' INTNUM ')' 244 | DECIMAL '(' INTNUM ',' INTNUM ')' 245 | INTEGER 246 | SMALLINT 247 | FLOAT 248 | FLOAT '(' INTNUM ')' 249 | REAL 250 | DOUBLE PRECISION 251 column → NAME 252 cursor → NAME 253 module → NAME 254 parameter → ':' NAME 255 procedure → NAME 256 range_variable → NAME 257 user → NAME 258 sql → WHENEVER NOT FOUND when_action 259 | WHENEVER SQLERROR when_action 260 when_action → GOTO NAME 261 | CONTINUE

Terminals, with rules where they appear

"end of file" (0) 0 '(' (40) 12 26 28 29 30 31 32 33 40 111 141 154 172 191 192 193 194 202 212 223 224 225 226 236 238 240 241 243 244 248 ')' (41) 12 26 28 29 30 31 32 33 40 111 141 154 172 191 192 193 194 202 212 223 224 225 226 236 238 240 241 243 244 248 '*' (42) 144 205 223 '+' (43) 203 207 ',' (44) 14 35 48 55 76 114 128 133 148 166 196 216 241 244 '-' (45) 204 208 '.' (46) 231 233 234 '/' (47) 206 ':' (58) 254 ';' (59) 1 2 84 '=' (61) 129 130 error (256) NAME (258) 230 231 232 233 234 251 252 253 254 255 256 257 260 STRING (259) 227 INTNUM (260) 77 228 236 238 240 241 243 244 248 APPROXNUM (261) 229 AMMSC (262) 223 224 225 226 OR (263) 169 AND (264) 170 183 184 NOT (265) 20 21 22 171 183 185 189 191 193 258 COMPARISON (266) 181 182 197 UMINUS (267) ALL (268) 44 45 123 139 199 225 ANY (269) 198 AS (270) 36 214 ASC (271) 80 AUTHORIZATION (272) 4 59 BETWEEN (273) 183 184 BY (274) 74 164 CHARACTER (275) 235 236 CHECK (276) 26 33 38 CLOSE (277) 105 COMMIT (278) 106 CONTINUE (279) 261 CREATE (280) 4 12 36 CROSS (281) 155 CURRENT (282) 107 125 CURSOR (283) 72 DECIMAL (284) 242 243 244 DECLARE (285) 72 DEFAULT (286) 23 24 25 DELETE (287) 51 107 108 DESC (288) 81 DISTINCT (289) 124 224 DOUBLE (290) 250 ESCAPE (291) 188 EXISTS (292) 201 FETCH (293) 109 FLOAT (294) 247 248 FOR (295) 72 FOREIGN (296) 31 32 FOUND (297) 258 FROM (298) 107 108 146 GOTO (299) 260 GRANT (300) 41 43 GROUP (301) 164 HAVING (302) 168 IN (303) 191 192 193 194 INDICATOR (304) 222 INNER (305) 158 INSERT (306) 50 110 INTEGER (307) 245 INTO (308) 109 110 119 IS (309) 189 190 JOIN (310) 155 156 KEY (311) 22 30 31 32 LANGUAGE (312) 59 LIKE (313) 185 186 MODULE (314) 59 NULLX (315) 20 21 22 24 116 130 189 190 NUMERIC (316) 239 240 241 OF (317) 107 125 ON (318) 41 161 OPEN (319) 117 OPTION (320) 38 43 ORDER (321) 74 PRECISION (322) 250 PRIMARY (323) 22 30 PRIVILEGES (324) 44 PROCEDURE (325) 84 PUBLIC (326) 56 REAL (327) 249 REFERENCES (328) 27 28 31 32 53 ROLLBACK (329) 118 SCHEMA (330) 4 SELECT (331) 49 119 142 202 SET (332) 125 131 SMALLINT (333) 246 SOME (334) 200 SQLCODE (335) 90 SQLERROR (336) 259 TABLE (337) 12 TO (338) 41 UNION (339) 138 139 UNIQUE (340) 21 29 UPDATE (341) 52 125 131 USER (342) 25 219 VALUES (343) 111 VARCHAR (344) 237 238 VIEW (345) 36 WHENEVER (346) 258 259 WHERE (347) 107 125 162 WITH (348) 38 43 WORK (349) 106 118 COBOL (350) 62 FORTRAN (351) 63 PASCAL (352) 64 PLI (353) 65 C (354) 66 ADA (355) 67

Nonterminals, with rules where they appear

$accept (112) on left: 0 sql_list (113) on left: 1 2 on right: 0 2 sql (114) on left: 3 58 91 258 259 on right: 1 2 schema (115) on left: 4 on right: 3 opt_schema_element_list (116) on left: 5 6 on right: 4 schema_element_list (117) on left: 7 8 on right: 6 8 schema_element (118) on left: 9 10 11 on right: 7 8 base_table_def (119) on left: 12 on right: 9 121 base_table_element_commalist (120) on left: 13 14 on right: 12 14 base_table_element (121) on left: 15 16 on right: 13 14 column_def (122) on left: 17 on right: 15 column_def_opt_list (123) on left: 18 19 on right: 17 19 column_def_opt (124) on left: 20 21 22 23 24 25 26 27 28 on right: 19 table_constraint_def (125) on left: 29 30 31 32 33 on right: 16 column_commalist (126) on left: 34 35 on right: 28 29 30 31 32 35 40 view_def (127) on left: 36 on right: 10 opt_with_check_option (128) on left: 37 38 on right: 36 opt_column_commalist (129) on left: 39 40 on right: 36 52 53 110 privilege_def (130) on left: 41 on right: 11 opt_with_grant_option (131) on left: 42 43 on right: 41 privileges (132) on left: 44 45 46 on right: 41 operation_commalist (133) on left: 47 48 on right: 46 48 operation (134) on left: 49 50 51 52 53 on right: 47 48 grantee_commalist (135) on left: 54 55 on right: 41 55 grantee (136) on left: 56 57 on right: 54 55 module_def (137) on left: 59 on right: 58 opt_module (138) on left: 60 61 on right: 59 lang (139) on left: 62 63 64 65 66 67 on right: 59 opt_cursor_def_list (140) on left: 68 69 on right: 59 cursor_def_list (141) on left: 70 71 on right: 69 71 cursor_def (142) on left: 72 on right: 70 71 opt_order_by_clause (143) on left: 73 74 on right: 72 145 ordering_spec_commalist (144) on left: 75 76 on right: 74 76 ordering_spec (145) on left: 77 78 on right: 75 76 opt_asc_desc (146) on left: 79 80 81 on right: 77 78 procedure_def_list (147) on left: 82 83 on right: 59 83 procedure_def (148) on left: 84 on right: 82 83 manipulative_statement_list (149) on left: 85 86 on right: 84 86 parameter_def_list (150) on left: 87 88 on right: 84 88 parameter_def (151) on left: 89 90 on right: 87 88 manipulative_statement (152) on left: 92 93 94 95 96 97 98 99 100 101 102 103 104 on right: 85 86 91 close_statement (153) on left: 105 on right: 92 commit_statement (154) on left: 106 on right: 93 delete_statement_positioned (155) on left: 107 on right: 94 delete_statement_searched (156) on left: 108 on right: 95 fetch_statement (157) on left: 109 on right: 96 insert_statement (158) on left: 110 on right: 97 values_or_query_spec (159) on left: 111 112 on right: 110 insert_atom_commalist (160) on left: 113 114 on right: 111 114 insert_atom (161) on left: 115 116 on right: 113 114 open_statement (162) on left: 117 on right: 98 rollback_statement (163) on left: 118 on right: 99 select_statement (164) on left: 119 on right: 100 query_statement (165) on left: 120 on right: 101 create_statement (166) on left: 121 on right: 104 opt_all_distinct (167) on left: 122 123 124 on right: 119 142 202 update_statement_positioned (168) on left: 125 on right: 102 assignment_commalist (169) on left: 126 127 128 on right: 125 128 131 assignment (170) on left: 129 130 on right: 127 128 update_statement_searched (171) on left: 131 on right: 103 target_commalist (172) on left: 132 133 on right: 109 119 133 target (173) on left: 134 on right: 132 133 opt_where_clause (174) on left: 135 136 on right: 108 131 145 query_exp (175) on left: 137 138 139 on right: 72 120 138 139 141 query_term (176) on left: 140 141 on right: 137 138 139 query_spec (177) on left: 142 on right: 36 112 140 selection (178) on left: 143 144 on right: 119 142 202 table_exp (179) on left: 145 on right: 119 142 202 from_clause (180) on left: 146 on right: 145 table_ref_commalist (181) on left: 147 148 on right: 146 148 table_ref (182) on left: 149 150 151 on right: 147 148 155 156 joined_table (183) on left: 152 153 154 on right: 151 154 cross_join (184) on left: 155 on right: 152 qualified_join (185) on left: 156 on right: 153 join_type (186) on left: 157 158 on right: 156 join_spec (187) on left: 159 160 on right: 156 join_condition (188) on left: 161 on right: 160 where_clause (189) on left: 162 on right: 136 opt_group_by_clause (190) on left: 163 164 on right: 145 column_ref_commalist (191) on left: 165 166 on right: 164 166 opt_having_clause (192) on left: 167 168 on right: 145 search_condition (193) on left: 169 170 171 172 173 on right: 26 33 161 162 168 169 170 171 172 predicate (194) on left: 174 175 176 177 178 179 180 on right: 173 comparison_predicate (195) on left: 181 182 on right: 174 between_predicate (196) on left: 183 184 on right: 175 like_predicate (197) on left: 185 186 on right: 176 opt_escape (198) on left: 187 188 on right: 185 186 test_for_null (199) on left: 189 190 on right: 177 in_predicate (200) on left: 191 192 193 194 on right: 178 atom_commalist (201) on left: 195 196 on right: 193 194 196 all_or_any_predicate (202) on left: 197 on right: 179 any_all_some (203) on left: 198 199 200 on right: 197 existence_test (204) on left: 201 on right: 180 subquery (205) on left: 202 on right: 182 191 192 197 201 scalar_exp (206) on left: 203 204 205 206 207 208 209 210 211 212 on right: 129 181 182 183 184 185 186 191 192 193 194 197 203 204 205 206 207 208 212 213 214 225 226 derived_column (207) on left: 213 214 on right: 215 216 scalar_exp_commalist (208) on left: 215 216 on right: 143 216 atom (209) on left: 217 218 219 on right: 115 185 186 188 195 196 209 parameter_ref (210) on left: 220 221 222 on right: 134 217 function_ref (211) on left: 223 224 225 226 on right: 211 literal (212) on left: 227 228 229 on right: 23 218 table (213) on left: 230 231 on right: 12 27 28 31 32 36 41 107 108 110 125 131 149 150 column_ref (214) on left: 232 233 234 on right: 78 165 166 189 190 210 214 224 data_type (215) on left: 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 on right: 17 89 column (216) on left: 251 on right: 17 34 35 129 130 cursor (217) on left: 252 on right: 72 105 107 109 117 125 module (218) on left: 253 on right: 61 parameter (219) on left: 254 on right: 89 220 221 222 procedure (220) on left: 255 on right: 84 range_variable (221) on left: 256 on right: 150 user (222) on left: 257 on right: 4 57 59 when_action (223) on left: 260 261 on right: 258 259

Automaton

state 0

0 $accept → . sql_list "end of file" 1 sql_list → . sql ';' 2 | . sql_list sql ';' 3 sql → . schema 4 schema → . CREATE SCHEMA AUTHORIZATION user opt_schema_element_list 12 base_table_def → . CREATE TABLE table '(' base_table_element_commalist ')' 58 sql → . module_def 59 module_def → . MODULE opt_module LANGUAGE lang AUTHORIZATION user opt_cursor_def_list procedure_def_list 91 sql → . manipulative_statement 92 manipulative_statement → . close_statement 93 | . commit_statement 94 | . delete_statement_positioned 95 | . delete_statement_searched 96 | . fetch_statement 97 | . insert_statement 98 | . open_statement 99 | . rollback_statement 100 | . select_statement 101 | . query_statement 102 | . update_statement_positioned 103 | . update_statement_searched 104 | . create_statement 105 close_statement → . CLOSE cursor 106 commit_statement → . COMMIT WORK 107 delete_statement_positioned → . DELETE FROM table WHERE CURRENT OF cursor 108 delete_statement_searched → . DELETE FROM table opt_where_clause 109 fetch_statement → . FETCH cursor INTO target_commalist 110 insert_statement → . INSERT INTO table opt_column_commalist values_or_query_spec 117 open_statement → . OPEN cursor 118 rollback_statement → . ROLLBACK WORK 119 select_statement → . SELECT opt_all_distinct selection INTO target_commalist table_exp 120 query_statement → . query_exp 121 create_statement → . base_table_def 125 update_statement_positioned → . UPDATE table SET assignment_commalist WHERE CURRENT OF cursor 131 update_statement_searched → . UPDATE table SET assignment_commalist opt_where_clause 137 query_exp → . query_term 138 | . query_exp UNION query_term 139 | . query_exp UNION ALL query_term 140 query_term → . query_spec 141 | . '(' query_exp ')' 142 query_spec → . SELECT opt_all_distinct selection table_exp 258 sql → . WHENEVER NOT FOUND when_action 259 | . WHENEVER SQLERROR when_action CLOSE shift, and go to state 1 COMMIT shift, and go to state 2 CREATE shift, and go to state 3 DELETE shift, and go to state 4 FETCH shift, and go to state 5 INSERT shift, and go to state 6 MODULE shift, and go to state 7 OPEN shift, and go to state 8 ROLLBACK shift, and go to state 9 SELECT shift, and go to state 10 UPDATE shift, and go to state 11 WHENEVER shift, and go to state 12 '(' shift, and go to state 13 sql_list go to state 14 sql go to state 15 schema go to state 16 base_table_def go to state 17 module_def go to state 18 manipulative_statement go to state 19 close_statement go to state 20 commit_statement go to state 21 delete_statement_positioned go to state 22 delete_statement_searched go to state 23 fetch_statement go to state 24 insert_statement go to state 25 open_statement go to state 26 rollback_statement go to state 27 select_statement go to state 28 query_statement go to state 29 create_statement go to state 30 update_statement_positioned go to state 31 update_statement_searched go to state 32 query_exp go to state 33 query_term go to state 34 query_spec go to state 35

state 1

105 close_statement → CLOSE . cursor 252 cursor → . NAME NAME shift, and go to state 36 cursor go to state 37

state 2

106 commit_statement → COMMIT . WORK WORK shift, and go to state 38

state 3

4 schema → CREATE . SCHEMA AUTHORIZATION user opt_schema_element_list 12 base_table_def → CREATE . TABLE table '(' base_table_element_commalist ')' SCHEMA shift, and go to state 39 TABLE shift, and go to state 40

state 4

107 delete_statement_positioned → DELETE . FROM table WHERE CURRENT OF cursor 108 delete_statement_searched → DELETE . FROM table opt_where_clause FROM shift, and go to state 41

state 5

109 fetch_statement → FETCH . cursor INTO target_commalist 252 cursor → . NAME NAME shift, and go to state 36 cursor go to state 42

state 6

110 insert_statement → INSERT . INTO table opt_column_commalist values_or_query_spec INTO shift, and go to state 43

state 7

59 module_def → MODULE . opt_module LANGUAGE lang AUTHORIZATION user opt_cursor_def_list procedure_def_list 60 opt_module → . [LANGUAGE] 61 | . module 253 module → . NAME NAME shift, and go to state 44 $default reduce using rule 60 (opt_module) opt_module go to state 45 module go to state 46

state 8

117 open_statement → OPEN . cursor 252 cursor → . NAME NAME shift, and go to state 36 cursor go to state 47

state 9

118 rollback_statement → ROLLBACK . WORK WORK shift, and go to state 48

state 10

119 select_statement → SELECT . opt_all_distinct selection INTO target_commalist table_exp 122 opt_all_distinct → . [NAME, STRING, INTNUM, APPROXNUM, AMMSC, '+', '-', '*', USER, '(', ':'] 123 | . ALL 124 | . DISTINCT 142 query_spec → SELECT . opt_all_distinct selection table_exp ALL shift, and go to state 49 DISTINCT shift, and go to state 50 $default reduce using rule 122 (opt_all_distinct) opt_all_distinct go to state 51

state 11

125 update_statement_positioned → UPDATE . table SET assignment_commalist WHERE CURRENT OF cursor 131 update_statement_searched → UPDATE . table SET assignment_commalist opt_where_clause 230 table → . NAME 231 | . NAME '.' NAME NAME shift, and go to state 52 table go to state 53

state 12

258 sql → WHENEVER . NOT FOUND when_action 259 | WHENEVER . SQLERROR when_action NOT shift, and go to state 54 SQLERROR shift, and go to state 55

state 13

137 query_exp → . query_term 138 | . query_exp UNION query_term 139 | . query_exp UNION ALL query_term 140 query_term → . query_spec 141 | . '(' query_exp ')' 141 | '(' . query_exp ')' 142 query_spec → . SELECT opt_all_distinct selection table_exp SELECT shift, and go to state 56 '(' shift, and go to state 13 query_exp go to state 57 query_term go to state 34 query_spec go to state 35

state 14

0 $accept → sql_list . "end of file" 2 sql_list → sql_list . sql ';' 3 sql → . schema 4 schema → . CREATE SCHEMA AUTHORIZATION user opt_schema_element_list 12 base_table_def → . CREATE TABLE table '(' base_table_element_commalist ')' 58 sql → . module_def 59 module_def → . MODULE opt_module LANGUAGE lang AUTHORIZATION user opt_cursor_def_list procedure_def_list 91 sql → . manipulative_statement 92 manipulative_statement → . close_statement 93 | . commit_statement 94 | . delete_statement_positioned 95 | . delete_statement_searched 96 | . fetch_statement 97 | . insert_statement 98 | . open_statement 99 | . rollback_statement 100 | . select_statement 101 | . query_statement 102 | . update_statement_positioned 103 | . update_statement_searched 104 | . create_statement 105 close_statement → . CLOSE cursor 106 commit_statement → . COMMIT WORK 107 delete_statement_positioned → . DELETE FROM table WHERE CURRENT OF cursor 108 delete_statement_searched → . DELETE FROM table opt_where_clause 109 fetch_statement → . FETCH cursor INTO target_commalist 110 insert_statement → . INSERT INTO table opt_column_commalist values_or_query_spec 117 open_statement → . OPEN cursor 118 rollback_statement → . ROLLBACK WORK 119 select_statement → . SELECT opt_all_distinct selection INTO target_commalist table_exp 120 query_statement → . query_exp 121 create_statement → . base_table_def 125 update_statement_positioned → . UPDATE table SET assignment_commalist WHERE CURRENT OF cursor 131 update_statement_searched → . UPDATE table SET assignment_commalist opt_where_clause 137 query_exp → . query_term 138 | . query_exp UNION query_term 139 | . query_exp UNION ALL query_term 140 query_term → . query_spec 141 | . '(' query_exp ')' 142 query_spec → . SELECT opt_all_distinct selection table_exp 258 sql → . WHENEVER NOT FOUND when_action 259 | . WHENEVER SQLERROR when_action "end of file" shift, and go to state 58 CLOSE shift, and go to state 1 COMMIT shift, and go to state 2 CREATE shift, and go to state 3 DELETE shift, and go to state 4 FETCH shift, and go to state 5 INSERT shift, and go to state 6 MODULE shift, and go to state 7 OPEN shift, and go to state 8 ROLLBACK shift, and go to state 9 SELECT shift, and go to state 10 UPDATE shift, and go to state 11 WHENEVER shift, and go to state 12 '(' shift, and go to state 13 sql go to state 59 schema go to state 16 base_table_def go to state 17 module_def go to state 18 manipulative_statement go to state 19 close_statement go to state 20 commit_statement go to state 21 delete_statement_positioned go to state 22 delete_statement_searched go to state 23 fetch_statement go to state 24 insert_statement go to state 25 open_statement go to state 26 rollback_statement go to state 27 select_statement go to state 28 query_statement go to state 29 create_statement go to state 30 update_statement_positioned go to state 31 update_statement_searched go to state 32 query_exp go to state 33 query_term go to state 34 query_spec go to state 35

state 15

1 sql_list → sql . ';' ';' shift, and go to state 60

state 16

3 sql → schema . $default reduce using rule 3 (sql)

state 17

121 create_statement → base_table_def . $default reduce using rule 121 (create_statement)

state 18

58 sql → module_def . $default reduce using rule 58 (sql)

state 19

91 sql → manipulative_statement . $default reduce using rule 91 (sql)

state 20

92 manipulative_statement → close_statement . $default reduce using rule 92 (manipulative_statement)

state 21

93 manipulative_statement → commit_statement . $default reduce using rule 93 (manipulative_statement)

state 22

94 manipulative_statement → delete_statement_positioned . $default reduce using rule 94 (manipulative_statement)

state 23

95 manipulative_statement → delete_statement_searched . $default reduce using rule 95 (manipulative_statement)

state 24

96 manipulative_statement → fetch_statement . $default reduce using rule 96 (manipulative_statement)

state 25

97 manipulative_statement → insert_statement . $default reduce using rule 97 (manipulative_statement)

state 26

98 manipulative_statement → open_statement . $default reduce using rule 98 (manipulative_statement)

state 27

99 manipulative_statement → rollback_statement . $default reduce using rule 99 (manipulative_statement)

state 28

100 manipulative_statement → select_statement . $default reduce using rule 100 (manipulative_statement)

state 29

101 manipulative_statement → query_statement . $default reduce using rule 101 (manipulative_statement)

state 30

104 manipulative_statement → create_statement . $default reduce using rule 104 (manipulative_statement)

state 31

102 manipulative_statement → update_statement_positioned . $default reduce using rule 102 (manipulative_statement)

state 32

103 manipulative_statement → update_statement_searched . $default reduce using rule 103 (manipulative_statement)

state 33

120 query_statement → query_exp . [CLOSE, COMMIT, CREATE, DELETE, FETCH, INSERT, OPEN, PROCEDURE, ROLLBACK, SELECT, UPDATE, ';', '('] 138 query_exp → query_exp . UNION query_term 139 | query_exp . UNION ALL query_term UNION shift, and go to state 61 $default reduce using rule 120 (query_statement)

state 34

137 query_exp → query_term . $default reduce using rule 137 (query_exp)

state 35

140 query_term → query_spec . $default reduce using rule 140 (query_term)

state 36

252 cursor → NAME . $default reduce using rule 252 (cursor)

state 37

105 close_statement → CLOSE cursor . $default reduce using rule 105 (close_statement)

state 38

106 commit_statement → COMMIT WORK . $default reduce using rule 106 (commit_statement)

state 39

4 schema → CREATE SCHEMA . AUTHORIZATION user opt_schema_element_list AUTHORIZATION shift, and go to state 62

state 40

12 base_table_def → CREATE TABLE . table '(' base_table_element_commalist ')' 230 table → . NAME 231 | . NAME '.' NAME NAME shift, and go to state 52 table go to state 63

state 41

107 delete_statement_positioned → DELETE FROM . table WHERE CURRENT OF cursor 108 delete_statement_searched → DELETE FROM . table opt_where_clause 230 table → . NAME 231 | . NAME '.' NAME NAME shift, and go to state 52 table go to state 64

state 42

109 fetch_statement → FETCH cursor . INTO target_commalist INTO shift, and go to state 65

state 43

110 insert_statement → INSERT INTO . table opt_column_commalist values_or_query_spec 230 table → . NAME 231 | . NAME '.' NAME NAME shift, and go to state 52 table go to state 66

state 44

253 module → NAME . $default reduce using rule 253 (module)

state 45

59 module_def → MODULE opt_module . LANGUAGE lang AUTHORIZATION user opt_cursor_def_list procedure_def_list LANGUAGE shift, and go to state 67

state 46

61 opt_module → module . $default reduce using rule 61 (opt_module)

state 47

117 open_statement → OPEN cursor . $default reduce using rule 117 (open_statement)

state 48

118 rollback_statement → ROLLBACK WORK . $default reduce using rule 118 (rollback_statement)

state 49

123 opt_all_distinct → ALL . $default reduce using rule 123 (opt_all_distinct)

state 50

124 opt_all_distinct → DISTINCT . $default reduce using rule 124 (opt_all_distinct)

state 51

119 select_statement → SELECT opt_all_distinct . selection INTO target_commalist table_exp 142 query_spec → SELECT opt_all_distinct . selection table_exp 143 selection → . scalar_exp_commalist 144 | . '*' 203 scalar_exp → . scalar_exp '+' scalar_exp 204 | . scalar_exp '-' scalar_exp 205 | . scalar_exp '*' scalar_exp 206 | . scalar_exp '/' scalar_exp 207 | . '+' scalar_exp 208 | . '-' scalar_exp 209 | . atom 210 | . column_ref 211 | . function_ref 212 | . '(' scalar_exp ')' 213 derived_column → . scalar_exp 214 | . scalar_exp AS column_ref 215 scalar_exp_commalist → . derived_column 216 | . scalar_exp_commalist ',' derived_column 217 atom → . parameter_ref 218 | . literal 219 | . USER 220 parameter_ref → . parameter 221 | . parameter parameter 222 | . parameter INDICATOR parameter 223 function_ref → . AMMSC '(' '*' ')' 224 | . AMMSC '(' DISTINCT column_ref ')' 225 | . AMMSC '(' ALL scalar_exp ')' 226 | . AMMSC '(' scalar_exp ')' 227 literal → . STRING 228 | . INTNUM 229 | . APPROXNUM 232 column_ref → . NAME 233 | . NAME '.' NAME 234 | . NAME '.' NAME '.' NAME 254 parameter → . ':' NAME NAME shift, and go to state 68 STRING shift, and go to state 69 INTNUM shift, and go to state 70 APPROXNUM shift, and go to state 71 AMMSC shift, and go to state 72 '+' shift, and go to state 73 '-' shift, and go to state 74 '*' shift, and go to state 75 USER shift, and go to state 76 '(' shift, and go to state 77 ':' shift, and go to state 78 selection go to state 79 scalar_exp go to state 80 derived_column go to state 81 scalar_exp_commalist go to state 82 atom go to state 83 parameter_ref go to state 84 function_ref go to state 85 literal go to state 86 column_ref go to state 87 parameter go to state 88

state 52

230 table → NAME . [NAME, NOT, AS, CHECK, CLOSE, COMMIT, CREATE, CROSS, DECLARE, DEFAULT, DELETE, FETCH, GRANT, GROUP, HAVING, INNER, INSERT, JOIN, ON, OPEN, ORDER, PROCEDURE, REFERENCES, ROLLBACK, SELECT, SET, TO, UNION, UPDATE, VALUES, WHERE, WITH, ';', '(', ')', ','] 231 | NAME . '.' NAME '.' shift, and go to state 89 $default reduce using rule 230 (table)

state 53

125 update_statement_positioned → UPDATE table . SET assignment_commalist WHERE CURRENT OF cursor 131 update_statement_searched → UPDATE table . SET assignment_commalist opt_where_clause SET shift, and go to state 90

state 54

258 sql → WHENEVER NOT . FOUND when_action FOUND shift, and go to state 91

state 55

259 sql → WHENEVER SQLERROR . when_action 260 when_action → . GOTO NAME 261 | . CONTINUE CONTINUE shift, and go to state 92 GOTO shift, and go to state 93 when_action go to state 94

state 56

122 opt_all_distinct → . [NAME, STRING, INTNUM, APPROXNUM, AMMSC, '+', '-', '*', USER, '(', ':'] 123 | . ALL 124 | . DISTINCT 142 query_spec → SELECT . opt_all_distinct selection table_exp ALL shift, and go to state 49 DISTINCT shift, and go to state 50 $default reduce using rule 122 (opt_all_distinct) opt_all_distinct go to state 95

state 57

138 query_exp → query_exp . UNION query_term 139 | query_exp . UNION ALL query_term 141 query_term → '(' query_exp . ')' UNION shift, and go to state 61 ')' shift, and go to state 96

state 58

0 $accept → sql_list "end of file" . $default accept

state 59

2 sql_list → sql_list sql . ';' ';' shift, and go to state 97

state 60

1 sql_list → sql ';' . $default reduce using rule 1 (sql_list)

state 61

138 query_exp → query_exp UNION . query_term 139 | query_exp UNION . ALL query_term 140 query_term → . query_spec 141 | . '(' query_exp ')' 142 query_spec → . SELECT opt_all_distinct selection table_exp ALL shift, and go to state 98 SELECT shift, and go to state 56 '(' shift, and go to state 13 query_term go to state 99 query_spec go to state 35

state 62

4 schema → CREATE SCHEMA AUTHORIZATION . user opt_schema_element_list 257 user → . NAME NAME shift, and go to state 100 user go to state 101

state 63

12 base_table_def → CREATE TABLE table . '(' base_table_element_commalist ')' '(' shift, and go to state 102

state 64

107 delete_statement_positioned → DELETE FROM table . WHERE CURRENT OF cursor 108 delete_statement_searched → DELETE FROM table . opt_where_clause 135 opt_where_clause → . [CLOSE, COMMIT, CREATE, DELETE, FETCH, INSERT, OPEN, PROCEDURE, ROLLBACK, SELECT, UPDATE, ';', '('] 136 | . where_clause 162 where_clause → . WHERE search_condition WHERE shift, and go to state 103 $default reduce using rule 135 (opt_where_clause) opt_where_clause go to state 104 where_clause go to state 105

state 65

109 fetch_statement → FETCH cursor INTO . target_commalist 132 target_commalist → . target 133 | . target_commalist ',' target 134 target → . parameter_ref 220 parameter_ref → . parameter 221 | . parameter parameter 222 | . parameter INDICATOR parameter 254 parameter → . ':' NAME ':' shift, and go to state 78 target_commalist go to state 106 target go to state 107 parameter_ref go to state 108 parameter go to state 88

state 66

39 opt_column_commalist → . [SELECT, VALUES] 40 | . '(' column_commalist ')' 110 insert_statement → INSERT INTO table . opt_column_commalist values_or_query_spec '(' shift, and go to state 109 $default reduce using rule 39 (opt_column_commalist) opt_column_commalist go to state 110

state 67

59 module_def → MODULE opt_module LANGUAGE . lang AUTHORIZATION user opt_cursor_def_list procedure_def_list 62 lang → . COBOL 63 | . FORTRAN 64 | . PASCAL 65 | . PLI 66 | . C 67 | . ADA COBOL shift, and go to state 111 FORTRAN shift, and go to state 112 PASCAL shift, and go to state 113 PLI shift, and go to state 114 C shift, and go to state 115 ADA shift, and go to state 116 lang go to state 117

state 68

232 column_ref → NAME . [OR, AND, NOT, COMPARISON, '+', '-', '*', '/', AS, ASC, BETWEEN, CLOSE, COMMIT, CREATE, CROSS, DECLARE, DELETE, DESC, FETCH, FROM, GRANT, GROUP, HAVING, IN, INNER, INSERT, INTO, IS, JOIN, LIKE, ON, OPEN, ORDER, PROCEDURE, ROLLBACK, SELECT, UNION, UPDATE, WHERE, WITH, ';', '(', ')', ','] 233 | NAME . '.' NAME 234 | NAME . '.' NAME '.' NAME '.' shift, and go to state 118 $default reduce using rule 232 (column_ref)

state 69

227 literal → STRING . $default reduce using rule 227 (literal)

state 70

228 literal → INTNUM . $default reduce using rule 228 (literal)

state 71

229 literal → APPROXNUM . $default reduce using rule 229 (literal)

state 72

223 function_ref → AMMSC . '(' '*' ')' 224 | AMMSC . '(' DISTINCT column_ref ')' 225 | AMMSC . '(' ALL scalar_exp ')' 226 | AMMSC . '(' scalar_exp ')' '(' shift, and go to state 119

state 73

203 scalar_exp → . scalar_exp '+' scalar_exp 204 | . scalar_exp '-' scalar_exp 205 | . scalar_exp '*' scalar_exp 206 | . scalar_exp '/' scalar_exp 207 | . '+' scalar_exp 207 | '+' . scalar_exp 208 | . '-' scalar_exp 209 | . atom 210 | . column_ref 211 | . function_ref 212 | . '(' scalar_exp ')' 217 atom → . parameter_ref 218 | . literal 219 | . USER 220 parameter_ref → . parameter 221 | . parameter parameter 222 | . parameter INDICATOR parameter 223 function_ref → . AMMSC '(' '*' ')' 224 | . AMMSC '(' DISTINCT column_ref ')' 225 | . AMMSC '(' ALL scalar_exp ')' 226 | . AMMSC '(' scalar_exp ')' 227 literal → . STRING 228 | . INTNUM 229 | . APPROXNUM 232 column_ref → . NAME 233 | . NAME '.' NAME 234 | . NAME '.' NAME '.' NAME 254 parameter → . ':' NAME NAME shift, and go to state 68 STRING shift, and go to state 69 INTNUM shift, and go to state 70 APPROXNUM shift, and go to state 71 AMMSC shift, and go to state 72 '+' shift, and go to state 73 '-' shift, and go to state 74 USER shift, and go to state 76 '(' shift, and go to state 77 ':' shift, and go to state 78 scalar_exp go to state 120 atom go to state 83 parameter_ref go to state 84 function_ref go to state 85 literal go to state 86 column_ref go to state 87 parameter go to state 88

state 74

203 scalar_exp → . scalar_exp '+' scalar_exp 204 | . scalar_exp '-' scalar_exp 205 | . scalar_exp '*' scalar_exp 206 | . scalar_exp '/' scalar_exp 207 | . '+' scalar_exp 208 | . '-' scalar_exp 208 | '-' . scalar_exp 209 | . atom 210 | . column_ref 211 | . function_ref 212 | . '(' scalar_exp ')' 217 atom → . parameter_ref 218 | . literal 219 | . USER 220 parameter_ref → . parameter 221 | . parameter parameter 222 | . parameter INDICATOR parameter 223 function_ref → . AMMSC '(' '*' ')' 224 | . AMMSC '(' DISTINCT column_ref ')' 225 | . AMMSC '(' ALL scalar_exp ')' 226 | . AMMSC '(' scalar_exp ')' 227 literal → . STRING 228 | . INTNUM 229 | . APPROXNUM 232 column_ref → . NAME 233 | . NAME '.' NAME 234 | . NAME '.' NAME '.' NAME 254 parameter → . ':' NAME NAME shift, and go to state 68 STRING shift, and go to state 69 INTNUM shift, and go to state 70 APPROXNUM shift, and go to state 71 AMMSC shift, and go to state 72 '+' shift, and go to state 73 '-' shift, and go to state 74 USER shift, and go to state 76 '(' shift, and go to state 77 ':' shift, and go to state 78 scalar_exp go to state 121 atom go to state 83 parameter_ref go to state 84 function_ref go to state 85 literal go to state 86 column_ref go to state 87 parameter go to state 88

state 75

144 selection → '*' . $default reduce using rule 144 (selection)

state 76

219 atom → USER . $default reduce using rule 219 (atom)

state 77

203 scalar_exp → . scalar_exp '+' scalar_exp 204 | . scalar_exp '-' scalar_exp 205 | . scalar_exp '*' scalar_exp 206 | . scalar_exp '/' scalar_exp 207 | . '+' scalar_exp 208 | . '-' scalar_exp 209 | . atom 210 | . column_ref 211 | . function_ref 212 | . '(' scalar_exp ')' 212 | '(' . scalar_exp ')' 217 atom → . parameter_ref 218 | . literal 219 | . USER 220 parameter_ref → . parameter 221 | . parameter parameter 222 | . parameter INDICATOR parameter 223 function_ref → . AMMSC '(' '*' ')' 224 | . AMMSC '(' DISTINCT column_ref ')' 225 | . AMMSC '(' ALL scalar_exp ')' 226 | . AMMSC '(' scalar_exp ')' 227 literal → . STRING 228 | . INTNUM 229 | . APPROXNUM 232 column_ref → . NAME 233 | . NAME '.' NAME 234 | . NAME '.' NAME '.' NAME 254 parameter → . ':' NAME NAME shift, and go to state 68 STRING shift, and go to state 69 INTNUM shift, and go to state 70 APPROXNUM shift, and go to state 71 AMMSC shift, and go to state 72 '+' shift, and go to state 73 '-' shift, and go to state 74 USER shift, and go to state 76 '(' shift, and go to state 77 ':' shift, and go to state 78 scalar_exp go to state 122 atom go to state 83 parameter_ref go to state 84 function_ref go to state 85 literal go to state 86 column_ref go to state 87 parameter go to state 88

state 78

254 parameter → ':' . NAME NAME shift, and go to state 123

state 79

119 select_statement → SELECT opt_all_distinct selection . INTO target_commalist table_exp 142 query_spec → SELECT opt_all_distinct selection . table_exp 145 table_exp → . from_clause opt_where_clause opt_group_by_clause opt_having_clause opt_order_by_clause 146 from_clause → . FROM table_ref_commalist FROM shift, and go to state 124 INTO shift, and go to state 125 table_exp go to state 126 from_clause go to state 127

state 80

203 scalar_exp → scalar_exp . '+' scalar_exp 204 | scalar_exp . '-' scalar_exp 205 | scalar_exp . '*' scalar_exp 206 | scalar_exp . '/' scalar_exp 213 derived_column → scalar_exp . [FROM, INTO, ','] 214 | scalar_exp . AS column_ref '+' shift, and go to state 128 '-' shift, and go to state 129 '*' shift, and go to state 130 '/' shift, and go to state 131 AS shift, and go to state 132 $default reduce using rule 213 (derived_column)

state 81

215 scalar_exp_commalist → derived_column . $default reduce using rule 215 (scalar_exp_commalist)

state 82

143 selection → scalar_exp_commalist . [FROM, INTO] 216 scalar_exp_commalist → scalar_exp_commalist . ',' derived_column ',' shift, and go to state 133 $default reduce using rule 143 (selection)

state 83

209 scalar_exp → atom . $default reduce using rule 209 (scalar_exp)

state 84

217 atom → parameter_ref . $default reduce using rule 217 (atom)

state 85

211 scalar_exp → function_ref . $default reduce using rule 211 (scalar_exp)

state 86

218 atom → literal . $default reduce using rule 218 (atom)

state 87

210 scalar_exp → column_ref . $default reduce using rule 210 (scalar_exp)

state 88

220 parameter_ref → parameter . [OR, AND, NOT, COMPARISON, '+', '-', '*', '/', AS, BETWEEN, CLOSE, COMMIT, CREATE, CROSS, DECLARE, DELETE, ESCAPE, FETCH, FROM, GRANT, GROUP, HAVING, IN, INNER, INSERT, INTO, JOIN, LIKE, ON, OPEN, ORDER, PROCEDURE, ROLLBACK, SELECT, UNION, UPDATE, WHERE, WITH, ';', '(', ')', ','] 221 | parameter . parameter 222 | parameter . INDICATOR parameter 254 parameter → . ':' NAME INDICATOR shift, and go to state 134 ':' shift, and go to state 78 $default reduce using rule 220 (parameter_ref) parameter go to state 135

state 89

231 table → NAME '.' . NAME NAME shift, and go to state 136

state 90

125 update_statement_positioned → UPDATE table SET . assignment_commalist WHERE CURRENT OF cursor 126 assignment_commalist → . [CLOSE, COMMIT, CREATE, DELETE, FETCH, INSERT, OPEN, PROCEDURE, ROLLBACK, SELECT, UPDATE, WHERE, ';', '(', ','] 127 | . assignment 128 | . assignment_commalist ',' assignment 129 assignment → . column '=' scalar_exp 130 | . column '=' NULLX 131 update_statement_searched → UPDATE table SET . assignment_commalist opt_where_clause 251 column → . NAME NAME shift, and go to state 137 $default reduce using rule 126 (assignment_commalist) assignment_commalist go to state 138 assignment go to state 139 column go to state 140

state 91

258 sql → WHENEVER NOT FOUND . when_action 260 when_action → . GOTO NAME 261 | . CONTINUE CONTINUE shift, and go to state 92 GOTO shift, and go to state 93 when_action go to state 141

state 92

261 when_action → CONTINUE . $default reduce using rule 261 (when_action)

state 93

260 when_action → GOTO . NAME NAME shift, and go to state 142

state 94

259 sql → WHENEVER SQLERROR when_action . $default reduce using rule 259 (sql)

state 95

142 query_spec → SELECT opt_all_distinct . selection table_exp 143 selection → . scalar_exp_commalist 144 | . '*' 203 scalar_exp → . scalar_exp '+' scalar_exp 204 | . scalar_exp '-' scalar_exp 205 | . scalar_exp '*' scalar_exp 206 | . scalar_exp '/' scalar_exp 207 | . '+' scalar_exp 208 | . '-' scalar_exp 209 | . atom 210 | . column_ref 211 | . function_ref 212 | . '(' scalar_exp ')' 213 derived_column → . scalar_exp 214 | . scalar_exp AS column_ref 215 scalar_exp_commalist → . derived_column 216 | . scalar_exp_commalist ',' derived_column 217 atom → . parameter_ref 218 | . literal 219 | . USER 220 parameter_ref → . parameter 221 | . parameter parameter 222 | . parameter INDICATOR parameter 223 function_ref → . AMMSC '(' '*' ')' 224 | . AMMSC '(' DISTINCT column_ref ')' 225 | . AMMSC '(' ALL scalar_exp ')' 226 | . AMMSC '(' scalar_exp ')' 227 literal → . STRING 228 | . INTNUM 229 | . APPROXNUM 232 column_ref → . NAME 233 | . NAME '.' NAME 234 | . NAME '.' NAME '.' NAME 254 parameter → . ':' NAME NAME shift, and go to state 68 STRING shift, and go to state 69 INTNUM shift, and go to state 70 APPROXNUM shift, and go to state 71 AMMSC shift, and go to state 72 '+' shift, and go to state 73 '-' shift, and go to state 74 '*' shift, and go to state 75 USER shift, and go to state 76 '(' shift, and go to state 77 ':' shift, and go to state 78 selection go to state 143 scalar_exp go to state 80 derived_column go to state 81 scalar_exp_commalist go to state 82 atom go to state 83 parameter_ref go to state 84 function_ref go to state 85 literal go to state 86 column_ref go to state 87 parameter go to state 88

state 96

141 query_term → '(' query_exp ')' . $default reduce using rule 141 (query_term)

state 97

2 sql_list → sql_list sql ';' . $default reduce using rule 2 (sql_list)

state 98

139 query_exp → query_exp UNION ALL . query_term 140 query_term → . query_spec 141 | . '(' query_exp ')' 142 query_spec → . SELECT opt_all_distinct selection table_exp SELECT shift, and go to state 56 '(' shift, and go to state 13 query_term go to state 144 query_spec go to state 35

state 99

138 query_exp → query_exp UNION query_term . $default reduce using rule 138 (query_exp)

state 100

257 user → NAME . $default reduce using rule 257 (user)

state 101

4 schema → CREATE SCHEMA AUTHORIZATION user . opt_schema_element_list 5 opt_schema_element_list → . [';'] 6 | . schema_element_list 7 schema_element_list → . schema_element 8 | . schema_element_list schema_element 9 schema_element → . base_table_def 10 | . view_def 11 | . privilege_def 12 base_table_def → . CREATE TABLE table '(' base_table_element_commalist ')' 36 view_def → . CREATE VIEW table opt_column_commalist AS query_spec opt_with_check_option 41 privilege_def → . GRANT privileges ON table TO grantee_commalist opt_with_grant_option CREATE shift, and go to state 145 GRANT shift, and go to state 146 $default reduce using rule 5 (opt_schema_element_list) opt_schema_element_list go to state 147 schema_element_list go to state 148 schema_element go to state 149 base_table_def go to state 150 view_def go to state 151 privilege_def go to state 152

state 102

12 base_table_def → CREATE TABLE table '(' . base_table_element_commalist ')' 13 base_table_element_commalist → . base_table_element 14 | . base_table_element_commalist ',' base_table_element 15 base_table_element → . column_def 16 | . table_constraint_def 17 column_def → . column data_type column_def_opt_list 29 table_constraint_def → . UNIQUE '(' column_commalist ')' 30 | . PRIMARY KEY '(' column_commalist ')' 31 | . FOREIGN KEY '(' column_commalist ')' REFERENCES table 32 | . FOREIGN KEY '(' column_commalist ')' REFERENCES table '(' column_commalist ')' 33 | . CHECK '(' search_condition ')' 251 column → . NAME NAME shift, and go to state 137 CHECK shift, and go to state 153 FOREIGN shift, and go to state 154 PRIMARY shift, and go to state 155 UNIQUE shift, and go to state 156 base_table_element_commalist go to state 157 base_table_element go to state 158 column_def go to state 159 table_constraint_def go to state 160 column go to state 161

state 103

107 delete_statement_positioned → DELETE FROM table WHERE . CURRENT OF cursor 162 where_clause → WHERE . search_condition 169 search_condition → . search_condition OR search_condition 170 | . search_condition AND search_condition 171 | . NOT search_condition 172 | . '(' search_condition ')' 173 | . predicate 174 predicate → . comparison_predicate 175 | . between_predicate 176 | . like_predicate 177 | . test_for_null 178 | . in_predicate 179 | . all_or_any_predicate 180 | . existence_test 181 comparison_predicate → . scalar_exp COMPARISON scalar_exp 182 | . scalar_exp COMPARISON subquery 183 between_predicate → . scalar_exp NOT BETWEEN scalar_exp AND scalar_exp 184 | . scalar_exp BETWEEN scalar_exp AND scalar_exp 185 like_predicate → . scalar_exp NOT LIKE atom opt_escape 186 | . scalar_exp LIKE atom opt_escape 189 test_for_null → . column_ref IS NOT NULLX 190 | . column_ref IS NULLX 191 in_predicate → . scalar_exp NOT IN '(' subquery ')' 192 | . scalar_exp IN '(' subquery ')' 193 | . scalar_exp NOT IN '(' atom_commalist ')' 194 | . scalar_exp IN '(' atom_commalist ')' 197 all_or_any_predicate → . scalar_exp COMPARISON any_all_some subquery 201 existence_test → . EXISTS subquery 203 scalar_exp → . scalar_exp '+' scalar_exp 204 | . scalar_exp '-' scalar_exp 205 | . scalar_exp '*' scalar_exp 206 | . scalar_exp '/' scalar_exp 207 | . '+' scalar_exp 208 | . '-' scalar_exp 209 | . atom 210 | . column_ref 211 | . function_ref 212 | . '(' scalar_exp ')' 217 atom → . parameter_ref 218 | . literal 219 | . USER 220 parameter_ref → . parameter 221 | . parameter parameter 222 | . parameter INDICATOR parameter 223 function_ref → . AMMSC '(' '*' ')' 224 | . AMMSC '(' DISTINCT column_ref ')' 225 | . AMMSC '(' ALL scalar_exp ')' 226 | . AMMSC '(' scalar_exp ')' 227 literal → . STRING 228 | . INTNUM 229 | . APPROXNUM 232 column_ref → . NAME 233 | . NAME '.' NAME 234 | . NAME '.' NAME '.' NAME 254 parameter → . ':' NAME NAME shift, and go to state 68 STRING shift, and go to state 69 INTNUM shift, and go to state 70 APPROXNUM shift, and go to state 71 AMMSC shift, and go to state 72 NOT shift, and go to state 162 '+' shift, and go to state 73 '-' shift, and go to state 74 CURRENT shift, and go to state 163 EXISTS shift, and go to state 164 USER shift, and go to state 76 '(' shift, and go to state 165 ':' shift, and go to state 78 search_condition go to state 166 predicate go to state 167 comparison_predicate go to state 168 between_predicate go to state 169 like_predicate go to state 170 test_for_null go to state 171 in_predicate go to state 172 all_or_any_predicate go to state 173 existence_test go to state 174 scalar_exp go to state 175 atom go to state 83 parameter_ref go to state 84 function_ref go to state 85 literal go to state 86 column_ref go to state 176 parameter go to state 88

state 104

108 delete_statement_searched → DELETE FROM table opt_where_clause . $default reduce using rule 108 (delete_statement_searched)

state 105

136 opt_where_clause → where_clause . $default reduce using rule 136 (opt_where_clause)

state 106

109 fetch_statement → FETCH cursor INTO target_commalist . [CLOSE, COMMIT, CREATE, DELETE, FETCH, INSERT, OPEN, PROCEDURE, ROLLBACK, SELECT, UPDATE, ';', '('] 133 target_commalist → target_commalist . ',' target ',' shift, and go to state 177 $default reduce using rule 109 (fetch_statement)

state 107

132 target_commalist → target . $default reduce using rule 132 (target_commalist)

state 108

134 target → parameter_ref . $default reduce using rule 134 (target)

state 109

34 column_commalist → . column 35 | . column_commalist ',' column 40 opt_column_commalist → '(' . column_commalist ')' 251 column → . NAME NAME shift, and go to state 137 column_commalist go to state 178 column go to state 179

state 110

110 insert_statement → INSERT INTO table opt_column_commalist . values_or_query_spec 111 values_or_query_spec → . VALUES '(' insert_atom_commalist ')' 112 | . query_spec 142 query_spec → . SELECT opt_all_distinct selection table_exp SELECT shift, and go to state 56 VALUES shift, and go to state 180 values_or_query_spec go to state 181 query_spec go to state 182

state 111

62 lang → COBOL . $default reduce using rule 62 (lang)

state 112

63 lang → FORTRAN . $default reduce using rule 63 (lang)

state 113

64 lang → PASCAL . $default reduce using rule 64 (lang)

state 114

65 lang → PLI . $default reduce using rule 65 (lang)

state 115

66 lang → C . $default reduce using rule 66 (lang)

state 116

67 lang → ADA . $default reduce using rule 67 (lang)

state 117

59 module_def → MODULE opt_module LANGUAGE lang . AUTHORIZATION user opt_cursor_def_list procedure_def_list AUTHORIZATION shift, and go to state 183

state 118

233 column_ref → NAME '.' . NAME 234 | NAME '.' . NAME '.' NAME NAME shift, and go to state 184

state 119

203 scalar_exp → . scalar_exp '+' scalar_exp 204 | . scalar_exp '-' scalar_exp 205 | . scalar_exp '*' scalar_exp 206 | . scalar_exp '/' scalar_exp 207 | . '+' scalar_exp 208 | . '-' scalar_exp 209 | . atom 210 | . column_ref 211 | . function_ref 212 | . '(' scalar_exp ')' 217 atom → . parameter_ref 218 | . literal 219 | . USER 220 parameter_ref → . parameter 221 | . parameter parameter 222 | . parameter INDICATOR parameter 223 function_ref → . AMMSC '(' '*' ')' 223 | AMMSC '(' . '*' ')' 224 | . AMMSC '(' DISTINCT column_ref ')' 224 | AMMSC '(' . DISTINCT column_ref ')' 225 | . AMMSC '(' ALL scalar_exp ')' 225 | AMMSC '(' . ALL scalar_exp ')' 226 | . AMMSC '(' scalar_exp ')' 226 | AMMSC '(' . scalar_exp ')' 227 literal → . STRING 228 | . INTNUM 229 | . APPROXNUM 232 column_ref → . NAME 233 | . NAME '.' NAME 234 | . NAME '.' NAME '.' NAME 254 parameter → . ':' NAME NAME shift, and go to state 68 STRING shift, and go to state 69 INTNUM shift, and go to state 70 APPROXNUM shift, and go to state 71 AMMSC shift, and go to state 72 '+' shift, and go to state 73 '-' shift, and go to state 74 '*' shift, and go to state 185 ALL shift, and go to state 186 DISTINCT shift, and go to state 187 USER shift, and go to state 76 '(' shift, and go to state 77 ':' shift, and go to state 78 scalar_exp go to state 188 atom go to state 83 parameter_ref go to state 84 function_ref go to state 85 literal go to state 86 column_ref go to state 87 parameter go to state 88

state 120

203 scalar_exp → scalar_exp . '+' scalar_exp 204 | scalar_exp . '-' scalar_exp 205 | scalar_exp . '*' scalar_exp 206 | scalar_exp . '/' scalar_exp 207 | '+' scalar_exp . [OR, AND, NOT, COMPARISON, '+', '-', '*', '/', AS, BETWEEN, CLOSE, COMMIT, CREATE, CROSS, DECLARE, DELETE, FETCH, FROM, GRANT, GROUP, HAVING, IN, INNER, INSERT, INTO, JOIN, LIKE, ON, OPEN, ORDER, PROCEDURE, ROLLBACK, SELECT, UNION, UPDATE, WHERE, WITH, ';', '(', ')', ','] $default reduce using rule 207 (scalar_exp) Conflict between rule 207 and token '+' resolved as reduce ('+' < UMINUS). Conflict between rule 207 and token '-' resolved as reduce ('-' < UMINUS). Conflict between rule 207 and token '*' resolved as reduce ('*' < UMINUS). Conflict between rule 207 and token '/' resolved as reduce ('/' < UMINUS).

state 121

203 scalar_exp → scalar_exp . '+' scalar_exp 204 | scalar_exp . '-' scalar_exp 205 | scalar_exp . '*' scalar_exp 206 | scalar_exp . '/' scalar_exp 208 | '-' scalar_exp . [OR, AND, NOT, COMPARISON, '+', '-', '*', '/', AS, BETWEEN, CLOSE, COMMIT, CREATE, CROSS, DECLARE, DELETE, FETCH, FROM, GRANT, GROUP, HAVING, IN, INNER, INSERT, INTO, JOIN, LIKE, ON, OPEN, ORDER, PROCEDURE, ROLLBACK, SELECT, UNION, UPDATE, WHERE, WITH, ';', '(', ')', ','] $default reduce using rule 208 (scalar_exp) Conflict between rule 208 and token '+' resolved as reduce ('+' < UMINUS). Conflict between rule 208 and token '-' resolved as reduce ('-' < UMINUS). Conflict between rule 208 and token '*' resolved as reduce ('*' < UMINUS). Conflict between rule 208 and token '/' resolved as reduce ('/' < UMINUS).

state 122

203 scalar_exp → scalar_exp . '+' scalar_exp 204 | scalar_exp . '-' scalar_exp 205 | scalar_exp . '*' scalar_exp 206 | scalar_exp . '/' scalar_exp 212 | '(' scalar_exp . ')' '+' shift, and go to state 128 '-' shift, and go to state 129 '*' shift, and go to state 130 '/' shift, and go to state 131 ')' shift, and go to state 189

state 123

254 parameter → ':' NAME . $default reduce using rule 254 (parameter)

state 124

146 from_clause → FROM . table_ref_commalist 147 table_ref_commalist → . table_ref 148 | . table_ref_commalist ',' table_ref 149 table_ref → . table 150 | . table range_variable 151 | . joined_table 152 joined_table → . cross_join 153 | . qualified_join 154 | . '(' joined_table ')' 155 cross_join → . table_ref CROSS JOIN table_ref 156 qualified_join → . table_ref join_type JOIN table_ref join_spec 230 table → . NAME 231 | . NAME '.' NAME NAME shift, and go to state 52 '(' shift, and go to state 190 table_ref_commalist go to state 191 table_ref go to state 192 joined_table go to state 193 cross_join go to state 194 qualified_join go to state 195 table go to state 196

state 125

119 select_statement → SELECT opt_all_distinct selection INTO . target_commalist table_exp 132 target_commalist → . target 133 | . target_commalist ',' target 134 target → . parameter_ref 220 parameter_ref → . parameter 221 | . parameter parameter 222 | . parameter INDICATOR parameter 254 parameter → . ':' NAME ':' shift, and go to state 78 target_commalist go to state 197 target go to state 107 parameter_ref go to state 108 parameter go to state 88

state 126

142 query_spec → SELECT opt_all_distinct selection table_exp . $default reduce using rule 142 (query_spec)

state 127

135 opt_where_clause → . [CLOSE, COMMIT, CREATE, DECLARE, DELETE, FETCH, GRANT, GROUP, HAVING, INSERT, OPEN, ORDER, PROCEDURE, ROLLBACK, SELECT, UNION, UPDATE, WITH, ';', '(', ')'] 136 | . where_clause 145 table_exp → from_clause . opt_where_clause opt_group_by_clause opt_having_clause opt_order_by_clause 162 where_clause → . WHERE search_condition WHERE shift, and go to state 198 $default reduce using rule 135 (opt_where_clause) opt_where_clause go to state 199 where_clause go to state 105

state 128

203 scalar_exp → . scalar_exp '+' scalar_exp 203 | scalar_exp '+' . scalar_exp 204 | . scalar_exp '-' scalar_exp 205 | . scalar_exp '*' scalar_exp 206 | . scalar_exp '/' scalar_exp 207 | . '+' scalar_exp 208 | . '-' scalar_exp 209 | . atom 210 | . column_ref 211 | . function_ref 212 | . '(' scalar_exp ')' 217 atom → . parameter_ref 218 | . literal 219 | . USER 220 parameter_ref → . parameter 221 | . parameter parameter 222 | . parameter INDICATOR parameter 223 function_ref → . AMMSC '(' '*' ')' 224 | . AMMSC '(' DISTINCT column_ref ')' 225 | . AMMSC '(' ALL scalar_exp ')' 226 | . AMMSC '(' scalar_exp ')' 227 literal → . STRING 228 | . INTNUM 229 | . APPROXNUM 232 column_ref → . NAME 233 | . NAME '.' NAME 234 | . NAME '.' NAME '.' NAME 254 parameter → . ':' NAME NAME shift, and go to state 68 STRING shift, and go to state 69 INTNUM shift, and go to state 70 APPROXNUM shift, and go to state 71 AMMSC shift, and go to state 72 '+' shift, and go to state 73 '-' shift, and go to state 74 USER shift, and go to state 76 '(' shift, and go to state 77 ':' shift, and go to state 78 scalar_exp go to state 200 atom go to state 83 parameter_ref go to state 84 function_ref go to state 85 literal go to state 86 column_ref go to state 87 parameter go to state 88

state 129

203 scalar_exp → . scalar_exp '+' scalar_exp 204 | . scalar_exp '-' scalar_exp 204 | scalar_exp '-' . scalar_exp 205 | . scalar_exp '*' scalar_exp 206 | . scalar_exp '/' scalar_exp 207 | . '+' scalar_exp 208 | . '-' scalar_exp 209 | . atom 210 | . column_ref 211 | . function_ref 212 | . '(' scalar_exp ')' 217 atom → . parameter_ref 218 | . literal 219 | . USER 220 parameter_ref → . parameter 221 | . parameter parameter 222 | . parameter INDICATOR parameter 223 function_ref → . AMMSC '(' '*' ')' 224 | . AMMSC '(' DISTINCT column_ref ')' 225 | . AMMSC '(' ALL scalar_exp ')' 226 | . AMMSC '(' scalar_exp ')' 227 literal → . STRING 228 | . INTNUM 229 | . APPROXNUM 232 column_ref → . NAME 233 | . NAME '.' NAME 234 | . NAME '.' NAME '.' NAME 254 parameter → . ':' NAME NAME shift, and go to state 68 STRING shift, and go to state 69 INTNUM shift, and go to state 70 APPROXNUM shift, and go to state 71 AMMSC shift, and go to state 72 '+' shift, and go to state 73 '-' shift, and go to state 74 USER shift, and go to state 76 '(' shift, and go to state 77 ':' shift, and go to state 78 scalar_exp go to state 201 atom go to state 83 parameter_ref go to state 84 function_ref go to state 85 literal go to state 86 column_ref go to state 87 parameter go to state 88

state 130

203 scalar_exp → . scalar_exp '+' scalar_exp 204 | . scalar_exp '-' scalar_exp 205 | . scalar_exp '*' scalar_exp 205 | scalar_exp '*' . scalar_exp 206 | . scalar_exp '/' scalar_exp 207 | . '+' scalar_exp 208 | . '-' scalar_exp 209 | . atom 210 | . column_ref 211 | . function_ref 212 | . '(' scalar_exp ')' 217 atom → . parameter_ref 218 | . literal 219 | . USER 220 parameter_ref → . parameter 221 | . parameter parameter 222 | . parameter INDICATOR parameter 223 function_ref → . AMMSC '(' '*' ')' 224 | . AMMSC '(' DISTINCT column_ref ')' 225 | . AMMSC '(' ALL scalar_exp ')' 226 | . AMMSC '(' scalar_exp ')' 227 literal → . STRING 228 | . INTNUM 229 | . APPROXNUM 232 column_ref → . NAME 233 | . NAME '.' NAME 234 | . NAME '.' NAME '.' NAME 254 parameter → . ':' NAME NAME shift, and go to state 68 STRING shift, and go to state 69 INTNUM shift, and go to state 70 APPROXNUM shift, and go to state 71 AMMSC shift, and go to state 72 '+' shift, and go to state 73 '-' shift, and go to state 74 USER shift, and go to state 76 '(' shift, and go to state 77 ':' shift, and go to state 78 scalar_exp go to state 202 atom go to state 83 parameter_ref go to state 84 function_ref go to state 85 literal go to state 86 column_ref go to state 87 parameter go to state 88

state 131

203 scalar_exp → . scalar_exp '+' scalar_exp 204 | . scalar_exp '-' scalar_exp 205 | . scalar_exp '*' scalar_exp 206 | . scalar_exp '/' scalar_exp 206 | scalar_exp '/' . scalar_exp 207 | . '+' scalar_exp 208 | . '-' scalar_exp 209 | . atom 210 | . column_ref 211 | . function_ref 212 | . '(' scalar_exp ')' 217 atom → . parameter_ref 218 | . literal 219 | . USER 220 parameter_ref → . parameter 221 | . parameter parameter 222 | . parameter INDICATOR parameter 223 function_ref → . AMMSC '(' '*' ')' 224 | . AMMSC '(' DISTINCT column_ref ')' 225 | . AMMSC '(' ALL scalar_exp ')' 226 | . AMMSC '(' scalar_exp ')' 227 literal → . STRING 228 | . INTNUM 229 | . APPROXNUM 232 column_ref → . NAME 233 | . NAME '.' NAME 234 | . NAME '.' NAME '.' NAME 254 parameter → . ':' NAME NAME shift, and go to state 68 STRING shift, and go to state 69 INTNUM shift, and go to state 70 APPROXNUM shift, and go to state 71 AMMSC shift, and go to state 72 '+' shift, and go to state 73 '-' shift, and go to state 74 USER shift, and go to state 76 '(' shift, and go to state 77 ':' shift, and go to state 78 scalar_exp go to state 203 atom go to state 83 parameter_ref go to state 84 function_ref go to state 85 literal go to state 86 column_ref go to state 87 parameter go to state 88

state 132

214 derived_column → scalar_exp AS . column_ref 232 column_ref → . NAME 233 | . NAME '.' NAME 234 | . NAME '.' NAME '.' NAME NAME shift, and go to state 68 column_ref go to state 204

state 133

203 scalar_exp → . scalar_exp '+' scalar_exp 204 | . scalar_exp '-' scalar_exp 205 | . scalar_exp '*' scalar_exp 206 | . scalar_exp '/' scalar_exp 207 | . '+' scalar_exp 208 | . '-' scalar_exp 209 | . atom 210 | . column_ref 211 | . function_ref 212 | . '(' scalar_exp ')' 213 derived_column → . scalar_exp 214 | . scalar_exp AS column_ref 216 scalar_exp_commalist → scalar_exp_commalist ',' . derived_column 217 atom → . parameter_ref 218 | . literal 219 | . USER 220 parameter_ref → . parameter 221 | . parameter parameter 222 | . parameter INDICATOR parameter 223 function_ref → . AMMSC '(' '*' ')' 224 | . AMMSC '(' DISTINCT column_ref ')' 225 | . AMMSC '(' ALL scalar_exp ')' 226 | . AMMSC '(' scalar_exp ')' 227 literal → . STRING 228 | . INTNUM 229 | . APPROXNUM 232 column_ref → . NAME 233 | . NAME '.' NAME 234 | . NAME '.' NAME '.' NAME 254 parameter → . ':' NAME NAME shift, and go to state 68 STRING shift, and go to state 69 INTNUM shift, and go to state 70 APPROXNUM shift, and go to state 71 AMMSC shift, and go to state 72 '+' shift, and go to state 73 '-' shift, and go to state 74 USER shift, and go to state 76 '(' shift, and go to state 77 ':' shift, and go to state 78 scalar_exp go to state 80 derived_column go to state 205 atom go to state 83 parameter_ref go to state 84 function_ref go to state 85 literal go to state 86 column_ref go to state 87 parameter go to state 88

state 134

222 parameter_ref → parameter INDICATOR . parameter 254 parameter → . ':' NAME ':' shift, and go to state 78 parameter go to state 206

state 135

221 parameter_ref → parameter parameter . $default reduce using rule 221 (parameter_ref)

state 136

231 table → NAME '.' NAME . $default reduce using rule 231 (table)

state 137

251 column → NAME . $default reduce using rule 251 (column)

state 138

125 update_statement_positioned → UPDATE table SET assignment_commalist . WHERE CURRENT OF cursor 128 assignment_commalist → assignment_commalist . ',' assignment 131 update_statement_searched → UPDATE table SET assignment_commalist . opt_where_clause 135 opt_where_clause → . [CLOSE, COMMIT, CREATE, DELETE, FETCH, INSERT, OPEN, PROCEDURE, ROLLBACK, SELECT, UPDATE, ';', '('] 136 | . where_clause 162 where_clause → . WHERE search_condition WHERE shift, and go to state 207 ',' shift, and go to state 208 $default reduce using rule 135 (opt_where_clause) opt_where_clause go to state 209 where_clause go to state 105

state 139

127 assignment_commalist → assignment . $default reduce using rule 127 (assignment_commalist)

state 140

129 assignment → column . '=' scalar_exp 130 | column . '=' NULLX '=' shift, and go to state 210

state 141

258 sql → WHENEVER NOT FOUND when_action . $default reduce using rule 258 (sql)

state 142

260 when_action → GOTO NAME . $default reduce using rule 260 (when_action)

state 143

142 query_spec → SELECT opt_all_distinct selection . table_exp 145 table_exp → . from_clause opt_where_clause opt_group_by_clause opt_having_clause opt_order_by_clause 146 from_clause → . FROM table_ref_commalist FROM shift, and go to state 124 table_exp go to state 126 from_clause go to state 127

state 144

139 query_exp → query_exp UNION ALL query_term . $default reduce using rule 139 (query_exp)

state 145

12 base_table_def → CREATE . TABLE table '(' base_table_element_commalist ')' 36 view_def → CREATE . VIEW table opt_column_commalist AS query_spec opt_with_check_option TABLE shift, and go to state 40 VIEW shift, and go to state 211

state 146

41 privilege_def → GRANT . privileges ON table TO grantee_commalist opt_with_grant_option 44 privileges → . ALL PRIVILEGES 45 | . ALL 46 | . operation_commalist 47 operation_commalist → . operation 48 | . operation_commalist ',' operation 49 operation → . SELECT 50 | . INSERT 51 | . DELETE 52 | . UPDATE opt_column_commalist 53 | . REFERENCES opt_column_commalist ALL shift, and go to state 212 DELETE shift, and go to state 213 INSERT shift, and go to state 214 REFERENCES shift, and go to state 215 SELECT shift, and go to state 216 UPDATE shift, and go to state 217 privileges go to state 218 operation_commalist go to state 219 operation go to state 220

state 147

4 schema → CREATE SCHEMA AUTHORIZATION user opt_schema_element_list . $default reduce using rule 4 (schema)

state 148

6 opt_schema_element_list → schema_element_list . [';'] 8 schema_element_list → schema_element_list . schema_element 9 schema_element → . base_table_def 10 | . view_def 11 | . privilege_def 12 base_table_def → . CREATE TABLE table '(' base_table_element_commalist ')' 36 view_def → . CREATE VIEW table opt_column_commalist AS query_spec opt_with_check_option 41 privilege_def → . GRANT privileges ON table TO grantee_commalist opt_with_grant_option CREATE shift, and go to state 145 GRANT shift, and go to state 146 $default reduce using rule 6 (opt_schema_element_list) schema_element go to state 221 base_table_def go to state 150 view_def go to state 151 privilege_def go to state 152

state 149

7 schema_element_list → schema_element . $default reduce using rule 7 (schema_element_list)

state 150

9 schema_element → base_table_def . $default reduce using rule 9 (schema_element)

state 151

10 schema_element → view_def . $default reduce using rule 10 (schema_element)

state 152

11 schema_element → privilege_def . $default reduce using rule 11 (schema_element)

state 153

33 table_constraint_def → CHECK . '(' search_condition ')' '(' shift, and go to state 222

state 154

31 table_constraint_def → FOREIGN . KEY '(' column_commalist ')' REFERENCES table 32 | FOREIGN . KEY '(' column_commalist ')' REFERENCES table '(' column_commalist ')' KEY shift, and go to state 223

state 155

30 table_constraint_def → PRIMARY . KEY '(' column_commalist ')' KEY shift, and go to state 224

state 156

29 table_constraint_def → UNIQUE . '(' column_commalist ')' '(' shift, and go to state 225

state 157

12 base_table_def → CREATE TABLE table '(' base_table_element_commalist . ')' 14 base_table_element_commalist → base_table_element_commalist . ',' base_table_element ')' shift, and go to state 226 ',' shift, and go to state 227

state 158

13 base_table_element_commalist → base_table_element . $default reduce using rule 13 (base_table_element_commalist)

state 159

15 base_table_element → column_def . $default reduce using rule 15 (base_table_element)

state 160

16 base_table_element → table_constraint_def . $default reduce using rule 16 (base_table_element)

state 161

17 column_def → column . data_type column_def_opt_list 235 data_type → . CHARACTER 236 | . CHARACTER '(' INTNUM ')' 237 | . VARCHAR 238 | . VARCHAR '(' INTNUM ')' 239 | . NUMERIC 240 | . NUMERIC '(' INTNUM ')' 241 | . NUMERIC '(' INTNUM ',' INTNUM ')' 242 | . DECIMAL 243 | . DECIMAL '(' INTNUM ')' 244 | . DECIMAL '(' INTNUM ',' INTNUM ')' 245 | . INTEGER 246 | . SMALLINT 247 | . FLOAT 248 | . FLOAT '(' INTNUM ')' 249 | . REAL 250 | . DOUBLE PRECISION CHARACTER shift, and go to state 228 DECIMAL shift, and go to state 229 DOUBLE shift, and go to state 230 FLOAT shift, and go to state 231 INTEGER shift, and go to state 232 NUMERIC shift, and go to state 233 REAL shift, and go to state 234 SMALLINT shift, and go to state 235 VARCHAR shift, and go to state 236 data_type go to state 237

state 162

169 search_condition → . search_condition OR search_condition 170 | . search_condition AND search_condition 171 | . NOT search_condition 171 | NOT . search_condition 172 | . '(' search_condition ')' 173 | . predicate 174 predicate → . comparison_predicate 175 | . between_predicate 176 | . like_predicate 177 | . test_for_null 178 | . in_predicate 179 | . all_or_any_predicate 180 | . existence_test 181 comparison_predicate → . scalar_exp COMPARISON scalar_exp 182 | . scalar_exp COMPARISON subquery 183 between_predicate → . scalar_exp NOT BETWEEN scalar_exp AND scalar_exp 184 | . scalar_exp BETWEEN scalar_exp AND scalar_exp 185 like_predicate → . scalar_exp NOT LIKE atom opt_escape 186 | . scalar_exp LIKE atom opt_escape 189 test_for_null → . column_ref IS NOT NULLX 190 | . column_ref IS NULLX 191 in_predicate → . scalar_exp NOT IN '(' subquery ')' 192 | . scalar_exp IN '(' subquery ')' 193 | . scalar_exp NOT IN '(' atom_commalist ')' 194 | . scalar_exp IN '(' atom_commalist ')' 197 all_or_any_predicate → . scalar_exp COMPARISON any_all_some subquery 201 existence_test → . EXISTS subquery 203 scalar_exp → . scalar_exp '+' scalar_exp 204 | . scalar_exp '-' scalar_exp 205 | . scalar_exp '*' scalar_exp 206 | . scalar_exp '/' scalar_exp 207 | . '+' scalar_exp 208 | . '-' scalar_exp 209 | . atom 210 | . column_ref 211 | . function_ref 212 | . '(' scalar_exp ')' 217 atom → . parameter_ref 218 | . literal 219 | . USER 220 parameter_ref → . parameter 221 | . parameter parameter 222 | . parameter INDICATOR parameter 223 function_ref → . AMMSC '(' '*' ')' 224 | . AMMSC '(' DISTINCT column_ref ')' 225 | . AMMSC '(' ALL scalar_exp ')' 226 | . AMMSC '(' scalar_exp ')' 227 literal → . STRING 228 | . INTNUM 229 | . APPROXNUM 232 column_ref → . NAME 233 | . NAME '.' NAME 234 | . NAME '.' NAME '.' NAME 254 parameter → . ':' NAME NAME shift, and go to state 68 STRING shift, and go to state 69 INTNUM shift, and go to state 70 APPROXNUM shift, and go to state 71 AMMSC shift, and go to state 72 NOT shift, and go to state 162 '+' shift, and go to state 73 '-' shift, and go to state 74 EXISTS shift, and go to state 164 USER shift, and go to state 76 '(' shift, and go to state 165 ':' shift, and go to state 78 search_condition go to state 238 predicate go to state 167 comparison_predicate go to state 168 between_predicate go to state 169 like_predicate go to state 170 test_for_null go to state 171 in_predicate go to state 172 all_or_any_predicate go to state 173 existence_test go to state 174 scalar_exp go to state 175 atom go to state 83 parameter_ref go to state 84 function_ref go to state 85 literal go to state 86 column_ref go to state 176 parameter go to state 88

state 163

107 delete_statement_positioned → DELETE FROM table WHERE CURRENT . OF cursor OF shift, and go to state 239

state 164

201 existence_test → EXISTS . subquery 202 subquery → . '(' SELECT opt_all_distinct selection table_exp ')' '(' shift, and go to state 240 subquery go to state 241

state 165

169 search_condition → . search_condition OR search_condition 170 | . search_condition AND search_condition 171 | . NOT search_condition 172 | . '(' search_condition ')' 172 | '(' . search_condition ')' 173 | . predicate 174 predicate → . comparison_predicate 175 | . between_predicate 176 | . like_predicate 177 | . test_for_null 178 | . in_predicate 179 | . all_or_any_predicate 180 | . existence_test 181 comparison_predicate → . scalar_exp COMPARISON scalar_exp 182 | . scalar_exp COMPARISON subquery 183 between_predicate → . scalar_exp NOT BETWEEN scalar_exp AND scalar_exp 184 | . scalar_exp BETWEEN scalar_exp AND scalar_exp 185 like_predicate → . scalar_exp NOT LIKE atom opt_escape 186 | . scalar_exp LIKE atom opt_escape 189 test_for_null → . column_ref IS NOT NULLX 190 | . column_ref IS NULLX 191 in_predicate → . scalar_exp NOT IN '(' subquery ')' 192 | . scalar_exp IN '(' subquery ')' 193 | . scalar_exp NOT IN '(' atom_commalist ')' 194 | . scalar_exp IN '(' atom_commalist ')' 197 all_or_any_predicate → . scalar_exp COMPARISON any_all_some subquery 201 existence_test → . EXISTS subquery 203 scalar_exp → . scalar_exp '+' scalar_exp 204 | . scalar_exp '-' scalar_exp 205 | . scalar_exp '*' scalar_exp 206 | . scalar_exp '/' scalar_exp 207 | . '+' scalar_exp 208 | . '-' scalar_exp 209 | . atom 210 | . column_ref 211 | . function_ref 212 | . '(' scalar_exp ')' 212 | '(' . scalar_exp ')' 217 atom → . parameter_ref 218 | . literal 219 | . USER 220 parameter_ref → . parameter 221 | . parameter parameter 222 | . parameter INDICATOR parameter 223 function_ref → . AMMSC '(' '*' ')' 224 | . AMMSC '(' DISTINCT column_ref ')' 225 | . AMMSC '(' ALL scalar_exp ')' 226 | . AMMSC '(' scalar_exp ')' 227 literal → . STRING 228 | . INTNUM 229 | . APPROXNUM 232 column_ref → . NAME 233 | . NAME '.' NAME 234 | . NAME '.' NAME '.' NAME 254 parameter → . ':' NAME NAME shift, and go to state 68 STRING shift, and go to state 69 INTNUM shift, and go to state 70 APPROXNUM shift, and go to state 71 AMMSC shift, and go to state 72 NOT shift, and go to state 162 '+' shift, and go to state 73 '-' shift, and go to state 74 EXISTS shift, and go to state 164 USER shift, and go to state 76 '(' shift, and go to state 165 ':' shift, and go to state 78 search_condition go to state 242 predicate go to state 167 comparison_predicate go to state 168 between_predicate go to state 169 like_predicate go to state 170 test_for_null go to state 171 in_predicate go to state 172 all_or_any_predicate go to state 173 existence_test go to state 174 scalar_exp go to state 243 atom go to state 83 parameter_ref go to state 84 function_ref go to state 85 literal go to state 86 column_ref go to state 176 parameter go to state 88

state 166

162 where_clause → WHERE search_condition . [CLOSE, COMMIT, CREATE, DECLARE, DELETE, FETCH, GRANT, GROUP, HAVING, INSERT, OPEN, ORDER, PROCEDURE, ROLLBACK, SELECT, UNION, UPDATE, WITH, ';', '(', ')'] 169 search_condition → search_condition . OR search_condition 170 | search_condition . AND search_condition OR shift, and go to state 244 AND shift, and go to state 245 $default reduce using rule 162 (where_clause)

state 167

173 search_condition → predicate . $default reduce using rule 173 (search_condition)

state 168

174 predicate → comparison_predicate . $default reduce using rule 174 (predicate)

state 169

175 predicate → between_predicate . $default reduce using rule 175 (predicate)

state 170

176 predicate → like_predicate . $default reduce using rule 176 (predicate)

state 171

177 predicate → test_for_null . $default reduce using rule 177 (predicate)

state 172

178 predicate → in_predicate . $default reduce using rule 178 (predicate)

state 173

179 predicate → all_or_any_predicate . $default reduce using rule 179 (predicate)

state 174

180 predicate → existence_test . $default reduce using rule 180 (predicate)

state 175

181 comparison_predicate → scalar_exp . COMPARISON scalar_exp 182 | scalar_exp . COMPARISON subquery 183 between_predicate → scalar_exp . NOT BETWEEN scalar_exp AND scalar_exp 184 | scalar_exp . BETWEEN scalar_exp AND scalar_exp 185 like_predicate → scalar_exp . NOT LIKE atom opt_escape 186 | scalar_exp . LIKE atom opt_escape 191 in_predicate → scalar_exp . NOT IN '(' subquery ')' 192 | scalar_exp . IN '(' subquery ')' 193 | scalar_exp . NOT IN '(' atom_commalist ')' 194 | scalar_exp . IN '(' atom_commalist ')' 197 all_or_any_predicate → scalar_exp . COMPARISON any_all_some subquery 203 scalar_exp → scalar_exp . '+' scalar_exp 204 | scalar_exp . '-' scalar_exp 205 | scalar_exp . '*' scalar_exp 206 | scalar_exp . '/' scalar_exp NOT shift, and go to state 246 COMPARISON shift, and go to state 247 '+' shift, and go to state 128 '-' shift, and go to state 129 '*' shift, and go to state 130 '/' shift, and go to state 131 BETWEEN shift, and go to state 248 IN shift, and go to state 249 LIKE shift, and go to state 250

state 176

189 test_for_null → column_ref . IS NOT NULLX 190 | column_ref . IS NULLX 210 scalar_exp → column_ref . [NOT, COMPARISON, '+', '-', '*', '/', BETWEEN, IN, LIKE, ')'] IS shift, and go to state 251 $default reduce using rule 210 (scalar_exp)

state 177

133 target_commalist → target_commalist ',' . target 134 target → . parameter_ref 220 parameter_ref → . parameter 221 | . parameter parameter 222 | . parameter INDICATOR parameter 254 parameter → . ':' NAME ':' shift, and go to state 78 target go to state 252 parameter_ref go to state 108 parameter go to state 88

state 178

35 column_commalist → column_commalist . ',' column 40 opt_column_commalist → '(' column_commalist . ')' ')' shift, and go to state 253 ',' shift, and go to state 254

state 179

34 column_commalist → column . $default reduce using rule 34 (column_commalist)

state 180

111 values_or_query_spec → VALUES . '(' insert_atom_commalist ')' '(' shift, and go to state 255

state 181

110 insert_statement → INSERT INTO table opt_column_commalist values_or_query_spec . $default reduce using rule 110 (insert_statement)

state 182

112 values_or_query_spec → query_spec . $default reduce using rule 112 (values_or_query_spec)

state 183

59 module_def → MODULE opt_module LANGUAGE lang AUTHORIZATION . user opt_cursor_def_list procedure_def_list 257 user → . NAME NAME shift, and go to state 100 user go to state 256

state 184

233 column_ref → NAME '.' NAME . [OR, AND, NOT, COMPARISON, '+', '-', '*', '/', AS, ASC, BETWEEN, CLOSE, COMMIT, CREATE, CROSS, DECLARE, DELETE, DESC, FETCH, FROM, GRANT, GROUP, HAVING, IN, INNER, INSERT, INTO, IS, JOIN, LIKE, ON, OPEN, ORDER, PROCEDURE, ROLLBACK, SELECT, UNION, UPDATE, WHERE, WITH, ';', '(', ')', ','] 234 | NAME '.' NAME . '.' NAME '.' shift, and go to state 257 $default reduce using rule 233 (column_ref)

state 185

223 function_ref → AMMSC '(' '*' . ')' ')' shift, and go to state 258

state 186

203 scalar_exp → . scalar_exp '+' scalar_exp 204 | . scalar_exp '-' scalar_exp 205 | . scalar_exp '*' scalar_exp 206 | . scalar_exp '/' scalar_exp 207 | . '+' scalar_exp 208 | . '-' scalar_exp 209 | . atom 210 | . column_ref 211 | . function_ref 212 | . '(' scalar_exp ')' 217 atom → . parameter_ref 218 | . literal 219 | . USER 220 parameter_ref → . parameter 221 | . parameter parameter 222 | . parameter INDICATOR parameter 223 function_ref → . AMMSC '(' '*' ')' 224 | . AMMSC '(' DISTINCT column_ref ')' 225 | . AMMSC '(' ALL scalar_exp ')' 225 | AMMSC '(' ALL . scalar_exp ')' 226 | . AMMSC '(' scalar_exp ')' 227 literal → . STRING 228 | . INTNUM 229 | . APPROXNUM 232 column_ref → . NAME 233 | . NAME '.' NAME 234 | . NAME '.' NAME '.' NAME 254 parameter → . ':' NAME NAME shift, and go to state 68 STRING shift, and go to state 69 INTNUM shift, and go to state 70 APPROXNUM shift, and go to state 71 AMMSC shift, and go to state 72 '+' shift, and go to state 73 '-' shift, and go to state 74 USER shift, and go to state 76 '(' shift, and go to state 77 ':' shift, and go to state 78 scalar_exp go to state 259 atom go to state 83 parameter_ref go to state 84 function_ref go to state 85 literal go to state 86 column_ref go to state 87 parameter go to state 88

state 187

224 function_ref → AMMSC '(' DISTINCT . column_ref ')' 232 column_ref → . NAME 233 | . NAME '.' NAME 234 | . NAME '.' NAME '.' NAME NAME shift, and go to state 68 column_ref go to state 260

state 188

203 scalar_exp → scalar_exp . '+' scalar_exp 204 | scalar_exp . '-' scalar_exp 205 | scalar_exp . '*' scalar_exp 206 | scalar_exp . '/' scalar_exp 226 function_ref → AMMSC '(' scalar_exp . ')' '+' shift, and go to state 128 '-' shift, and go to state 129 '*' shift, and go to state 130 '/' shift, and go to state 131 ')' shift, and go to state 261

state 189

212 scalar_exp → '(' scalar_exp ')' . $default reduce using rule 212 (scalar_exp)

state 190

149 table_ref → . table 150 | . table range_variable 151 | . joined_table 152 joined_table → . cross_join 153 | . qualified_join 154 | . '(' joined_table ')' 154 | '(' . joined_table ')' 155 cross_join → . table_ref CROSS JOIN table_ref 156 qualified_join → . table_ref join_type JOIN table_ref join_spec 230 table → . NAME 231 | . NAME '.' NAME NAME shift, and go to state 52 '(' shift, and go to state 190 table_ref go to state 262 joined_table go to state 263 cross_join go to state 194 qualified_join go to state 195 table go to state 196

state 191

146 from_clause → FROM table_ref_commalist . [CLOSE, COMMIT, CREATE, DECLARE, DELETE, FETCH, GRANT, GROUP, HAVING, INSERT, OPEN, ORDER, PROCEDURE, ROLLBACK, SELECT, UNION, UPDATE, WHERE, WITH, ';', '(', ')'] 148 table_ref_commalist → table_ref_commalist . ',' table_ref ',' shift, and go to state 264 $default reduce using rule 146 (from_clause)

state 192

147 table_ref_commalist → table_ref . [CLOSE, COMMIT, CREATE, DECLARE, DELETE, FETCH, GRANT, GROUP, HAVING, INSERT, OPEN, ORDER, PROCEDURE, ROLLBACK, SELECT, UNION, UPDATE, WHERE, WITH, ';', '(', ')', ','] 155 cross_join → table_ref . CROSS JOIN table_ref 156 qualified_join → table_ref . join_type JOIN table_ref join_spec 157 join_type → . [JOIN] 158 | . INNER CROSS shift, and go to state 265 INNER shift, and go to state 266 JOIN reduce using rule 157 (join_type) $default reduce using rule 147 (table_ref_commalist) join_type go to state 267

state 193

151 table_ref → joined_table . $default reduce using rule 151 (table_ref)

state 194

152 joined_table → cross_join . $default reduce using rule 152 (joined_table)

state 195

153 joined_table → qualified_join . $default reduce using rule 153 (joined_table)

state 196

149 table_ref → table . [CLOSE, COMMIT, CREATE, CROSS, DECLARE, DELETE, FETCH, GRANT, GROUP, HAVING, INNER, INSERT, JOIN, ON, OPEN, ORDER, PROCEDURE, ROLLBACK, SELECT, UNION, UPDATE, WHERE, WITH, ';', '(', ')', ','] 150 | table . range_variable 256 range_variable → . NAME NAME shift, and go to state 268 $default reduce using rule 149 (table_ref) range_variable go to state 269

state 197

119 select_statement → SELECT opt_all_distinct selection INTO target_commalist . table_exp 133 target_commalist → target_commalist . ',' target 145 table_exp → . from_clause opt_where_clause opt_group_by_clause opt_having_clause opt_order_by_clause 146 from_clause → . FROM table_ref_commalist FROM shift, and go to state 124 ',' shift, and go to state 177 table_exp go to state 270 from_clause go to state 127

state 198

162 where_clause → WHERE . search_condition 169 search_condition → . search_condition OR search_condition 170 | . search_condition AND search_condition 171 | . NOT search_condition 172 | . '(' search_condition ')' 173 | . predicate 174 predicate → . comparison_predicate 175 | . between_predicate 176 | . like_predicate 177 | . test_for_null 178 | . in_predicate 179 | . all_or_any_predicate 180 | . existence_test 181 comparison_predicate → . scalar_exp COMPARISON scalar_exp 182 | . scalar_exp COMPARISON subquery 183 between_predicate → . scalar_exp NOT BETWEEN scalar_exp AND scalar_exp 184 | . scalar_exp BETWEEN scalar_exp AND scalar_exp 185 like_predicate → . scalar_exp NOT LIKE atom opt_escape 186 | . scalar_exp LIKE atom opt_escape 189 test_for_null → . column_ref IS NOT NULLX 190 | . column_ref IS NULLX 191 in_predicate → . scalar_exp NOT IN '(' subquery ')' 192 | . scalar_exp IN '(' subquery ')' 193 | . scalar_exp NOT IN '(' atom_commalist ')' 194 | . scalar_exp IN '(' atom_commalist ')' 197 all_or_any_predicate → . scalar_exp COMPARISON any_all_some subquery 201 existence_test → . EXISTS subquery 203 scalar_exp → . scalar_exp '+' scalar_exp 204 | . scalar_exp '-' scalar_exp 205 | . scalar_exp '*' scalar_exp 206 | . scalar_exp '/' scalar_exp 207 | . '+' scalar_exp 208 | . '-' scalar_exp 209 | . atom 210 | . column_ref 211 | . function_ref 212 | . '(' scalar_exp ')' 217 atom → . parameter_ref 218 | . literal 219 | . USER 220 parameter_ref → . parameter 221 | . parameter parameter 222 | . parameter INDICATOR parameter 223 function_ref → . AMMSC '(' '*' ')' 224 | . AMMSC '(' DISTINCT column_ref ')' 225 | . AMMSC '(' ALL scalar_exp ')' 226 | . AMMSC '(' scalar_exp ')' 227 literal → . STRING 228 | . INTNUM 229 | . APPROXNUM 232 column_ref → . NAME 233 | . NAME '.' NAME 234 | . NAME '.' NAME '.' NAME 254 parameter → . ':' NAME NAME shift, and go to state 68 STRING shift, and go to state 69 INTNUM shift, and go to state 70 APPROXNUM shift, and go to state 71 AMMSC shift, and go to state 72 NOT shift, and go to state 162 '+' shift, and go to state 73 '-' shift, and go to state 74 EXISTS shift, and go to state 164 USER shift, and go to state 76 '(' shift, and go to state 165 ':' shift, and go to state 78 search_condition go to state 166 predicate go to state 167 comparison_predicate go to state 168 between_predicate go to state 169 like_predicate go to state 170 test_for_null go to state 171 in_predicate go to state 172 all_or_any_predicate go to state 173 existence_test go to state 174 scalar_exp go to state 175 atom go to state 83 parameter_ref go to state 84 function_ref go to state 85 literal go to state 86 column_ref go to state 176 parameter go to state 88

state 199

145 table_exp → from_clause opt_where_clause . opt_group_by_clause opt_having_clause opt_order_by_clause 163 opt_group_by_clause → . [CLOSE, COMMIT, CREATE, DECLARE, DELETE, FETCH, GRANT, HAVING, INSERT, OPEN, ORDER, PROCEDURE, ROLLBACK, SELECT, UNION, UPDATE, WITH, ';', '(', ')'] 164 | . GROUP BY column_ref_commalist GROUP shift, and go to state 271 $default reduce using rule 163 (opt_group_by_clause) opt_group_by_clause go to state 272

state 200

203 scalar_exp → scalar_exp . '+' scalar_exp 203 | scalar_exp '+' scalar_exp . [OR, AND, NOT, COMPARISON, '+', '-', AS, BETWEEN, CLOSE, COMMIT, CREATE, CROSS, DECLARE, DELETE, FETCH, FROM, GRANT, GROUP, HAVING, IN, INNER, INSERT, INTO, JOIN, LIKE, ON, OPEN, ORDER, PROCEDURE, ROLLBACK, SELECT, UNION, UPDATE, WHERE, WITH, ';', '(', ')', ','] 204 | scalar_exp . '-' scalar_exp 205 | scalar_exp . '*' scalar_exp 206 | scalar_exp . '/' scalar_exp '*' shift, and go to state 130 '/' shift, and go to state 131 $default reduce using rule 203 (scalar_exp) Conflict between rule 203 and token '+' resolved as reduce (%left '+'). Conflict between rule 203 and token '-' resolved as reduce (%left '-'). Conflict between rule 203 and token '*' resolved as shift ('+' < '*'). Conflict between rule 203 and token '/' resolved as shift ('+' < '/').

state 201

203 scalar_exp → scalar_exp . '+' scalar_exp 204 | scalar_exp . '-' scalar_exp 204 | scalar_exp '-' scalar_exp . [OR, AND, NOT, COMPARISON, '+', '-', AS, BETWEEN, CLOSE, COMMIT, CREATE, CROSS, DECLARE, DELETE, FETCH, FROM, GRANT, GROUP, HAVING, IN, INNER, INSERT, INTO, JOIN, LIKE, ON, OPEN, ORDER, PROCEDURE, ROLLBACK, SELECT, UNION, UPDATE, WHERE, WITH, ';', '(', ')', ','] 205 | scalar_exp . '*' scalar_exp 206 | scalar_exp . '/' scalar_exp '*' shift, and go to state 130 '/' shift, and go to state 131 $default reduce using rule 204 (scalar_exp) Conflict between rule 204 and token '+' resolved as reduce (%left '+'). Conflict between rule 204 and token '-' resolved as reduce (%left '-'). Conflict between rule 204 and token '*' resolved as shift ('-' < '*'). Conflict between rule 204 and token '/' resolved as shift ('-' < '/').

state 202

203 scalar_exp → scalar_exp . '+' scalar_exp 204 | scalar_exp . '-' scalar_exp 205 | scalar_exp . '*' scalar_exp 205 | scalar_exp '*' scalar_exp . [OR, AND, NOT, COMPARISON, '+', '-', '*', '/', AS, BETWEEN, CLOSE, COMMIT, CREATE, CROSS, DECLARE, DELETE, FETCH, FROM, GRANT, GROUP, HAVING, IN, INNER, INSERT, INTO, JOIN, LIKE, ON, OPEN, ORDER, PROCEDURE, ROLLBACK, SELECT, UNION, UPDATE, WHERE, WITH, ';', '(', ')', ','] 206 | scalar_exp . '/' scalar_exp $default reduce using rule 205 (scalar_exp) Conflict between rule 205 and token '+' resolved as reduce ('+' < '*'). Conflict between rule 205 and token '-' resolved as reduce ('-' < '*'). Conflict between rule 205 and token '*' resolved as reduce (%left '*'). Conflict between rule 205 and token '/' resolved as reduce (%left '/').

state 203

203 scalar_exp → scalar_exp . '+' scalar_exp 204 | scalar_exp . '-' scalar_exp 205 | scalar_exp . '*' scalar_exp 206 | scalar_exp . '/' scalar_exp 206 | scalar_exp '/' scalar_exp . [OR, AND, NOT, COMPARISON, '+', '-', '*', '/', AS, BETWEEN, CLOSE, COMMIT, CREATE, CROSS, DECLARE, DELETE, FETCH, FROM, GRANT, GROUP, HAVING, IN, INNER, INSERT, INTO, JOIN, LIKE, ON, OPEN, ORDER, PROCEDURE, ROLLBACK, SELECT, UNION, UPDATE, WHERE, WITH, ';', '(', ')', ','] $default reduce using rule 206 (scalar_exp) Conflict between rule 206 and token '+' resolved as reduce ('+' < '/'). Conflict between rule 206 and token '-' resolved as reduce ('-' < '/'). Conflict between rule 206 and token '*' resolved as reduce (%left '*'). Conflict between rule 206 and token '/' resolved as reduce (%left '/').

state 204

214 derived_column → scalar_exp AS column_ref . $default reduce using rule 214 (derived_column)

state 205

216 scalar_exp_commalist → scalar_exp_commalist ',' derived_column . $default reduce using rule 216 (scalar_exp_commalist)

state 206

222 parameter_ref → parameter INDICATOR parameter . $default reduce using rule 222 (parameter_ref)

state 207

125 update_statement_positioned → UPDATE table SET assignment_commalist WHERE . CURRENT OF cursor 162 where_clause → WHERE . search_condition 169 search_condition → . search_condition OR search_condition 170 | . search_condition AND search_condition 171 | . NOT search_condition 172 | . '(' search_condition ')' 173 | . predicate 174 predicate → . comparison_predicate 175 | . between_predicate 176 | . like_predicate 177 | . test_for_null 178 | . in_predicate 179 | . all_or_any_predicate 180 | . existence_test 181 comparison_predicate → . scalar_exp COMPARISON scalar_exp 182 | . scalar_exp COMPARISON subquery 183 between_predicate → . scalar_exp NOT BETWEEN scalar_exp AND scalar_exp 184 | . scalar_exp BETWEEN scalar_exp AND scalar_exp 185 like_predicate → . scalar_exp NOT LIKE atom opt_escape 186 | . scalar_exp LIKE atom opt_escape 189 test_for_null → . column_ref IS NOT NULLX 190 | . column_ref IS NULLX 191 in_predicate → . scalar_exp NOT IN '(' subquery ')' 192 | . scalar_exp IN '(' subquery ')' 193 | . scalar_exp NOT IN '(' atom_commalist ')' 194 | . scalar_exp IN '(' atom_commalist ')' 197 all_or_any_predicate → . scalar_exp COMPARISON any_all_some subquery 201 existence_test → . EXISTS subquery 203 scalar_exp → . scalar_exp '+' scalar_exp 204 | . scalar_exp '-' scalar_exp 205 | . scalar_exp '*' scalar_exp 206 | . scalar_exp '/' scalar_exp 207 | . '+' scalar_exp 208 | . '-' scalar_exp 209 | . atom 210 | . column_ref 211 | . function_ref 212 | . '(' scalar_exp ')' 217 atom → . parameter_ref 218 | . literal 219 | . USER 220 parameter_ref → . parameter 221 | . parameter parameter 222 | . parameter INDICATOR parameter 223 function_ref → . AMMSC '(' '*' ')' 224 | . AMMSC '(' DISTINCT column_ref ')' 225 | . AMMSC '(' ALL scalar_exp ')' 226 | . AMMSC '(' scalar_exp ')' 227 literal → . STRING 228 | . INTNUM 229 | . APPROXNUM 232 column_ref → . NAME 233 | . NAME '.' NAME 234 | . NAME '.' NAME '.' NAME 254 parameter → . ':' NAME NAME shift, and go to state 68 STRING shift, and go to state 69 INTNUM shift, and go to state 70 APPROXNUM shift, and go to state 71 AMMSC shift, and go to state 72 NOT shift, and go to state 162 '+' shift, and go to state 73 '-' shift, and go to state 74 CURRENT shift, and go to state 273 EXISTS shift, and go to state 164 USER shift, and go to state 76 '(' shift, and go to state 165 ':' shift, and go to state 78 search_condition go to state 166 predicate go to state 167 comparison_predicate go to state 168 between_predicate go to state 169 like_predicate go to state 170 test_for_null go to state 171 in_predicate go to state 172 all_or_any_predicate go to state 173 existence_test go to state 174 scalar_exp go to state 175 atom go to state 83 parameter_ref go to state 84 function_ref go to state 85 literal go to state 86 column_ref go to state 176 parameter go to state 88

state 208

128 assignment_commalist → assignment_commalist ',' . assignment 129 assignment → . column '=' scalar_exp 130 | . column '=' NULLX 251 column → . NAME NAME shift, and go to state 137 assignment go to state 274 column go to state 140

state 209

131 update_statement_searched → UPDATE table SET assignment_commalist opt_where_clause . $default reduce using rule 131 (update_statement_searched)

state 210

129 assignment → column '=' . scalar_exp 130 | column '=' . NULLX 203 scalar_exp → . scalar_exp '+' scalar_exp 204 | . scalar_exp '-' scalar_exp 205 | . scalar_exp '*' scalar_exp 206 | . scalar_exp '/' scalar_exp 207 | . '+' scalar_exp 208 | . '-' scalar_exp 209 | . atom 210 | . column_ref 211 | . function_ref 212 | . '(' scalar_exp ')' 217 atom → . parameter_ref 218 | . literal 219 | . USER 220 parameter_ref → . parameter 221 | . parameter parameter 222 | . parameter INDICATOR parameter 223 function_ref → . AMMSC '(' '*' ')' 224 | . AMMSC '(' DISTINCT column_ref ')' 225 | . AMMSC '(' ALL scalar_exp ')' 226 | . AMMSC '(' scalar_exp ')' 227 literal → . STRING 228 | . INTNUM 229 | . APPROXNUM 232 column_ref → . NAME 233 | . NAME '.' NAME 234 | . NAME '.' NAME '.' NAME 254 parameter → . ':' NAME NAME shift, and go to state 68 STRING shift, and go to state 69 INTNUM shift, and go to state 70 APPROXNUM shift, and go to state 71 AMMSC shift, and go to state 72 '+' shift, and go to state 73 '-' shift, and go to state 74 NULLX shift, and go to state 275 USER shift, and go to state 76 '(' shift, and go to state 77 ':' shift, and go to state 78 scalar_exp go to state 276 atom go to state 83 parameter_ref go to state 84 function_ref go to state 85 literal go to state 86 column_ref go to state 87 parameter go to state 88

state 211

36 view_def → CREATE VIEW . table opt_column_commalist AS query_spec opt_with_check_option 230 table → . NAME 231 | . NAME '.' NAME NAME shift, and go to state 52 table go to state 277

state 212

44 privileges → ALL . PRIVILEGES 45 | ALL . [ON] PRIVILEGES shift, and go to state 278 $default reduce using rule 45 (privileges)

state 213

51 operation → DELETE . $default reduce using rule 51 (operation)

state 214

50 operation → INSERT . $default reduce using rule 50 (operation)

state 215

39 opt_column_commalist → . [ON, ','] 40 | . '(' column_commalist ')' 53 operation → REFERENCES . opt_column_commalist '(' shift, and go to state 109 $default reduce using rule 39 (opt_column_commalist) opt_column_commalist go to state 279

state 216

49 operation → SELECT . $default reduce using rule 49 (operation)

state 217

39 opt_column_commalist → . [ON, ','] 40 | . '(' column_commalist ')' 52 operation → UPDATE . opt_column_commalist '(' shift, and go to state 109 $default reduce using rule 39 (opt_column_commalist) opt_column_commalist go to state 280

state 218

41 privilege_def → GRANT privileges . ON table TO grantee_commalist opt_with_grant_option ON shift, and go to state 281

state 219

46 privileges → operation_commalist . [ON] 48 operation_commalist → operation_commalist . ',' operation ',' shift, and go to state 282 $default reduce using rule 46 (privileges)

state 220

47 operation_commalist → operation . $default reduce using rule 47 (operation_commalist)

state 221

8 schema_element_list → schema_element_list schema_element . $default reduce using rule 8 (schema_element_list)

state 222

33 table_constraint_def → CHECK '(' . search_condition ')' 169 search_condition → . search_condition OR search_condition 170 | . search_condition AND search_condition 171 | . NOT search_condition 172 | . '(' search_condition ')' 173 | . predicate 174 predicate → . comparison_predicate 175 | . between_predicate 176 | . like_predicate 177 | . test_for_null 178 | . in_predicate 179 | . all_or_any_predicate 180 | . existence_test 181 comparison_predicate → . scalar_exp COMPARISON scalar_exp 182 | . scalar_exp COMPARISON subquery 183 between_predicate → . scalar_exp NOT BETWEEN scalar_exp AND scalar_exp 184 | . scalar_exp BETWEEN scalar_exp AND scalar_exp 185 like_predicate → . scalar_exp NOT LIKE atom opt_escape 186 | . scalar_exp LIKE atom opt_escape 189 test_for_null → . column_ref IS NOT NULLX 190 | . column_ref IS NULLX 191 in_predicate → . scalar_exp NOT IN '(' subquery ')' 192 | . scalar_exp IN '(' subquery ')' 193 | . scalar_exp NOT IN '(' atom_commalist ')' 194 | . scalar_exp IN '(' atom_commalist ')' 197 all_or_any_predicate → . scalar_exp COMPARISON any_all_some subquery 201 existence_test → . EXISTS subquery 203 scalar_exp → . scalar_exp '+' scalar_exp 204 | . scalar_exp '-' scalar_exp 205 | . scalar_exp '*' scalar_exp 206 | . scalar_exp '/' scalar_exp 207 | . '+' scalar_exp 208 | . '-' scalar_exp 209 | . atom 210 | . column_ref 211 | . function_ref 212 | . '(' scalar_exp ')' 217 atom → . parameter_ref 218 | . literal 219 | . USER 220 parameter_ref → . parameter 221 | . parameter parameter 222 | . parameter INDICATOR parameter 223 function_ref → . AMMSC '(' '*' ')' 224 | . AMMSC '(' DISTINCT column_ref ')' 225 | . AMMSC '(' ALL scalar_exp ')' 226 | . AMMSC '(' scalar_exp ')' 227 literal → . STRING 228 | . INTNUM 229 | . APPROXNUM 232 column_ref → . NAME 233 | . NAME '.' NAME 234 | . NAME '.' NAME '.' NAME 254 parameter → . ':' NAME NAME shift, and go to state 68 STRING shift, and go to state 69 INTNUM shift, and go to state 70 APPROXNUM shift, and go to state 71 AMMSC shift, and go to state 72 NOT shift, and go to state 162 '+' shift, and go to state 73 '-' shift, and go to state 74 EXISTS shift, and go to state 164 USER shift, and go to state 76 '(' shift, and go to state 165 ':' shift, and go to state 78 search_condition go to state 283 predicate go to state 167 comparison_predicate go to state 168 between_predicate go to state 169 like_predicate go to state 170 test_for_null go to state 171 in_predicate go to state 172 all_or_any_predicate go to state 173 existence_test go to state 174 scalar_exp go to state 175 atom go to state 83 parameter_ref go to state 84 function_ref go to state 85 literal go to state 86 column_ref go to state 176 parameter go to state 88

state 223

31 table_constraint_def → FOREIGN KEY . '(' column_commalist ')' REFERENCES table 32 | FOREIGN KEY . '(' column_commalist ')' REFERENCES table '(' column_commalist ')' '(' shift, and go to state 284

state 224

30 table_constraint_def → PRIMARY KEY . '(' column_commalist ')' '(' shift, and go to state 285

state 225

29 table_constraint_def → UNIQUE '(' . column_commalist ')' 34 column_commalist → . column 35 | . column_commalist ',' column 251 column → . NAME NAME shift, and go to state 137 column_commalist go to state 286 column go to state 179

state 226

12 base_table_def → CREATE TABLE table '(' base_table_element_commalist ')' . $default reduce using rule 12 (base_table_def)

state 227

14 base_table_element_commalist → base_table_element_commalist ',' . base_table_element 15 base_table_element → . column_def 16 | . table_constraint_def 17 column_def → . column data_type column_def_opt_list 29 table_constraint_def → . UNIQUE '(' column_commalist ')' 30 | . PRIMARY KEY '(' column_commalist ')' 31 | . FOREIGN KEY '(' column_commalist ')' REFERENCES table 32 | . FOREIGN KEY '(' column_commalist ')' REFERENCES table '(' column_commalist ')' 33 | . CHECK '(' search_condition ')' 251 column → . NAME NAME shift, and go to state 137 CHECK shift, and go to state 153 FOREIGN shift, and go to state 154 PRIMARY shift, and go to state 155 UNIQUE shift, and go to state 156 base_table_element go to state 287 column_def go to state 159 table_constraint_def go to state 160 column go to state 161

state 228

235 data_type → CHARACTER . [NOT, CHECK, DEFAULT, REFERENCES, SQLCODE, ';', ')', ',', ':'] 236 | CHARACTER . '(' INTNUM ')' '(' shift, and go to state 288 $default reduce using rule 235 (data_type)

state 229

242 data_type → DECIMAL . [NOT, CHECK, DEFAULT, REFERENCES, SQLCODE, ';', ')', ',', ':'] 243 | DECIMAL . '(' INTNUM ')' 244 | DECIMAL . '(' INTNUM ',' INTNUM ')' '(' shift, and go to state 289 $default reduce using rule 242 (data_type)

state 230

250 data_type → DOUBLE . PRECISION PRECISION shift, and go to state 290

state 231

247 data_type → FLOAT . [NOT, CHECK, DEFAULT, REFERENCES, SQLCODE, ';', ')', ',', ':'] 248 | FLOAT . '(' INTNUM ')' '(' shift, and go to state 291 $default reduce using rule 247 (data_type)

state 232

245 data_type → INTEGER . $default reduce using rule 245 (data_type)

state 233

239 data_type → NUMERIC . [NOT, CHECK, DEFAULT, REFERENCES, SQLCODE, ';', ')', ',', ':'] 240 | NUMERIC . '(' INTNUM ')' 241 | NUMERIC . '(' INTNUM ',' INTNUM ')' '(' shift, and go to state 292 $default reduce using rule 239 (data_type)

state 234

249 data_type → REAL . $default reduce using rule 249 (data_type)

state 235

246 data_type → SMALLINT . $default reduce using rule 246 (data_type)

state 236

237 data_type → VARCHAR . [NOT, CHECK, DEFAULT, REFERENCES, SQLCODE, ';', ')', ',', ':'] 238 | VARCHAR . '(' INTNUM ')' '(' shift, and go to state 293 $default reduce using rule 237 (data_type)

state 237

17 column_def → column data_type . column_def_opt_list 18 column_def_opt_list → . 19 | . column_def_opt_list column_def_opt $default reduce using rule 18 (column_def_opt_list) column_def_opt_list go to state 294

state 238

169 search_condition → search_condition . OR search_condition 170 | search_condition . AND search_condition 171 | NOT search_condition . [OR, AND, CLOSE, COMMIT, CREATE, CROSS, DECLARE, DELETE, FETCH, GRANT, GROUP, HAVING, INNER, INSERT, JOIN, ON, OPEN, ORDER, PROCEDURE, ROLLBACK, SELECT, UNION, UPDATE, WHERE, WITH, ';', '(', ')', ','] $default reduce using rule 171 (search_condition) Conflict between rule 171 and token OR resolved as reduce (OR < NOT). Conflict between rule 171 and token AND resolved as reduce (AND < NOT).

state 239

107 delete_statement_positioned → DELETE FROM table WHERE CURRENT OF . cursor 252 cursor → . NAME NAME shift, and go to state 36 cursor go to state 295

state 240

202 subquery → '(' . SELECT opt_all_distinct selection table_exp ')' SELECT shift, and go to state 296

state 241

201 existence_test → EXISTS subquery . $default reduce using rule 201 (existence_test)

state 242

169 search_condition → search_condition . OR search_condition 170 | search_condition . AND search_condition 172 | '(' search_condition . ')' OR shift, and go to state 244 AND shift, and go to state 245 ')' shift, and go to state 297

state 243

181 comparison_predicate → scalar_exp . COMPARISON scalar_exp 182 | scalar_exp . COMPARISON subquery 183 between_predicate → scalar_exp . NOT BETWEEN scalar_exp AND scalar_exp 184 | scalar_exp . BETWEEN scalar_exp AND scalar_exp 185 like_predicate → scalar_exp . NOT LIKE atom opt_escape 186 | scalar_exp . LIKE atom opt_escape 191 in_predicate → scalar_exp . NOT IN '(' subquery ')' 192 | scalar_exp . IN '(' subquery ')' 193 | scalar_exp . NOT IN '(' atom_commalist ')' 194 | scalar_exp . IN '(' atom_commalist ')' 197 all_or_any_predicate → scalar_exp . COMPARISON any_all_some subquery 203 scalar_exp → scalar_exp . '+' scalar_exp 204 | scalar_exp . '-' scalar_exp 205 | scalar_exp . '*' scalar_exp 206 | scalar_exp . '/' scalar_exp 212 | '(' scalar_exp . ')' NOT shift, and go to state 246 COMPARISON shift, and go to state 247 '+' shift, and go to state 128 '-' shift, and go to state 129 '*' shift, and go to state 130 '/' shift, and go to state 131 BETWEEN shift, and go to state 248 IN shift, and go to state 249 LIKE shift, and go to state 250 ')' shift, and go to state 189

state 244

169 search_condition → . search_condition OR search_condition 169 | search_condition OR . search_condition 170 | . search_condition AND search_condition 171 | . NOT search_condition 172 | . '(' search_condition ')' 173 | . predicate 174 predicate → . comparison_predicate 175 | . between_predicate 176 | . like_predicate 177 | . test_for_null 178 | . in_predicate 179 | . all_or_any_predicate 180 | . existence_test 181 comparison_predicate → . scalar_exp COMPARISON scalar_exp 182 | . scalar_exp COMPARISON subquery 183 between_predicate → . scalar_exp NOT BETWEEN scalar_exp AND scalar_exp 184 | . scalar_exp BETWEEN scalar_exp AND scalar_exp 185 like_predicate → . scalar_exp NOT LIKE atom opt_escape 186 | . scalar_exp LIKE atom opt_escape 189 test_for_null → . column_ref IS NOT NULLX 190 | . column_ref IS NULLX 191 in_predicate → . scalar_exp NOT IN '(' subquery ')' 192 | . scalar_exp IN '(' subquery ')' 193 | . scalar_exp NOT IN '(' atom_commalist ')' 194 | . scalar_exp IN '(' atom_commalist ')' 197 all_or_any_predicate → . scalar_exp COMPARISON any_all_some subquery 201 existence_test → . EXISTS subquery 203 scalar_exp → . scalar_exp '+' scalar_exp 204 | . scalar_exp '-' scalar_exp 205 | . scalar_exp '*' scalar_exp 206 | . scalar_exp '/' scalar_exp 207 | . '+' scalar_exp 208 | . '-' scalar_exp 209 | . atom 210 | . column_ref 211 | . function_ref 212 | . '(' scalar_exp ')' 217 atom → . parameter_ref 218 | . literal 219 | . USER 220 parameter_ref → . parameter 221 | . parameter parameter 222 | . parameter INDICATOR parameter 223 function_ref → . AMMSC '(' '*' ')' 224 | . AMMSC '(' DISTINCT column_ref ')' 225 | . AMMSC '(' ALL scalar_exp ')' 226 | . AMMSC '(' scalar_exp ')' 227 literal → . STRING 228 | . INTNUM 229 | . APPROXNUM 232 column_ref → . NAME 233 | . NAME '.' NAME 234 | . NAME '.' NAME '.' NAME 254 parameter → . ':' NAME NAME shift, and go to state 68 STRING shift, and go to state 69 INTNUM shift, and go to state 70 APPROXNUM shift, and go to state 71 AMMSC shift, and go to state 72 NOT shift, and go to state 162 '+' shift, and go to state 73 '-' shift, and go to state 74 EXISTS shift, and go to state 164 USER shift, and go to state 76 '(' shift, and go to state 165 ':' shift, and go to state 78 search_condition go to state 298 predicate go to state 167 comparison_predicate go to state 168 between_predicate go to state 169 like_predicate go to state 170 test_for_null go to state 171 in_predicate go to state 172 all_or_any_predicate go to state 173 existence_test go to state 174 scalar_exp go to state 175 atom go to state 83 parameter_ref go to state 84 function_ref go to state 85 literal go to state 86 column_ref go to state 176 parameter go to state 88

state 245

169 search_condition → . search_condition OR search_condition 170 | . search_condition AND search_condition 170 | search_condition AND . search_condition 171 | . NOT search_condition 172 | . '(' search_condition ')' 173 | . predicate 174 predicate → . comparison_predicate 175 | . between_predicate 176 | . like_predicate 177 | . test_for_null 178 | . in_predicate 179 | . all_or_any_predicate 180 | . existence_test 181 comparison_predicate → . scalar_exp COMPARISON scalar_exp 182 | . scalar_exp COMPARISON subquery 183 between_predicate → . scalar_exp NOT BETWEEN scalar_exp AND scalar_exp 184 | . scalar_exp BETWEEN scalar_exp AND scalar_exp 185 like_predicate → . scalar_exp NOT LIKE atom opt_escape 186 | . scalar_exp LIKE atom opt_escape 189 test_for_null → . column_ref IS NOT NULLX 190 | . column_ref IS NULLX 191 in_predicate → . scalar_exp NOT IN '(' subquery ')' 192 | . scalar_exp IN '(' subquery ')' 193 | . scalar_exp NOT IN '(' atom_commalist ')' 194 | . scalar_exp IN '(' atom_commalist ')' 197 all_or_any_predicate → . scalar_exp COMPARISON any_all_some subquery 201 existence_test → . EXISTS subquery 203 scalar_exp → . scalar_exp '+' scalar_exp 204 | . scalar_exp '-' scalar_exp 205 | . scalar_exp '*' scalar_exp 206 | . scalar_exp '/' scalar_exp 207 | . '+' scalar_exp 208 | . '-' scalar_exp 209 | . atom 210 | . column_ref 211 | . function_ref 212 | . '(' scalar_exp ')' 217 atom → . parameter_ref 218 | . literal 219 | . USER 220 parameter_ref → . parameter 221 | . parameter parameter 222 | . parameter INDICATOR parameter 223 function_ref → . AMMSC '(' '*' ')' 224 | . AMMSC '(' DISTINCT column_ref ')' 225 | . AMMSC '(' ALL scalar_exp ')' 226 | . AMMSC '(' scalar_exp ')' 227 literal → . STRING 228 | . INTNUM 229 | . APPROXNUM 232 column_ref → . NAME 233 | . NAME '.' NAME 234 | . NAME '.' NAME '.' NAME 254 parameter → . ':' NAME NAME shift, and go to state 68 STRING shift, and go to state 69 INTNUM shift, and go to state 70 APPROXNUM shift, and go to state 71 AMMSC shift, and go to state 72 NOT shift, and go to state 162 '+' shift, and go to state 73 '-' shift, and go to state 74 EXISTS shift, and go to state 164 USER shift, and go to state 76 '(' shift, and go to state 165 ':' shift, and go to state 78 search_condition go to state 299 predicate go to state 167 comparison_predicate go to state 168 between_predicate go to state 169 like_predicate go to state 170 test_for_null go to state 171 in_predicate go to state 172 all_or_any_predicate go to state 173 existence_test go to state 174 scalar_exp go to state 175 atom go to state 83 parameter_ref go to state 84 function_ref go to state 85 literal go to state 86 column_ref go to state 176 parameter go to state 88

state 246

183 between_predicate → scalar_exp NOT . BETWEEN scalar_exp AND scalar_exp 185 like_predicate → scalar_exp NOT . LIKE atom opt_escape 191 in_predicate → scalar_exp NOT . IN '(' subquery ')' 193 | scalar_exp NOT . IN '(' atom_commalist ')' BETWEEN shift, and go to state 300 IN shift, and go to state 301 LIKE shift, and go to state 302

state 247

181 comparison_predicate → scalar_exp COMPARISON . scalar_exp 182 | scalar_exp COMPARISON . subquery 197 all_or_any_predicate → scalar_exp COMPARISON . any_all_some subquery 198 any_all_some → . ANY 199 | . ALL 200 | . SOME 202 subquery → . '(' SELECT opt_all_distinct selection table_exp ')' 203 scalar_exp → . scalar_exp '+' scalar_exp 204 | . scalar_exp '-' scalar_exp 205 | . scalar_exp '*' scalar_exp 206 | . scalar_exp '/' scalar_exp 207 | . '+' scalar_exp 208 | . '-' scalar_exp 209 | . atom 210 | . column_ref 211 | . function_ref 212 | . '(' scalar_exp ')' 217 atom → . parameter_ref 218 | . literal 219 | . USER 220 parameter_ref → . parameter 221 | . parameter parameter 222 | . parameter INDICATOR parameter 223 function_ref → . AMMSC '(' '*' ')' 224 | . AMMSC '(' DISTINCT column_ref ')' 225 | . AMMSC '(' ALL scalar_exp ')' 226 | . AMMSC '(' scalar_exp ')' 227 literal → . STRING 228 | . INTNUM 229 | . APPROXNUM 232 column_ref → . NAME 233 | . NAME '.' NAME 234 | . NAME '.' NAME '.' NAME 254 parameter → . ':' NAME NAME shift, and go to state 68 STRING shift, and go to state 69 INTNUM shift, and go to state 70 APPROXNUM shift, and go to state 71 AMMSC shift, and go to state 72 '+' shift, and go to state 73 '-' shift, and go to state 74 ALL shift, and go to state 303 ANY shift, and go to state 304 SOME shift, and go to state 305 USER shift, and go to state 76 '(' shift, and go to state 306 ':' shift, and go to state 78 any_all_some go to state 307 subquery go to state 308 scalar_exp go to state 309 atom go to state 83 parameter_ref go to state 84 function_ref go to state 85 literal go to state 86 column_ref go to state 87 parameter go to state 88

state 248

184 between_predicate → scalar_exp BETWEEN . scalar_exp AND scalar_exp 203 scalar_exp → . scalar_exp '+' scalar_exp 204 | . scalar_exp '-' scalar_exp 205 | . scalar_exp '*' scalar_exp 206 | . scalar_exp '/' scalar_exp 207 | . '+' scalar_exp 208 | . '-' scalar_exp 209 | . atom 210 | . column_ref 211 | . function_ref 212 | . '(' scalar_exp ')' 217 atom → . parameter_ref 218 | . literal 219 | . USER 220 parameter_ref → . parameter 221 | . parameter parameter 222 | . parameter INDICATOR parameter 223 function_ref → . AMMSC '(' '*' ')' 224 | . AMMSC '(' DISTINCT column_ref ')' 225 | . AMMSC '(' ALL scalar_exp ')' 226 | . AMMSC '(' scalar_exp ')' 227 literal → . STRING 228 | . INTNUM 229 | . APPROXNUM 232 column_ref → . NAME 233 | . NAME '.' NAME 234 | . NAME '.' NAME '.' NAME 254 parameter → . ':' NAME NAME shift, and go to state 68 STRING shift, and go to state 69 INTNUM shift, and go to state 70 APPROXNUM shift, and go to state 71 AMMSC shift, and go to state 72 '+' shift, and go to state 73 '-' shift, and go to state 74 USER shift, and go to state 76 '(' shift, and go to state 77 ':' shift, and go to state 78 scalar_exp go to state 310 atom go to state 83 parameter_ref go to state 84 function_ref go to state 85 literal go to state 86 column_ref go to state 87 parameter go to state 88

state 249

192 in_predicate → scalar_exp IN . '(' subquery ')' 194 | scalar_exp IN . '(' atom_commalist ')' '(' shift, and go to state 311

state 250

186 like_predicate → scalar_exp LIKE . atom opt_escape 217 atom → . parameter_ref 218 | . literal 219 | . USER 220 parameter_ref → . parameter 221 | . parameter parameter 222 | . parameter INDICATOR parameter 227 literal → . STRING 228 | . INTNUM 229 | . APPROXNUM 254 parameter → . ':' NAME STRING shift, and go to state 69 INTNUM shift, and go to state 70 APPROXNUM shift, and go to state 71 USER shift, and go to state 76 ':' shift, and go to state 78 atom go to state 312 parameter_ref go to state 84 literal go to state 86 parameter go to state 88

state 251

189 test_for_null → column_ref IS . NOT NULLX 190 | column_ref IS . NULLX NOT shift, and go to state 313 NULLX shift, and go to state 314

state 252

133 target_commalist → target_commalist ',' target . $default reduce using rule 133 (target_commalist)

state 253

40 opt_column_commalist → '(' column_commalist ')' . $default reduce using rule 40 (opt_column_commalist)

state 254

35 column_commalist → column_commalist ',' . column 251 column → . NAME NAME shift, and go to state 137 column go to state 315

state 255

111 values_or_query_spec → VALUES '(' . insert_atom_commalist ')' 113 insert_atom_commalist → . insert_atom 114 | . insert_atom_commalist ',' insert_atom 115 insert_atom → . atom 116 | . NULLX 217 atom → . parameter_ref 218 | . literal 219 | . USER 220 parameter_ref → . parameter 221 | . parameter parameter 222 | . parameter INDICATOR parameter 227 literal → . STRING 228 | . INTNUM 229 | . APPROXNUM 254 parameter → . ':' NAME STRING shift, and go to state 69 INTNUM shift, and go to state 70 APPROXNUM shift, and go to state 71 NULLX shift, and go to state 316 USER shift, and go to state 76 ':' shift, and go to state 78 insert_atom_commalist go to state 317 insert_atom go to state 318 atom go to state 319 parameter_ref go to state 84 literal go to state 86 parameter go to state 88

state 256

59 module_def → MODULE opt_module LANGUAGE lang AUTHORIZATION user . opt_cursor_def_list procedure_def_list 68 opt_cursor_def_list → . [PROCEDURE] 69 | . cursor_def_list 70 cursor_def_list → . cursor_def 71 | . cursor_def_list cursor_def 72 cursor_def → . DECLARE cursor CURSOR FOR query_exp opt_order_by_clause DECLARE shift, and go to state 320 $default reduce using rule 68 (opt_cursor_def_list) opt_cursor_def_list go to state 321 cursor_def_list go to state 322 cursor_def go to state 323

state 257

234 column_ref → NAME '.' NAME '.' . NAME NAME shift, and go to state 324

state 258

223 function_ref → AMMSC '(' '*' ')' . $default reduce using rule 223 (function_ref)

state 259

203 scalar_exp → scalar_exp . '+' scalar_exp 204 | scalar_exp . '-' scalar_exp 205 | scalar_exp . '*' scalar_exp 206 | scalar_exp . '/' scalar_exp 225 function_ref → AMMSC '(' ALL scalar_exp . ')' '+' shift, and go to state 128 '-' shift, and go to state 129 '*' shift, and go to state 130 '/' shift, and go to state 131 ')' shift, and go to state 325

state 260

224 function_ref → AMMSC '(' DISTINCT column_ref . ')' ')' shift, and go to state 326

state 261

226 function_ref → AMMSC '(' scalar_exp ')' . $default reduce using rule 226 (function_ref)

state 262

155 cross_join → table_ref . CROSS JOIN table_ref 156 qualified_join → table_ref . join_type JOIN table_ref join_spec 157 join_type → . [JOIN] 158 | . INNER CROSS shift, and go to state 265 INNER shift, and go to state 266 $default reduce using rule 157 (join_type) join_type go to state 267

state 263

151 table_ref → joined_table . [CROSS, INNER, JOIN] 154 joined_table → '(' joined_table . ')' ')' shift, and go to state 327 $default reduce using rule 151 (table_ref)

state 264

148 table_ref_commalist → table_ref_commalist ',' . table_ref 149 table_ref → . table 150 | . table range_variable 151 | . joined_table 152 joined_table → . cross_join 153 | . qualified_join 154 | . '(' joined_table ')' 155 cross_join → . table_ref CROSS JOIN table_ref 156 qualified_join → . table_ref join_type JOIN table_ref join_spec 230 table → . NAME 231 | . NAME '.' NAME NAME shift, and go to state 52 '(' shift, and go to state 190 table_ref go to state 328 joined_table go to state 193 cross_join go to state 194 qualified_join go to state 195 table go to state 196

state 265

155 cross_join → table_ref CROSS . JOIN table_ref JOIN shift, and go to state 329

state 266

158 join_type → INNER . $default reduce using rule 158 (join_type)

state 267

156 qualified_join → table_ref join_type . JOIN table_ref join_spec JOIN shift, and go to state 330

state 268

256 range_variable → NAME . $default reduce using rule 256 (range_variable)

state 269

150 table_ref → table range_variable . $default reduce using rule 150 (table_ref)

state 270

119 select_statement → SELECT opt_all_distinct selection INTO target_commalist table_exp . $default reduce using rule 119 (select_statement)

state 271

164 opt_group_by_clause → GROUP . BY column_ref_commalist BY shift, and go to state 331

state 272

145 table_exp → from_clause opt_where_clause opt_group_by_clause . opt_having_clause opt_order_by_clause 167 opt_having_clause → . [CLOSE, COMMIT, CREATE, DECLARE, DELETE, FETCH, GRANT, INSERT, OPEN, ORDER, PROCEDURE, ROLLBACK, SELECT, UNION, UPDATE, WITH, ';', '(', ')'] 168 | . HAVING search_condition HAVING shift, and go to state 332 $default reduce using rule 167 (opt_having_clause) opt_having_clause go to state 333

state 273

125 update_statement_positioned → UPDATE table SET assignment_commalist WHERE CURRENT . OF cursor OF shift, and go to state 334

state 274

128 assignment_commalist → assignment_commalist ',' assignment . $default reduce using rule 128 (assignment_commalist)

state 275

130 assignment → column '=' NULLX . $default reduce using rule 130 (assignment)

state 276

129 assignment → column '=' scalar_exp . [CLOSE, COMMIT, CREATE, DELETE, FETCH, INSERT, OPEN, PROCEDURE, ROLLBACK, SELECT, UPDATE, WHERE, ';', '(', ','] 203 scalar_exp → scalar_exp . '+' scalar_exp 204 | scalar_exp . '-' scalar_exp 205 | scalar_exp . '*' scalar_exp 206 | scalar_exp . '/' scalar_exp '+' shift, and go to state 128 '-' shift, and go to state 129 '*' shift, and go to state 130 '/' shift, and go to state 131 $default reduce using rule 129 (assignment)

state 277

36 view_def → CREATE VIEW table . opt_column_commalist AS query_spec opt_with_check_option 39 opt_column_commalist → . [AS] 40 | . '(' column_commalist ')' '(' shift, and go to state 109 $default reduce using rule 39 (opt_column_commalist) opt_column_commalist go to state 335

state 278

44 privileges → ALL PRIVILEGES . $default reduce using rule 44 (privileges)

state 279

53 operation → REFERENCES opt_column_commalist . $default reduce using rule 53 (operation)

state 280

52 operation → UPDATE opt_column_commalist . $default reduce using rule 52 (operation)

state 281

41 privilege_def → GRANT privileges ON . table TO grantee_commalist opt_with_grant_option 230 table → . NAME 231 | . NAME '.' NAME NAME shift, and go to state 52 table go to state 336

state 282

48 operation_commalist → operation_commalist ',' . operation 49 operation → . SELECT 50 | . INSERT 51 | . DELETE 52 | . UPDATE opt_column_commalist 53 | . REFERENCES opt_column_commalist DELETE shift, and go to state 213 INSERT shift, and go to state 214 REFERENCES shift, and go to state 215 SELECT shift, and go to state 216 UPDATE shift, and go to state 217 operation go to state 337

state 283

33 table_constraint_def → CHECK '(' search_condition . ')' 169 search_condition → search_condition . OR search_condition 170 | search_condition . AND search_condition OR shift, and go to state 244 AND shift, and go to state 245 ')' shift, and go to state 338

state 284

31 table_constraint_def → FOREIGN KEY '(' . column_commalist ')' REFERENCES table 32 | FOREIGN KEY '(' . column_commalist ')' REFERENCES table '(' column_commalist ')' 34 column_commalist → . column 35 | . column_commalist ',' column 251 column → . NAME NAME shift, and go to state 137 column_commalist go to state 339 column go to state 179

state 285

30 table_constraint_def → PRIMARY KEY '(' . column_commalist ')' 34 column_commalist → . column 35 | . column_commalist ',' column 251 column → . NAME NAME shift, and go to state 137 column_commalist go to state 340 column go to state 179

state 286

29 table_constraint_def → UNIQUE '(' column_commalist . ')' 35 column_commalist → column_commalist . ',' column ')' shift, and go to state 341 ',' shift, and go to state 254

state 287

14 base_table_element_commalist → base_table_element_commalist ',' base_table_element . $default reduce using rule 14 (base_table_element_commalist)

state 288

236 data_type → CHARACTER '(' . INTNUM ')' INTNUM shift, and go to state 342

state 289

243 data_type → DECIMAL '(' . INTNUM ')' 244 | DECIMAL '(' . INTNUM ',' INTNUM ')' INTNUM shift, and go to state 343

state 290

250 data_type → DOUBLE PRECISION . $default reduce using rule 250 (data_type)

state 291

248 data_type → FLOAT '(' . INTNUM ')' INTNUM shift, and go to state 344

state 292

240 data_type → NUMERIC '(' . INTNUM ')' 241 | NUMERIC '(' . INTNUM ',' INTNUM ')' INTNUM shift, and go to state 345

state 293

238 data_type → VARCHAR '(' . INTNUM ')' INTNUM shift, and go to state 346

state 294

17 column_def → column data_type column_def_opt_list . [')', ','] 19 column_def_opt_list → column_def_opt_list . column_def_opt 20 column_def_opt → . NOT NULLX 21 | . NOT NULLX UNIQUE 22 | . NOT NULLX PRIMARY KEY 23 | . DEFAULT literal 24 | . DEFAULT NULLX 25 | . DEFAULT USER 26 | . CHECK '(' search_condition ')' 27 | . REFERENCES table 28 | . REFERENCES table '(' column_commalist ')' NOT shift, and go to state 347 CHECK shift, and go to state 348 DEFAULT shift, and go to state 349 REFERENCES shift, and go to state 350 $default reduce using rule 17 (column_def) column_def_opt go to state 351

state 295

107 delete_statement_positioned → DELETE FROM table WHERE CURRENT OF cursor . $default reduce using rule 107 (delete_statement_positioned)

state 296

122 opt_all_distinct → . [NAME, STRING, INTNUM, APPROXNUM, AMMSC, '+', '-', '*', USER, '(', ':'] 123 | . ALL 124 | . DISTINCT 202 subquery → '(' SELECT . opt_all_distinct selection table_exp ')' ALL shift, and go to state 49 DISTINCT shift, and go to state 50 $default reduce using rule 122 (opt_all_distinct) opt_all_distinct go to state 352

state 297

172 search_condition → '(' search_condition ')' . $default reduce using rule 172 (search_condition)

state 298

169 search_condition → search_condition . OR search_condition 169 | search_condition OR search_condition . [OR, CLOSE, COMMIT, CREATE, CROSS, DECLARE, DELETE, FETCH, GRANT, GROUP, HAVING, INNER, INSERT, JOIN, ON, OPEN, ORDER, PROCEDURE, ROLLBACK, SELECT, UNION, UPDATE, WHERE, WITH, ';', '(', ')', ','] 170 | search_condition . AND search_condition AND shift, and go to state 245 $default reduce using rule 169 (search_condition) Conflict between rule 169 and token OR resolved as reduce (%left OR). Conflict between rule 169 and token AND resolved as shift (OR < AND).

state 299

169 search_condition → search_condition . OR search_condition 170 | search_condition . AND search_condition 170 | search_condition AND search_condition . [OR, AND, CLOSE, COMMIT, CREATE, CROSS, DECLARE, DELETE, FETCH, GRANT, GROUP, HAVING, INNER, INSERT, JOIN, ON, OPEN, ORDER, PROCEDURE, ROLLBACK, SELECT, UNION, UPDATE, WHERE, WITH, ';', '(', ')', ','] $default reduce using rule 170 (search_condition) Conflict between rule 170 and token OR resolved as reduce (OR < AND). Conflict between rule 170 and token AND resolved as reduce (%left AND).

state 300

183 between_predicate → scalar_exp NOT BETWEEN . scalar_exp AND scalar_exp 203 scalar_exp → . scalar_exp '+' scalar_exp 204 | . scalar_exp '-' scalar_exp 205 | . scalar_exp '*' scalar_exp 206 | . scalar_exp '/' scalar_exp 207 | . '+' scalar_exp 208 | . '-' scalar_exp 209 | . atom 210 | . column_ref 211 | . function_ref 212 | . '(' scalar_exp ')' 217 atom → . parameter_ref 218 | . literal 219 | . USER 220 parameter_ref → . parameter 221 | . parameter parameter 222 | . parameter INDICATOR parameter 223 function_ref → . AMMSC '(' '*' ')' 224 | . AMMSC '(' DISTINCT column_ref ')' 225 | . AMMSC '(' ALL scalar_exp ')' 226 | . AMMSC '(' scalar_exp ')' 227 literal → . STRING 228 | . INTNUM 229 | . APPROXNUM 232 column_ref → . NAME 233 | . NAME '.' NAME 234 | . NAME '.' NAME '.' NAME 254 parameter → . ':' NAME NAME shift, and go to state 68 STRING shift, and go to state 69 INTNUM shift, and go to state 70 APPROXNUM shift, and go to state 71 AMMSC shift, and go to state 72 '+' shift, and go to state 73 '-' shift, and go to state 74 USER shift, and go to state 76 '(' shift, and go to state 77 ':' shift, and go to state 78 scalar_exp go to state 353 atom go to state 83 parameter_ref go to state 84 function_ref go to state 85 literal go to state 86 column_ref go to state 87 parameter go to state 88

state 301

191 in_predicate → scalar_exp NOT IN . '(' subquery ')' 193 | scalar_exp NOT IN . '(' atom_commalist ')' '(' shift, and go to state 354

state 302

185 like_predicate → scalar_exp NOT LIKE . atom opt_escape 217 atom → . parameter_ref 218 | . literal 219 | . USER 220 parameter_ref → . parameter 221 | . parameter parameter 222 | . parameter INDICATOR parameter 227 literal → . STRING 228 | . INTNUM 229 | . APPROXNUM 254 parameter → . ':' NAME STRING shift, and go to state 69 INTNUM shift, and go to state 70 APPROXNUM shift, and go to state 71 USER shift, and go to state 76 ':' shift, and go to state 78 atom go to state 355 parameter_ref go to state 84 literal go to state 86 parameter go to state 88

state 303

199 any_all_some → ALL . $default reduce using rule 199 (any_all_some)

state 304

198 any_all_some → ANY . $default reduce using rule 198 (any_all_some)

state 305

200 any_all_some → SOME . $default reduce using rule 200 (any_all_some)

state 306

202 subquery → '(' . SELECT opt_all_distinct selection table_exp ')' 203 scalar_exp → . scalar_exp '+' scalar_exp 204 | . scalar_exp '-' scalar_exp 205 | . scalar_exp '*' scalar_exp 206 | . scalar_exp '/' scalar_exp 207 | . '+' scalar_exp 208 | . '-' scalar_exp 209 | . atom 210 | . column_ref 211 | . function_ref 212 | . '(' scalar_exp ')' 212 | '(' . scalar_exp ')' 217 atom → . parameter_ref 218 | . literal 219 | . USER 220 parameter_ref → . parameter 221 | . parameter parameter 222 | . parameter INDICATOR parameter 223 function_ref → . AMMSC '(' '*' ')' 224 | . AMMSC '(' DISTINCT column_ref ')' 225 | . AMMSC '(' ALL scalar_exp ')' 226 | . AMMSC '(' scalar_exp ')' 227 literal → . STRING 228 | . INTNUM 229 | . APPROXNUM 232 column_ref → . NAME 233 | . NAME '.' NAME 234 | . NAME '.' NAME '.' NAME 254 parameter → . ':' NAME NAME shift, and go to state 68 STRING shift, and go to state 69 INTNUM shift, and go to state 70 APPROXNUM shift, and go to state 71 AMMSC shift, and go to state 72 '+' shift, and go to state 73 '-' shift, and go to state 74 SELECT shift, and go to state 296 USER shift, and go to state 76 '(' shift, and go to state 77 ':' shift, and go to state 78 scalar_exp go to state 122 atom go to state 83 parameter_ref go to state 84 function_ref go to state 85 literal go to state 86 column_ref go to state 87 parameter go to state 88

state 307

197 all_or_any_predicate → scalar_exp COMPARISON any_all_some . subquery 202 subquery → . '(' SELECT opt_all_distinct selection table_exp ')' '(' shift, and go to state 240 subquery go to state 356

state 308

182 comparison_predicate → scalar_exp COMPARISON subquery . $default reduce using rule 182 (comparison_predicate)

state 309

181 comparison_predicate → scalar_exp COMPARISON scalar_exp . [OR, AND, CLOSE, COMMIT, CREATE, CROSS, DECLARE, DELETE, FETCH, GRANT, GROUP, HAVING, INNER, INSERT, JOIN, ON, OPEN, ORDER, PROCEDURE, ROLLBACK, SELECT, UNION, UPDATE, WHERE, WITH, ';', '(', ')', ','] 203 scalar_exp → scalar_exp . '+' scalar_exp 204 | scalar_exp . '-' scalar_exp 205 | scalar_exp . '*' scalar_exp 206 | scalar_exp . '/' scalar_exp '+' shift, and go to state 128 '-' shift, and go to state 129 '*' shift, and go to state 130 '/' shift, and go to state 131 $default reduce using rule 181 (comparison_predicate)

state 310

184 between_predicate → scalar_exp BETWEEN scalar_exp . AND scalar_exp 203 scalar_exp → scalar_exp . '+' scalar_exp 204 | scalar_exp . '-' scalar_exp 205 | scalar_exp . '*' scalar_exp 206 | scalar_exp . '/' scalar_exp AND shift, and go to state 357 '+' shift, and go to state 128 '-' shift, and go to state 129 '*' shift, and go to state 130 '/' shift, and go to state 131

state 311

192 in_predicate → scalar_exp IN '(' . subquery ')' 194 | scalar_exp IN '(' . atom_commalist ')' 195 atom_commalist → . atom 196 | . atom_commalist ',' atom 202 subquery → . '(' SELECT opt_all_distinct selection table_exp ')' 217 atom → . parameter_ref 218 | . literal 219 | . USER 220 parameter_ref → . parameter 221 | . parameter parameter 222 | . parameter INDICATOR parameter 227 literal → . STRING 228 | . INTNUM 229 | . APPROXNUM 254 parameter → . ':' NAME STRING shift, and go to state 69 INTNUM shift, and go to state 70 APPROXNUM shift, and go to state 71 USER shift, and go to state 76 '(' shift, and go to state 240 ':' shift, and go to state 78 atom_commalist go to state 358 subquery go to state 359 atom go to state 360 parameter_ref go to state 84 literal go to state 86 parameter go to state 88

state 312

186 like_predicate → scalar_exp LIKE atom . opt_escape 187 opt_escape → . [OR, AND, CLOSE, COMMIT, CREATE, CROSS, DECLARE, DELETE, FETCH, GRANT, GROUP, HAVING, INNER, INSERT, JOIN, ON, OPEN, ORDER, PROCEDURE, ROLLBACK, SELECT, UNION, UPDATE, WHERE, WITH, ';', '(', ')', ','] 188 | . ESCAPE atom ESCAPE shift, and go to state 361 $default reduce using rule 187 (opt_escape) opt_escape go to state 362

state 313

189 test_for_null → column_ref IS NOT . NULLX NULLX shift, and go to state 363

state 314

190 test_for_null → column_ref IS NULLX . $default reduce using rule 190 (test_for_null)

state 315

35 column_commalist → column_commalist ',' column . $default reduce using rule 35 (column_commalist)

state 316

116 insert_atom → NULLX . $default reduce using rule 116 (insert_atom)

state 317

111 values_or_query_spec → VALUES '(' insert_atom_commalist . ')' 114 insert_atom_commalist → insert_atom_commalist . ',' insert_atom ')' shift, and go to state 364 ',' shift, and go to state 365

state 318

113 insert_atom_commalist → insert_atom . $default reduce using rule 113 (insert_atom_commalist)

state 319

115 insert_atom → atom . $default reduce using rule 115 (insert_atom)

state 320

72 cursor_def → DECLARE . cursor CURSOR FOR query_exp opt_order_by_clause 252 cursor → . NAME NAME shift, and go to state 36 cursor go to state 366

state 321

59 module_def → MODULE opt_module LANGUAGE lang AUTHORIZATION user opt_cursor_def_list . procedure_def_list 82 procedure_def_list → . procedure_def 83 | . procedure_def_list procedure_def 84 procedure_def → . PROCEDURE procedure parameter_def_list ';' manipulative_statement_list PROCEDURE shift, and go to state 367 procedure_def_list go to state 368 procedure_def go to state 369

state 322

69 opt_cursor_def_list → cursor_def_list . [PROCEDURE] 71 cursor_def_list → cursor_def_list . cursor_def 72 cursor_def → . DECLARE cursor CURSOR FOR query_exp opt_order_by_clause DECLARE shift, and go to state 320 $default reduce using rule 69 (opt_cursor_def_list) cursor_def go to state 370

state 323

70 cursor_def_list → cursor_def . $default reduce using rule 70 (cursor_def_list)

state 324

234 column_ref → NAME '.' NAME '.' NAME . $default reduce using rule 234 (column_ref)

state 325

225 function_ref → AMMSC '(' ALL scalar_exp ')' . $default reduce using rule 225 (function_ref)

state 326

224 function_ref → AMMSC '(' DISTINCT column_ref ')' . $default reduce using rule 224 (function_ref)

state 327

154 joined_table → '(' joined_table ')' . $default reduce using rule 154 (joined_table)

state 328

148 table_ref_commalist → table_ref_commalist ',' table_ref . [CLOSE, COMMIT, CREATE, DECLARE, DELETE, FETCH, GRANT, GROUP, HAVING, INSERT, OPEN, ORDER, PROCEDURE, ROLLBACK, SELECT, UNION, UPDATE, WHERE, WITH, ';', '(', ')', ','] 155 cross_join → table_ref . CROSS JOIN table_ref 156 qualified_join → table_ref . join_type JOIN table_ref join_spec 157 join_type → . [JOIN] 158 | . INNER CROSS shift, and go to state 265 INNER shift, and go to state 266 JOIN reduce using rule 157 (join_type) $default reduce using rule 148 (table_ref_commalist) join_type go to state 267

state 329

149 table_ref → . table 150 | . table range_variable 151 | . joined_table 152 joined_table → . cross_join 153 | . qualified_join 154 | . '(' joined_table ')' 155 cross_join → . table_ref CROSS JOIN table_ref 155 | table_ref CROSS JOIN . table_ref 156 qualified_join → . table_ref join_type JOIN table_ref join_spec 230 table → . NAME 231 | . NAME '.' NAME NAME shift, and go to state 52 '(' shift, and go to state 190 table_ref go to state 371 joined_table go to state 193 cross_join go to state 194 qualified_join go to state 195 table go to state 196

state 330

149 table_ref → . table 150 | . table range_variable 151 | . joined_table 152 joined_table → . cross_join 153 | . qualified_join 154 | . '(' joined_table ')' 155 cross_join → . table_ref CROSS JOIN table_ref 156 qualified_join → . table_ref join_type JOIN table_ref join_spec 156 | table_ref join_type JOIN . table_ref join_spec 230 table → . NAME 231 | . NAME '.' NAME NAME shift, and go to state 52 '(' shift, and go to state 190 table_ref go to state 372 joined_table go to state 193 cross_join go to state 194 qualified_join go to state 195 table go to state 196

state 331

164 opt_group_by_clause → GROUP BY . column_ref_commalist 165 column_ref_commalist → . column_ref 166 | . column_ref_commalist ',' column_ref 232 column_ref → . NAME 233 | . NAME '.' NAME 234 | . NAME '.' NAME '.' NAME NAME shift, and go to state 68 column_ref_commalist go to state 373 column_ref go to state 374

state 332

168 opt_having_clause → HAVING . search_condition 169 search_condition → . search_condition OR search_condition 170 | . search_condition AND search_condition 171 | . NOT search_condition 172 | . '(' search_condition ')' 173 | . predicate 174 predicate → . comparison_predicate 175 | . between_predicate 176 | . like_predicate 177 | . test_for_null 178 | . in_predicate 179 | . all_or_any_predicate 180 | . existence_test 181 comparison_predicate → . scalar_exp COMPARISON scalar_exp 182 | . scalar_exp COMPARISON subquery 183 between_predicate → . scalar_exp NOT BETWEEN scalar_exp AND scalar_exp 184 | . scalar_exp BETWEEN scalar_exp AND scalar_exp 185 like_predicate → . scalar_exp NOT LIKE atom opt_escape 186 | . scalar_exp LIKE atom opt_escape 189 test_for_null → . column_ref IS NOT NULLX 190 | . column_ref IS NULLX 191 in_predicate → . scalar_exp NOT IN '(' subquery ')' 192 | . scalar_exp IN '(' subquery ')' 193 | . scalar_exp NOT IN '(' atom_commalist ')' 194 | . scalar_exp IN '(' atom_commalist ')' 197 all_or_any_predicate → . scalar_exp COMPARISON any_all_some subquery 201 existence_test → . EXISTS subquery 203 scalar_exp → . scalar_exp '+' scalar_exp 204 | . scalar_exp '-' scalar_exp 205 | . scalar_exp '*' scalar_exp 206 | . scalar_exp '/' scalar_exp 207 | . '+' scalar_exp 208 | . '-' scalar_exp 209 | . atom 210 | . column_ref 211 | . function_ref 212 | . '(' scalar_exp ')' 217 atom → . parameter_ref 218 | . literal 219 | . USER 220 parameter_ref → . parameter 221 | . parameter parameter 222 | . parameter INDICATOR parameter 223 function_ref → . AMMSC '(' '*' ')' 224 | . AMMSC '(' DISTINCT column_ref ')' 225 | . AMMSC '(' ALL scalar_exp ')' 226 | . AMMSC '(' scalar_exp ')' 227 literal → . STRING 228 | . INTNUM 229 | . APPROXNUM 232 column_ref → . NAME 233 | . NAME '.' NAME 234 | . NAME '.' NAME '.' NAME 254 parameter → . ':' NAME NAME shift, and go to state 68 STRING shift, and go to state 69 INTNUM shift, and go to state 70 APPROXNUM shift, and go to state 71 AMMSC shift, and go to state 72 NOT shift, and go to state 162 '+' shift, and go to state 73 '-' shift, and go to state 74 EXISTS shift, and go to state 164 USER shift, and go to state 76 '(' shift, and go to state 165 ':' shift, and go to state 78 search_condition go to state 375 predicate go to state 167 comparison_predicate go to state 168 between_predicate go to state 169 like_predicate go to state 170 test_for_null go to state 171 in_predicate go to state 172 all_or_any_predicate go to state 173 existence_test go to state 174 scalar_exp go to state 175 atom go to state 83 parameter_ref go to state 84 function_ref go to state 85 literal go to state 86 column_ref go to state 176 parameter go to state 88

state 333

73 opt_order_by_clause → . [CLOSE, COMMIT, CREATE, DECLARE, DELETE, FETCH, GRANT, INSERT, OPEN, ORDER, PROCEDURE, ROLLBACK, SELECT, UNION, UPDATE, WITH, ';', '(', ')'] 74 | . ORDER BY ordering_spec_commalist 145 table_exp → from_clause opt_where_clause opt_group_by_clause opt_having_clause . opt_order_by_clause ORDER shift, and go to state 376 ORDER [reduce using rule 73 (opt_order_by_clause)] $default reduce using rule 73 (opt_order_by_clause) opt_order_by_clause go to state 377

state 334

125 update_statement_positioned → UPDATE table SET assignment_commalist WHERE CURRENT OF . cursor 252 cursor → . NAME NAME shift, and go to state 36 cursor go to state 378

state 335

36 view_def → CREATE VIEW table opt_column_commalist . AS query_spec opt_with_check_option AS shift, and go to state 379

state 336

41 privilege_def → GRANT privileges ON table . TO grantee_commalist opt_with_grant_option TO shift, and go to state 380

state 337

48 operation_commalist → operation_commalist ',' operation . $default reduce using rule 48 (operation_commalist)

state 338

33 table_constraint_def → CHECK '(' search_condition ')' . $default reduce using rule 33 (table_constraint_def)

state 339

31 table_constraint_def → FOREIGN KEY '(' column_commalist . ')' REFERENCES table 32 | FOREIGN KEY '(' column_commalist . ')' REFERENCES table '(' column_commalist ')' 35 column_commalist → column_commalist . ',' column ')' shift, and go to state 381 ',' shift, and go to state 254

state 340

30 table_constraint_def → PRIMARY KEY '(' column_commalist . ')' 35 column_commalist → column_commalist . ',' column ')' shift, and go to state 382 ',' shift, and go to state 254

state 341

29 table_constraint_def → UNIQUE '(' column_commalist ')' . $default reduce using rule 29 (table_constraint_def)

state 342

236 data_type → CHARACTER '(' INTNUM . ')' ')' shift, and go to state 383

state 343

243 data_type → DECIMAL '(' INTNUM . ')' 244 | DECIMAL '(' INTNUM . ',' INTNUM ')' ')' shift, and go to state 384 ',' shift, and go to state 385

state 344

248 data_type → FLOAT '(' INTNUM . ')' ')' shift, and go to state 386

state 345

240 data_type → NUMERIC '(' INTNUM . ')' 241 | NUMERIC '(' INTNUM . ',' INTNUM ')' ')' shift, and go to state 387 ',' shift, and go to state 388

state 346

238 data_type → VARCHAR '(' INTNUM . ')' ')' shift, and go to state 389

state 347

20 column_def_opt → NOT . NULLX 21 | NOT . NULLX UNIQUE 22 | NOT . NULLX PRIMARY KEY NULLX shift, and go to state 390

state 348

26 column_def_opt → CHECK . '(' search_condition ')' '(' shift, and go to state 391

state 349

23 column_def_opt → DEFAULT . literal 24 | DEFAULT . NULLX 25 | DEFAULT . USER 227 literal → . STRING 228 | . INTNUM 229 | . APPROXNUM STRING shift, and go to state 69 INTNUM shift, and go to state 70 APPROXNUM shift, and go to state 71 NULLX shift, and go to state 392 USER shift, and go to state 393 literal go to state 394

state 350

27 column_def_opt → REFERENCES . table 28 | REFERENCES . table '(' column_commalist ')' 230 table → . NAME 231 | . NAME '.' NAME NAME shift, and go to state 52 table go to state 395

state 351

19 column_def_opt_list → column_def_opt_list column_def_opt . $default reduce using rule 19 (column_def_opt_list)

state 352

143 selection → . scalar_exp_commalist 144 | . '*' 202 subquery → '(' SELECT opt_all_distinct . selection table_exp ')' 203 scalar_exp → . scalar_exp '+' scalar_exp 204 | . scalar_exp '-' scalar_exp 205 | . scalar_exp '*' scalar_exp 206 | . scalar_exp '/' scalar_exp 207 | . '+' scalar_exp 208 | . '-' scalar_exp 209 | . atom 210 | . column_ref 211 | . function_ref 212 | . '(' scalar_exp ')' 213 derived_column → . scalar_exp 214 | . scalar_exp AS column_ref 215 scalar_exp_commalist → . derived_column 216 | . scalar_exp_commalist ',' derived_column 217 atom → . parameter_ref 218 | . literal 219 | . USER 220 parameter_ref → . parameter 221 | . parameter parameter 222 | . parameter INDICATOR parameter 223 function_ref → . AMMSC '(' '*' ')' 224 | . AMMSC '(' DISTINCT column_ref ')' 225 | . AMMSC '(' ALL scalar_exp ')' 226 | . AMMSC '(' scalar_exp ')' 227 literal → . STRING 228 | . INTNUM 229 | . APPROXNUM 232 column_ref → . NAME 233 | . NAME '.' NAME 234 | . NAME '.' NAME '.' NAME 254 parameter → . ':' NAME NAME shift, and go to state 68 STRING shift, and go to state 69 INTNUM shift, and go to state 70 APPROXNUM shift, and go to state 71 AMMSC shift, and go to state 72 '+' shift, and go to state 73 '-' shift, and go to state 74 '*' shift, and go to state 75 USER shift, and go to state 76 '(' shift, and go to state 77 ':' shift, and go to state 78 selection go to state 396 scalar_exp go to state 80 derived_column go to state 81 scalar_exp_commalist go to state 82 atom go to state 83 parameter_ref go to state 84 function_ref go to state 85 literal go to state 86 column_ref go to state 87 parameter go to state 88

state 353

183 between_predicate → scalar_exp NOT BETWEEN scalar_exp . AND scalar_exp 203 scalar_exp → scalar_exp . '+' scalar_exp 204 | scalar_exp . '-' scalar_exp 205 | scalar_exp . '*' scalar_exp 206 | scalar_exp . '/' scalar_exp AND shift, and go to state 397 '+' shift, and go to state 128 '-' shift, and go to state 129 '*' shift, and go to state 130 '/' shift, and go to state 131

state 354

191 in_predicate → scalar_exp NOT IN '(' . subquery ')' 193 | scalar_exp NOT IN '(' . atom_commalist ')' 195 atom_commalist → . atom 196 | . atom_commalist ',' atom 202 subquery → . '(' SELECT opt_all_distinct selection table_exp ')' 217 atom → . parameter_ref 218 | . literal 219 | . USER 220 parameter_ref → . parameter 221 | . parameter parameter 222 | . parameter INDICATOR parameter 227 literal → . STRING 228 | . INTNUM 229 | . APPROXNUM 254 parameter → . ':' NAME STRING shift, and go to state 69 INTNUM shift, and go to state 70 APPROXNUM shift, and go to state 71 USER shift, and go to state 76 '(' shift, and go to state 240 ':' shift, and go to state 78 atom_commalist go to state 398 subquery go to state 399 atom go to state 360 parameter_ref go to state 84 literal go to state 86 parameter go to state 88

state 355

185 like_predicate → scalar_exp NOT LIKE atom . opt_escape 187 opt_escape → . [OR, AND, CLOSE, COMMIT, CREATE, CROSS, DECLARE, DELETE, FETCH, GRANT, GROUP, HAVING, INNER, INSERT, JOIN, ON, OPEN, ORDER, PROCEDURE, ROLLBACK, SELECT, UNION, UPDATE, WHERE, WITH, ';', '(', ')', ','] 188 | . ESCAPE atom ESCAPE shift, and go to state 361 $default reduce using rule 187 (opt_escape) opt_escape go to state 400

state 356

197 all_or_any_predicate → scalar_exp COMPARISON any_all_some subquery . $default reduce using rule 197 (all_or_any_predicate)

state 357

184 between_predicate → scalar_exp BETWEEN scalar_exp AND . scalar_exp 203 scalar_exp → . scalar_exp '+' scalar_exp 204 | . scalar_exp '-' scalar_exp 205 | . scalar_exp '*' scalar_exp 206 | . scalar_exp '/' scalar_exp 207 | . '+' scalar_exp 208 | . '-' scalar_exp 209 | . atom 210 | . column_ref 211 | . function_ref 212 | . '(' scalar_exp ')' 217 atom → . parameter_ref 218 | . literal 219 | . USER 220 parameter_ref → . parameter 221 | . parameter parameter 222 | . parameter INDICATOR parameter 223 function_ref → . AMMSC '(' '*' ')' 224 | . AMMSC '(' DISTINCT column_ref ')' 225 | . AMMSC '(' ALL scalar_exp ')' 226 | . AMMSC '(' scalar_exp ')' 227 literal → . STRING 228 | . INTNUM 229 | . APPROXNUM 232 column_ref → . NAME 233 | . NAME '.' NAME 234 | . NAME '.' NAME '.' NAME 254 parameter → . ':' NAME NAME shift, and go to state 68 STRING shift, and go to state 69 INTNUM shift, and go to state 70 APPROXNUM shift, and go to state 71 AMMSC shift, and go to state 72 '+' shift, and go to state 73 '-' shift, and go to state 74 USER shift, and go to state 76 '(' shift, and go to state 77 ':' shift, and go to state 78 scalar_exp go to state 401 atom go to state 83 parameter_ref go to state 84 function_ref go to state 85 literal go to state 86 column_ref go to state 87 parameter go to state 88

state 358

194 in_predicate → scalar_exp IN '(' atom_commalist . ')' 196 atom_commalist → atom_commalist . ',' atom ')' shift, and go to state 402 ',' shift, and go to state 403

state 359

192 in_predicate → scalar_exp IN '(' subquery . ')' ')' shift, and go to state 404

state 360

195 atom_commalist → atom . $default reduce using rule 195 (atom_commalist)

state 361

188 opt_escape → ESCAPE . atom 217 atom → . parameter_ref 218 | . literal 219 | . USER 220 parameter_ref → . parameter 221 | . parameter parameter 222 | . parameter INDICATOR parameter 227 literal → . STRING 228 | . INTNUM 229 | . APPROXNUM 254 parameter → . ':' NAME STRING shift, and go to state 69 INTNUM shift, and go to state 70 APPROXNUM shift, and go to state 71 USER shift, and go to state 76 ':' shift, and go to state 78 atom go to state 405 parameter_ref go to state 84 literal go to state 86 parameter go to state 88

state 362

186 like_predicate → scalar_exp LIKE atom opt_escape . $default reduce using rule 186 (like_predicate)

state 363

189 test_for_null → column_ref IS NOT NULLX . $default reduce using rule 189 (test_for_null)

state 364

111 values_or_query_spec → VALUES '(' insert_atom_commalist ')' . $default reduce using rule 111 (values_or_query_spec)

state 365

114 insert_atom_commalist → insert_atom_commalist ',' . insert_atom 115 insert_atom → . atom 116 | . NULLX 217 atom → . parameter_ref 218 | . literal 219 | . USER 220 parameter_ref → . parameter 221 | . parameter parameter 222 | . parameter INDICATOR parameter 227 literal → . STRING 228 | . INTNUM 229 | . APPROXNUM 254 parameter → . ':' NAME STRING shift, and go to state 69 INTNUM shift, and go to state 70 APPROXNUM shift, and go to state 71 NULLX shift, and go to state 316 USER shift, and go to state 76 ':' shift, and go to state 78 insert_atom go to state 406 atom go to state 319 parameter_ref go to state 84 literal go to state 86 parameter go to state 88

state 366

72 cursor_def → DECLARE cursor . CURSOR FOR query_exp opt_order_by_clause CURSOR shift, and go to state 407

state 367

84 procedure_def → PROCEDURE . procedure parameter_def_list ';' manipulative_statement_list 255 procedure → . NAME NAME shift, and go to state 408 procedure go to state 409

state 368

59 module_def → MODULE opt_module LANGUAGE lang AUTHORIZATION user opt_cursor_def_list procedure_def_list . [';'] 83 procedure_def_list → procedure_def_list . procedure_def 84 procedure_def → . PROCEDURE procedure parameter_def_list ';' manipulative_statement_list PROCEDURE shift, and go to state 367 $default reduce using rule 59 (module_def) procedure_def go to state 410

state 369

82 procedure_def_list → procedure_def . $default reduce using rule 82 (procedure_def_list)

state 370

71 cursor_def_list → cursor_def_list cursor_def . $default reduce using rule 71 (cursor_def_list)

state 371

155 cross_join → table_ref . CROSS JOIN table_ref 155 | table_ref CROSS JOIN table_ref . [CLOSE, COMMIT, CREATE, CROSS, DECLARE, DELETE, FETCH, GRANT, GROUP, HAVING, INNER, INSERT, JOIN, ON, OPEN, ORDER, PROCEDURE, ROLLBACK, SELECT, UNION, UPDATE, WHERE, WITH, ';', '(', ')', ','] 156 qualified_join → table_ref . join_type JOIN table_ref join_spec 157 join_type → . [JOIN] 158 | . INNER CROSS shift, and go to state 265 INNER shift, and go to state 266 CROSS [reduce using rule 155 (cross_join)] INNER [reduce using rule 155 (cross_join)] JOIN reduce using rule 155 (cross_join) JOIN [reduce using rule 157 (join_type)] $default reduce using rule 155 (cross_join) join_type go to state 267

state 372

155 cross_join → table_ref . CROSS JOIN table_ref 156 qualified_join → table_ref . join_type JOIN table_ref join_spec 156 | table_ref join_type JOIN table_ref . join_spec 157 join_type → . [JOIN] 158 | . INNER 159 join_spec → . [CLOSE, COMMIT, CREATE, CROSS, DECLARE, DELETE, FETCH, GRANT, GROUP, HAVING, INNER, INSERT, JOIN, ON, OPEN, ORDER, PROCEDURE, ROLLBACK, SELECT, UNION, UPDATE, WHERE, WITH, ';', '(', ')', ','] 160 | . join_condition 161 join_condition → . ON search_condition CROSS shift, and go to state 265 INNER shift, and go to state 266 ON shift, and go to state 411 CROSS [reduce using rule 159 (join_spec)] INNER [reduce using rule 159 (join_spec)] JOIN reduce using rule 157 (join_type) JOIN [reduce using rule 159 (join_spec)] ON [reduce using rule 159 (join_spec)] $default reduce using rule 159 (join_spec) join_type go to state 267 join_spec go to state 412 join_condition go to state 413

state 373

164 opt_group_by_clause → GROUP BY column_ref_commalist . [CLOSE, COMMIT, CREATE, DECLARE, DELETE, FETCH, GRANT, HAVING, INSERT, OPEN, ORDER, PROCEDURE, ROLLBACK, SELECT, UNION, UPDATE, WITH, ';', '(', ')'] 166 column_ref_commalist → column_ref_commalist . ',' column_ref ',' shift, and go to state 414 $default reduce using rule 164 (opt_group_by_clause)

state 374

165 column_ref_commalist → column_ref . $default reduce using rule 165 (column_ref_commalist)

state 375

168 opt_having_clause → HAVING search_condition . [CLOSE, COMMIT, CREATE, DECLARE, DELETE, FETCH, GRANT, INSERT, OPEN, ORDER, PROCEDURE, ROLLBACK, SELECT, UNION, UPDATE, WITH, ';', '(', ')'] 169 search_condition → search_condition . OR search_condition 170 | search_condition . AND search_condition OR shift, and go to state 244 AND shift, and go to state 245 $default reduce using rule 168 (opt_having_clause)

state 376

74 opt_order_by_clause → ORDER . BY ordering_spec_commalist BY shift, and go to state 415

state 377

145 table_exp → from_clause opt_where_clause opt_group_by_clause opt_having_clause opt_order_by_clause . $default reduce using rule 145 (table_exp)

state 378

125 update_statement_positioned → UPDATE table SET assignment_commalist WHERE CURRENT OF cursor . $default reduce using rule 125 (update_statement_positioned)

state 379

36 view_def → CREATE VIEW table opt_column_commalist AS . query_spec opt_with_check_option 142 query_spec → . SELECT opt_all_distinct selection table_exp SELECT shift, and go to state 56 query_spec go to state 416

state 380

41 privilege_def → GRANT privileges ON table TO . grantee_commalist opt_with_grant_option 54 grantee_commalist → . grantee 55 | . grantee_commalist ',' grantee 56 grantee → . PUBLIC 57 | . user 257 user → . NAME NAME shift, and go to state 100 PUBLIC shift, and go to state 417 grantee_commalist go to state 418 grantee go to state 419 user go to state 420

state 381

31 table_constraint_def → FOREIGN KEY '(' column_commalist ')' . REFERENCES table 32 | FOREIGN KEY '(' column_commalist ')' . REFERENCES table '(' column_commalist ')' REFERENCES shift, and go to state 421

state 382

30 table_constraint_def → PRIMARY KEY '(' column_commalist ')' . $default reduce using rule 30 (table_constraint_def)

state 383

236 data_type → CHARACTER '(' INTNUM ')' . $default reduce using rule 236 (data_type)

state 384

243 data_type → DECIMAL '(' INTNUM ')' . $default reduce using rule 243 (data_type)

state 385

244 data_type → DECIMAL '(' INTNUM ',' . INTNUM ')' INTNUM shift, and go to state 422

state 386

248 data_type → FLOAT '(' INTNUM ')' . $default reduce using rule 248 (data_type)

state 387

240 data_type → NUMERIC '(' INTNUM ')' . $default reduce using rule 240 (data_type)

state 388

241 data_type → NUMERIC '(' INTNUM ',' . INTNUM ')' INTNUM shift, and go to state 423

state 389

238 data_type → VARCHAR '(' INTNUM ')' . $default reduce using rule 238 (data_type)

state 390

20 column_def_opt → NOT NULLX . [NOT, CHECK, DEFAULT, REFERENCES, ')', ','] 21 | NOT NULLX . UNIQUE 22 | NOT NULLX . PRIMARY KEY PRIMARY shift, and go to state 424 UNIQUE shift, and go to state 425 $default reduce using rule 20 (column_def_opt)

state 391

26 column_def_opt → CHECK '(' . search_condition ')' 169 search_condition → . search_condition OR search_condition 170 | . search_condition AND search_condition 171 | . NOT search_condition 172 | . '(' search_condition ')' 173 | . predicate 174 predicate → . comparison_predicate 175 | . between_predicate 176 | . like_predicate 177 | . test_for_null 178 | . in_predicate 179 | . all_or_any_predicate 180 | . existence_test 181 comparison_predicate → . scalar_exp COMPARISON scalar_exp 182 | . scalar_exp COMPARISON subquery 183 between_predicate → . scalar_exp NOT BETWEEN scalar_exp AND scalar_exp 184 | . scalar_exp BETWEEN scalar_exp AND scalar_exp 185 like_predicate → . scalar_exp NOT LIKE atom opt_escape 186 | . scalar_exp LIKE atom opt_escape 189 test_for_null → . column_ref IS NOT NULLX 190 | . column_ref IS NULLX 191 in_predicate → . scalar_exp NOT IN '(' subquery ')' 192 | . scalar_exp IN '(' subquery ')' 193 | . scalar_exp NOT IN '(' atom_commalist ')' 194 | . scalar_exp IN '(' atom_commalist ')' 197 all_or_any_predicate → . scalar_exp COMPARISON any_all_some subquery 201 existence_test → . EXISTS subquery 203 scalar_exp → . scalar_exp '+' scalar_exp 204 | . scalar_exp '-' scalar_exp 205 | . scalar_exp '*' scalar_exp 206 | . scalar_exp '/' scalar_exp 207 | . '+' scalar_exp 208 | . '-' scalar_exp 209 | . atom 210 | . column_ref 211 | . function_ref 212 | . '(' scalar_exp ')' 217 atom → . parameter_ref 218 | . literal 219 | . USER 220 parameter_ref → . parameter 221 | . parameter parameter 222 | . parameter INDICATOR parameter 223 function_ref → . AMMSC '(' '*' ')' 224 | . AMMSC '(' DISTINCT column_ref ')' 225 | . AMMSC '(' ALL scalar_exp ')' 226 | . AMMSC '(' scalar_exp ')' 227 literal → . STRING 228 | . INTNUM 229 | . APPROXNUM 232 column_ref → . NAME 233 | . NAME '.' NAME 234 | . NAME '.' NAME '.' NAME 254 parameter → . ':' NAME NAME shift, and go to state 68 STRING shift, and go to state 69 INTNUM shift, and go to state 70 APPROXNUM shift, and go to state 71 AMMSC shift, and go to state 72 NOT shift, and go to state 162 '+' shift, and go to state 73 '-' shift, and go to state 74 EXISTS shift, and go to state 164 USER shift, and go to state 76 '(' shift, and go to state 165 ':' shift, and go to state 78 search_condition go to state 426 predicate go to state 167 comparison_predicate go to state 168 between_predicate go to state 169 like_predicate go to state 170 test_for_null go to state 171 in_predicate go to state 172 all_or_any_predicate go to state 173 existence_test go to state 174 scalar_exp go to state 175 atom go to state 83 parameter_ref go to state 84 function_ref go to state 85 literal go to state 86 column_ref go to state 176 parameter go to state 88

state 392

24 column_def_opt → DEFAULT NULLX . $default reduce using rule 24 (column_def_opt)

state 393

25 column_def_opt → DEFAULT USER . $default reduce using rule 25 (column_def_opt)

state 394

23 column_def_opt → DEFAULT literal . $default reduce using rule 23 (column_def_opt)

state 395

27 column_def_opt → REFERENCES table . [NOT, CHECK, DEFAULT, REFERENCES, ')', ','] 28 | REFERENCES table . '(' column_commalist ')' '(' shift, and go to state 427 $default reduce using rule 27 (column_def_opt)

state 396

145 table_exp → . from_clause opt_where_clause opt_group_by_clause opt_having_clause opt_order_by_clause 146 from_clause → . FROM table_ref_commalist 202 subquery → '(' SELECT opt_all_distinct selection . table_exp ')' FROM shift, and go to state 124 table_exp go to state 428 from_clause go to state 127

state 397

183 between_predicate → scalar_exp NOT BETWEEN scalar_exp AND . scalar_exp 203 scalar_exp → . scalar_exp '+' scalar_exp 204 | . scalar_exp '-' scalar_exp 205 | . scalar_exp '*' scalar_exp 206 | . scalar_exp '/' scalar_exp 207 | . '+' scalar_exp 208 | . '-' scalar_exp 209 | . atom 210 | . column_ref 211 | . function_ref 212 | . '(' scalar_exp ')' 217 atom → . parameter_ref 218 | . literal 219 | . USER 220 parameter_ref → . parameter 221 | . parameter parameter 222 | . parameter INDICATOR parameter 223 function_ref → . AMMSC '(' '*' ')' 224 | . AMMSC '(' DISTINCT column_ref ')' 225 | . AMMSC '(' ALL scalar_exp ')' 226 | . AMMSC '(' scalar_exp ')' 227 literal → . STRING 228 | . INTNUM 229 | . APPROXNUM 232 column_ref → . NAME 233 | . NAME '.' NAME 234 | . NAME '.' NAME '.' NAME 254 parameter → . ':' NAME NAME shift, and go to state 68 STRING shift, and go to state 69 INTNUM shift, and go to state 70 APPROXNUM shift, and go to state 71 AMMSC shift, and go to state 72 '+' shift, and go to state 73 '-' shift, and go to state 74 USER shift, and go to state 76 '(' shift, and go to state 77 ':' shift, and go to state 78 scalar_exp go to state 429 atom go to state 83 parameter_ref go to state 84 function_ref go to state 85 literal go to state 86 column_ref go to state 87 parameter go to state 88

state 398

193 in_predicate → scalar_exp NOT IN '(' atom_commalist . ')' 196 atom_commalist → atom_commalist . ',' atom ')' shift, and go to state 430 ',' shift, and go to state 403

state 399

191 in_predicate → scalar_exp NOT IN '(' subquery . ')' ')' shift, and go to state 431

state 400

185 like_predicate → scalar_exp NOT LIKE atom opt_escape . $default reduce using rule 185 (like_predicate)

state 401

184 between_predicate → scalar_exp BETWEEN scalar_exp AND scalar_exp . [OR, AND, CLOSE, COMMIT, CREATE, CROSS, DECLARE, DELETE, FETCH, GRANT, GROUP, HAVING, INNER, INSERT, JOIN, ON, OPEN, ORDER, PROCEDURE, ROLLBACK, SELECT, UNION, UPDATE, WHERE, WITH, ';', '(', ')', ','] 203 scalar_exp → scalar_exp . '+' scalar_exp 204 | scalar_exp . '-' scalar_exp 205 | scalar_exp . '*' scalar_exp 206 | scalar_exp . '/' scalar_exp '+' shift, and go to state 128 '-' shift, and go to state 129 '*' shift, and go to state 130 '/' shift, and go to state 131 $default reduce using rule 184 (between_predicate)

state 402

194 in_predicate → scalar_exp IN '(' atom_commalist ')' . $default reduce using rule 194 (in_predicate)

state 403

196 atom_commalist → atom_commalist ',' . atom 217 atom → . parameter_ref 218 | . literal 219 | . USER 220 parameter_ref → . parameter 221 | . parameter parameter 222 | . parameter INDICATOR parameter 227 literal → . STRING 228 | . INTNUM 229 | . APPROXNUM 254 parameter → . ':' NAME STRING shift, and go to state 69 INTNUM shift, and go to state 70 APPROXNUM shift, and go to state 71 USER shift, and go to state 76 ':' shift, and go to state 78 atom go to state 432 parameter_ref go to state 84 literal go to state 86 parameter go to state 88

state 404

192 in_predicate → scalar_exp IN '(' subquery ')' . $default reduce using rule 192 (in_predicate)

state 405

188 opt_escape → ESCAPE atom . $default reduce using rule 188 (opt_escape)

state 406

114 insert_atom_commalist → insert_atom_commalist ',' insert_atom . $default reduce using rule 114 (insert_atom_commalist)

state 407

72 cursor_def → DECLARE cursor CURSOR . FOR query_exp opt_order_by_clause FOR shift, and go to state 433

state 408

255 procedure → NAME . $default reduce using rule 255 (procedure)

state 409

84 procedure_def → PROCEDURE procedure . parameter_def_list ';' manipulative_statement_list 87 parameter_def_list → . parameter_def 88 | . parameter_def_list parameter_def 89 parameter_def → . parameter data_type 90 | . SQLCODE 254 parameter → . ':' NAME SQLCODE shift, and go to state 434 ':' shift, and go to state 78 parameter_def_list go to state 435 parameter_def go to state 436 parameter go to state 437

state 410

83 procedure_def_list → procedure_def_list procedure_def . $default reduce using rule 83 (procedure_def_list)

state 411

161 join_condition → ON . search_condition 169 search_condition → . search_condition OR search_condition 170 | . search_condition AND search_condition 171 | . NOT search_condition 172 | . '(' search_condition ')' 173 | . predicate 174 predicate → . comparison_predicate 175 | . between_predicate 176 | . like_predicate 177 | . test_for_null 178 | . in_predicate 179 | . all_or_any_predicate 180 | . existence_test 181 comparison_predicate → . scalar_exp COMPARISON scalar_exp 182 | . scalar_exp COMPARISON subquery 183 between_predicate → . scalar_exp NOT BETWEEN scalar_exp AND scalar_exp 184 | . scalar_exp BETWEEN scalar_exp AND scalar_exp 185 like_predicate → . scalar_exp NOT LIKE atom opt_escape 186 | . scalar_exp LIKE atom opt_escape 189 test_for_null → . column_ref IS NOT NULLX 190 | . column_ref IS NULLX 191 in_predicate → . scalar_exp NOT IN '(' subquery ')' 192 | . scalar_exp IN '(' subquery ')' 193 | . scalar_exp NOT IN '(' atom_commalist ')' 194 | . scalar_exp IN '(' atom_commalist ')' 197 all_or_any_predicate → . scalar_exp COMPARISON any_all_some subquery 201 existence_test → . EXISTS subquery 203 scalar_exp → . scalar_exp '+' scalar_exp 204 | . scalar_exp '-' scalar_exp 205 | . scalar_exp '*' scalar_exp 206 | . scalar_exp '/' scalar_exp 207 | . '+' scalar_exp 208 | . '-' scalar_exp 209 | . atom 210 | . column_ref 211 | . function_ref 212 | . '(' scalar_exp ')' 217 atom → . parameter_ref 218 | . literal 219 | . USER 220 parameter_ref → . parameter 221 | . parameter parameter 222 | . parameter INDICATOR parameter 223 function_ref → . AMMSC '(' '*' ')' 224 | . AMMSC '(' DISTINCT column_ref ')' 225 | . AMMSC '(' ALL scalar_exp ')' 226 | . AMMSC '(' scalar_exp ')' 227 literal → . STRING 228 | . INTNUM 229 | . APPROXNUM 232 column_ref → . NAME 233 | . NAME '.' NAME 234 | . NAME '.' NAME '.' NAME 254 parameter → . ':' NAME NAME shift, and go to state 68 STRING shift, and go to state 69 INTNUM shift, and go to state 70 APPROXNUM shift, and go to state 71 AMMSC shift, and go to state 72 NOT shift, and go to state 162 '+' shift, and go to state 73 '-' shift, and go to state 74 EXISTS shift, and go to state 164 USER shift, and go to state 76 '(' shift, and go to state 165 ':' shift, and go to state 78 search_condition go to state 438 predicate go to state 167 comparison_predicate go to state 168 between_predicate go to state 169 like_predicate go to state 170 test_for_null go to state 171 in_predicate go to state 172 all_or_any_predicate go to state 173 existence_test go to state 174 scalar_exp go to state 175 atom go to state 83 parameter_ref go to state 84 function_ref go to state 85 literal go to state 86 column_ref go to state 176 parameter go to state 88

state 412

156 qualified_join → table_ref join_type JOIN table_ref join_spec . $default reduce using rule 156 (qualified_join)

state 413

160 join_spec → join_condition . $default reduce using rule 160 (join_spec)

state 414

166 column_ref_commalist → column_ref_commalist ',' . column_ref 232 column_ref → . NAME 233 | . NAME '.' NAME 234 | . NAME '.' NAME '.' NAME NAME shift, and go to state 68 column_ref go to state 439

state 415

74 opt_order_by_clause → ORDER BY . ordering_spec_commalist 75 ordering_spec_commalist → . ordering_spec 76 | . ordering_spec_commalist ',' ordering_spec 77 ordering_spec → . INTNUM opt_asc_desc 78 | . column_ref opt_asc_desc 232 column_ref → . NAME 233 | . NAME '.' NAME 234 | . NAME '.' NAME '.' NAME NAME shift, and go to state 68 INTNUM shift, and go to state 440 ordering_spec_commalist go to state 441 ordering_spec go to state 442 column_ref go to state 443

state 416

36 view_def → CREATE VIEW table opt_column_commalist AS query_spec . opt_with_check_option 37 opt_with_check_option → . [CREATE, GRANT, ';'] 38 | . WITH CHECK OPTION WITH shift, and go to state 444 $default reduce using rule 37 (opt_with_check_option) opt_with_check_option go to state 445

state 417

56 grantee → PUBLIC . $default reduce using rule 56 (grantee)

state 418

41 privilege_def → GRANT privileges ON table TO grantee_commalist . opt_with_grant_option 42 opt_with_grant_option → . [CREATE, GRANT, ';'] 43 | . WITH GRANT OPTION 55 grantee_commalist → grantee_commalist . ',' grantee WITH shift, and go to state 446 ',' shift, and go to state 447 $default reduce using rule 42 (opt_with_grant_option) opt_with_grant_option go to state 448

state 419

54 grantee_commalist → grantee . $default reduce using rule 54 (grantee_commalist)

state 420

57 grantee → user . $default reduce using rule 57 (grantee)

state 421

31 table_constraint_def → FOREIGN KEY '(' column_commalist ')' REFERENCES . table 32 | FOREIGN KEY '(' column_commalist ')' REFERENCES . table '(' column_commalist ')' 230 table → . NAME 231 | . NAME '.' NAME NAME shift, and go to state 52 table go to state 449

state 422

244 data_type → DECIMAL '(' INTNUM ',' INTNUM . ')' ')' shift, and go to state 450

state 423

241 data_type → NUMERIC '(' INTNUM ',' INTNUM . ')' ')' shift, and go to state 451

state 424

22 column_def_opt → NOT NULLX PRIMARY . KEY KEY shift, and go to state 452

state 425

21 column_def_opt → NOT NULLX UNIQUE . $default reduce using rule 21 (column_def_opt)

state 426

26 column_def_opt → CHECK '(' search_condition . ')' 169 search_condition → search_condition . OR search_condition 170 | search_condition . AND search_condition OR shift, and go to state 244 AND shift, and go to state 245 ')' shift, and go to state 453

state 427

28 column_def_opt → REFERENCES table '(' . column_commalist ')' 34 column_commalist → . column 35 | . column_commalist ',' column 251 column → . NAME NAME shift, and go to state 137 column_commalist go to state 454 column go to state 179

state 428

202 subquery → '(' SELECT opt_all_distinct selection table_exp . ')' ')' shift, and go to state 455

state 429

183 between_predicate → scalar_exp NOT BETWEEN scalar_exp AND scalar_exp . [OR, AND, CLOSE, COMMIT, CREATE, CROSS, DECLARE, DELETE, FETCH, GRANT, GROUP, HAVING, INNER, INSERT, JOIN, ON, OPEN, ORDER, PROCEDURE, ROLLBACK, SELECT, UNION, UPDATE, WHERE, WITH, ';', '(', ')', ','] 203 scalar_exp → scalar_exp . '+' scalar_exp 204 | scalar_exp . '-' scalar_exp 205 | scalar_exp . '*' scalar_exp 206 | scalar_exp . '/' scalar_exp '+' shift, and go to state 128 '-' shift, and go to state 129 '*' shift, and go to state 130 '/' shift, and go to state 131 $default reduce using rule 183 (between_predicate)

state 430

193 in_predicate → scalar_exp NOT IN '(' atom_commalist ')' . $default reduce using rule 193 (in_predicate)

state 431

191 in_predicate → scalar_exp NOT IN '(' subquery ')' . $default reduce using rule 191 (in_predicate)

state 432

196 atom_commalist → atom_commalist ',' atom . $default reduce using rule 196 (atom_commalist)

state 433

72 cursor_def → DECLARE cursor CURSOR FOR . query_exp opt_order_by_clause 137 query_exp → . query_term 138 | . query_exp UNION query_term 139 | . query_exp UNION ALL query_term 140 query_term → . query_spec 141 | . '(' query_exp ')' 142 query_spec → . SELECT opt_all_distinct selection table_exp SELECT shift, and go to state 56 '(' shift, and go to state 13 query_exp go to state 456 query_term go to state 34 query_spec go to state 35

state 434

90 parameter_def → SQLCODE . $default reduce using rule 90 (parameter_def)

state 435

84 procedure_def → PROCEDURE procedure parameter_def_list . ';' manipulative_statement_list 88 parameter_def_list → parameter_def_list . parameter_def 89 parameter_def → . parameter data_type 90 | . SQLCODE 254 parameter → . ':' NAME SQLCODE shift, and go to state 434 ';' shift, and go to state 457 ':' shift, and go to state 78 parameter_def go to state 458 parameter go to state 437

state 436

87 parameter_def_list → parameter_def . $default reduce using rule 87 (parameter_def_list)

state 437

89 parameter_def → parameter . data_type 235 data_type → . CHARACTER 236 | . CHARACTER '(' INTNUM ')' 237 | . VARCHAR 238 | . VARCHAR '(' INTNUM ')' 239 | . NUMERIC 240 | . NUMERIC '(' INTNUM ')' 241 | . NUMERIC '(' INTNUM ',' INTNUM ')' 242 | . DECIMAL 243 | . DECIMAL '(' INTNUM ')' 244 | . DECIMAL '(' INTNUM ',' INTNUM ')' 245 | . INTEGER 246 | . SMALLINT 247 | . FLOAT 248 | . FLOAT '(' INTNUM ')' 249 | . REAL 250 | . DOUBLE PRECISION CHARACTER shift, and go to state 228 DECIMAL shift, and go to state 229 DOUBLE shift, and go to state 230 FLOAT shift, and go to state 231 INTEGER shift, and go to state 232 NUMERIC shift, and go to state 233 REAL shift, and go to state 234 SMALLINT shift, and go to state 235 VARCHAR shift, and go to state 236 data_type go to state 459

state 438

161 join_condition → ON search_condition . [CLOSE, COMMIT, CREATE, CROSS, DECLARE, DELETE, FETCH, GRANT, GROUP, HAVING, INNER, INSERT, JOIN, ON, OPEN, ORDER, PROCEDURE, ROLLBACK, SELECT, UNION, UPDATE, WHERE, WITH, ';', '(', ')', ','] 169 search_condition → search_condition . OR search_condition 170 | search_condition . AND search_condition OR shift, and go to state 244 AND shift, and go to state 245 $default reduce using rule 161 (join_condition)

state 439

166 column_ref_commalist → column_ref_commalist ',' column_ref . $default reduce using rule 166 (column_ref_commalist)

state 440

77 ordering_spec → INTNUM . opt_asc_desc 79 opt_asc_desc → . [CLOSE, COMMIT, CREATE, DECLARE, DELETE, FETCH, GRANT, INSERT, OPEN, ORDER, PROCEDURE, ROLLBACK, SELECT, UNION, UPDATE, WITH, ';', '(', ')', ','] 80 | . ASC 81 | . DESC ASC shift, and go to state 460 DESC shift, and go to state 461 $default reduce using rule 79 (opt_asc_desc) opt_asc_desc go to state 462

state 441

74 opt_order_by_clause → ORDER BY ordering_spec_commalist . [CLOSE, COMMIT, CREATE, DECLARE, DELETE, FETCH, GRANT, INSERT, OPEN, ORDER, PROCEDURE, ROLLBACK, SELECT, UNION, UPDATE, WITH, ';', '(', ')'] 76 ordering_spec_commalist → ordering_spec_commalist . ',' ordering_spec ',' shift, and go to state 463 $default reduce using rule 74 (opt_order_by_clause)

state 442

75 ordering_spec_commalist → ordering_spec . $default reduce using rule 75 (ordering_spec_commalist)

state 443

78 ordering_spec → column_ref . opt_asc_desc 79 opt_asc_desc → . [CLOSE, COMMIT, CREATE, DECLARE, DELETE, FETCH, GRANT, INSERT, OPEN, ORDER, PROCEDURE, ROLLBACK, SELECT, UNION, UPDATE, WITH, ';', '(', ')', ','] 80 | . ASC 81 | . DESC ASC shift, and go to state 460 DESC shift, and go to state 461 $default reduce using rule 79 (opt_asc_desc) opt_asc_desc go to state 464

state 444

38 opt_with_check_option → WITH . CHECK OPTION CHECK shift, and go to state 465

state 445

36 view_def → CREATE VIEW table opt_column_commalist AS query_spec opt_with_check_option . $default reduce using rule 36 (view_def)

state 446

43 opt_with_grant_option → WITH . GRANT OPTION GRANT shift, and go to state 466

state 447

55 grantee_commalist → grantee_commalist ',' . grantee 56 grantee → . PUBLIC 57 | . user 257 user → . NAME NAME shift, and go to state 100 PUBLIC shift, and go to state 417 grantee go to state 467 user go to state 420

state 448

41 privilege_def → GRANT privileges ON table TO grantee_commalist opt_with_grant_option . $default reduce using rule 41 (privilege_def)

state 449

31 table_constraint_def → FOREIGN KEY '(' column_commalist ')' REFERENCES table . [')', ','] 32 | FOREIGN KEY '(' column_commalist ')' REFERENCES table . '(' column_commalist ')' '(' shift, and go to state 468 $default reduce using rule 31 (table_constraint_def)

state 450

244 data_type → DECIMAL '(' INTNUM ',' INTNUM ')' . $default reduce using rule 244 (data_type)

state 451

241 data_type → NUMERIC '(' INTNUM ',' INTNUM ')' . $default reduce using rule 241 (data_type)

state 452

22 column_def_opt → NOT NULLX PRIMARY KEY . $default reduce using rule 22 (column_def_opt)

state 453

26 column_def_opt → CHECK '(' search_condition ')' . $default reduce using rule 26 (column_def_opt)

state 454

28 column_def_opt → REFERENCES table '(' column_commalist . ')' 35 column_commalist → column_commalist . ',' column ')' shift, and go to state 469 ',' shift, and go to state 254

state 455

202 subquery → '(' SELECT opt_all_distinct selection table_exp ')' . $default reduce using rule 202 (subquery)

state 456

72 cursor_def → DECLARE cursor CURSOR FOR query_exp . opt_order_by_clause 73 opt_order_by_clause → . [DECLARE, PROCEDURE] 74 | . ORDER BY ordering_spec_commalist 138 query_exp → query_exp . UNION query_term 139 | query_exp . UNION ALL query_term ORDER shift, and go to state 376 UNION shift, and go to state 61 $default reduce using rule 73 (opt_order_by_clause) opt_order_by_clause go to state 470

state 457

12 base_table_def → . CREATE TABLE table '(' base_table_element_commalist ')' 84 procedure_def → PROCEDURE procedure parameter_def_list ';' . manipulative_statement_list 85 manipulative_statement_list → . manipulative_statement 86 | . manipulative_statement_list manipulative_statement 92 manipulative_statement → . close_statement 93 | . commit_statement 94 | . delete_statement_positioned 95 | . delete_statement_searched 96 | . fetch_statement 97 | . insert_statement 98 | . open_statement 99 | . rollback_statement 100 | . select_statement 101 | . query_statement 102 | . update_statement_positioned 103 | . update_statement_searched 104 | . create_statement 105 close_statement → . CLOSE cursor 106 commit_statement → . COMMIT WORK 107 delete_statement_positioned → . DELETE FROM table WHERE CURRENT OF cursor 108 delete_statement_searched → . DELETE FROM table opt_where_clause 109 fetch_statement → . FETCH cursor INTO target_commalist 110 insert_statement → . INSERT INTO table opt_column_commalist values_or_query_spec 117 open_statement → . OPEN cursor 118 rollback_statement → . ROLLBACK WORK 119 select_statement → . SELECT opt_all_distinct selection INTO target_commalist table_exp 120 query_statement → . query_exp 121 create_statement → . base_table_def 125 update_statement_positioned → . UPDATE table SET assignment_commalist WHERE CURRENT OF cursor 131 update_statement_searched → . UPDATE table SET assignment_commalist opt_where_clause 137 query_exp → . query_term 138 | . query_exp UNION query_term 139 | . query_exp UNION ALL query_term 140 query_term → . query_spec 141 | . '(' query_exp ')' 142 query_spec → . SELECT opt_all_distinct selection table_exp CLOSE shift, and go to state 1 COMMIT shift, and go to state 2 CREATE shift, and go to state 471 DELETE shift, and go to state 4 FETCH shift, and go to state 5 INSERT shift, and go to state 6 OPEN shift, and go to state 8 ROLLBACK shift, and go to state 9 SELECT shift, and go to state 10 UPDATE shift, and go to state 11 '(' shift, and go to state 13 base_table_def go to state 17 manipulative_statement_list go to state 472 manipulative_statement go to state 473 close_statement go to state 20 commit_statement go to state 21 delete_statement_positioned go to state 22 delete_statement_searched go to state 23 fetch_statement go to state 24 insert_statement go to state 25 open_statement go to state 26 rollback_statement go to state 27 select_statement go to state 28 query_statement go to state 29 create_statement go to state 30 update_statement_positioned go to state 31 update_statement_searched go to state 32 query_exp go to state 33 query_term go to state 34 query_spec go to state 35

state 458

88 parameter_def_list → parameter_def_list parameter_def . $default reduce using rule 88 (parameter_def_list)

state 459

89 parameter_def → parameter data_type . $default reduce using rule 89 (parameter_def)

state 460

80 opt_asc_desc → ASC . $default reduce using rule 80 (opt_asc_desc)

state 461

81 opt_asc_desc → DESC . $default reduce using rule 81 (opt_asc_desc)

state 462

77 ordering_spec → INTNUM opt_asc_desc . $default reduce using rule 77 (ordering_spec)

state 463

76 ordering_spec_commalist → ordering_spec_commalist ',' . ordering_spec 77 ordering_spec → . INTNUM opt_asc_desc 78 | . column_ref opt_asc_desc 232 column_ref → . NAME 233 | . NAME '.' NAME 234 | . NAME '.' NAME '.' NAME NAME shift, and go to state 68 INTNUM shift, and go to state 440 ordering_spec go to state 474 column_ref go to state 443

state 464

78 ordering_spec → column_ref opt_asc_desc . $default reduce using rule 78 (ordering_spec)

state 465

38 opt_with_check_option → WITH CHECK . OPTION OPTION shift, and go to state 475

state 466

43 opt_with_grant_option → WITH GRANT . OPTION OPTION shift, and go to state 476

state 467

55 grantee_commalist → grantee_commalist ',' grantee . $default reduce using rule 55 (grantee_commalist)

state 468

32 table_constraint_def → FOREIGN KEY '(' column_commalist ')' REFERENCES table '(' . column_commalist ')' 34 column_commalist → . column 35 | . column_commalist ',' column 251 column → . NAME NAME shift, and go to state 137 column_commalist go to state 477 column go to state 179

state 469

28 column_def_opt → REFERENCES table '(' column_commalist ')' . $default reduce using rule 28 (column_def_opt)

state 470

72 cursor_def → DECLARE cursor CURSOR FOR query_exp opt_order_by_clause . $default reduce using rule 72 (cursor_def)

state 471

12 base_table_def → CREATE . TABLE table '(' base_table_element_commalist ')' TABLE shift, and go to state 40

state 472

12 base_table_def → . CREATE TABLE table '(' base_table_element_commalist ')' 84 procedure_def → PROCEDURE procedure parameter_def_list ';' manipulative_statement_list . [PROCEDURE, ';'] 86 manipulative_statement_list → manipulative_statement_list . manipulative_statement 92 manipulative_statement → . close_statement 93 | . commit_statement 94 | . delete_statement_positioned 95 | . delete_statement_searched 96 | . fetch_statement 97 | . insert_statement 98 | . open_statement 99 | . rollback_statement 100 | . select_statement 101 | . query_statement 102 | . update_statement_positioned 103 | . update_statement_searched 104 | . create_statement 105 close_statement → . CLOSE cursor 106 commit_statement → . COMMIT WORK 107 delete_statement_positioned → . DELETE FROM table WHERE CURRENT OF cursor 108 delete_statement_searched → . DELETE FROM table opt_where_clause 109 fetch_statement → . FETCH cursor INTO target_commalist 110 insert_statement → . INSERT INTO table opt_column_commalist values_or_query_spec 117 open_statement → . OPEN cursor 118 rollback_statement → . ROLLBACK WORK 119 select_statement → . SELECT opt_all_distinct selection INTO target_commalist table_exp 120 query_statement → . query_exp 121 create_statement → . base_table_def 125 update_statement_positioned → . UPDATE table SET assignment_commalist WHERE CURRENT OF cursor 131 update_statement_searched → . UPDATE table SET assignment_commalist opt_where_clause 137 query_exp → . query_term 138 | . query_exp UNION query_term 139 | . query_exp UNION ALL query_term 140 query_term → . query_spec 141 | . '(' query_exp ')' 142 query_spec → . SELECT opt_all_distinct selection table_exp CLOSE shift, and go to state 1 COMMIT shift, and go to state 2 CREATE shift, and go to state 471 DELETE shift, and go to state 4 FETCH shift, and go to state 5 INSERT shift, and go to state 6 OPEN shift, and go to state 8 ROLLBACK shift, and go to state 9 SELECT shift, and go to state 10 UPDATE shift, and go to state 11 '(' shift, and go to state 13 $default reduce using rule 84 (procedure_def) base_table_def go to state 17 manipulative_statement go to state 478 close_statement go to state 20 commit_statement go to state 21 delete_statement_positioned go to state 22 delete_statement_searched go to state 23 fetch_statement go to state 24 insert_statement go to state 25 open_statement go to state 26 rollback_statement go to state 27 select_statement go to state 28 query_statement go to state 29 create_statement go to state 30 update_statement_positioned go to state 31 update_statement_searched go to state 32 query_exp go to state 33 query_term go to state 34 query_spec go to state 35

state 473

85 manipulative_statement_list → manipulative_statement . $default reduce using rule 85 (manipulative_statement_list)

state 474

76 ordering_spec_commalist → ordering_spec_commalist ',' ordering_spec . $default reduce using rule 76 (ordering_spec_commalist)

state 475

38 opt_with_check_option → WITH CHECK OPTION . $default reduce using rule 38 (opt_with_check_option)

state 476

43 opt_with_grant_option → WITH GRANT OPTION . $default reduce using rule 43 (opt_with_grant_option)

state 477

32 table_constraint_def → FOREIGN KEY '(' column_commalist ')' REFERENCES table '(' column_commalist . ')' 35 column_commalist → column_commalist . ',' column ')' shift, and go to state 479 ',' shift, and go to state 254

state 478

86 manipulative_statement_list → manipulative_statement_list manipulative_statement . $default reduce using rule 86 (manipulative_statement_list)

state 479

32 table_constraint_def → FOREIGN KEY '(' column_commalist ')' REFERENCES table '(' column_commalist ')' . $default reduce using rule 32 (table_constraint_def)

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines