Lines Matching refs:pParse

35 %extra_context {Parse *pParse}
42 sqlite3ErrorMsg(pParse, "near \"%T\": syntax error", &TOKEN);
44 sqlite3ErrorMsg(pParse, "incomplete input");
48 sqlite3ErrorMsg(pParse, "parser stack overflow");
114 static void disableLookaside(Parse *pParse){ in disableLookaside() argument
115 sqlite3 *db = pParse->db; in disableLookaside()
116 pParse->disableLookaside++; in disableLookaside()
127 Parse *pParse, in updateDeleteLimitError() argument
132 sqlite3ErrorMsg(pParse, "syntax error near \"ORDER BY\""); in updateDeleteLimitError()
134 sqlite3ErrorMsg(pParse, "syntax error near \"LIMIT\""); in updateDeleteLimitError()
136 sqlite3ExprListDelete(pParse->db, pOrderBy); in updateDeleteLimitError()
137 sqlite3ExprDelete(pParse->db, pLimit); in updateDeleteLimitError()
151 explain ::= EXPLAIN. { pParse->explain = 1; }
152 explain ::= EXPLAIN QUERY PLAN. { pParse->explain = 2; }
154 cmdx ::= cmd. { sqlite3FinishCoding(pParse); }
159 cmd ::= BEGIN transtype(Y) trans_opt. {sqlite3BeginTransaction(pParse, Y);} in transtype()
168 cmd ::= COMMIT|END(X) trans_opt. {sqlite3EndTransaction(pParse,@X);}
169 cmd ::= ROLLBACK(X) trans_opt. {sqlite3EndTransaction(pParse,@X);} in ROLLBACK()
174 sqlite3Savepoint(pParse, SAVEPOINT_BEGIN, &X); in nm()
177 sqlite3Savepoint(pParse, SAVEPOINT_RELEASE, &X); in nm()
180 sqlite3Savepoint(pParse, SAVEPOINT_ROLLBACK, &X); in nm()
187 sqlite3StartTable(pParse,&Y,&Z,T,0,0,E); in temp()
189 createkw(A) ::= CREATE(A). {disableLookaside(pParse);} in createkw()
196 temp(A) ::= TEMP. {A = pParse->db->init.busy==0;}
200 sqlite3EndTable(pParse,&X,&E,F,0); in conslist_opt()
203 sqlite3EndTable(pParse,0,0,0,S); in select()
204 sqlite3SelectDelete(pParse->db, S); in select()
216 sqlite3ErrorMsg(pParse, "unknown table option: %.*s", X.n, X.z); in table_option()
224 sqlite3ErrorMsg(pParse, "unknown table option: %.*s", X.n, X.z); in table_option()
229 columnname(A) ::= nm(A) typetoken(Y). {sqlite3AddColumn(pParse,A,Y);} in columnname()
358 ccons ::= CONSTRAINT nm(X). {pParse->constraintName = X;} in nm()
360 {sqlite3AddDefaultValue(pParse,X,A.z,&A.z[A.n]);} in scantok()
362 {sqlite3AddDefaultValue(pParse,X,A.z+1,Z.z);} in LP()
364 {sqlite3AddDefaultValue(pParse,X,A.z,&Z.z[Z.n]);} in PLUS()
366 Expr *p = sqlite3PExpr(pParse, TK_UMINUS, X, 0); in MINUS()
367 sqlite3AddDefaultValue(pParse,p,A.z,&Z.z[Z.n]); in MINUS()
370 Expr *p = tokenExpr(pParse, TK_STRING, X); in id()
375 sqlite3AddDefaultValue(pParse,p,X.z,X.z+X.n); in id()
382 ccons ::= NOT NULL onconf(R). {sqlite3AddNotNull(pParse, R);} in onconf()
384 {sqlite3AddPrimaryKey(pParse,0,R,I,Z);} in sortorder()
385 ccons ::= UNIQUE onconf(R). {sqlite3CreateIndex(pParse,0,0,0,0,R,0,0,0,0, in onconf()
387 ccons ::= CHECK LP(A) expr(X) RP(B). {sqlite3AddCheckConstraint(pParse,X,A.z,B.z);} in LP()
389 {sqlite3CreateForeignKey(pParse,0,&T,TA,R);} in nm()
390 ccons ::= defer_subclause(D). {sqlite3DeferForeignKey(pParse,D);} in defer_subclause()
391 ccons ::= COLLATE ids(C). {sqlite3AddCollateType(pParse, &C);} in ids()
394 generated ::= LP expr(E) RP. {sqlite3AddGenerated(pParse,E,0);} in expr()
395 generated ::= LP expr(E) RP ID(TYPE). {sqlite3AddGenerated(pParse,E,&TYPE);} in expr()
433 tconscomma ::= COMMA. {pParse->constraintName.n = 0;}
435 tcons ::= CONSTRAINT nm(X). {pParse->constraintName = X;}
437 {sqlite3AddPrimaryKey(pParse,X,R,I,0);}
439 {sqlite3CreateIndex(pParse,0,0,0,X,R,0,0,0,0,
442 {sqlite3AddCheckConstraint(pParse,E,A.z,B.z);}
445 sqlite3CreateForeignKey(pParse, FA, &T, TA, R);
446 sqlite3DeferForeignKey(pParse, D);
469 sqlite3DropTable(pParse, X, 0, E);
480 sqlite3CreateView(pParse, &X, &Y, &Z, C, S, T, E);
483 sqlite3DropTable(pParse, X, 1, E);
491 sqlite3Select(pParse, X, &dest);
492 sqlite3SelectDelete(pParse->db, X);
496 %destructor select {sqlite3SelectDelete(pParse->db, $$);}
498 %destructor selectnowith {sqlite3SelectDelete(pParse->db, $$);}
500 %destructor oneselect {sqlite3SelectDelete(pParse->db, $$);}
508 static void parserDoubleLinkSelect(Parse *pParse, Select *p){
521 sqlite3ErrorMsg(pParse,"%s clause should come after %s not before",
528 (mxSelect = pParse->db->aLimit[SQLITE_LIMIT_COMPOUND_SELECT])>0 &&
531 sqlite3ErrorMsg(pParse, "too many terms in compound SELECT");
539 static Select *attachWithToSelect(Parse *pParse, Select *pSelect, With *pWith){
542 parserDoubleLinkSelect(pParse, pSelect);
544 sqlite3WithDelete(pParse->db, pWith);
551 select(A) ::= WITH wqlist(W) selectnowith(X). {A = attachWithToSelect(pParse,X,W);}
553 {A = attachWithToSelect(pParse,X,W);}
558 parserDoubleLinkSelect(pParse, p);
572 parserDoubleLinkSelect(pParse, pRhs);
573 pFrom = sqlite3SrcListAppendFromTerm(pParse,0,0,0,&x,pRhs,0);
574 pRhs = sqlite3SelectNew(pParse,0,pFrom,0,0,0,0,0,0);
581 if( Y!=TK_ALL ) pParse->hasCompound = 1;
583 sqlite3SelectDelete(pParse->db, pLhs);
596 A = sqlite3SelectNew(pParse,W,X,Y,P,Q,Z,D,L);
602 A = sqlite3SelectNew(pParse,W,X,Y,P,Q,Z,D,L);
606 sqlite3WindowListDelete(pParse->db, R);
615 %destructor values {sqlite3SelectDelete(pParse->db, $$);}
617 A = sqlite3SelectNew(pParse,X,0,0,0,0,0,SF_Values,0);
621 pRight = sqlite3SelectNew(pParse,Y,0,0,0,0,0,SF_Values|SF_MultiValue,0);
646 %destructor selcollist {sqlite3ExprListDelete(pParse->db, $$);}
648 %destructor sclp {sqlite3ExprListDelete(pParse->db, $$);}
652 A = sqlite3ExprListAppend(pParse, A, X);
653 if( Y.n>0 ) sqlite3ExprListSetName(pParse, A, &Y, 1);
654 sqlite3ExprListSetSpan(pParse,A,B,Z);
657 Expr *p = sqlite3Expr(pParse->db, TK_ASTERISK, 0);
658 A = sqlite3ExprListAppend(pParse, A, p);
661 Expr *pRight = sqlite3PExpr(pParse, TK_ASTERISK, 0, 0);
662 Expr *pLeft = tokenExpr(pParse, TK_ID, X);
663 Expr *pDot = sqlite3PExpr(pParse, TK_DOT, pLeft, pRight);
664 A = sqlite3ExprListAppend(pParse,A, pDot);
677 %destructor seltablist {sqlite3SrcListDelete(pParse->db, $$);}
679 %destructor stl_prefix {sqlite3SrcListDelete(pParse->db, $$);}
681 %destructor from {sqlite3SrcListDelete(pParse->db, $$);}
688 sqlite3SrcListShiftJoinType(pParse,A);
699 A = sqlite3SrcListAppendFromTerm(pParse,A,&Y,&D,&Z,0,&N);
702 A = sqlite3SrcListAppendFromTerm(pParse,A,&Y,&D,&Z,0,&N);
703 sqlite3SrcListIndexedBy(pParse, A, &I);
706 A = sqlite3SrcListAppendFromTerm(pParse,A,&Y,&D,&Z,0,&N);
707 sqlite3SrcListFuncArgs(pParse, A, E);
711 A = sqlite3SrcListAppendFromTerm(pParse,A,0,0,&Z,S,&N);
717 A = sqlite3SrcListAppendFromTerm(pParse,A,0,0,&Z,0,&N);
736 sqlite3SrcListDelete(pParse->db, F);
739 sqlite3SrcListShiftJoinType(pParse,F);
740 pSubquery = sqlite3SelectNew(pParse,0,F,0,0,0,0,SF_NestedFrom,0);
741 A = sqlite3SrcListAppendFromTerm(pParse,A,0,0,&Z,pSubquery,&N);
751 %destructor fullname {sqlite3SrcListDelete(pParse->db, $$);}
753 A = sqlite3SrcListAppend(pParse,0,&X,0);
754 if( IN_RENAME_OBJECT && A ) sqlite3RenameTokenMap(pParse, A->a[0].zName, &X);
757 A = sqlite3SrcListAppend(pParse,0,&X,&Y);
758 if( IN_RENAME_OBJECT && A ) sqlite3RenameTokenMap(pParse, A->a[0].zName, &Y);
762 %destructor xfullname {sqlite3SrcListDelete(pParse->db, $$);}
764 {A = sqlite3SrcListAppend(pParse,0,&X,0); /*A-overwrites-X*/}
766 {A = sqlite3SrcListAppend(pParse,0,&X,&Y); /*A-overwrites-X*/}
768 A = sqlite3SrcListAppend(pParse,0,&X,&Y); /*A-overwrites-X*/
769 if( A ) A->a[0].zAlias = sqlite3NameFromToken(pParse->db, &Z);
772 A = sqlite3SrcListAppend(pParse,0,&X,0); /*A-overwrites-X*/
773 if( A ) A->a[0].zAlias = sqlite3NameFromToken(pParse->db, &Z);
779 {X = sqlite3JoinType(pParse,&A,0,0); /*X-overwrites-A*/}
781 {X = sqlite3JoinType(pParse,&A,&B,0); /*X-overwrites-A*/}
783 {X = sqlite3JoinType(pParse,&A,&B,&C);/*X-overwrites-A*/}
826 %destructor orderby_opt {sqlite3ExprListDelete(pParse->db, $$);}
833 %destructor sortlist {sqlite3ExprListDelete(pParse->db, $$);}
838 A = sqlite3ExprListAppend(pParse,A,Y);
842 A = sqlite3ExprListAppend(pParse,0,Y); /*A-overwrites-Y*/
858 %destructor groupby_opt {sqlite3ExprListDelete(pParse->db, $$);}
863 %destructor having_opt {sqlite3ExprDelete(pParse->db, $$);}
879 {A = sqlite3PExpr(pParse,TK_LIMIT,X,0);}
881 {A = sqlite3PExpr(pParse,TK_LIMIT,X,Y);}
883 {A = sqlite3PExpr(pParse,TK_LIMIT,Y,X);}
890 sqlite3SrcListIndexedBy(pParse, X, &I);
893 updateDeleteLimitError(pParse,O,L);
898 sqlite3DeleteFrom(pParse,X,W,O,L);
902 sqlite3SrcListIndexedBy(pParse, X, &I);
903 sqlite3DeleteFrom(pParse,X,W,0,0);
908 %destructor where_opt {sqlite3ExprDelete(pParse->db, $$);}
910 %destructor where_opt_ret {sqlite3ExprDelete(pParse->db, $$);}
917 {sqlite3AddReturning(pParse,X); A = 0;}
919 {sqlite3AddReturning(pParse,Y); A = X;}
926 sqlite3SrcListIndexedBy(pParse, X, &I);
932 pSubquery = sqlite3SelectNew(pParse,0,pFromClause,0,0,0,0,SF_NestedFrom,0);
935 pFromClause = sqlite3SrcListAppendFromTerm(pParse,0,0,0,&as,pSubquery,0);
937 X = sqlite3SrcListAppendList(pParse, X, pFromClause);
939 sqlite3ExprListCheckLength(pParse,Y,"set list");
942 updateDeleteLimitError(pParse,O,L);
947 sqlite3Update(pParse,X,Y,W,R,O,L,0);
952 sqlite3SrcListIndexedBy(pParse, X, &I);
953 sqlite3ExprListCheckLength(pParse,Y,"set list");
959 pSubquery = sqlite3SelectNew(pParse,0,pFromClause,0,0,0,0,SF_NestedFrom,0);
962 pFromClause = sqlite3SrcListAppendFromTerm(pParse,0,0,0,&as,pSubquery,0);
964 X = sqlite3SrcListAppendList(pParse, X, pFromClause);
966 sqlite3Update(pParse,X,Y,W,R,0,0,0);
973 %destructor setlist {sqlite3ExprListDelete(pParse->db, $$);}
976 A = sqlite3ExprListAppend(pParse, A, Y);
977 sqlite3ExprListSetName(pParse, A, &X, 1);
980 A = sqlite3ExprListAppendVector(pParse, A, X, Y);
983 A = sqlite3ExprListAppend(pParse, 0, Y);
984 sqlite3ExprListSetName(pParse, A, &X, 1);
987 A = sqlite3ExprListAppendVector(pParse, 0, X, Y);
994 sqlite3Insert(pParse, X, S, F, R, U);
998 sqlite3Insert(pParse, X, 0, F, R, 0);
1009 upsert(A) ::= RETURNING selcollist(X). { A = 0; sqlite3AddReturning(pParse,X); }
1012 { A = sqlite3UpsertNew(pParse->db,T,TW,Z,W,N);}
1014 { A = sqlite3UpsertNew(pParse->db,T,TW,0,0,N); }
1016 { A = sqlite3UpsertNew(pParse->db,0,0,0,0,0); }
1018 { A = sqlite3UpsertNew(pParse->db,0,0,Z,W,0);}
1020 returning ::= RETURNING selcollist(X). {sqlite3AddReturning(pParse,X);}
1028 %destructor idlist_opt {sqlite3IdListDelete(pParse->db, $$);}
1030 %destructor idlist {sqlite3IdListDelete(pParse->db, $$);}
1035 {A = sqlite3IdListAppend(pParse,A,&Y);}
1037 {A = sqlite3IdListAppend(pParse,0,&Y); /*A-overwrites-Y*/}
1043 %destructor expr {sqlite3ExprDelete(pParse->db, $$);}
1045 %destructor term {sqlite3ExprDelete(pParse->db, $$);}
1050 static Expr *tokenExpr(Parse *pParse, int op, Token t){
1051 Expr *p = sqlite3DbMallocRawNN(pParse->db, sizeof(Expr)+t.n+1);
1069 p->w.iOfst = (int)(t.z - pParse->zTail);
1077 return (Expr*)sqlite3RenameTokenMap(pParse, (void*)p, &t);
1087 expr(A) ::= id(X). {A=tokenExpr(pParse,TK_ID,X); /*A-overwrites-X*/}
1088 expr(A) ::= JOIN_KW(X). {A=tokenExpr(pParse,TK_ID,X); /*A-overwrites-X*/}
1090 Expr *temp1 = tokenExpr(pParse,TK_ID,X);
1091 Expr *temp2 = tokenExpr(pParse,TK_ID,Y);
1092 A = sqlite3PExpr(pParse, TK_DOT, temp1, temp2);
1095 Expr *temp1 = tokenExpr(pParse,TK_ID,X);
1096 Expr *temp2 = tokenExpr(pParse,TK_ID,Y);
1097 Expr *temp3 = tokenExpr(pParse,TK_ID,Z);
1098 Expr *temp4 = sqlite3PExpr(pParse, TK_DOT, temp2, temp3);
1100 sqlite3RenameTokenRemap(pParse, 0, temp1);
1102 A = sqlite3PExpr(pParse, TK_DOT, temp1, temp4);
1104 term(A) ::= NULL|FLOAT|BLOB(X). {A=tokenExpr(pParse,@X,X); /*A-overwrites-X*/}
1105 term(A) ::= STRING(X). {A=tokenExpr(pParse,@X,X); /*A-overwrites-X*/}
1107 A = sqlite3ExprAlloc(pParse->db, TK_INTEGER, &X, 1);
1108 if( A ) A->w.iOfst = (int)(X.z - pParse->zTail);
1113 A = tokenExpr(pParse, TK_VARIABLE, X);
1114 sqlite3ExprAssignVarNumber(pParse, A, n);
1121 if( pParse->nested==0 ){
1122 sqlite3ErrorMsg(pParse, "near \"%T\": syntax error", &t);
1125 A = sqlite3PExpr(pParse, TK_REGISTER, 0, 0);
1131 A = sqlite3ExprAddCollateToken(pParse, A, &C, 1);
1135 A = sqlite3ExprAlloc(pParse->db, TK_CAST, &T, 1);
1136 sqlite3ExprAttachSubtrees(pParse->db, A, E, 0);
1142 A = sqlite3ExprFunction(pParse, Y, &X, D);
1145 A = sqlite3ExprFunction(pParse, 0, &X, 0);
1150 A = sqlite3ExprFunction(pParse, Y, &X, D);
1151 sqlite3WindowAttach(pParse, A, Z);
1154 A = sqlite3ExprFunction(pParse, 0, &X, 0);
1155 sqlite3WindowAttach(pParse, A, Z);
1160 A = sqlite3ExprFunction(pParse, 0, &OP, 0);
1164 ExprList *pList = sqlite3ExprListAppend(pParse, X, Y);
1165 A = sqlite3PExpr(pParse, TK_VECTOR, 0, 0);
1172 sqlite3ExprListDelete(pParse->db, pList);
1176 expr(A) ::= expr(A) AND expr(Y). {A=sqlite3ExprAnd(pParse,A,Y);}
1177 expr(A) ::= expr(A) OR(OP) expr(Y). {A=sqlite3PExpr(pParse,@OP,A,Y);}
1179 {A=sqlite3PExpr(pParse,@OP,A,Y);}
1180 expr(A) ::= expr(A) EQ|NE(OP) expr(Y). {A=sqlite3PExpr(pParse,@OP,A,Y);}
1182 {A=sqlite3PExpr(pParse,@OP,A,Y);}
1184 {A=sqlite3PExpr(pParse,@OP,A,Y);}
1186 {A=sqlite3PExpr(pParse,@OP,A,Y);}
1187 expr(A) ::= expr(A) CONCAT(OP) expr(Y). {A=sqlite3PExpr(pParse,@OP,A,Y);}
1195 pList = sqlite3ExprListAppend(pParse,0, Y);
1196 pList = sqlite3ExprListAppend(pParse,pList, A);
1197 A = sqlite3ExprFunction(pParse, pList, &OP, 0);
1198 if( bNot ) A = sqlite3PExpr(pParse, TK_NOT, A, 0);
1205 pList = sqlite3ExprListAppend(pParse,0, Y);
1206 pList = sqlite3ExprListAppend(pParse,pList, A);
1207 pList = sqlite3ExprListAppend(pParse,pList, E);
1208 A = sqlite3ExprFunction(pParse, pList, &OP, 0);
1209 if( bNot ) A = sqlite3PExpr(pParse, TK_NOT, A, 0);
1213 expr(A) ::= expr(A) ISNULL|NOTNULL(E). {A = sqlite3PExpr(pParse,@E,A,0);}
1214 expr(A) ::= expr(A) NOT NULL. {A = sqlite3PExpr(pParse,TK_NOTNULL,A,0);}
1219 static void binaryToUnaryIfNull(Parse *pParse, Expr *pY, Expr *pA, int op){
1220 sqlite3 *db = pParse->db;
1236 A = sqlite3PExpr(pParse,TK_IS,A,Y);
1237 binaryToUnaryIfNull(pParse, Y, A, TK_ISNULL);
1240 A = sqlite3PExpr(pParse,TK_ISNOT,A,Y);
1241 binaryToUnaryIfNull(pParse, Y, A, TK_NOTNULL);
1244 A = sqlite3PExpr(pParse,TK_IS,A,Y);
1245 binaryToUnaryIfNull(pParse, Y, A, TK_ISNULL);
1248 A = sqlite3PExpr(pParse,TK_ISNOT,A,Y);
1249 binaryToUnaryIfNull(pParse, Y, A, TK_NOTNULL);
1253 {A = sqlite3PExpr(pParse, @B, X, 0);/*A-overwrites-B*/}
1255 {A = sqlite3PExpr(pParse, @B, X, 0);/*A-overwrites-B*/}
1257 A = sqlite3PExpr(pParse, @B==TK_PLUS ? TK_UPLUS : TK_UMINUS, X, 0);
1262 ExprList *pList = sqlite3ExprListAppend(pParse, 0, B);
1263 pList = sqlite3ExprListAppend(pParse, pList, D);
1264 A = sqlite3ExprFunction(pParse, pList, &C, 0);
1271 ExprList *pList = sqlite3ExprListAppend(pParse,0, X);
1272 pList = sqlite3ExprListAppend(pParse,pList, Y);
1273 A = sqlite3PExpr(pParse, TK_BETWEEN, A, 0);
1277 sqlite3ExprListDelete(pParse->db, pList);
1279 if( N ) A = sqlite3PExpr(pParse, TK_NOT, A, 0);
1295 sqlite3ExprUnmapAndDelete(pParse, A);
1296 A = sqlite3Expr(pParse->db, TK_STRING, N ? "true" : "false");
1302 sqlite3ExprListDelete(pParse->db, Y);
1303 pRHS = sqlite3PExpr(pParse, TK_UPLUS, pRHS, 0);
1304 A = sqlite3PExpr(pParse, TK_EQ, A, pRHS);
1306 A = sqlite3PExpr(pParse, TK_IN, A, 0);
1308 sqlite3ExprListDelete(pParse->db, Y);
1311 Select *pSelectRHS = sqlite3ExprListToValues(pParse, nExpr, Y);
1313 parserDoubleLinkSelect(pParse, pSelectRHS);
1314 sqlite3PExprAddSelect(pParse, A, pSelectRHS);
1318 sqlite3ExprSetHeightAndFlags(pParse, A);
1321 if( N ) A = sqlite3PExpr(pParse, TK_NOT, A, 0);
1325 A = sqlite3PExpr(pParse, TK_SELECT, 0, 0);
1326 sqlite3PExprAddSelect(pParse, A, X);
1329 A = sqlite3PExpr(pParse, TK_IN, A, 0);
1330 sqlite3PExprAddSelect(pParse, A, Y);
1331 if( N ) A = sqlite3PExpr(pParse, TK_NOT, A, 0);
1334 SrcList *pSrc = sqlite3SrcListAppend(pParse, 0,&Y,&Z);
1335 Select *pSelect = sqlite3SelectNew(pParse, 0,pSrc,0,0,0,0,0,0);
1336 if( E ) sqlite3SrcListFuncArgs(pParse, pSelect ? pSrc : 0, E);
1337 A = sqlite3PExpr(pParse, TK_IN, A, 0);
1338 sqlite3PExprAddSelect(pParse, A, pSelect);
1339 if( N ) A = sqlite3PExpr(pParse, TK_NOT, A, 0);
1343 p = A = sqlite3PExpr(pParse, TK_EXISTS, 0, 0);
1344 sqlite3PExprAddSelect(pParse, p, Y);
1350 A = sqlite3PExpr(pParse, TK_CASE, X, 0);
1352 A->x.pList = Z ? sqlite3ExprListAppend(pParse,Y,Z) : Y;
1353 sqlite3ExprSetHeightAndFlags(pParse, A);
1355 sqlite3ExprListDelete(pParse->db, Y);
1356 sqlite3ExprDelete(pParse->db, Z);
1360 %destructor case_exprlist {sqlite3ExprListDelete(pParse->db, $$);}
1362 A = sqlite3ExprListAppend(pParse,A, Y);
1363 A = sqlite3ExprListAppend(pParse,A, Z);
1366 A = sqlite3ExprListAppend(pParse,0, Y);
1367 A = sqlite3ExprListAppend(pParse,A, Z);
1370 %destructor case_else {sqlite3ExprDelete(pParse->db, $$);}
1374 %destructor case_operand {sqlite3ExprDelete(pParse->db, $$);}
1379 %destructor exprlist {sqlite3ExprListDelete(pParse->db, $$);}
1381 %destructor nexprlist {sqlite3ExprListDelete(pParse->db, $$);}
1386 {A = sqlite3ExprListAppend(pParse,A,Y);}
1388 {A = sqlite3ExprListAppend(pParse,0,Y); /*A-overwrites-Y*/}
1394 %destructor paren_exprlist {sqlite3ExprListDelete(pParse->db, $$);}
1404 sqlite3CreateIndex(pParse, &X, &D,
1405 sqlite3SrcListAppend(pParse,0,&Y,0), Z, U,
1407 if( IN_RENAME_OBJECT && pParse->pNewIndex ){
1408 sqlite3RenameTokenMap(pParse, pParse->pNewIndex->zName, &Y);
1433 %destructor eidlist {sqlite3ExprListDelete(pParse->db, $$);}
1435 %destructor eidlist_opt {sqlite3ExprListDelete(pParse->db, $$);}
1444 Parse *pParse,
1450 ExprList *p = sqlite3ExprListAppend(pParse, pPrior, 0);
1452 && pParse->db->init.busy==0
1454 sqlite3ErrorMsg(pParse, "syntax error after column name \"%.*s\"",
1457 sqlite3ExprListSetName(pParse, p, pIdToken, 1);
1465 A = parserAddExprIdListTerm(pParse, A, &Y, C, Z);
1468 A = parserAddExprIdListTerm(pParse, 0, &Y, C, Z); /*A-overwrites-Y*/
1478 cmd ::= DROP INDEX ifexists(E) fullname(X). {sqlite3DropIndex(pParse, X, E);}
1484 %destructor vinto {sqlite3ExprDelete(pParse->db, $$);}
1485 cmd ::= VACUUM vinto(Y). {sqlite3Vacuum(pParse,0,Y);}
1486 cmd ::= VACUUM nm(X) vinto(Y). {sqlite3Vacuum(pParse,&X,Y);}
1494 cmd ::= PRAGMA nm(X) dbnm(Z). {sqlite3Pragma(pParse,&X,&Z,0,0);}
1495 cmd ::= PRAGMA nm(X) dbnm(Z) EQ nmnum(Y). {sqlite3Pragma(pParse,&X,&Z,&Y,0);}
1496 cmd ::= PRAGMA nm(X) dbnm(Z) LP nmnum(Y) RP. {sqlite3Pragma(pParse,&X,&Z,&Y,0);}
1498 {sqlite3Pragma(pParse,&X,&Z,&Y,1);}
1500 {sqlite3Pragma(pParse,&X,&Z,&Y,1);}
1520 sqlite3FinishTrigger(pParse, S, &all);
1526 sqlite3BeginTrigger(pParse, &B, &Z, C, D.a, D.b, E, G, T, NOERR);
1536 %destructor trigger_event {sqlite3IdListDelete(pParse->db, $$.b);}
1545 %destructor when_clause {sqlite3ExprDelete(pParse->db, $$);}
1550 %destructor trigger_cmd_list {sqlite3DeleteTriggerStep(pParse->db, $$);}
1569 sqlite3ErrorMsg(pParse,
1580 sqlite3ErrorMsg(pParse,
1585 sqlite3ErrorMsg(pParse,
1593 %destructor trigger_cmd {sqlite3DeleteTriggerStep(pParse->db, $$);}
1597 {A = sqlite3TriggerUpdateStep(pParse, &X, F, Y, Z, R, B.z, E);}
1602 A = sqlite3TriggerInsertStep(pParse,&X,F,S,R,U,B,Z);/*A-overwrites-R*/
1606 {A = sqlite3TriggerDeleteStep(pParse, &X, Y, B.z, E);}
1610 {A = sqlite3TriggerSelectStep(pParse->db, X, B, E); /*A-overwrites-X*/}
1614 A = sqlite3PExpr(pParse, TK_RAISE, 0, 0);
1620 A = sqlite3ExprAlloc(pParse->db, TK_RAISE, &Z, 1);
1636 sqlite3DropTrigger(pParse,X,NOERR);
1643 sqlite3Attach(pParse, F, D, K);
1646 sqlite3Detach(pParse, D);
1650 %destructor key_opt {sqlite3ExprDelete(pParse->db, $$);}
1660 cmd ::= REINDEX. {sqlite3Reindex(pParse, 0, 0);}
1661 cmd ::= REINDEX nm(X) dbnm(Y). {sqlite3Reindex(pParse, &X, &Y);}
1666 cmd ::= ANALYZE. {sqlite3Analyze(pParse, 0, 0);}
1667 cmd ::= ANALYZE nm(X) dbnm(Y). {sqlite3Analyze(pParse, &X, &Y);}
1674 sqlite3AlterRenameTable(pParse,X,&Z);
1678 Y.n = (int)(pParse->sLastToken.z-Y.z) + pParse->sLastToken.n;
1679 sqlite3AlterFinishAddColumn(pParse, &Y);
1682 sqlite3AlterDropColumn(pParse, X, &Y);
1686 disableLookaside(pParse);
1687 sqlite3AlterBeginAddColumn(pParse, X);
1690 sqlite3AlterRenameColumn(pParse, X, &Y, &Z);
1701 cmd ::= create_vtab. {sqlite3VtabFinishParse(pParse,0);}
1702 cmd ::= create_vtab LP vtabarglist RP(X). {sqlite3VtabFinishParse(pParse,&X);}
1705 sqlite3VtabBeginParse(pParse, &X, &Y, &Z, E);
1709 vtabarg ::= . {sqlite3VtabArgInit(pParse);}
1711 vtabargtoken ::= ANY(X). {sqlite3VtabArgExtend(pParse,&X);}
1712 vtabargtoken ::= lp anylist RP(X). {sqlite3VtabArgExtend(pParse,&X);}
1713 lp ::= LP(X). {sqlite3VtabArgExtend(pParse,&X);}
1722 %destructor wqlist {sqlite3WithDelete(pParse->db, $$);}
1728 with ::= WITH wqlist(W). { sqlite3WithPush(pParse, W, 1); }
1729 with ::= WITH RECURSIVE wqlist(W). { sqlite3WithPush(pParse, W, 1); }
1736 A = sqlite3CteNew(pParse, &X, Y, Z, M); /*A-overwrites-X*/
1739 A = sqlite3WithAdd(pParse, 0, X); /*A-overwrites-X*/
1742 A = sqlite3WithAdd(pParse, A, X);
1754 %destructor windowdefn_list {sqlite3WindowListDelete(pParse->db, $$);}
1758 sqlite3WindowChain(pParse, Z, Y);
1764 %destructor windowdefn {sqlite3WindowDelete(pParse->db, $$);}
1767 Y->zName = sqlite3DbStrNDup(pParse->db, X.z, X.n);
1773 %destructor window {sqlite3WindowDelete(pParse->db, $$);}
1776 %destructor frame_opt {sqlite3WindowDelete(pParse->db, $$);}
1779 %destructor part_opt {sqlite3ExprListDelete(pParse->db, $$);}
1782 %destructor filter_clause {sqlite3ExprDelete(pParse->db, $$);}
1785 %destructor over_clause {sqlite3WindowDelete(pParse->db, $$);}
1788 %destructor filter_over {sqlite3WindowDelete(pParse->db, $$);}
1793 %destructor frame_bound {sqlite3ExprDelete(pParse->db, $$.pExpr);}
1795 %destructor frame_bound_s {sqlite3ExprDelete(pParse->db, $$.pExpr);}
1797 %destructor frame_bound_e {sqlite3ExprDelete(pParse->db, $$.pExpr);}
1800 A = sqlite3WindowAssemble(pParse, Z, X, Y, 0);
1803 A = sqlite3WindowAssemble(pParse, Z, X, Y, &W);
1806 A = sqlite3WindowAssemble(pParse, Z, 0, Y, 0);
1809 A = sqlite3WindowAssemble(pParse, Z, 0, Y, &W);
1815 A = sqlite3WindowAssemble(pParse, Z, 0, 0, &W);
1819 A = sqlite3WindowAlloc(pParse, 0, TK_UNBOUNDED, 0, TK_CURRENT, 0, 0);
1822 A = sqlite3WindowAlloc(pParse, X, Y.eType, Y.pExpr, TK_CURRENT, 0, Z);
1826 A = sqlite3WindowAlloc(pParse, X, Y.eType, Y.pExpr, Z.eType, Z.pExpr, W);
1851 %destructor window_clause {sqlite3WindowListDelete(pParse->db, $$);}
1858 sqlite3ExprDelete(pParse->db, F);
1866 A = (Window*)sqlite3DbMallocZero(pParse->db, sizeof(Window));
1871 sqlite3ExprDelete(pParse->db, F);
1880 A = (Window*)sqlite3DbMallocZero(pParse->db, sizeof(Window));
1882 A->zName = sqlite3DbStrNDup(pParse->db, Z.z, Z.n);