Lines Matching refs:pParse

631 static Window *windowFind(Parse *pParse, Window *pList, const char *zName){  in windowFind()  argument
637 sqlite3ErrorMsg(pParse, "no such window: %s", zName); in windowFind()
660 Parse *pParse, in sqlite3WindowUpdate() argument
666 Window *p = windowFind(pParse, pList, pWin->zName); in sqlite3WindowUpdate()
668 pWin->pPartition = sqlite3ExprListDup(pParse->db, p->pPartition, 0); in sqlite3WindowUpdate()
669 pWin->pOrderBy = sqlite3ExprListDup(pParse->db, p->pOrderBy, 0); in sqlite3WindowUpdate()
670 pWin->pStart = sqlite3ExprDup(pParse->db, p->pStart, 0); in sqlite3WindowUpdate()
671 pWin->pEnd = sqlite3ExprDup(pParse->db, p->pEnd, 0); in sqlite3WindowUpdate()
677 sqlite3WindowChain(pParse, pWin, pList); in sqlite3WindowUpdate()
683 sqlite3ErrorMsg(pParse, in sqlite3WindowUpdate()
688 sqlite3 *db = pParse->db; in sqlite3WindowUpdate()
690 sqlite3ErrorMsg(pParse, in sqlite3WindowUpdate()
750 Parse *pParse = pWalker->pParse; in selectWindowRewriteExprCb() local
791 if( pParse->db->mallocFailed ) return WRC_Abort; in selectWindowRewriteExprCb()
802 Expr *pDup = sqlite3ExprDup(pParse->db, pExpr, 0); in selectWindowRewriteExprCb()
804 p->pSub = sqlite3ExprListAppend(pParse, p->pSub, pDup); in selectWindowRewriteExprCb()
810 sqlite3ExprDelete(pParse->db, pExpr); in selectWindowRewriteExprCb()
820 if( pParse->db->mallocFailed ) return WRC_Abort; in selectWindowRewriteExprCb()
858 Parse *pParse, in selectWindowRewriteEList() argument
877 sWalker.pParse = pParse; in selectWindowRewriteEList()
892 Parse *pParse, /* Parsing context */ in exprListAppendList() argument
901 sqlite3 *db = pParse->db; in exprListAppendList()
917 pList = sqlite3ExprListAppend(pParse, pList, pDup); in exprListAppendList()
944 sqlite3ErrorMsg(pWalker->pParse, in disallowAggregatesInOrderByCb()
957 int sqlite3WindowRewrite(Parse *pParse, Select *p){ in sqlite3WindowRewrite() argument
964 Vdbe *v = sqlite3GetVdbe(pParse); in sqlite3WindowRewrite()
965 sqlite3 *db = pParse->db; in sqlite3WindowRewrite()
985 sqlite3AggInfoPersistWalkerInit(&w, pParse); in sqlite3WindowRewrite()
1003 pSort = exprListAppendList(pParse, 0, pMWin->pPartition, 1); in sqlite3WindowRewrite()
1004 pSort = exprListAppendList(pParse, pSort, pMWin->pOrderBy, 1); in sqlite3WindowRewrite()
1018 pMWin->iEphCsr = pParse->nTab++; in sqlite3WindowRewrite()
1019 pParse->nTab += 3; in sqlite3WindowRewrite()
1021 selectWindowRewriteEList(pParse, pMWin, pSrc, p->pEList, pTab, &pSublist); in sqlite3WindowRewrite()
1022 selectWindowRewriteEList(pParse, pMWin, pSrc, p->pOrderBy, pTab, &pSublist); in sqlite3WindowRewrite()
1028 pSublist = exprListAppendList(pParse, pSublist, pMWin->pPartition, 0); in sqlite3WindowRewrite()
1029 pSublist = exprListAppendList(pParse, pSublist, pMWin->pOrderBy, 0); in sqlite3WindowRewrite()
1041 selectWindowRewriteEList(pParse, pMWin, pSrc, pArgs, pTab, &pSublist); in sqlite3WindowRewrite()
1046 pSublist = exprListAppendList(pParse, pSublist, pArgs, 0); in sqlite3WindowRewrite()
1050 pSublist = sqlite3ExprListAppend(pParse, pSublist, pFilter); in sqlite3WindowRewrite()
1052 pWin->regAccum = ++pParse->nMem; in sqlite3WindowRewrite()
1053 pWin->regResult = ++pParse->nMem; in sqlite3WindowRewrite()
1064 pSublist = sqlite3ExprListAppend(pParse, 0, in sqlite3WindowRewrite()
1070 pParse, pSublist, pSrc, pWhere, pGroupBy, pHaving, pSort, 0, 0 in sqlite3WindowRewrite()
1072 SELECTTRACE(1,pParse,pSub, in sqlite3WindowRewrite()
1075 p->pSrc = sqlite3SrcListAppend(pParse, 0, 0, 0); in sqlite3WindowRewrite()
1082 sqlite3SrcListAssignCursors(pParse, p->pSrc); in sqlite3WindowRewrite()
1084 pTab2 = sqlite3ResultSetOfSelect(pParse, pSub, SQLITE_AFF_NONE); in sqlite3WindowRewrite()
1110 sqlite3ParserAddCleanup(pParse, sqlite3DbFree, pTab); in sqlite3WindowRewrite()
1113 assert( rc==SQLITE_OK || pParse->nErr!=0 ); in sqlite3WindowRewrite()
1164 static Expr *sqlite3WindowOffsetExpr(Parse *pParse, Expr *pExpr){ in sqlite3WindowOffsetExpr() argument
1166 if( IN_RENAME_OBJECT ) sqlite3RenameExprUnmap(pParse, pExpr); in sqlite3WindowOffsetExpr()
1167 sqlite3ExprDelete(pParse->db, pExpr); in sqlite3WindowOffsetExpr()
1168 pExpr = sqlite3ExprAlloc(pParse->db, TK_NULL, 0, 0); in sqlite3WindowOffsetExpr()
1177 Parse *pParse, /* Parsing context */ in sqlite3WindowAlloc() argument
1219 sqlite3ErrorMsg(pParse, "unsupported frame specification"); in sqlite3WindowAlloc()
1223 pWin = (Window*)sqlite3DbMallocZero(pParse->db, sizeof(Window)); in sqlite3WindowAlloc()
1228 if( eExclude==0 && OptimizationDisabled(pParse->db, SQLITE_WindowFunc) ){ in sqlite3WindowAlloc()
1233 pWin->pEnd = sqlite3WindowOffsetExpr(pParse, pEnd); in sqlite3WindowAlloc()
1234 pWin->pStart = sqlite3WindowOffsetExpr(pParse, pStart); in sqlite3WindowAlloc()
1238 sqlite3ExprDelete(pParse->db, pEnd); in sqlite3WindowAlloc()
1239 sqlite3ExprDelete(pParse->db, pStart); in sqlite3WindowAlloc()
1249 Parse *pParse, in sqlite3WindowAssemble() argument
1259 pWin->zBase = sqlite3DbStrNDup(pParse->db, pBase->z, pBase->n); in sqlite3WindowAssemble()
1262 sqlite3ExprListDelete(pParse->db, pPartition); in sqlite3WindowAssemble()
1263 sqlite3ExprListDelete(pParse->db, pOrderBy); in sqlite3WindowAssemble()
1275 void sqlite3WindowChain(Parse *pParse, Window *pWin, Window *pList){ in sqlite3WindowChain() argument
1277 sqlite3 *db = pParse->db; in sqlite3WindowChain()
1278 Window *pExist = windowFind(pParse, pList, pWin->zBase); in sqlite3WindowChain()
1290 sqlite3ErrorMsg(pParse, in sqlite3WindowChain()
1309 void sqlite3WindowAttach(Parse *pParse, Expr *p, Window *pWin){ in sqlite3WindowAttach() argument
1317 sqlite3ErrorMsg(pParse, in sqlite3WindowAttach()
1322 sqlite3WindowDelete(pParse->db, pWin); in sqlite3WindowAttach()
1355 const Parse *pParse, in sqlite3WindowCompare() argument
1366 if( sqlite3ExprCompare(pParse, p1->pStart, p2->pStart, -1) ) return 1; in sqlite3WindowCompare()
1367 if( sqlite3ExprCompare(pParse, p1->pEnd, p2->pEnd, -1) ) return 1; in sqlite3WindowCompare()
1375 if( (res = sqlite3ExprCompare(pParse, p1->pFilter, p2->pFilter, -1)) ){ in sqlite3WindowCompare()
1388 void sqlite3WindowCodeInit(Parse *pParse, Select *pSelect){ in sqlite3WindowCodeInit() argument
1392 Vdbe *v = sqlite3GetVdbe(pParse); in sqlite3WindowCodeInit()
1403 pMWin->regPart = pParse->nMem+1; in sqlite3WindowCodeInit()
1404 pParse->nMem += nExpr; in sqlite3WindowCodeInit()
1408 pMWin->regOne = ++pParse->nMem; in sqlite3WindowCodeInit()
1412 pMWin->regStartRowid = ++pParse->nMem; in sqlite3WindowCodeInit()
1413 pMWin->regEndRowid = ++pParse->nMem; in sqlite3WindowCodeInit()
1414 pMWin->csrApp = pParse->nTab++; in sqlite3WindowCodeInit()
1435 pKeyInfo = sqlite3KeyInfoFromExprList(pParse, pList, 0, 0); in sqlite3WindowCodeInit()
1436 pWin->csrApp = pParse->nTab++; in sqlite3WindowCodeInit()
1437 pWin->regApp = pParse->nMem+1; in sqlite3WindowCodeInit()
1438 pParse->nMem += 3; in sqlite3WindowCodeInit()
1450 pWin->regApp = pParse->nMem+1; in sqlite3WindowCodeInit()
1451 pWin->csrApp = pParse->nTab++; in sqlite3WindowCodeInit()
1452 pParse->nMem += 2; in sqlite3WindowCodeInit()
1456 pWin->csrApp = pParse->nTab++; in sqlite3WindowCodeInit()
1475 static void windowCheckValue(Parse *pParse, int reg, int eCond){ in windowCheckValue() argument
1484 Vdbe *v = sqlite3GetVdbe(pParse); in windowCheckValue()
1485 int regZero = sqlite3GetTempReg(pParse); in windowCheckValue()
1489 int regString = sqlite3GetTempReg(pParse); in windowCheckValue()
1512 sqlite3MayAbort(pParse); in windowCheckValue()
1515 sqlite3ReleaseTempReg(pParse, regZero); in windowCheckValue()
1596 Parse *pParse; /* Parse context */ member
1622 Vdbe *v = sqlite3GetVdbe(p->pParse); in windowReadPeerValues()
1658 Parse *pParse = p->pParse; in windowAggStep() local
1659 Vdbe *v = sqlite3GetVdbe(pParse); in windowAggStep()
1671 assert( pWin==pMWin || sqlite3WindowCompare(pParse,pWin,pMWin,0)!=1 ); in windowAggStep()
1713 regTmp = sqlite3GetTempReg(pParse); in windowAggStep()
1717 sqlite3ReleaseTempReg(pParse, regTmp); in windowAggStep()
1726 regArg = sqlite3GetTempRange(pParse, nArg); in windowAggStep()
1727 sqlite3ExprCodeExprList(pParse, pWin->pOwner->x.pList, regArg, 0, 0); in windowAggStep()
1740 pColl = sqlite3ExprNNCollSeq(pParse, pWin->pOwner->x.pList->a[0].pExpr); in windowAggStep()
1748 sqlite3ReleaseTempRange(pParse, regArg, nArg); in windowAggStep()
1769 Parse *pParse = p->pParse; in windowAggFinal() local
1771 Vdbe *v = sqlite3GetVdbe(pParse); in windowAggFinal()
1809 Parse *pParse = p->pParse; in windowFullScan() local
1830 lblNext = sqlite3VdbeMakeLabel(pParse); in windowFullScan()
1831 lblBrk = sqlite3VdbeMakeLabel(pParse); in windowFullScan()
1833 regCRowid = sqlite3GetTempReg(pParse); in windowFullScan()
1834 regRowid = sqlite3GetTempReg(pParse); in windowFullScan()
1836 regCPeer = sqlite3GetTempRange(pParse, nPeer); in windowFullScan()
1837 regPeer = sqlite3GetTempRange(pParse, nPeer); in windowFullScan()
1863 pKeyInfo = sqlite3KeyInfoFromExprList(pParse, pMWin->pOrderBy, 0, 0); in windowFullScan()
1889 sqlite3ReleaseTempReg(pParse, regRowid); in windowFullScan()
1890 sqlite3ReleaseTempReg(pParse, regCRowid); in windowFullScan()
1892 sqlite3ReleaseTempRange(pParse, regPeer, nPeer); in windowFullScan()
1893 sqlite3ReleaseTempRange(pParse, regCPeer, nPeer); in windowFullScan()
1920 Parse *pParse = p->pParse; in windowReturnOneRow() local
1930 int lbl = sqlite3VdbeMakeLabel(pParse); in windowReturnOneRow()
1931 int tmpReg = sqlite3GetTempReg(pParse); in windowReturnOneRow()
1936 windowCheckValue(pParse, tmpReg, 2); in windowReturnOneRow()
1947 sqlite3ReleaseTempReg(pParse, tmpReg); in windowReturnOneRow()
1952 int lbl = sqlite3VdbeMakeLabel(pParse); in windowReturnOneRow()
1953 int tmpReg = sqlite3GetTempReg(pParse); in windowReturnOneRow()
1967 int tmpReg2 = sqlite3GetTempReg(pParse); in windowReturnOneRow()
1970 sqlite3ReleaseTempReg(pParse, tmpReg2); in windowReturnOneRow()
1977 sqlite3ReleaseTempReg(pParse, tmpReg); in windowReturnOneRow()
1990 static int windowInitAccum(Parse *pParse, Window *pMWin){ in windowInitAccum() argument
1991 Vdbe *v = sqlite3GetVdbe(pParse); in windowInitAccum()
2013 regArg = pParse->nMem+1; in windowInitAccum()
2014 pParse->nMem += nArg; in windowInitAccum()
2049 Parse *pParse, in windowIfNewPeer() argument
2055 Vdbe *v = sqlite3GetVdbe(pParse); in windowIfNewPeer()
2058 KeyInfo *pKeyInfo = sqlite3KeyInfoFromExprList(pParse, pOrderBy, 0, 0); in windowIfNewPeer()
2102 Parse *pParse = p->pParse; in windowCodeRangeTest() local
2103 Vdbe *v = sqlite3GetVdbe(pParse); in windowCodeRangeTest()
2105 int reg1 = sqlite3GetTempReg(pParse); /* Reg. for csr1.peerVal+regVal */ in windowCodeRangeTest()
2106 int reg2 = sqlite3GetTempReg(pParse); /* Reg. for csr2.peerVal */ in windowCodeRangeTest()
2107 int regString = ++pParse->nMem; /* Reg. for constant value '' */ in windowCodeRangeTest()
2110 int addrDone = sqlite3VdbeMakeLabel(pParse); /* Address past OP_Ge */ in windowCodeRangeTest()
2204 pColl = sqlite3ExprNNCollSeq(pParse, pOrderBy->a[0].pExpr); in windowCodeRangeTest()
2214 sqlite3ReleaseTempReg(pParse, reg1); in windowCodeRangeTest()
2215 sqlite3ReleaseTempReg(pParse, reg2); in windowCodeRangeTest()
2233 Parse *pParse = p->pParse; in windowCodeOp() local
2240 int lblDone = sqlite3VdbeMakeLabel(pParse); in windowCodeOp()
2289 int regRowid1 = sqlite3GetTempReg(pParse); in windowCodeOp()
2290 int regRowid2 = sqlite3GetTempReg(pParse); in windowCodeOp()
2301 sqlite3ReleaseTempReg(pParse, regRowid1); in windowCodeOp()
2302 sqlite3ReleaseTempReg(pParse, regRowid2); in windowCodeOp()
2356 int regTmp = (nReg ? sqlite3GetTempRange(pParse, nReg) : 0); in windowCodeOp()
2358 windowIfNewPeer(pParse, pMWin->pOrderBy, regTmp, reg, addrContinue); in windowCodeOp()
2359 sqlite3ReleaseTempRange(pParse, regTmp, nReg); in windowCodeOp()
2430 static int windowExprGtZero(Parse *pParse, Expr *pExpr){ in windowExprGtZero() argument
2432 sqlite3 *db = pParse->db; in windowExprGtZero()
2778 Parse *pParse, /* Parse context */ in sqlite3WindowCodeStep() argument
2786 Vdbe *v = sqlite3GetVdbe(pParse); in sqlite3WindowCodeStep()
2816 lblWhereEnd = sqlite3VdbeMakeLabel(pParse); in sqlite3WindowCodeStep()
2820 s.pParse = pParse; in sqlite3WindowCodeStep()
2839 && windowExprGtZero(pParse, pMWin->pStart) in sqlite3WindowCodeStep()
2848 && windowExprGtZero(pParse, pMWin->pEnd) in sqlite3WindowCodeStep()
2865 regNew = pParse->nMem+1; in sqlite3WindowCodeStep()
2866 pParse->nMem += nInput; in sqlite3WindowCodeStep()
2867 regRecord = ++pParse->nMem; in sqlite3WindowCodeStep()
2868 s.regRowid = ++pParse->nMem; in sqlite3WindowCodeStep()
2874 regStart = ++pParse->nMem; in sqlite3WindowCodeStep()
2877 regEnd = ++pParse->nMem; in sqlite3WindowCodeStep()
2887 regPeer = pParse->nMem+1; pParse->nMem += nPeer; in sqlite3WindowCodeStep()
2888 s.start.reg = pParse->nMem+1; pParse->nMem += nPeer; in sqlite3WindowCodeStep()
2889 s.current.reg = pParse->nMem+1; pParse->nMem += nPeer; in sqlite3WindowCodeStep()
2890 s.end.reg = pParse->nMem+1; pParse->nMem += nPeer; in sqlite3WindowCodeStep()
2911 KeyInfo *pKeyInfo = sqlite3KeyInfoFromExprList(pParse, pPart, 0, 0); in sqlite3WindowCodeStep()
2913 regFlushPart = ++pParse->nMem; in sqlite3WindowCodeStep()
2930 s.regArg = windowInitAccum(pParse, pMWin); in sqlite3WindowCodeStep()
2933 sqlite3ExprCode(pParse, pMWin->pStart, regStart); in sqlite3WindowCodeStep()
2934 windowCheckValue(pParse, regStart, 0 + (pMWin->eFrmType==TK_RANGE?3:0)); in sqlite3WindowCodeStep()
2937 sqlite3ExprCode(pParse, pMWin->pEnd, regEnd); in sqlite3WindowCodeStep()
2938 windowCheckValue(pParse, regEnd, 1 + (pMWin->eFrmType==TK_RANGE?3:0)); in sqlite3WindowCodeStep()
2980 windowIfNewPeer(pParse, pOrderBy, regNewPeer, regPeer, lblWhereEnd); in sqlite3WindowCodeStep()
2986 int lbl = sqlite3VdbeMakeLabel(pParse); in sqlite3WindowCodeStep()
3013 lbl = sqlite3VdbeMakeLabel(pParse); in sqlite3WindowCodeStep()