Lines Matching defs:pParse
410 ** in pParse and return non-zero. Return zero on success.
413 Parse *pParse, /* The parsing context */
427 sqlite *db = pParse->db; /* The database */
490 if( zDb==0 && zTab!=0 && cnt==0 && pParse->trigStack!=0 ){
491 TriggerStack *pTriggerStack = pParse->trigStack;
583 sqliteErrorMsg(pParse, zErr, z);
597 sqliteAuthRead(pParse, pExpr, pSrcList);
630 ** the number of errors seen and leaves an error message on pParse->zErrMsg.
633 Parse *pParse, /* The parser context */
642 assert( pSrcList->a[i].iCursor>=0 && pSrcList->a[i].iCursor<pParse->nTab );
656 if( lookupName(pParse, 0, 0, &pExpr->token, pSrcList, pEList, pExpr) ){
682 if( lookupName(pParse, pDb, pTable, pColumn, pSrcList, 0, pExpr) ){
689 Vdbe *v = sqliteGetVdbe(pParse);
691 if( sqliteExprResolveIds(pParse, pSrcList, pEList, pExpr->pLeft) ){
701 pExpr->iTable = pParse->nTab++;
703 sqliteSelect(pParse, pExpr->pSelect, SRT_Set, pExpr->iTable, 0,0,0);
714 sqliteErrorMsg(pParse,
718 if( sqliteExprCheck(pParse, pE2, 0, 0) ){
722 iSet = pExpr->iTable = pParse->nSet++;
737 sqliteExprCode(pParse, pE2);
752 pExpr->iColumn = pParse->nMem++;
753 if( sqliteSelect(pParse, pExpr->pSelect, SRT_Mem, pExpr->iColumn,0,0,0) ){
762 && sqliteExprResolveIds(pParse, pSrcList, pEList, pExpr->pLeft) ){
766 && sqliteExprResolveIds(pParse, pSrcList, pEList, pExpr->pRight) ){
774 if( sqliteExprResolveIds(pParse, pSrcList, pEList, pArg) ){
820 ** number of arguments. Leave an error message in pParse->zErrMsg
826 int sqliteExprCheck(Parse *pParse, Expr *pExpr, int allowAgg, int *pIsAgg){
843 pDef = sqliteFindFunction(pParse->db, zId, nId, n, 0);
845 pDef = sqliteFindFunction(pParse->db, zId, nId, -1, 0);
855 sqliteErrorMsg(pParse, "misuse of aggregate function %.*s()", nId, zId);
859 sqliteErrorMsg(pParse, "no such function: %.*s", nId, zId);
862 sqliteErrorMsg(pParse,"wrong number of arguments to function %.*s()",
871 nErr = sqliteExprCheck(pParse, pExpr->pList->a[i].pExpr,
899 nErr = sqliteExprCheck(pParse, pExpr->pLeft, allowAgg, pIsAgg);
902 nErr = sqliteExprCheck(pParse, pExpr->pRight, allowAgg, pIsAgg);
909 nErr = sqliteExprCheck(pParse, pE2, allowAgg, pIsAgg);
1014 void sqliteExprCode(Parse *pParse, Expr *pExpr){
1015 Vdbe *v = pParse->pVdbe;
1045 if( pParse->useAgg ){
1081 if( pParse->db->file_format>=4 && sqliteExprType(pExpr)==SQLITE_SO_TEXT ){
1095 sqliteExprCode(pParse, pExpr->pLeft);
1096 sqliteExprCode(pParse, pExpr->pRight);
1102 sqliteExprCode(pParse, pExpr->pRight);
1103 sqliteExprCode(pParse, pExpr->pLeft);
1108 sqliteExprCode(pParse, pExpr->pLeft);
1109 sqliteExprCode(pParse, pExpr->pRight);
1132 sqliteExprCode(pParse, pExpr->pLeft);
1140 sqliteExprCode(pParse, pExpr->pLeft);
1159 pDef = sqliteFindFunction(pParse->db, zId, nId, nExpr, 0);
1161 nExpr = sqliteExprCodeExprList(pParse, pList, pDef->includeTypes);
1172 sqliteExprCode(pParse, pExpr->pLeft);
1187 sqliteExprCode(pParse, pExpr->pLeft);
1189 sqliteExprCode(pParse, pExpr->pList->a[0].pExpr);
1192 sqliteExprCode(pParse, pExpr->pList->a[1].pExpr);
1199 sqliteExprCode(pParse, pExpr->pLeft);
1215 sqliteExprCode(pParse, pExpr->pLeft);
1218 sqliteExprCode(pParse, pExpr->pList->a[i].pExpr);
1226 sqliteExprCode(pParse, pExpr->pList->a[i+1].pExpr);
1235 sqliteExprCode(pParse, pExpr->pRight);
1243 if( !pParse->trigStack ){
1244 sqliteErrorMsg(pParse,
1246 pParse->nErr++;
1257 sqliteVdbeOp3(v, OP_Goto, 0, pParse->trigStack->ignoreJump,
1274 Parse *pParse, /* Parsing context */
1282 v = sqliteGetVdbe(pParse);
1285 sqliteExprCode(pParse, pItem->pExpr);
1303 void sqliteExprIfTrue(Parse *pParse, Expr *pExpr, int dest, int jumpIfNull){
1304 Vdbe *v = pParse->pVdbe;
1321 sqliteExprIfFalse(pParse, pExpr->pLeft, d2, !jumpIfNull);
1322 sqliteExprIfTrue(pParse, pExpr->pRight, dest, jumpIfNull);
1327 sqliteExprIfTrue(pParse, pExpr->pLeft, dest, jumpIfNull);
1328 sqliteExprIfTrue(pParse, pExpr->pRight, dest, jumpIfNull);
1332 sqliteExprIfFalse(pParse, pExpr->pLeft, dest, jumpIfNull);
1341 sqliteExprCode(pParse, pExpr->pLeft);
1342 sqliteExprCode(pParse, pExpr->pRight);
1343 if( pParse->db->file_format>=4 && sqliteExprType(pExpr)==SQLITE_SO_TEXT ){
1351 sqliteExprCode(pParse, pExpr->pLeft);
1357 sqliteExprCode(pParse, pExpr->pLeft);
1371 sqliteExprCode(pParse, pExpr->pLeft);
1373 sqliteExprCode(pParse, pExpr->pList->a[0].pExpr);
1375 sqliteExprCode(pParse, pExpr->pList->a[1].pExpr);
1383 sqliteExprCode(pParse, pExpr);
1398 void sqliteExprIfFalse(Parse *pParse, Expr *pExpr, int dest, int jumpIfNull){
1399 Vdbe *v = pParse->pVdbe;
1415 sqliteExprIfFalse(pParse, pExpr->pLeft, dest, jumpIfNull);
1416 sqliteExprIfFalse(pParse, pExpr->pRight, dest, jumpIfNull);
1421 sqliteExprIfTrue(pParse, pExpr->pLeft, d2, !jumpIfNull);
1422 sqliteExprIfFalse(pParse, pExpr->pRight, dest, jumpIfNull);
1427 sqliteExprIfTrue(pParse, pExpr->pLeft, dest, jumpIfNull);
1436 if( pParse->db->file_format>=4 && sqliteExprType(pExpr)==SQLITE_SO_TEXT ){
1445 sqliteExprCode(pParse, pExpr->pLeft);
1446 sqliteExprCode(pParse, pExpr->pRight);
1452 sqliteExprCode(pParse, pExpr->pLeft);
1458 sqliteExprCode(pParse, pExpr->pLeft);
1472 sqliteExprCode(pParse, pExpr->pLeft);
1474 sqliteExprCode(pParse, pExpr->pList->a[0].pExpr);
1479 sqliteExprCode(pParse, pExpr->pList->a[1].pExpr);
1484 sqliteExprCode(pParse, pExpr);
1527 ** Add a new element to the pParse->aAgg[] array and return its index.
1529 static int appendAggInfo(Parse *pParse){
1530 if( (pParse->nAgg & 0x7)==0 ){
1531 int amt = pParse->nAgg + 8;
1532 AggExpr *aAgg = sqliteRealloc(pParse->aAgg, amt*sizeof(pParse->aAgg[0]));
1536 pParse->aAgg = aAgg;
1538 memset(&pParse->aAgg[pParse->nAgg], 0, sizeof(pParse->aAgg[0]));
1539 return pParse->nAgg++;
1544 ** for variables that need to be added to the pParse->aAgg[] array.
1545 ** Make additional entries to the pParse->aAgg[] array as necessary.
1553 int sqliteExprAnalyzeAggregates(Parse *pParse, Expr *pExpr){
1561 aAgg = pParse->aAgg;
1562 for(i=0; i<pParse->nAgg; i++){
1569 if( i>=pParse->nAgg ){
1570 i = appendAggInfo(pParse);
1572 pParse->aAgg[i].isAgg = 0;
1573 pParse->aAgg[i].pExpr = pExpr;
1579 aAgg = pParse->aAgg;
1580 for(i=0; i<pParse->nAgg; i++){
1586 if( i>=pParse->nAgg ){
1587 i = appendAggInfo(pParse);
1589 pParse->aAgg[i].isAgg = 1;
1590 pParse->aAgg[i].pExpr = pExpr;
1591 pParse->aAgg[i].pFunc = sqliteFindFunction(pParse->db,
1600 nErr = sqliteExprAnalyzeAggregates(pParse, pExpr->pLeft);
1603 nErr = sqliteExprAnalyzeAggregates(pParse, pExpr->pRight);
1609 nErr = sqliteExprAnalyzeAggregates(pParse, pExpr->pList->a[i].pExpr);