Home | History | Annotate | Download | only in orig

Lines Matching defs:pList

15107 ** Expr.x.pList is a list of arguments if the expression is an SQL function,
15111 ** Expr.flags mask, then Expr.x.pSelect is valid. Otherwise, Expr.x.pList is
15148 ** the subtrees in Expr.x.pList or Expr.x.pSelect are always separately
15168 ExprList *pList; /* op = IN, EXISTS, SELECT, CASE, FUNCTION, BETWEEN */
15211 #define EP_xIsSelect 0x000800 /* x.pSelect is valid (otherwise x.pList is) */
26605 pFarg = pExpr->x.pList;
26635 sqlite3TreeViewExprList(pView, pExpr->x.pList, 0, 0);
26649 ** Y is stored in pExpr->pList->a[0].pExpr.
26650 ** Z is stored in pExpr->pList->a[1].pExpr.
26654 Expr *pY = pExpr->x.pList->a[0].pExpr;
26655 Expr *pZ = pExpr->x.pList->a[1].pExpr;
26677 sqlite3TreeViewExprList(pView, pExpr->x.pList, 0, 0);
26700 sqlite3TreeViewBareExprList(pView, pExpr->x.pList, "VECTOR");
26735 const ExprList *pList,
26739 if( pList==0 ){
26744 for(i=0; i<pList->nExpr; i++){
26745 int j = pList->a[i].u.x.iOrderByCol;
26750 sqlite3TreeViewExpr(pView, pList->a[i].pExpr, i<pList->nExpr-1);
26757 const ExprList *pList,
26762 sqlite3TreeViewBareExprList(pView, pList, zLabel);
46746 static struct RowSetEntry *rowSetListToTree(struct RowSetEntry *pList){
46751 assert( pList!=0 );
46752 p = pList;
46753 pList = p->pRight;
46755 for(iDepth=1; pList; iDepth++){
46757 p = pList;
46758 pList = p->pRight;
46760 p->pRight = rowSetNDeepTree(&pList, iDepth);
50152 PgHdr *pList; /* List of dirty pages to revert */
50163 pList = sqlite3PcacheDirtyList(pPager->pPCache);
50164 while( pList && rc==SQLITE_OK ){
50165 PgHdr *pNext = pList->pDirty;
50166 rc = pagerUndoCallback((void *)pPager, pList->pgno);
50167 pList = pNext;
50175 ** the contents of the list of pages headed by pList (connected by pDirty),
50184 PgHdr *pList, /* List of frames to log */
50189 int nList; /* Number of pages in pList */
50193 assert( pList );
50196 for(p=pList; p && p->pDirty; p=p->pDirty){
50201 assert( pList->pDirty==0 || isCommit );
50207 PgHdr **ppNext = &pList;
50209 for(p=pList; (*ppNext = p)!=0; p=p->pDirty){
50215 assert( pList );
50221 if( pList->pgno==1 ) pager_write_changecounter(pList);
50223 pPager->pageSize, pList, nTruncate, isCommit, pPager->walSyncFlags
50226 for(p=pList; p; p=p->pDirty){
50232 pList = sqlite3PcacheDirtyList(pPager->pPCache);
50233 for(p=pList; p; p=p->pDirty){
51385 static int pager_write_pagelist(Pager *pPager, PgHdr *pList){
51392 assert( isOpen(pPager->fd) || pList->pDirty==0 );
51409 && (pList->pDirty || pList->pgno>pPager->dbHintSize)
51416 while( rc==SQLITE_OK && pList ){
51417 Pgno pgno = pList->pgno;
51427 if( pgno<=pPager->dbSize && 0==(pList->flags&PGHDR_DONT_WRITE) ){
51431 assert( (pList->flags&PGHDR_NEED_SYNC)==0 );
51432 if( pList->pgno==1 ) pager_write_changecounter(pList);
51435 CODEC2(pPager, pList->pData, pgno, 6, return SQLITE_NOMEM_BKPT, pData);
51453 sqlite3BackupUpdate(pPager->pBackup, pgno, (u8*)pList->pData);
51456 PAGERID(pPager), pgno, pager_pagehash(pList)));
51462 pager_set_pagehash(pList);
51463 pList = pList->pDirty;
51651 PgHdr *pList = sqlite3PcacheDirtyList(pPager->pPCache);
51653 while( rc==SQLITE_OK && pList ){
51654 PgHdr *pNext = pList->pDirty;
51655 if( pList->nRef==0 ){
51656 rc = pagerStress((void*)pPager, pList);
51658 pList = pNext;
53388 PgHdr *pList = sqlite3PcacheDirtyList(pPager->pPCache);
53390 if( pList==0 ){
53394 pList = pPageOne;
53395 pList->pDirty = 0;
53398 if( ALWAYS(pList) ){
53399 rc = pagerWalFrames(pPager, pList, pPager->dbSize, 1);
57690 PgHdr *pList, /* List of dirty pages to write */
57697 PgHdr *p; /* Iterator to run through pList with. */
57706 assert( pList );
57714 { int cnt; for(cnt=0, p=pList; p; p=p->pDirty, cnt++){}
57787 for(p=pList; p; p=p->pDirty){
57885 for(p=pList; p && rc==SQLITE_OK; p=p->pDirty){
61692 BtShared *pList;
61703 pList = GLOBAL(BtShared*,sqlite3SharedCacheList);
61704 while( ALWAYS(pList) && pList->pNext!=pBt ){
61705 pList=pList->pNext;
61707 if( ALWAYS(pList) ){
61708 pList->pNext = pBt->pNext;
71051 ExprList *pList = 0; /* Function arguments */
71056 pList = p->x.pList;
71057 if( pList ) nVal = pList->nExpr;
71066 if( pList ){
71073 rc = sqlite3ValueFromExpr(db, pList->a[i].pExpr, enc, aff, &apVal[i]);
86371 SorterRecord *pList; /* Linked list of records */
86372 u8 *aMemory; /* If non-NULL, bulk memory to hold pList */
86373 int szPMA; /* Size of pList as PMA in bytes */
87238 vdbeSorterRecordFree(0, pTask->list.pList);
87429 vdbeSorterRecordFree(0, pSorter->list.pList);
87431 pSorter->list.pList = 0;
87577 ** Sort the linked list of records headed at pTask->pList. Return
87581 static int vdbeSorterSort(SortSubtask *pTask, SorterList *pList){
87590 p = pList->pList;
87600 if( pList->aMemory ){
87601 if( (u8*)p==pList->aMemory ){
87604 assert( p->u.iNext<sqlite3MallocSize(pList->aMemory) );
87605 pNext = (SorterRecord*)&pList->aMemory[p->u.iNext];
87625 pList->pList = p;
87719 ** Write the current contents of in-memory linked-list pList to a level-0
87732 static int vdbeSorterListToPMA(SortSubtask *pTask, SorterList *pList){
87740 i64 iSz = pList->szPMA + sqlite3VarintLen(pList->szPMA) + pTask->file.iEof;
87745 assert( pList->szPMA>0 );
87757 vdbeSorterExtendFile(db, pTask->file.pFd, pTask->file.iEof+pList->szPMA+9);
87762 rc = vdbeSorterSort(pTask, pList);
87772 vdbePmaWriteVarint(&writer, pList->szPMA);
87773 for(p=pList->pList; p; p=pNext){
87777 if( pList->aMemory==0 ) sqlite3_free(p);
87779 pList->pList = p;
87784 assert( rc!=SQLITE_OK || pList->pList==0 );
87922 assert( pTask->list.pList==0 );
87927 pSorter->list.pList = 0;
88004 assert( rc!=SQLITE_OK || pSorter->list.pList==0 );
88018 int iListOff = (u8*)pSorter->list.pList - pSorter->list.aMemory;
88026 pSorter->list.pList = (SorterRecord*)&aNew[iListOff];
88033 if( pSorter->list.pList ){
88034 pNew->u.iNext = (int)((u8*)(pSorter->list.pList) - pSorter->list.aMemory);
88041 pNew->u.pNext = pSorter->list.pList;
88046 pSorter->list.pList = pNew;
88765 if( pSorter->list.pList ){
88778 assert( pSorter->list.pList );
88824 SorterRecord *pFree = pSorter->list.pList;
88825 pSorter->list.pList = pFree->u.pNext;
88828 *pbEof = !pSorter->list.pList;
88856 *pnKey = pSorter->list.pList->nVal;
88857 pKey = SRVAL(pSorter->list.pList);
89423 }else if( pExpr->x.pList ){
89424 if( sqlite3WalkExprList(pWalker, pExpr->x.pList) ) return WRC_Abort;
89931 assert( pExpr->x.pList==0 );
90187 ExprList *pList = pExpr->x.pList; /* The argument list */
90188 int n = pList ? pList->nExpr : 0; /* Number of arguments */
90213 pExpr->iTable = exprProbability(pList->a[1].pExpr);
90278 sqlite3WalkExprList(pWalker, pList);
90337 nRight = sqlite3ExprVectorSize(pExpr->x.pList->a[0].pExpr);
90339 nRight = sqlite3ExprVectorSize(pExpr->x.pList->a[1].pExpr);
91009 ExprList *pList /* The expression list to be analyzed. */
91012 if( pList ){
91013 for(i=0; i<pList->nExpr; i++){
91014 if( sqlite3ResolveExprNames(pNC, pList->a[i].pExpr) ) return WRC_Abort;
91064 ExprList *pList /* Expression list to resolve. May be NUL. */
91080 if( pList ) sqlite3ResolveExprListNames(&sNC, pList);
91196 assert( pExpr->x.pList->nExpr>0 );
91198 pExpr = pExpr->x.pList->a[0].pExpr;
91250 assert( p->x.pList==0 || p->pRight==0 );
91254 if( p->x.pList!=0 && ALWAYS(!ExprHasProperty(p, EP_xIsSelect)) ){
91256 for(i=0; ALWAYS(i<p->x.pList->nExpr); i++){
91257 if( ExprHasProperty(p->x.pList->a[i].pExpr, EP_Collate) ){
91258 pNext = p->x.pList->a[i].pExpr;
91431 return pExpr->x.pList->nExpr;
91461 return pVector->x.pList->a[i].pExpr;
91519 if( pVector->op==TK_VECTOR ) pVector = pVector->x.pList->a[iField].pExpr;
91579 *ppExpr = pVector->x.pList->a[iField].pExpr;
91729 ** argument. An expression with no children, Expr.pList or
91734 ** Also propagate EP_Propagate flags up from Expr.x.pList to Expr.flags,
91743 }else if( p->x.pList ){
91744 heightOfExprList(p->x.pList, &nHeight);
91745 p->flags |= EP_Propagate & sqlite3ExprListFlags(p->x.pList);
91755 ** Also propagate all EP_Propagate flags from the Expr.x.pList into
91775 ** Propagate all EP_Propagate flags from the Expr.x.pList into
91779 if( p && p->x.pList && !ExprHasProperty(p, EP_xIsSelect) ){
91780 p->flags |= EP_Propagate & sqlite3ExprListFlags(p->x.pList);
91998 SQLITE_PRIVATE Expr *sqlite3ExprFunction(Parse *pParse, ExprList *pList, Token *pToken){
92004 sqlite3ExprListDelete(db, pList); /* Avoid memory leak when malloc fails */
92007 pNew->x.pList = pList;
92110 assert( p->x.pList==0 || p->pRight==0 );
92116 sqlite3ExprListDelete(db, p->x.pList);
92185 if( p->pLeft || p->x.pList ){
92219 ** descended from the Expr.x.pList or Expr.x.pSelect variables).
92297 /* Fill in the pNew->x.pSelect or pNew->x.pList member. */
92301 pNew->x.pList = sqlite3ExprListDup(db, p->x.pList, dupFlags);
92542 ** Add a new element to the end of an expression list. If pList is
92551 ExprList *pList, /* List to which to append. Might be NULL */
92557 if( pList==0 ){
92558 pList = sqlite3DbMallocRawNN(db, sizeof(ExprList) );
92559 if( pList==0 ){
92562 pList->nExpr = 0;
92563 pList->nAlloc = 1;
92564 }else if( pList->nExpr==pList->nAlloc ){
92566 pNew = sqlite3DbRealloc(db, pList,
92567 sizeof(*pList)+(2*pList->nAlloc - 1)*sizeof(pList->a[0]));
92571 pList = pNew;
92572 pList->nAlloc *= 2;
92574 pItem = &pList->a[pList->nExpr++];
92577 return pList;
92582 sqlite3ExprListDelete(db, pList);
92594 ** expression list pList. In the case of a subquery on the RHS, append
92599 ExprList *pList, /* List to which to append. Might be NULL */
92606 int iFirst = pList ? pList->nExpr : 0;
92625 pList = sqlite3ExprListAppend(pParse, pList, pSubExpr);
92626 if( pList ){
92627 assert( pList->nExpr==iFirst+i+1 );
92628 pList->a[pList->nExpr-1].zName = pColumns->a[i].zName;
92633 if( !db->mallocFailed && pExpr->op==TK_SELECT && ALWAYS(pList!=0) ){
92634 Expr *pFirst = pList->a[iFirst].pExpr;
92651 return pList;
92672 ** pList might be NULL following an OOM error. But pName should never be
92678 ExprList *pList, /* List to which to add the span. */
92682 assert( pList!=0 || pParse->db->mallocFailed!=0 );
92683 if( pList ){
92685 assert( pList->nExpr>0 );
92686 pItem = &pList->a[pList->nExpr-1];
92697 ** pList might be NULL following an OOM error. But pSpan should never be
92703 ExprList *pList, /* List to which to add the span. */
92707 assert( pList!=0 || db->mallocFailed!=0 );
92708 if( pList ){
92709 struct ExprList_item *pItem = &pList->a[pList->nExpr-1];
92710 assert( pList->nExpr>0 );
92738 static SQLITE_NOINLINE void exprListDeleteNN(sqlite3 *db, ExprList *pList){
92739 int i = pList->nExpr;
92740 struct ExprList_item *pItem = pList->a;
92741 assert( pList->nExpr>0 );
92748 sqlite3DbFreeNN(db, pList);
92750 SQLITE_PRIVATE void sqlite3ExprListDelete(sqlite3 *db, ExprList *pList){
92751 if( pList ) exprListDeleteNN(db, pList);
92758 SQLITE_PRIVATE u32 sqlite3ExprListFlags(const ExprList *pList){
92761 if( pList ){
92762 for(i=0; i<pList->nExpr; i++){
92763 Expr *pExpr = pList->a[i].pExpr;
93454 && (!sqlite3InRhsIsConstant(pX) || pX->x.pList->nExpr<=2)
93690 }else if( ALWAYS(pExpr->x.pList!=0) ){
93700 ExprList *pList = pExpr->x.pList;
93717 for(i=pList->nExpr, pItem=pList->a; i>0; i--, pItem++){
93958 ExprList *pList = pExpr->x.pList;
93969 for(ii=0; ii<pList->nExpr; ii++){
93970 r2 = sqlite3ExprCodeTemp(pParse, pList->a[ii].pExpr, &regToFree);
93971 if( regCkNull && sqlite3ExprCanBeNull(pList->a[ii].pExpr) ){
93974 if( ii<pList->nExpr-1 || destIfNull!=destIfFalse ){
93977 VdbeCoverageIf(v, ii<pList->nExpr-1);
93978 VdbeCoverageIf(v, ii==pList->nExpr-1);
94506 sqlite3ExprCodeFactorable(pParse, p->x.pList->a[i].pExpr, i+iResult);
94780 pFarg = pExpr->x.pList;
94963 ** Y is stored in pExpr->pList->a[0].pExpr.
94964 ** Z is stored in pExpr->pList->a[1].pExpr.
95060 ** Y is in the last element of pExpr->x.pList if pExpr->x.pList->nExpr is
95061 ** odd. The Y is also optional. If the number of elements in x.pList
95063 ** Ei is in pExpr->pList->a[i*2] and Ri is pExpr->pList->a[i*2+1].
95081 assert( !ExprHasProperty(pExpr, EP_xIsSelect) && pExpr->x.pList );
95082 assert(pExpr->x.pList->nExpr > 0);
95083 pEList = pExpr->x.pList;
95326 ExprList *pList, /* The expression list to be coded */
95335 assert( pList!=0 );
95338 n = pList->nExpr;
95340 for(pItem=pList->a, i=0; i<n; i++, pItem++){
95415 compLeft.pRight = pExpr->x.pList->a[0].pExpr;
95418 compRight.pRight = pExpr->x.pList->a[1].pExpr;
95797 if( sqlite3ExprListCompare(pA->x.pList, pB->x.pList, iTab) ) return 2;
95994 sqlite3WalkExprList(&w, pExpr->x.pList);
96138 pExpr->x.pList ? pExpr->x.pList->nExpr : 0, enc, 0);
96191 SQLITE_PRIVATE void sqlite3ExprAnalyzeAggList(NameContext *pNC, ExprList *pList){
96194 if( pList ){
96195 for(pItem=pList->a, i=0; i<pList->nExpr; i++, pItem++){
99481 SrcList *pList /* The Source list to check and modify */
99487 if( NEVER(pList==0) ) return 0;
99489 for(i=0, pItem=pList->a; i<pList->nSrc; i++, pItem++){
99559 if( sqlite3FixExprList(pFix, pExpr->x.pList) ) return 1;
99570 ExprList *pList /* The expression to be fixed to one database */
99574 if( pList==0 ) return 0;
99575 for(i=0, pItem=pList->a; i<pList->nExpr; i++, pItem++){
101155 ** Designate the PRIMARY KEY for the table. pList is a list of names
101156 ** of columns that form the primary key. If pList is NULL, then the
101174 ExprList *pList, /* List of field names to be indexed */
101190 if( pList==0 ){
101196 nTerm = pList->nExpr;
101198 Expr *pCExpr = sqlite3ExprSkipCollate(pList->a[i].pExpr);
101222 if( pList ) pParse->iPkSortOrder = pList->a[0].sortOrder;
101229 sqlite3CreateIndex(pParse, 0, 0, 0, pList, onError, 0,
101231 pList = 0;
101235 sqlite3ExprListDelete(pParse->db, pList);
101603 ExprList *pList;
101606 pList = sqlite3ExprListAppend(pParse, 0,
101608 if( pList==0 ) return;
101609 pList->a[0].sortOrder = pParse->iPkSortOrder;
101611 sqlite3CreateIndex(pParse, 0, 0, 0, pList, pTab->keyConf, 0, 0, 0, 0,
102771 ** pList is a list of columns to be indexed. pList will be NULL if this
102780 ExprList *pList, /* A list of columns to be indexed */
102784 int sortOrder, /* Sort order of primary key when pList==NULL */
102799 struct ExprList_item *pListItem; /* For looping over pList */
102959 /* If pList==0, it means this routine was called to make a primary
102963 if( pList==0 ){
102966 pList = sqlite3ExprListAppend(pParse, 0,
102968 if( pList==0 ) goto exit_create_index;
102969 assert( pList->nExpr==1 );
102970 sqlite3ExprListSetSortOrder(pList, sortOrder);
102972 sqlite3ExprListCheckLength(pParse, pList, "index");
102978 for(i=0; i<pList->nExpr; i++){
102979 Expr *pExpr = pList->a[i].pExpr;
102991 pIndex = sqlite3AllocateIndexObject(db, pList->nExpr + nExtraCol,
103006 pIndex->nKeyCol = pList->nExpr;
103031 for(i=0, pListItem=pList->a; i<pList->nExpr; i++, pListItem++){
103047 ExprList *pCopy = sqlite3ExprListDup(db, pList, 0);
103310 sqlite3ExprListDelete(db, pList);
103477 SQLITE_PRIVATE IdList *sqlite3IdListAppend(sqlite3 *db, IdList *pList, Token *pToken){
103479 if( pList==0 ){
103480 pList = sqlite3DbMallocZero(db, sizeof(IdList) );
103481 if( pList==0 ) return 0;
103483 pList->a = sqlite3ArrayAllocate(
103485 pList->a,
103486 sizeof(pList->a[0]),
103487 &pList->nId,
103491 sqlite3IdListDelete(db, pList);
103494 pList->a[i].zName = sqlite3NameFromToken(db, pToken);
103495 return pList;
103501 SQLITE_PRIVATE void sqlite3IdListDelete(sqlite3 *db, IdList *pList){
103503 if( pList==0 ) return;
103504 for(i=0; i<pList->nId; i++){
103505 sqlite3DbFree(db, pList->a[i].zName);
103507 sqlite3DbFree(db, pList->a);
103508 sqlite3DbFreeNN(db, pList);
103512 ** Return the index in pList of the identifier named zId. Return -1
103515 SQLITE_PRIVATE int sqlite3IdListIndex(IdList *pList, const char *zName){
103517 if( pList==0 ) return -1;
103518 for(i=0; i<pList->nId; i++){
103519 if( sqlite3StrICmp(pList->a[i].zName, zName)==0 ) return i;
103597 ** a new one. If an OOM error does occurs, then the prior value of pList
103627 SrcList *pList, /* Append to this SrcList. NULL creates a new SrcList */
103634 if( pList==0 ){
103635 pList = sqlite3DbMallocRawNN(db, sizeof(SrcList) );
103636 if( pList==0 ) return 0;
103637 pList->nAlloc = 1;
103638 pList->nSrc = 1;
103639 memset(&pList->a[0], 0, sizeof(pList->a[0]));
103640 pList->a[0].iCursor = -1;
103642 pList = sqlite3SrcListEnlarge(db, pList, 1, pList->nSrc);
103645 sqlite3SrcListDelete(db, pList);
103648 pItem = &pList->a[pList->nSrc-1];
103659 return pList;
103665 SQLITE_PRIVATE void sqlite3SrcListAssignCursors(Parse *pParse, SrcList *pList){
103668 assert(pList || pParse->db->mallocFailed );
103669 if( pList ){
103670 for(i=0, pItem=pList->a; i<pList->nSrc; i++, pItem++){
103683 SQLITE_PRIVATE void sqlite3SrcListDelete(sqlite3 *db, SrcList *pList){
103686 if( pList==0 ) return;
103687 for(pItem=pList->a, i=0; i<pList->nSrc; i++, pItem++){
103698 sqlite3DbFreeNN(db, pList);
103783 SQLITE_PRIVATE void sqlite3SrcListFuncArgs(Parse *pParse, SrcList *p, ExprList *pList){
103789 pItem->u1.pFuncArg = pList;
103792 sqlite3ExprListDelete(pParse->db, pList);
107443 || !pExpr->x.pList
107444 || pExpr->x.pList->nExpr!=2
108791 ExprList *pList = 0; /* Changes list if ON UPDATE CASCADE */
108860 pList = sqlite3ExprListAppend(pParse, pList, pNew);
108861 sqlite3ExprListSetName(pParse, pList, &tFromCol, 0);
108902 pStep->pExprList = sqlite3ExprListDup(db, pList, EXPRDUP_REDUCE);
108915 sqlite3ExprListDelete(db, pList);
109527 ExprList *pList = 0; /* List of VALUES() to be inserted */
109555 pList = pSelect->pEList;
109627 assert( pList==0 );
109765 if( pList ){
109766 nColumn = pList->nExpr;
109767 if( sqlite3ResolveExprListNames(&sNC, pList) ){
109870 sqlite3ExprCode(pParse, pList->a[ipkColumn].pExpr, regCols);
109891 if( (!useTempTable && !pList) || (pColumn && j>=pColumn->nId)
109898 sqlite3ExprCodeAndCache(pParse, pList->a[j].pExpr, regCols+i+1);
109934 sqlite3ExprCode(pParse, pList->a[ipkColumn].pExpr, regRowid);
110003 sqlite3ExprCode(pParse, pList->a[j].pExpr, iRegStore);
110091 sqlite3ExprListDelete(db, pList);
117085 if( p->op==TK_FUNCTION && p->x.pList ){
117087 for(i=0; i<p->x.pList->nExpr; i++){
117088 setJoinExpr(p->x.pList->a[i].pExpr, iTable);
117174 IdList *pList = pRight->pUsing;
117175 for(j=0; j<pList->nId; j++){
117181 zName = pList->a[j].zName;
117201 ExprList *pList, /* Form the KeyInfo object from this ExprList */
117202 int iStart, /* Begin with this column of pList */
117805 ExprList *pList, /* Form the KeyInfo object from this ExprList */
117806 int iStart, /* Begin with this column of pList */
117815 nExpr = pList->nExpr;
117819 for(i=iStart, pItem=pList->a+iStart; i<nExpr; i++, pItem++){
119903 substExprList(pSubst, pExpr->x.pList);
119910 ExprList *pList /* List to scan and in which to make substitutes */
119913 if( pList==0 ) return;
119914 for(i=0; i<pList->nExpr; i++){
119915 pList->a[i].pExpr = substExpr(pSubst, pList->a[i].pExpr);
120606 ExprList *pEList = pExpr->x.pList; /* Arguments to agg function */
121431 if( pE->x.pList==0 || pE->x.pList->nExpr!=1 ){
121436 KeyInfo *pKeyInfo = keyInfoFromExprList(pParse, pE->x.pList, 0, 0);
121453 ExprList *pList = pF->pExpr->x.pList;
121455 sqlite3VdbeAddOp2(v, OP_AggFinal, pF->iMem, pList ? pList->nExpr : 0);
121477 ExprList *pList = pF->pExpr->x.pList;
121479 if( pList ){
121480 nArg = pList->nExpr;
121482 sqlite3ExprCodeExprList(pParse, pList, regAgg, 0, SQLITE_ECEL_DUP);
121497 assert( pList!=0 ); /* pList!=0 if pF->pFunc has NEEDCOLL */
121498 for(j=0, pItem=pList->a; !pColl && j<nArg; j++, pItem++){
122179 sqlite3ExprAnalyzeAggList(&sNC, sAggInfo.aFunc[i].pExpr->x.pList);
122838 Trigger *pList = 0; /* List of triggers to return */
122852 pTrig->pNext = (pList ? pList : pTab->pTrigger);
122853 pList = pTrig;
122858 return (pList ? pList : pTab->pTrigger);
123412 Trigger *pList = 0;
123416 pList = sqlite3TriggerList(pParse, pTab);
123418 assert( pList==0 || IsVirtual(pTab)==0 );
123419 for(p=pList; p; p=p->pNext){
123427 return (mask ? pList : 0);
127387 ExprList *pOrigLhs = pX->pLeft->x.pList;
127424 pLeft->x.pList = pLhs;
127434 pLeft->x.pList = pOrigLhs;
127966 ExprList *pList = p->x.pList;
127967 assert( nReg<=pList->nExpr );
127969 sqlite3ExprCode(pParse, pList->a[i].pExpr, iReg+i);
129271 ExprList *pList; /* List of operands to the LIKE operator */
129286 pList = pExpr->x.pList;
129287 pLeft = pList->a[1].pExpr;
129289 pRight = sqlite3ExprSkipCollate(pList->a[0].pExpr);
129383 ExprList *pList;
129390 pList = pExpr->x.pList;
129391 if( pList==0 || pList->nExpr!=2 ){
129394 pCol = pList->a[1].pExpr;
129802 ExprList *pList = 0; /* The RHS of the IN operator */
129812 pList = sqlite3ExprListAppend(pWInfo->pParse, pList, pDup);
129822 pNew->x.pList = pList;
129829 sqlite3ExprListDelete(db, pList);
129952 pExpr = pExpr->x.pList->a[0].pExpr;
130019 pTerm->prereqRight = sqlite3WhereExprListUsage(pMaskSet, pExpr->x.pList);
130050 pLeft = pLeft->x.pList->a[pTerm->iField-1].pExpr;
130116 ExprList *pList = pExpr->x.pList;
130119 assert( pList!=0 );
130120 assert( pList->nExpr==2 );
130126 sqlite3ExprDup(db, pList->a[i].pExpr, 0));
130174 pLeft = pExpr->x.pList->a[1].pExpr;
130245 pRight = pExpr->x.pList->a[0].pExpr;
130246 pLeft = pExpr->x.pList->a[1].pExpr;
130458 }else if( p->x.pList ){
130459 mask |= sqlite3WhereExprListUsage(pMaskSet, p->x.pList);
130463 SQLITE_PRIVATE Bitmask sqlite3WhereExprListUsage(WhereMaskSet *pMaskSet, ExprList *pList){
130466 if( pList ){
130467 for(i=0; i<pList->nExpr; i++){
130468 mask |= sqlite3WhereExprUsage(pMaskSet, pList->a[i].pExpr);
130918 ** This function searches pList for an entry that matches the iCol-th column
130921 ** If such an expression is found, its index in pList->a[] is returned. If
130926 ExprList *pList, /* Expression list to search */
130934 for(i=0; i<pList->nExpr; i++){
130935 Expr *p = sqlite3ExprSkipCollate(pList->a[i].pExpr);
130940 CollSeq *pColl = sqlite3ExprCollSeq(pParse, pList->a[i].pExpr);
132170 ExprList *pList, /* The value list on the RHS of "x IN (v1,v2,v3,...)" */
132182 for(i=0; rc==SQLITE_OK && i<pList->nExpr; i++){
132184 rc = whereEqualScanEst(pParse, pBuilder, pList->a[i].pExpr, &nEst);
132787 Expr *pLhs = pTerm->pExpr->pLeft->x.pList->a[i].pExpr;
132792 pRhs = pRhs->x.pList->a[i].pExpr;
132964 }else if( ALWAYS(pExpr->x.pList && pExpr->x.pList->nExpr) ){
132966 nIn = sqlite3LogEst(pExpr->x.pList->nExpr);
133054 rc = whereInScanEst(pParse, pBuilder, pExpr->x.pList, &nOut);
138535 ExprList *pList = sqlite3ExprListAppend(pParse, yymsp[-3].minor.yy148, yymsp[-1].minor.yy190.pExpr);
138538 yylhsminor.yy190.pExpr->x.pList = pList;
138541 sqlite3ExprListDelete(pParse->db, pList);
138561 ExprList *pList;
138564 pList = sqlite3ExprListAppend(pParse,0, yymsp[0].minor.yy190.pExpr);
138565 pList = sqlite3ExprListAppend(pParse,pList, yymsp[-2].minor.yy190.pExpr);
138566 yymsp[-2].minor.yy190.pExpr = sqlite3ExprFunction(pParse, pList, &yymsp[-1].minor.yy0);
138574 ExprList *pList;
138577 pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy190.pExpr);
138578 pList = sqlite3ExprListAppend(pParse,pList, yymsp[-4].minor.yy190.pExpr);
138579 pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy190.pExpr);
138580 yymsp[-4].minor.yy190.pExpr = sqlite3ExprFunction(pParse, pList, &yymsp[-3].minor.yy0);
138620 ExprList *pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy190.pExpr);
138621 pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy190.pExpr);
138624 yymsp[-4].minor.yy190.pExpr->x.pList = pList;
138626 sqlite3ExprListDelete(pParse->db, pList);
138675 yymsp[-4].minor.yy190.pExpr->x.pList = yymsp[-1].minor.yy148;
138724 yymsp[-4].minor.yy190.pExpr->x.pList = yymsp[-1].minor.yy72 ? sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy148,yymsp[-1].minor.yy72) : yymsp[-2].minor.yy148;
145982 sqlite3_int64 iDocid; /* Current docid (if pList!=0) */
145983 int bFreeList; /* True if pList should be sqlite3_free()d */
145984 char *pList; /* Pointer to position list following iDocid */
148588 ** Argument pList points to a position list nList bytes in size. This
148592 ** of the entries from pList at position 0, and terminated by an 0x00 byte.
148597 char *pList, /* Position list (no 0x00 term) */
148598 int nList, /* Size of pList in bytes */
148603 char *p = pList;
148604 char *pEnd = &pList[nList];
149996 ** Arguments pList/nList contain the doclist for token iToken of phrase p.
149999 ** This function assumes that pList points to a buffer allocated using
150007 Fts3Phrase *p, /* Phrase to merge pList/nList into */
150008 int iToken, /* Token pList/nList corresponds to */
150009 char *pList, /* Pointer to doclist */
150010 int nList /* Number of bytes in pList */
150015 if( pList==0 ){
150022 p->doclist.aAll = pList;
150027 sqlite3_free(pList);
150040 pRight = pList;
150046 pLeft = pList;
150100 ** means that the phrase does not appear in the current row, doclist.pList
150118 char *pList;
150120 int rc = sqlite3Fts3DeferredTokenList(pDeferred, &pList, &nList);
150123 if( pList==0 ){
150125 pPhrase->doclist.pList = 0;
150130 aPoslist = pList;
150134 char *aOut = pList;
150141 aPoslist = pList;
150145 pPhrase->doclist.pList = 0;
150157 pPhrase->doclist.pList = aPoslist;
150169 p2 = pPhrase->doclist.pList;
150172 p1 = pPhrase->doclist.pList;
150183 pPhrase->doclist.pList = aOut;
150186 pPhrase->doclist.nList = (int)(aOut - pPhrase->doclist.pList);
150189 pPhrase->doclist.pList = 0;
150392 pDL->pList = pIter;
150394 pDL->nList = (int)(pIter - pDL->pList);
150417 char *pList;
150443 p->pList = pPhrase->doclist.pList;
150453 pTab, pToken->pSegcsr, &p->iDocid, &p->pList, &p->nList
150455 if( p->pList==0 ) *pbEof = 1;
150473 ** the Fts3Doclist.pList and nList fields.
150498 &pDL->iDocid, &pDL->pList, &pDL->nList
150500 if( pDL->pList==0 ) bEof = 1;
150544 memcpy(aDoclist, a[p->nToken-1].pList, nByte+1);
150548 char *pL = a[i].pList;
150559 pDL->pList = aDoclist;
150597 pDL->pList = pDL->pNextDocid;
150886 char *pList = 0;
150887 rc = fts3TermSelect(pTab, pToken, pTC->iCol, &nList, &pList);
150888 assert( rc==SQLITE_OK || pList==0 );
150891 pTab, pTC->pPhrase, pTC->iToken,pList,nList
150973 sqlite3_free(pPhrase->doclist.pList);
150975 pPhrase->doclist.pList = 0;
151016 assert( pPhrase->doclist.pList );
151018 p2 = pOut = pPhrase->doclist.pList;
151023 nNew = (int)(pOut - pPhrase->doclist.pList) - 1;
151024 assert( pPhrase->doclist.pList[nNew]=='\0' );
151026 memset(&pPhrase->doclist.pList[nNew], 0, pPhrase->doclist.nList - nNew);
151028 *paPoslist = pPhrase->doclist.pList;
151052 ** FTs3Expr.pPhrase->doclist.nList (length of pList in bytes)
151053 ** FTs3Expr.pPhrase->doclist.pList (pointer to position list)
151125 memset(pDl->pList, 0, pDl->nList);
151132 memset(pDl->pList, 0, pDl->nList);
151209 ** (Fts3Expr->pPhrase.doclist.pList/nList) for each phrase in the expression.
151260 char *aPoslist = p->pPhrase->doclist.pList;
151269 aPoslist = pExpr->pRight->pPhrase->doclist.pList;
151373 bHit = (pPhrase->doclist.pList!=0);
151522 ** found in Fts3Expr.pPhrase->doclist.pList for each of the phrase
151528 if( pPhrase && pPhrase->doclist.pList ){
151530 char *p = pPhrase->doclist.pList;
151748 pIter = pPhrase->doclist.pList;
156150 PendingList *pList; /* Doclist is assembled here */
156772 static void fts3PendingListDelete(PendingList *pList){
156773 sqlite3_free(pList);
156787 PendingList *pList;
156790 pList = (PendingList *)fts3HashFind(pHash, zToken, nToken);
156791 if( pList ){
156792 p->nPendingData -= (pList->nData + nToken + sizeof(Fts3HashElem));
156794 if( fts3PendingListAppend(&pList, p->iPrevDocid, iCol, iPos, &rc) ){
156795 if( pList==fts3HashInsert(pHash, zToken, nToken, pList) ){
156800 sqlite3_free(pList);
156805 p->nPendingData += (pList->nData + nToken + sizeof(Fts3HashElem));
156933 PendingList *pList = (PendingList *)fts3HashData(pElem);
156934 fts3PendingListDelete(pList);
157363 PendingList *pList = (PendingList *)fts3HashData(pElem);
157364 int nCopy = pList->nData+1;
157369 memcpy(aCopy, pList->aData, nCopy);
158616 char *pList = *ppList;
158618 char *pEnd = &pList[nList];
158620 char *p = pList;
158628 nList = (int)(p - pList);
158632 nList -= (int)(p - pList);
158633 pList = p;
158637 p = &pList[1];
158641 if( bZero && &pList[nList]!=pEnd ){
158642 memset(&pList[nList], 0, pEnd - &pList[nList]);
158644 *ppList = pList;
158657 char *pList,
158668 memcpy(pMsr->aBuffer, pList, nList);
158699 char *pList;
158704 rc = fts3SegReaderNextDocid(p, apSegment[0], &pList, &nList);
158718 rc = fts3MsrBufferData(pMsr, pList, nList+1);
158721 pList = pMsr->aBuffer;
158725 fts3ColumnFilter(pMsr->iColFilter, 1, &pList, &nList);
158729 *paPoslist = pList;
158957 char *pList = 0;
158961 fts3SegReaderNextDocid(p, apSegment[0], &pList, &nList);
158972 fts3ColumnFilter(pFilter->iCol, 0, &pList, &nList);
159003 nWrite = sqlite3Fts3FirstFilter(iDelta, pList, nList, a);
159012 memcpy(&pCsr->aBuffer[nDoclist], pList, nList);
161363 fts3PendingListDelete(pDef->pList);
161364 pDef->pList = 0;
161377 fts3PendingListDelete(pDef->pList);
161425 fts3PendingListAppend(&pDef->pList, iDocid, i, iPos, &rc);
161435 if( pDef->pList ){
161436 rc = fts3PendingListAppendVarint(&pDef->pList, 0);
161456 if( p->pList==0 ){
161460 pRet = (char *)sqlite3_malloc(p->pList->nData);
161463 nSkip = sqlite3Fts3GetVarint(p->pList->aData, &dummy);
161464 *pnData = p->pList->nData - nSkip;
161467 memcpy(pRet, &p->pList->aData[nSkip], *pnData);
161786 char *pList; /* Pointer to start of phrase position list */
162193 pPhrase->pList = pCsr;
162202 pPhrase->pList==0 && pPhrase->pHead==0 && pPhrase->pTail==0
162579 char *pIter = pPhrase->doclist.pList;
163216 char *pList; /* Position-list */
163217 int iPos; /* Position just read from pList */
163236 char *pList; /* Pointer to position list for phrase */
163241 rc = sqlite3Fts3EvalPhrasePoslist(p->pCsr, pExpr, p->iCol, &pList);
163243 if( pList ){
163244 fts3GetDeltaPosition(&pList, &iPos);
163251 pT->pList = pList;
163345 if( pT->pList && (pT->iPos-pT->iOff)<iMinPos ){
163356 if( 0==(0xFE&*pTerm->pList) ){
163357 pTerm->pList = 0;
163359 fts3GetDeltaPosition(&pTerm->pList, &pTerm->iPos);
170600 sqlite3_stmt *pList = 0;
170605 p->rc = prepareFreeAndCollectError(p->dbMain, &pList, &p->zErrmsg,
170611 while( p->rc==SQLITE_OK && SQLITE_ROW==sqlite3_step(pList) ){
170612 const char *zIdx = (const char*)sqlite3_column_text(pList, 1);
170632 rbuFinalize(p, pList);
176488 static void sessionDeleteTable(SessionTable *pList){
176492 for(pTab=pList; pTab; pTab=pNext){
179108 SessionTable *pList; /* List of tables in current patch */
179259 if( pGrp->pList==0 ){
179273 for(pTab = pGrp->pList; pTab; pTab=pTab->pNext){
179295 for(ppTab=&pGrp->pList; *ppTab; ppTab=&(*ppTab)->pNext);
179375 ** hash tables attached to the SessionTable objects in list p->pList.
179377 for(pTab=pGrp->pList; rc==SQLITE_OK && pTab; pTab=pTab->pNext){
179490 sessionDeleteTable(pGrp->pList);
189990 Fts5HashEntry *pList;
190014 pList = 0;
190016 pList = fts5HashEntryMerge(pList, ap[i]);
190021 *ppSorted = pList;
192017 const u8 *pList = 0;
192021 sqlite3Fts5HashScanEntry(p->pHash, &zTerm, &pList, &nList);
192022 if( pList==0 ) goto next_none_eof;
192023 pIter->pLeaf->p = (u8*)pList;
192028 pIter->iLeafOffset = fts5GetVarint(pList, (u64*)&pIter->iRowid);
192091 const u8 *pList = 0;
192097 sqlite3Fts5HashScanEntry(p->pHash, &zTerm, &pList, &nList);
192099 if( pList==0 ){
192103 pIter->pLeaf->p = (u8*)pList;
192109 pIter->iLeafOffset = fts5GetVarint(pList, (u64*)&pIter->iRowid);
192538 const u8 *pList = 0;
192548 sqlite3Fts5HashScanEntry(p->pHash, (const char**)&z, &pList, &nList);
192552 sqlite3Fts5HashQuery(p->pHash, (const char*)pTerm, nTerm, &pList, &nList);
192557 if( pList ){
192562 pLeaf->p = (u8*)pList;