Lines Matching refs:A
164 transtype(A) ::= . {A = TK_DEFERRED;} in transtype() argument
165 transtype(A) ::= DEFERRED(X). {A = @X; /*A-overwrites-X*/} in transtype() argument
166 transtype(A) ::= IMMEDIATE(X). {A = @X; /*A-overwrites-X*/} in transtype() argument
167 transtype(A) ::= EXCLUSIVE(X). {A = @X; /*A-overwrites-X*/} in transtype() argument
189 createkw(A) ::= CREATE(A). {disableLookaside(pParse);} in createkw() argument
192 ifnotexists(A) ::= . {A = 0;} in ifnotexists() argument
193 ifnotexists(A) ::= IF NOT EXISTS. {A = 1;} in ifnotexists() argument
196 temp(A) ::= TEMP. {A = pParse->db->init.busy==0;}
198 temp(A) ::= . {A = 0;}
208 table_option_set(A) ::= . {A = 0;} in table_option_set() argument
209 table_option_set(A) ::= table_option(A). in table_option_set() argument
210 table_option_set(A) ::= table_option_set(X) COMMA table_option(Y). {A = X|Y;} in table_option_set()
211 table_option(A) ::= WITHOUT nm(X). { in table_option() argument
213 A = TF_WithoutRowid | TF_NoVisibleRowid; in table_option()
215 A = 0; in table_option()
219 table_option(A) ::= nm(X). { in table_option() argument
221 A = TF_Strict; in table_option()
223 A = 0; in table_option()
229 columnname(A) ::= nm(A) typetoken(Y). {sqlite3AddColumn(pParse,A,Y);} in columnname() argument
307 nm(A) ::= id(A).
308 nm(A) ::= STRING(A).
309 nm(A) ::= JOIN_KW(A).
316 typetoken(A) ::= . {A.n = 0; A.z = 0;} in typetoken() argument
317 typetoken(A) ::= typename(A). in typetoken() argument
318 typetoken(A) ::= typename(A) LP signed RP(Y). { in typetoken()
319 A.n = (int)(&Y.z[Y.n] - A.z); in typetoken()
321 typetoken(A) ::= typename(A) LP signed COMMA signed RP(Y). { in typetoken() argument
322 A.n = (int)(&Y.z[Y.n] - A.z); in typetoken()
325 typename(A) ::= ids(A). in typename() argument
326 typename(A) ::= typename(A) ids(Y). {A.n=Y.n+(int)(Y.z-A.z);} in typename()
344 scanpt(A) ::= . { in scanpt() argument
346 A = yyLookaheadToken.z; in scanpt()
348 scantok(A) ::= . { in scantok() argument
350 A = yyLookaheadToken; in scantok()
359 ccons ::= DEFAULT scantok(A) term(X). in scantok() argument
360 {sqlite3AddDefaultValue(pParse,X,A.z,&A.z[A.n]);} in scantok()
361 ccons ::= DEFAULT LP(A) expr(X) RP(Z). in LP() argument
362 {sqlite3AddDefaultValue(pParse,X,A.z+1,Z.z);} in LP()
363 ccons ::= DEFAULT PLUS(A) scantok(Z) term(X). in PLUS() argument
364 {sqlite3AddDefaultValue(pParse,X,A.z,&Z.z[Z.n]);} in PLUS()
365 ccons ::= DEFAULT MINUS(A) scantok(Z) term(X). { in MINUS() argument
367 sqlite3AddDefaultValue(pParse,p,A.z,&Z.z[Z.n]); in MINUS()
387 ccons ::= CHECK LP(A) expr(X) RP(B). {sqlite3AddCheckConstraint(pParse,X,A.z,B.z);} in LP() argument
408 refargs(A) ::= . { A = OE_None*0x0101; /* EV: R-19803-45884 */} in refargs() argument
409 refargs(A) ::= refargs(A) refarg(Y). { A = (A & ~Y.mask) | Y.value; } in refargs() argument
411 refarg(A) ::= MATCH nm. { A.value = 0; A.mask = 0x000000; }
412 refarg(A) ::= ON INSERT refact. { A.value = 0; A.mask = 0x000000; }
413 refarg(A) ::= ON DELETE refact(X). { A.value = X; A.mask = 0x0000ff; }
414 refarg(A) ::= ON UPDATE refact(X). { A.value = X<<8; A.mask = 0x00ff00; }
416 refact(A) ::= SET NULL. { A = OE_SetNull; /* EV: R-33326-45252 */}
417 refact(A) ::= SET DEFAULT. { A = OE_SetDflt; /* EV: R-33326-45252 */}
418 refact(A) ::= CASCADE. { A = OE_Cascade; /* EV: R-33326-45252 */}
419 refact(A) ::= RESTRICT. { A = OE_Restrict; /* EV: R-33326-45252 */}
420 refact(A) ::= NO ACTION. { A = OE_None; /* EV: R-33326-45252 */}
422 defer_subclause(A) ::= NOT DEFERRABLE init_deferred_pred_opt. {A = 0;}
423 defer_subclause(A) ::= DEFERRABLE init_deferred_pred_opt(X). {A = X;}
425 init_deferred_pred_opt(A) ::= . {A = 0;}
426 init_deferred_pred_opt(A) ::= INITIALLY DEFERRED. {A = 1;}
427 init_deferred_pred_opt(A) ::= INITIALLY IMMEDIATE. {A = 0;}
429 conslist_opt(A) ::= . {A.n = 0; A.z = 0;}
430 conslist_opt(A) ::= COMMA(A) conslist.
441 tcons ::= CHECK LP(A) expr(E) RP(B) onconf.
442 {sqlite3AddCheckConstraint(pParse,E,A.z,B.z);}
449 defer_subclause_opt(A) ::= . {A = 0;}
450 defer_subclause_opt(A) ::= defer_subclause(A).
458 onconf(A) ::= . {A = OE_Default;}
459 onconf(A) ::= ON CONFLICT resolvetype(X). {A = X;}
460 orconf(A) ::= . {A = OE_Default;}
461 orconf(A) ::= OR resolvetype(X). {A = X;}
462 resolvetype(A) ::= raisetype(A).
463 resolvetype(A) ::= IGNORE. {A = OE_Ignore;}
464 resolvetype(A) ::= REPLACE. {A = OE_Replace;}
472 ifexists(A) ::= IF EXISTS. {A = 1;}
473 ifexists(A) ::= . {A = 0;}
551 select(A) ::= WITH wqlist(W) selectnowith(X). {A = attachWithToSelect(pParse,X,W);}
552 select(A) ::= WITH RECURSIVE wqlist(W) selectnowith(X).
553 {A = attachWithToSelect(pParse,X,W);}
555 select(A) ::= selectnowith(X). {
560 A = p; /*A-overwrites-X*/
563 selectnowith(A) ::= oneselect(A).
565 selectnowith(A) ::= selectnowith(A) multiselect_op(Y) oneselect(Z). {
567 Select *pLhs = A;
585 A = pRhs;
588 multiselect_op(A) ::= UNION(OP). {A = @OP; /*A-overwrites-OP*/}
589 multiselect_op(A) ::= UNION ALL. {A = TK_ALL;}
590 multiselect_op(A) ::= EXCEPT|INTERSECT(OP). {A = @OP; /*A-overwrites-OP*/}
593 oneselect(A) ::= SELECT distinct(D) selcollist(W) from(X) where_opt(Y)
596 A = sqlite3SelectNew(pParse,W,X,Y,P,Q,Z,D,L);
599 oneselect(A) ::= SELECT distinct(D) selcollist(W) from(X) where_opt(Y)
602 A = sqlite3SelectNew(pParse,W,X,Y,P,Q,Z,D,L);
603 if( A ){
604 A->pWinDefn = R;
612 oneselect(A) ::= values(A).
616 values(A) ::= VALUES LP nexprlist(X) RP. {
617 A = sqlite3SelectNew(pParse,X,0,0,0,0,0,SF_Values,0);
619 values(A) ::= values(A) COMMA LP nexprlist(Y) RP. {
620 Select *pRight, *pLeft = A;
626 A = pRight;
628 A = pLeft;
636 distinct(A) ::= DISTINCT. {A = SF_Distinct;}
637 distinct(A) ::= ALL. {A = SF_All;}
638 distinct(A) ::= . {A = 0;}
649 sclp(A) ::= selcollist(A) COMMA.
650 sclp(A) ::= . {A = 0;}
651 selcollist(A) ::= sclp(A) scanpt(B) expr(X) scanpt(Z) as(Y). {
652 A = sqlite3ExprListAppend(pParse, A, X);
653 if( Y.n>0 ) sqlite3ExprListSetName(pParse, A, &Y, 1);
654 sqlite3ExprListSetSpan(pParse,A,B,Z);
656 selcollist(A) ::= sclp(A) scanpt STAR. {
658 A = sqlite3ExprListAppend(pParse, A, p);
660 selcollist(A) ::= sclp(A) scanpt nm(X) DOT STAR. {
664 A = sqlite3ExprListAppend(pParse,A, pDot);
685 from(A) ::= . {A = 0;}
686 from(A) ::= FROM seltablist(X). {
687 A = X;
688 sqlite3SrcListShiftJoinType(pParse,A);
694 stl_prefix(A) ::= seltablist(A) joinop(Y). {
695 if( ALWAYS(A && A->nSrc>0) ) A->a[A->nSrc-1].fg.jointype = (u8)Y;
697 stl_prefix(A) ::= . {A = 0;}
698 seltablist(A) ::= stl_prefix(A) nm(Y) dbnm(D) as(Z) on_using(N). {
699 A = sqlite3SrcListAppendFromTerm(pParse,A,&Y,&D,&Z,0,&N);
701 seltablist(A) ::= stl_prefix(A) nm(Y) dbnm(D) as(Z) indexed_by(I) on_using(N). {
702 A = sqlite3SrcListAppendFromTerm(pParse,A,&Y,&D,&Z,0,&N);
703 sqlite3SrcListIndexedBy(pParse, A, &I);
705 seltablist(A) ::= stl_prefix(A) nm(Y) dbnm(D) LP exprlist(E) RP as(Z) on_using(N). {
706 A = sqlite3SrcListAppendFromTerm(pParse,A,&Y,&D,&Z,0,&N);
707 sqlite3SrcListFuncArgs(pParse, A, E);
710 seltablist(A) ::= stl_prefix(A) LP select(S) RP as(Z) on_using(N). {
711 A = sqlite3SrcListAppendFromTerm(pParse,A,0,0,&Z,S,&N);
713 seltablist(A) ::= stl_prefix(A) LP seltablist(F) RP as(Z) on_using(N). {
714 if( A==0 && Z.n==0 && N.pOn==0 && N.pUsing==0 ){
715 A = F;
717 A = sqlite3SrcListAppendFromTerm(pParse,A,0,0,&Z,0,&N);
718 if( A ){
719 SrcItem *pNew = &A->a[A->nSrc-1];
741 A = sqlite3SrcListAppendFromTerm(pParse,A,0,0,&Z,pSubquery,&N);
747 dbnm(A) ::= . {A.z=0; A.n=0;}
748 dbnm(A) ::= DOT nm(X). {A = X;}
752 fullname(A) ::= nm(X). {
753 A = sqlite3SrcListAppend(pParse,0,&X,0);
754 if( IN_RENAME_OBJECT && A ) sqlite3RenameTokenMap(pParse, A->a[0].zName, &X);
756 fullname(A) ::= nm(X) DOT nm(Y). {
757 A = sqlite3SrcListAppend(pParse,0,&X,&Y);
758 if( IN_RENAME_OBJECT && A ) sqlite3RenameTokenMap(pParse, A->a[0].zName, &Y);
763 xfullname(A) ::= nm(X).
764 {A = sqlite3SrcListAppend(pParse,0,&X,0); /*A-overwrites-X*/}
765 xfullname(A) ::= nm(X) DOT nm(Y).
766 {A = sqlite3SrcListAppend(pParse,0,&X,&Y); /*A-overwrites-X*/}
767 xfullname(A) ::= nm(X) DOT nm(Y) AS nm(Z). {
768 A = sqlite3SrcListAppend(pParse,0,&X,&Y); /*A-overwrites-X*/
769 if( A ) A->a[0].zAlias = sqlite3NameFromToken(pParse->db, &Z);
771 xfullname(A) ::= nm(X) AS nm(Z). {
772 A = sqlite3SrcListAppend(pParse,0,&X,0); /*A-overwrites-X*/
773 if( A ) A->a[0].zAlias = sqlite3NameFromToken(pParse->db, &Z);
778 joinop(X) ::= JOIN_KW(A) JOIN.
779 {X = sqlite3JoinType(pParse,&A,0,0); /*X-overwrites-A*/}
780 joinop(X) ::= JOIN_KW(A) nm(B) JOIN.
781 {X = sqlite3JoinType(pParse,&A,&B,0); /*X-overwrites-A*/}
782 joinop(X) ::= JOIN_KW(A) nm(B) nm(C) JOIN.
783 {X = sqlite3JoinType(pParse,&A,&B,&C);/*X-overwrites-A*/}
820 indexed_opt(A) ::= . {A.z=0; A.n=0;}
821 indexed_opt(A) ::= indexed_by(A).
822 indexed_by(A) ::= INDEXED BY nm(X). {A = X;}
823 indexed_by(A) ::= NOT INDEXED. {A.z=0; A.n=1;}
835 orderby_opt(A) ::= . {A = 0;}
836 orderby_opt(A) ::= ORDER BY sortlist(X). {A = X;}
837 sortlist(A) ::= sortlist(A) COMMA expr(Y) sortorder(Z) nulls(X). {
838 A = sqlite3ExprListAppend(pParse,A,Y);
839 sqlite3ExprListSetSortOrder(A,Z,X);
841 sortlist(A) ::= expr(Y) sortorder(Z) nulls(X). {
842 A = sqlite3ExprListAppend(pParse,0,Y); /*A-overwrites-Y*/
843 sqlite3ExprListSetSortOrder(A,Z,X);
848 sortorder(A) ::= ASC. {A = SQLITE_SO_ASC;}
849 sortorder(A) ::= DESC. {A = SQLITE_SO_DESC;}
850 sortorder(A) ::= . {A = SQLITE_SO_UNDEFINED;}
853 nulls(A) ::= NULLS FIRST. {A = SQLITE_SO_ASC;}
854 nulls(A) ::= NULLS LAST. {A = SQLITE_SO_DESC;}
855 nulls(A) ::= . {A = SQLITE_SO_UNDEFINED;}
859 groupby_opt(A) ::= . {A = 0;}
860 groupby_opt(A) ::= GROUP BY nexprlist(X). {A = X;}
864 having_opt(A) ::= . {A = 0;}
865 having_opt(A) ::= HAVING expr(X). {A = X;}
877 limit_opt(A) ::= . {A = 0;}
878 limit_opt(A) ::= LIMIT expr(X).
879 {A = sqlite3PExpr(pParse,TK_LIMIT,X,0);}
880 limit_opt(A) ::= LIMIT expr(X) OFFSET expr(Y).
881 {A = sqlite3PExpr(pParse,TK_LIMIT,X,Y);}
882 limit_opt(A) ::= LIMIT expr(X) COMMA expr(Y).
883 {A = sqlite3PExpr(pParse,TK_LIMIT,Y,X);}
912 where_opt(A) ::= . {A = 0;}
913 where_opt(A) ::= WHERE expr(X). {A = X;}
914 where_opt_ret(A) ::= . {A = 0;}
915 where_opt_ret(A) ::= WHERE expr(X). {A = X;}
916 where_opt_ret(A) ::= RETURNING selcollist(X).
917 {sqlite3AddReturning(pParse,X); A = 0;}
918 where_opt_ret(A) ::= WHERE expr(X) RETURNING selcollist(Y).
919 {sqlite3AddReturning(pParse,Y); A = X;}
975 setlist(A) ::= setlist(A) COMMA nm(X) EQ expr(Y). {
976 A = sqlite3ExprListAppend(pParse, A, Y);
977 sqlite3ExprListSetName(pParse, A, &X, 1);
979 setlist(A) ::= setlist(A) COMMA LP idlist(X) RP EQ expr(Y). {
980 A = sqlite3ExprListAppendVector(pParse, A, X, Y);
982 setlist(A) ::= nm(X) EQ expr(Y). {
983 A = sqlite3ExprListAppend(pParse, 0, Y);
984 sqlite3ExprListSetName(pParse, A, &X, 1);
986 setlist(A) ::= LP idlist(X) RP EQ expr(Y). {
987 A = sqlite3ExprListAppendVector(pParse, 0, X, Y);
1008 upsert(A) ::= . { A = 0; }
1009 upsert(A) ::= RETURNING selcollist(X). { A = 0; sqlite3AddReturning(pParse,X); }
1010 upsert(A) ::= ON CONFLICT LP sortlist(T) RP where_opt(TW)
1012 { A = sqlite3UpsertNew(pParse->db,T,TW,Z,W,N);}
1013 upsert(A) ::= ON CONFLICT LP sortlist(T) RP where_opt(TW) DO NOTHING upsert(N).
1014 { A = sqlite3UpsertNew(pParse->db,T,TW,0,0,N); }
1015 upsert(A) ::= ON CONFLICT DO NOTHING returning.
1016 { A = sqlite3UpsertNew(pParse->db,0,0,0,0,0); }
1017 upsert(A) ::= ON CONFLICT DO UPDATE SET setlist(Z) where_opt(W) returning.
1018 { A = sqlite3UpsertNew(pParse->db,0,0,Z,W,0);}
1024 insert_cmd(A) ::= INSERT orconf(R). {A = R;}
1025 insert_cmd(A) ::= REPLACE. {A = OE_Replace;}
1032 idlist_opt(A) ::= . {A = 0;}
1033 idlist_opt(A) ::= LP idlist(X) RP. {A = X;}
1034 idlist(A) ::= idlist(A) COMMA nm(Y).
1035 {A = sqlite3IdListAppend(pParse,A,&Y);}
1036 idlist(A) ::= nm(Y).
1037 {A = sqlite3IdListAppend(pParse,0,&Y); /*A-overwrites-Y*/}
1085 expr(A) ::= term(A).
1086 expr(A) ::= LP expr(X) RP. {A = X;}
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*/}
1089 expr(A) ::= nm(X) DOT nm(Y). {
1092 A = sqlite3PExpr(pParse, TK_DOT, temp1, temp2);
1094 expr(A) ::= nm(X) DOT nm(Y) DOT nm(Z). {
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*/}
1106 term(A) ::= INTEGER(X). {
1107 A = sqlite3ExprAlloc(pParse->db, TK_INTEGER, &X, 1);
1108 if( A ) A->w.iOfst = (int)(X.z - pParse->zTail);
1110 expr(A) ::= VARIABLE(X). {
1113 A = tokenExpr(pParse, TK_VARIABLE, X);
1114 sqlite3ExprAssignVarNumber(pParse, A, n);
1123 A = 0;
1125 A = sqlite3PExpr(pParse, TK_REGISTER, 0, 0);
1126 if( A ) sqlite3GetInt32(&t.z[1], &A->iTable);
1130 expr(A) ::= expr(A) COLLATE ids(C). {
1131 A = sqlite3ExprAddCollateToken(pParse, A, &C, 1);
1134 expr(A) ::= CAST LP expr(E) AS typetoken(T) RP. {
1135 A = sqlite3ExprAlloc(pParse->db, TK_CAST, &T, 1);
1136 sqlite3ExprAttachSubtrees(pParse->db, A, E, 0);
1141 expr(A) ::= id(X) LP distinct(D) exprlist(Y) RP. {
1142 A = sqlite3ExprFunction(pParse, Y, &X, D);
1144 expr(A) ::= id(X) LP STAR RP. {
1145 A = sqlite3ExprFunction(pParse, 0, &X, 0);
1149 expr(A) ::= id(X) LP distinct(D) exprlist(Y) RP filter_over(Z). {
1150 A = sqlite3ExprFunction(pParse, Y, &X, D);
1151 sqlite3WindowAttach(pParse, A, Z);
1153 expr(A) ::= id(X) LP STAR RP filter_over(Z). {
1154 A = sqlite3ExprFunction(pParse, 0, &X, 0);
1155 sqlite3WindowAttach(pParse, A, Z);
1159 term(A) ::= CTIME_KW(OP). {
1160 A = sqlite3ExprFunction(pParse, 0, &OP, 0);
1163 expr(A) ::= LP nexprlist(X) COMMA expr(Y) RP. {
1165 A = sqlite3PExpr(pParse, TK_VECTOR, 0, 0);
1166 if( A ){
1167 A->x.pList = pList;
1169 A->flags |= pList->a[0].pExpr->flags & EP_Propagate;
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);}
1178 expr(A) ::= expr(A) LT|GT|GE|LE(OP) expr(Y).
1179 {A=sqlite3PExpr(pParse,@OP,A,Y);}
1180 expr(A) ::= expr(A) EQ|NE(OP) expr(Y). {A=sqlite3PExpr(pParse,@OP,A,Y);}
1181 expr(A) ::= expr(A) BITAND|BITOR|LSHIFT|RSHIFT(OP) expr(Y).
1182 {A=sqlite3PExpr(pParse,@OP,A,Y);}
1183 expr(A) ::= expr(A) PLUS|MINUS(OP) expr(Y).
1184 {A=sqlite3PExpr(pParse,@OP,A,Y);}
1185 expr(A) ::= expr(A) STAR|SLASH|REM(OP) expr(Y).
1186 {A=sqlite3PExpr(pParse,@OP,A,Y);}
1187 expr(A) ::= expr(A) CONCAT(OP) expr(Y). {A=sqlite3PExpr(pParse,@OP,A,Y);}
1189 likeop(A) ::= LIKE_KW|MATCH(A).
1190 likeop(A) ::= NOT LIKE_KW|MATCH(X). {A=X; A.n|=0x80000000; /*A-overwrite-X*/}
1191 expr(A) ::= expr(A) likeop(OP) expr(Y). [LIKE_KW] {
1196 pList = sqlite3ExprListAppend(pParse,pList, A);
1197 A = sqlite3ExprFunction(pParse, pList, &OP, 0);
1198 if( bNot ) A = sqlite3PExpr(pParse, TK_NOT, A, 0);
1199 if( A ) A->flags |= EP_InfixFunc;
1201 expr(A) ::= expr(A) likeop(OP) expr(Y) ESCAPE expr(E). [LIKE_KW] {
1206 pList = sqlite3ExprListAppend(pParse,pList, A);
1208 A = sqlite3ExprFunction(pParse, pList, &OP, 0);
1209 if( bNot ) A = sqlite3PExpr(pParse, TK_NOT, A, 0);
1210 if( A ) A->flags |= EP_InfixFunc;
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);}
1235 expr(A) ::= expr(A) IS expr(Y). {
1236 A = sqlite3PExpr(pParse,TK_IS,A,Y);
1237 binaryToUnaryIfNull(pParse, Y, A, TK_ISNULL);
1239 expr(A) ::= expr(A) IS NOT expr(Y). {
1240 A = sqlite3PExpr(pParse,TK_ISNOT,A,Y);
1241 binaryToUnaryIfNull(pParse, Y, A, TK_NOTNULL);
1243 expr(A) ::= expr(A) IS NOT DISTINCT FROM expr(Y). {
1244 A = sqlite3PExpr(pParse,TK_IS,A,Y);
1245 binaryToUnaryIfNull(pParse, Y, A, TK_ISNULL);
1247 expr(A) ::= expr(A) IS DISTINCT FROM expr(Y). {
1248 A = sqlite3PExpr(pParse,TK_ISNOT,A,Y);
1249 binaryToUnaryIfNull(pParse, Y, A, TK_NOTNULL);
1252 expr(A) ::= NOT(B) expr(X).
1253 {A = sqlite3PExpr(pParse, @B, X, 0);/*A-overwrites-B*/}
1254 expr(A) ::= BITNOT(B) expr(X).
1255 {A = sqlite3PExpr(pParse, @B, X, 0);/*A-overwrites-B*/}
1256 expr(A) ::= PLUS|MINUS(B) expr(X). [BITNOT] {
1257 A = sqlite3PExpr(pParse, @B==TK_PLUS ? TK_UPLUS : TK_UMINUS, X, 0);
1261 expr(A) ::= expr(B) PTR(C) expr(D). {
1264 A = sqlite3ExprFunction(pParse, pList, &C, 0);
1268 between_op(A) ::= BETWEEN. {A = 0;}
1269 between_op(A) ::= NOT BETWEEN. {A = 1;}
1270 expr(A) ::= expr(A) between_op(N) expr(X) AND expr(Y). [BETWEEN] {
1273 A = sqlite3PExpr(pParse, TK_BETWEEN, A, 0);
1274 if( A ){
1275 A->x.pList = pList;
1279 if( N ) A = sqlite3PExpr(pParse, TK_NOT, A, 0);
1283 in_op(A) ::= IN. {A = 0;}
1284 in_op(A) ::= NOT IN. {A = 1;}
1285 expr(A) ::= expr(A) in_op(N) LP exprlist(Y) RP. [IN] {
1295 sqlite3ExprUnmapAndDelete(pParse, A);
1296 A = sqlite3Expr(pParse->db, TK_STRING, N ? "true" : "false");
1297 if( A ) sqlite3ExprIdToTrueFalse(A);
1300 if( Y->nExpr==1 && sqlite3ExprIsConstant(pRHS) && A->op!=TK_VECTOR ){
1304 A = sqlite3PExpr(pParse, TK_EQ, A, pRHS);
1306 A = sqlite3PExpr(pParse, TK_IN, A, 0);
1307 if( A==0 ){
1309 }else if( A->pLeft->op==TK_VECTOR ){
1310 int nExpr = A->pLeft->x.pList->nExpr;
1314 sqlite3PExprAddSelect(pParse, A, pSelectRHS);
1317 A->x.pList = Y;
1318 sqlite3ExprSetHeightAndFlags(pParse, A);
1321 if( N ) A = sqlite3PExpr(pParse, TK_NOT, A, 0);
1324 expr(A) ::= LP select(X) RP. {
1325 A = sqlite3PExpr(pParse, TK_SELECT, 0, 0);
1326 sqlite3PExprAddSelect(pParse, A, X);
1328 expr(A) ::= expr(A) in_op(N) LP select(Y) RP. [IN] {
1329 A = sqlite3PExpr(pParse, TK_IN, A, 0);
1330 sqlite3PExprAddSelect(pParse, A, Y);
1331 if( N ) A = sqlite3PExpr(pParse, TK_NOT, A, 0);
1333 expr(A) ::= expr(A) in_op(N) nm(Y) dbnm(Z) paren_exprlist(E). [IN] {
1337 A = sqlite3PExpr(pParse, TK_IN, A, 0);
1338 sqlite3PExprAddSelect(pParse, A, pSelect);
1339 if( N ) A = sqlite3PExpr(pParse, TK_NOT, A, 0);
1341 expr(A) ::= EXISTS LP select(Y) RP. {
1343 p = A = sqlite3PExpr(pParse, TK_EXISTS, 0, 0);
1349 expr(A) ::= CASE case_operand(X) case_exprlist(Y) case_else(Z) END. {
1350 A = sqlite3PExpr(pParse, TK_CASE, X, 0);
1351 if( A ){
1352 A->x.pList = Z ? sqlite3ExprListAppend(pParse,Y,Z) : Y;
1353 sqlite3ExprSetHeightAndFlags(pParse, A);
1361 case_exprlist(A) ::= case_exprlist(A) WHEN expr(Y) THEN expr(Z). {
1362 A = sqlite3ExprListAppend(pParse,A, Y);
1363 A = sqlite3ExprListAppend(pParse,A, Z);
1365 case_exprlist(A) ::= WHEN expr(Y) THEN expr(Z). {
1366 A = sqlite3ExprListAppend(pParse,0, Y);
1367 A = sqlite3ExprListAppend(pParse,A, Z);
1371 case_else(A) ::= ELSE expr(X). {A = X;}
1372 case_else(A) ::= . {A = 0;}
1375 case_operand(A) ::= expr(X). {A = X; /*A-overwrites-X*/}
1376 case_operand(A) ::= . {A = 0;}
1383 exprlist(A) ::= nexprlist(A).
1384 exprlist(A) ::= . {A = 0;}
1385 nexprlist(A) ::= nexprlist(A) COMMA expr(Y).
1386 {A = sqlite3ExprListAppend(pParse,A,Y);}
1387 nexprlist(A) ::= expr(Y).
1388 {A = sqlite3ExprListAppend(pParse,0,Y); /*A-overwrites-Y*/}
1395 paren_exprlist(A) ::= . {A = 0;}
1396 paren_exprlist(A) ::= LP exprlist(X) RP. {A = X;}
1413 uniqueflag(A) ::= UNIQUE. {A = OE_Abort;}
1414 uniqueflag(A) ::= . {A = OE_None;}
1462 eidlist_opt(A) ::= . {A = 0;}
1463 eidlist_opt(A) ::= LP eidlist(X) RP. {A = X;}
1464 eidlist(A) ::= eidlist(A) COMMA nm(Y) collate(C) sortorder(Z). {
1465 A = parserAddExprIdListTerm(pParse, A, &Y, C, Z);
1467 eidlist(A) ::= nm(Y) collate(C) sortorder(Z). {
1468 A = parserAddExprIdListTerm(pParse, 0, &Y, C, Z); /*A-overwrites-Y*/
1487 vinto(A) ::= INTO expr(X). {A = X;}
1488 vinto(A) ::= . {A = 0;}
1502 nmnum(A) ::= plus_num(A).
1503 nmnum(A) ::= nm(A).
1504 nmnum(A) ::= ON(A).
1505 nmnum(A) ::= DELETE(A).
1506 nmnum(A) ::= DEFAULT(A).
1509 plus_num(A) ::= PLUS number(X). {A = X;}
1510 plus_num(A) ::= number(A).
1511 minus_num(A) ::= MINUS number(X). {A = X;}
1516 cmd ::= createkw trigger_decl(A) BEGIN trigger_cmd_list(S) END(Z). {
1518 all.z = A.z;
1519 all.n = (int)(Z.z - A.z) + Z.n;
1523 trigger_decl(A) ::= temp(T) TRIGGER ifnotexists(NOERR) nm(B) dbnm(Z)
1527 A = (Z.n==0?B:Z); /*A-overwrites-T*/
1531 trigger_time(A) ::= BEFORE|AFTER(X). { A = @X; /*A-overwrites-X*/ }
1532 trigger_time(A) ::= INSTEAD OF. { A = TK_INSTEAD;}
1533 trigger_time(A) ::= . { A = TK_BEFORE; }
1537 trigger_event(A) ::= DELETE|INSERT(X). {A.a = @X; /*A-overwrites-X*/ A.b = 0;}
1538 trigger_event(A) ::= UPDATE(X). {A.a = @X; /*A-overwrites-X*/ A.b = 0;}
1539 trigger_event(A) ::= UPDATE OF idlist(X).{A.a = TK_UPDATE; A.b = X;}
1546 when_clause(A) ::= . { A = 0; }
1547 when_clause(A) ::= WHEN expr(X). { A = X; }
1551 trigger_cmd_list(A) ::= trigger_cmd_list(A) trigger_cmd(X) SEMI. {
1552 assert( A!=0 );
1553 A->pLast->pNext = X;
1554 A->pLast = X;
1556 trigger_cmd_list(A) ::= trigger_cmd(A) SEMI. {
1557 assert( A!=0 );
1558 A->pLast = A;
1566 trnm(A) ::= nm(A).
1567 trnm(A) ::= nm DOT nm(X). {
1568 A = X;
1595 trigger_cmd(A) ::=
1597 {A = sqlite3TriggerUpdateStep(pParse, &X, F, Y, Z, R, B.z, E);}
1600 trigger_cmd(A) ::= scanpt(B) insert_cmd(R) INTO
1602 A = sqlite3TriggerInsertStep(pParse,&X,F,S,R,U,B,Z);/*A-overwrites-R*/
1605 trigger_cmd(A) ::= DELETE(B) FROM trnm(X) tridxby where_opt(Y) scanpt(E).
1606 {A = sqlite3TriggerDeleteStep(pParse, &X, Y, B.z, E);}
1609 trigger_cmd(A) ::= scanpt(B) select(X) scanpt(E).
1610 {A = sqlite3TriggerSelectStep(pParse->db, X, B, E); /*A-overwrites-X*/}
1613 expr(A) ::= RAISE LP IGNORE RP. {
1614 A = sqlite3PExpr(pParse, TK_RAISE, 0, 0);
1615 if( A ){
1616 A->affExpr = OE_Ignore;
1619 expr(A) ::= RAISE LP raisetype(T) COMMA nm(Z) RP. {
1620 A = sqlite3ExprAlloc(pParse->db, TK_RAISE, &Z, 1);
1621 if( A ) {
1622 A->affExpr = (char)T;
1628 raisetype(A) ::= ROLLBACK. {A = OE_Rollback;}
1629 raisetype(A) ::= ABORT. {A = OE_Abort;}
1630 raisetype(A) ::= FAIL. {A = OE_Fail;}
1651 key_opt(A) ::= . { A = 0; }
1652 key_opt(A) ::= KEY expr(X). { A = X; }
1732 wqas(A) ::= AS. {A = M10d_Any;}
1733 wqas(A) ::= AS MATERIALIZED. {A = M10d_Yes;}
1734 wqas(A) ::= AS NOT MATERIALIZED. {A = M10d_No;}
1735 wqitem(A) ::= nm(X) eidlist_opt(Y) wqas(M) LP select(Z) RP. {
1736 A = sqlite3CteNew(pParse, &X, Y, Z, M); /*A-overwrites-X*/
1738 wqlist(A) ::= wqitem(X). {
1739 A = sqlite3WithAdd(pParse, 0, X); /*A-overwrites-X*/
1741 wqlist(A) ::= wqlist(A) COMMA wqitem(X). {
1742 A = sqlite3WithAdd(pParse, A, X);
1755 windowdefn_list(A) ::= windowdefn(Z). { A = Z; }
1756 windowdefn_list(A) ::= windowdefn_list(Y) COMMA windowdefn(Z). {
1760 A = Z;
1765 windowdefn(A) ::= nm(X) AS LP window(Y) RP. {
1769 A = Y;
1799 window(A) ::= PARTITION BY nexprlist(X) orderby_opt(Y) frame_opt(Z). {
1800 A = sqlite3WindowAssemble(pParse, Z, X, Y, 0);
1802 window(A) ::= nm(W) PARTITION BY nexprlist(X) orderby_opt(Y) frame_opt(Z). {
1803 A = sqlite3WindowAssemble(pParse, Z, X, Y, &W);
1805 window(A) ::= ORDER BY sortlist(Y) frame_opt(Z). {
1806 A = sqlite3WindowAssemble(pParse, Z, 0, Y, 0);
1808 window(A) ::= nm(W) ORDER BY sortlist(Y) frame_opt(Z). {
1809 A = sqlite3WindowAssemble(pParse, Z, 0, Y, &W);
1811 window(A) ::= frame_opt(Z). {
1812 A = Z;
1814 window(A) ::= nm(W) frame_opt(Z). {
1815 A = sqlite3WindowAssemble(pParse, Z, 0, 0, &W);
1818 frame_opt(A) ::= . {
1819 A = sqlite3WindowAlloc(pParse, 0, TK_UNBOUNDED, 0, TK_CURRENT, 0, 0);
1821 frame_opt(A) ::= range_or_rows(X) frame_bound_s(Y) frame_exclude_opt(Z). {
1822 A = sqlite3WindowAlloc(pParse, X, Y.eType, Y.pExpr, TK_CURRENT, 0, Z);
1824 frame_opt(A) ::= range_or_rows(X) BETWEEN frame_bound_s(Y) AND
1826 A = sqlite3WindowAlloc(pParse, X, Y.eType, Y.pExpr, Z.eType, Z.pExpr, W);
1829 range_or_rows(A) ::= RANGE|ROWS|GROUPS(X). {A = @X; /*A-overwrites-X*/}
1831 frame_bound_s(A) ::= frame_bound(X). {A = X;}
1832 frame_bound_s(A) ::= UNBOUNDED(X) PRECEDING. {A.eType = @X; A.pExpr = 0;}
1833 frame_bound_e(A) ::= frame_bound(X). {A = X;}
1834 frame_bound_e(A) ::= UNBOUNDED(X) FOLLOWING. {A.eType = @X; A.pExpr = 0;}
1836 frame_bound(A) ::= expr(X) PRECEDING|FOLLOWING(Y).
1837 {A.eType = @Y; A.pExpr = X;}
1838 frame_bound(A) ::= CURRENT(X) ROW. {A.eType = @X; A.pExpr = 0;}
1841 frame_exclude_opt(A) ::= . {A = 0;}
1842 frame_exclude_opt(A) ::= EXCLUDE frame_exclude(X). {A = X;}
1845 frame_exclude(A) ::= NO(X) OTHERS. {A = @X; /*A-overwrites-X*/}
1846 frame_exclude(A) ::= CURRENT(X) ROW. {A = @X; /*A-overwrites-X*/}
1847 frame_exclude(A) ::= GROUP|TIES(X). {A = @X; /*A-overwrites-X*/}
1852 window_clause(A) ::= WINDOW windowdefn_list(B). { A = B; }
1854 filter_over(A) ::= filter_clause(F) over_clause(O). {
1860 A = O;
1862 filter_over(A) ::= over_clause(O). {
1863 A = O;
1865 filter_over(A) ::= filter_clause(F). {
1866 A = (Window*)sqlite3DbMallocZero(pParse->db, sizeof(Window));
1867 if( A ){
1868 A->eFrmType = TK_FILTER;
1869 A->pFilter = F;
1875 over_clause(A) ::= OVER LP window(Z) RP. {
1876 A = Z;
1877 assert( A!=0 );
1879 over_clause(A) ::= OVER nm(Z). {
1880 A = (Window*)sqlite3DbMallocZero(pParse->db, sizeof(Window));
1881 if( A ){
1882 A->zName = sqlite3DbStrNDup(pParse->db, Z.z, Z.n);
1886 filter_clause(A) ::= FILTER LP WHERE expr(X) RP. { A = X; }