Lines Matching refs:pParse

50   Parse *pParse,     /* Parsing context */  in lockTable()  argument
62 pToplevel = sqlite3ParseToplevel(pParse); in lockTable()
86 Parse *pParse, /* Parsing context */ in sqlite3TableLock() argument
93 if( !sqlite3BtreeSharable(pParse->db->aDb[iDb].pBt) ) return; in sqlite3TableLock()
94 lockTable(pParse, iDb, iTab, isWriteLock, zName); in sqlite3TableLock()
101 static void codeTableLocks(Parse *pParse){ in codeTableLocks() argument
103 Vdbe *pVdbe = pParse->pVdbe; in codeTableLocks()
106 for(i=0; i<pParse->nTableLock; i++){ in codeTableLocks()
107 TableLock *p = &pParse->aTableLock[i]; in codeTableLocks()
140 void sqlite3FinishCoding(Parse *pParse){ in sqlite3FinishCoding() argument
145 assert( pParse->pToplevel==0 ); in sqlite3FinishCoding()
146 db = pParse->db; in sqlite3FinishCoding()
147 assert( db->pParse==pParse ); in sqlite3FinishCoding()
148 if( pParse->nested ) return; in sqlite3FinishCoding()
149 if( pParse->nErr ){ in sqlite3FinishCoding()
150 if( db->mallocFailed ) pParse->rc = SQLITE_NOMEM; in sqlite3FinishCoding()
158 v = pParse->pVdbe; in sqlite3FinishCoding()
161 pParse->rc = SQLITE_DONE; in sqlite3FinishCoding()
164 v = sqlite3GetVdbe(pParse); in sqlite3FinishCoding()
165 if( v==0 ) pParse->rc = SQLITE_ERROR; in sqlite3FinishCoding()
167 assert( !pParse->isMultiWrite in sqlite3FinishCoding()
168 || sqlite3VdbeAssertMayAbort(v, pParse->mayAbort)); in sqlite3FinishCoding()
170 if( pParse->bReturning ){ in sqlite3FinishCoding()
171 Returning *pReturning = pParse->u1.pReturning; in sqlite3FinishCoding()
193 if( pParse->nTableLock>0 && db->init.busy==0 ){ in sqlite3FinishCoding()
196 sqlite3ErrorMsg(pParse, "user not authenticated"); in sqlite3FinishCoding()
197 pParse->rc = SQLITE_AUTH_USER; in sqlite3FinishCoding()
209 assert( pParse->nErr>0 || sqlite3VdbeGetOp(v, 0)->opcode==OP_Init ); in sqlite3FinishCoding()
215 if( DbMaskTest(pParse->cookieMask, iDb)==0 ) continue; in sqlite3FinishCoding()
221 DbMaskTest(pParse->writeMask,iDb), /* P2 */ in sqlite3FinishCoding()
227 "usesStmtJournal=%d", pParse->mayAbort && pParse->isMultiWrite)); in sqlite3FinishCoding()
230 for(i=0; i<pParse->nVtabLock; i++){ in sqlite3FinishCoding()
231 char *vtab = (char *)sqlite3GetVTable(db, pParse->apVtabLock[i]); in sqlite3FinishCoding()
234 pParse->nVtabLock = 0; in sqlite3FinishCoding()
241 codeTableLocks(pParse); in sqlite3FinishCoding()
245 sqlite3AutoincrementBegin(pParse); in sqlite3FinishCoding()
254 if( pParse->pConstExpr ){ in sqlite3FinishCoding()
255 ExprList *pEL = pParse->pConstExpr; in sqlite3FinishCoding()
256 pParse->okConstFactor = 0; in sqlite3FinishCoding()
259 sqlite3ExprCode(pParse, pEL->a[i].pExpr, iReg); in sqlite3FinishCoding()
263 if( pParse->bReturning ){ in sqlite3FinishCoding()
264 Returning *pRet = pParse->u1.pReturning; in sqlite3FinishCoding()
276 assert( v!=0 || pParse->nErr ); in sqlite3FinishCoding()
277 assert( db->mallocFailed==0 || pParse->nErr ); in sqlite3FinishCoding()
278 if( pParse->nErr==0 ){ in sqlite3FinishCoding()
281 assert( pParse->pAinc==0 || pParse->nTab>0 ); in sqlite3FinishCoding()
282 sqlite3VdbeMakeReady(v, pParse); in sqlite3FinishCoding()
283 pParse->rc = SQLITE_DONE; in sqlite3FinishCoding()
285 pParse->rc = SQLITE_ERROR; in sqlite3FinishCoding()
302 void sqlite3NestedParse(Parse *pParse, const char *zFormat, ...){ in sqlite3NestedParse() argument
305 sqlite3 *db = pParse->db; in sqlite3NestedParse()
309 if( pParse->nErr ) return; in sqlite3NestedParse()
310 assert( pParse->nested<10 ); /* Nesting should only be of limited depth */ in sqlite3NestedParse()
318 if( !db->mallocFailed ) pParse->rc = SQLITE_TOOBIG; in sqlite3NestedParse()
319 pParse->nErr++; in sqlite3NestedParse()
322 pParse->nested++; in sqlite3NestedParse()
323 memcpy(saveBuf, PARSE_TAIL(pParse), PARSE_TAIL_SZ); in sqlite3NestedParse()
324 memset(PARSE_TAIL(pParse), 0, PARSE_TAIL_SZ); in sqlite3NestedParse()
326 sqlite3RunParser(pParse, zSql); in sqlite3NestedParse()
329 memcpy(PARSE_TAIL(pParse), saveBuf, PARSE_TAIL_SZ); in sqlite3NestedParse()
330 pParse->nested--; in sqlite3NestedParse()
434 Parse *pParse, /* context in which to report errors */ in sqlite3LocateTable() argument
440 sqlite3 *db = pParse->db; in sqlite3LocateTable()
445 && SQLITE_OK!=sqlite3ReadSchema(pParse) in sqlite3LocateTable()
456 if( (pParse->prepFlags & SQLITE_PREPARE_NO_VTAB)==0 && db->init.busy==0 ){ in sqlite3LocateTable()
461 if( pMod && sqlite3VtabEponymousTableInit(pParse, pMod) ){ in sqlite3LocateTable()
468 pParse->checkSchema = 1; in sqlite3LocateTable()
469 }else if( IsVirtual(p) && (pParse->prepFlags & SQLITE_PREPARE_NO_VTAB)!=0 ){ in sqlite3LocateTable()
476 sqlite3ErrorMsg(pParse, "%s: %s.%s", zMsg, zDbase, zName); in sqlite3LocateTable()
478 sqlite3ErrorMsg(pParse, "%s: %s", zMsg, zName); in sqlite3LocateTable()
497 Parse *pParse, in sqlite3LocateTableItem() argument
504 int iDb = sqlite3SchemaToIndex(pParse->db, p->pSchema); in sqlite3LocateTableItem()
505 zDb = pParse->db->aDb[iDb].zDbSName; in sqlite3LocateTableItem()
509 return sqlite3LocateTable(pParse, flags, p->zName, zDb); in sqlite3LocateTableItem()
698 Parse *pParse, /* Parsing context */ in sqlite3ColumnSetExpr() argument
711 pTab->u.tab.pDfltList = sqlite3ExprListAppend(pParse, pList, pExpr); in sqlite3ColumnSetExpr()
713 sqlite3ExprDelete(pParse->db, pList->a[pCol->iDflt-1].pExpr); in sqlite3ColumnSetExpr()
988 Parse *pParse, /* Parsing and code generating context */ in sqlite3TwoPartName() argument
994 sqlite3 *db = pParse->db; in sqlite3TwoPartName()
999 sqlite3ErrorMsg(pParse, "corrupt database"); in sqlite3TwoPartName()
1005 sqlite3ErrorMsg(pParse, "unknown database %T", pName1); in sqlite3TwoPartName()
1043 Parse *pParse, /* Parsing context */ in sqlite3CheckObjectName() argument
1048 sqlite3 *db = pParse->db; in sqlite3CheckObjectName()
1061 sqlite3ErrorMsg(pParse, ""); /* corruptSchema() will supply the error */ in sqlite3CheckObjectName()
1065 if( (pParse->nested==0 && 0==sqlite3StrNICmp(zName, "sqlite_", 7)) in sqlite3CheckObjectName()
1068 sqlite3ErrorMsg(pParse, "object name reserved for internal use: %s", in sqlite3CheckObjectName()
1186 static void sqlite3ForceNotReadOnly(Parse *pParse){ in sqlite3ForceNotReadOnly() argument
1187 int iReg = ++pParse->nMem; in sqlite3ForceNotReadOnly()
1188 Vdbe *v = sqlite3GetVdbe(pParse); in sqlite3ForceNotReadOnly()
1212 Parse *pParse, /* Parser context */ in sqlite3StartTable() argument
1222 sqlite3 *db = pParse->db; in sqlite3StartTable()
1234 iDb = sqlite3TwoPartName(pParse, pName1, pName2, &pName); in sqlite3StartTable()
1239 sqlite3ErrorMsg(pParse, "temporary table name must be unqualified"); in sqlite3StartTable()
1245 sqlite3RenameTokenMap(pParse, (void*)zName, pName); in sqlite3StartTable()
1248 pParse->sNameToken = *pName; in sqlite3StartTable()
1250 if( sqlite3CheckObjectName(pParse, zName, isView?"view":"table", zName) ){ in sqlite3StartTable()
1265 if( sqlite3AuthCheck(pParse, SQLITE_INSERT, SCHEMA_TABLE(isTemp), 0, zDb) ){ in sqlite3StartTable()
1268 if( !isVirtual && sqlite3AuthCheck(pParse, (int)aCode[isTemp+2*isView], in sqlite3StartTable()
1284 if( SQLITE_OK!=sqlite3ReadSchema(pParse) ){ in sqlite3StartTable()
1290 sqlite3ErrorMsg(pParse, "%s %T already exists", in sqlite3StartTable()
1294 sqlite3CodeVerifySchema(pParse, iDb); in sqlite3StartTable()
1295 sqlite3ForceNotReadOnly(pParse); in sqlite3StartTable()
1300 sqlite3ErrorMsg(pParse, "there is already an index named %s", zName); in sqlite3StartTable()
1308 pParse->rc = SQLITE_NOMEM_BKPT; in sqlite3StartTable()
1309 pParse->nErr++; in sqlite3StartTable()
1321 assert( pParse->pNewTable==0 ); in sqlite3StartTable()
1322 pParse->pNewTable = pTable; in sqlite3StartTable()
1332 if( !db->init.busy && (v = sqlite3GetVdbe(pParse))!=0 ){ in sqlite3StartTable()
1338 sqlite3BeginWriteOperation(pParse, 1, iDb); in sqlite3StartTable()
1349 reg1 = pParse->regRowid = ++pParse->nMem; in sqlite3StartTable()
1350 reg2 = pParse->regRoot = ++pParse->nMem; in sqlite3StartTable()
1351 reg3 = ++pParse->nMem; in sqlite3StartTable()
1376 assert( !pParse->bReturning ); in sqlite3StartTable()
1377 pParse->u1.addrCrTab = in sqlite3StartTable()
1380 sqlite3OpenSchemaTable(pParse, iDb); in sqlite3StartTable()
1393 pParse->checkSchema = 1; in sqlite3StartTable()
1446 void sqlite3AddReturning(Parse *pParse, ExprList *pList){ in sqlite3AddReturning() argument
1449 sqlite3 *db = pParse->db; in sqlite3AddReturning()
1450 if( pParse->pNewTrigger ){ in sqlite3AddReturning()
1451 sqlite3ErrorMsg(pParse, "cannot use RETURNING in a trigger"); in sqlite3AddReturning()
1453 assert( pParse->bReturning==0 ); in sqlite3AddReturning()
1455 pParse->bReturning = 1; in sqlite3AddReturning()
1461 pParse->u1.pReturning = pRet; in sqlite3AddReturning()
1462 pRet->pParse = pParse; in sqlite3AddReturning()
1464 sqlite3ParserAddCleanup(pParse, in sqlite3AddReturning()
1466 testcase( pParse->earlyCleanup ); in sqlite3AddReturning()
1479 assert( sqlite3HashFind(pHash, RETURNING_TRIGGER_NAME)==0 || pParse->nErr ); in sqlite3AddReturning()
1494 void sqlite3AddColumn(Parse *pParse, Token sName, Token sType){ in sqlite3AddColumn() argument
1500 sqlite3 *db = pParse->db; in sqlite3AddColumn()
1507 if( (p = pParse->pNewTable)==0 ) return; in sqlite3AddColumn()
1509 sqlite3ErrorMsg(pParse, "too many columns on %s", p->zName); in sqlite3AddColumn()
1551 if( IN_RENAME_OBJECT ) sqlite3RenameTokenMap(pParse, (void*)z, &sName); in sqlite3AddColumn()
1558 sqlite3ErrorMsg(pParse, "duplicate column name: %s", z); in sqlite3AddColumn()
1598 pParse->constraintName.n = 0; in sqlite3AddColumn()
1607 void sqlite3AddNotNull(Parse *pParse, int onError){ in sqlite3AddNotNull() argument
1610 p = pParse->pNewTable; in sqlite3AddNotNull()
1732 Parse *pParse, /* Parsing context */ in sqlite3AddDefaultValue() argument
1739 sqlite3 *db = pParse->db; in sqlite3AddDefaultValue()
1740 p = pParse->pNewTable; in sqlite3AddDefaultValue()
1745 sqlite3ErrorMsg(pParse, "default value of column [%s] is not constant", in sqlite3AddDefaultValue()
1751 sqlite3ErrorMsg(pParse, "cannot use DEFAULT on a generated column"); in sqlite3AddDefaultValue()
1765 sqlite3ColumnSetExpr(pParse, p, pCol, pDfltExpr); in sqlite3AddDefaultValue()
1769 sqlite3RenameExprUnmap(pParse, pExpr); in sqlite3AddDefaultValue()
1801 static void makeColumnPartOfPrimaryKey(Parse *pParse, Column *pCol){ in makeColumnPartOfPrimaryKey() argument
1807 sqlite3ErrorMsg(pParse, in makeColumnPartOfPrimaryKey()
1832 Parse *pParse, /* Parsing context */ in sqlite3AddPrimaryKey() argument
1838 Table *pTab = pParse->pNewTable; in sqlite3AddPrimaryKey()
1844 sqlite3ErrorMsg(pParse, in sqlite3AddPrimaryKey()
1852 makeColumnPartOfPrimaryKey(pParse, pCol); in sqlite3AddPrimaryKey()
1867 makeColumnPartOfPrimaryKey(pParse, pCol); in sqlite3AddPrimaryKey()
1881 sqlite3RenameTokenRemap(pParse, &pTab->iPKey, pCExpr); in sqlite3AddPrimaryKey()
1887 if( pList ) pParse->iPkSortOrder = pList->a[0].fg.sortFlags; in sqlite3AddPrimaryKey()
1888 (void)sqlite3HasExplicitNulls(pParse, pList); in sqlite3AddPrimaryKey()
1891 sqlite3ErrorMsg(pParse, "AUTOINCREMENT is only allowed on an " in sqlite3AddPrimaryKey()
1895 sqlite3CreateIndex(pParse, 0, 0, 0, pList, onError, 0, in sqlite3AddPrimaryKey()
1901 sqlite3ExprListDelete(pParse->db, pList); in sqlite3AddPrimaryKey()
1909 Parse *pParse, /* Parsing context */ in sqlite3AddCheckConstraint() argument
1915 Table *pTab = pParse->pNewTable; in sqlite3AddCheckConstraint()
1916 sqlite3 *db = pParse->db; in sqlite3AddCheckConstraint()
1920 pTab->pCheck = sqlite3ExprListAppend(pParse, pTab->pCheck, pCheckExpr); in sqlite3AddCheckConstraint()
1921 if( pParse->constraintName.n ){ in sqlite3AddCheckConstraint()
1922 sqlite3ExprListSetName(pParse, pTab->pCheck, &pParse->constraintName, 1); in sqlite3AddCheckConstraint()
1929 sqlite3ExprListSetName(pParse, pTab->pCheck, &t, 1); in sqlite3AddCheckConstraint()
1934 sqlite3ExprDelete(pParse->db, pCheckExpr); in sqlite3AddCheckConstraint()
1942 void sqlite3AddCollateType(Parse *pParse, Token *pToken){ in sqlite3AddCollateType() argument
1948 if( (p = pParse->pNewTable)==0 || IN_RENAME_OBJECT ) return; in sqlite3AddCollateType()
1950 db = pParse->db; in sqlite3AddCollateType()
1954 if( sqlite3LocateCollSeq(pParse, zColl) ){ in sqlite3AddCollateType()
1975 void sqlite3AddGenerated(Parse *pParse, Expr *pExpr, Token *pType){ in sqlite3AddGenerated() argument
1978 Table *pTab = pParse->pNewTable; in sqlite3AddGenerated()
1986 sqlite3ErrorMsg(pParse, "virtual tables cannot use computed columns"); in sqlite3AddGenerated()
2005 makeColumnPartOfPrimaryKey(pParse, pCol); /* For the error message */ in sqlite3AddGenerated()
2007 sqlite3ColumnSetExpr(pParse, pTab, pCol, pExpr); in sqlite3AddGenerated()
2012 sqlite3ErrorMsg(pParse, "error in generated column \"%s\"", in sqlite3AddGenerated()
2015 sqlite3ExprDelete(pParse->db, pExpr); in sqlite3AddGenerated()
2019 sqlite3ErrorMsg(pParse, "generated columns not supported"); in sqlite3AddGenerated()
2020 sqlite3ExprDelete(pParse->db, pExpr); in sqlite3AddGenerated()
2043 void sqlite3ChangeCookie(Parse *pParse, int iDb){ in sqlite3ChangeCookie() argument
2044 sqlite3 *db = pParse->db; in sqlite3ChangeCookie()
2045 Vdbe *v = pParse->pVdbe; in sqlite3ChangeCookie()
2335 static void convertToWithoutRowidTable(Parse *pParse, Table *pTab){ in convertToWithoutRowidTable() argument
2341 sqlite3 *db = pParse->db; in convertToWithoutRowidTable()
2342 Vdbe *v = pParse->pVdbe; in convertToWithoutRowidTable()
2360 assert( !pParse->bReturning ); in convertToWithoutRowidTable()
2361 if( pParse->u1.addrCrTab ){ in convertToWithoutRowidTable()
2363 sqlite3VdbeChangeP3(v, pParse->u1.addrCrTab, BTREE_BLOBKEY); in convertToWithoutRowidTable()
2373 pList = sqlite3ExprListAppend(pParse, 0, in convertToWithoutRowidTable()
2380 sqlite3RenameTokenRemap(pParse, pList->a[0].pExpr, &pTab->iPKey); in convertToWithoutRowidTable()
2382 pList->a[0].fg.sortFlags = pParse->iPkSortOrder; in convertToWithoutRowidTable()
2383 assert( pParse->pNewTable==pTab ); in convertToWithoutRowidTable()
2385 sqlite3CreateIndex(pParse, 0, 0, 0, pList, pTab->keyConf, 0, 0, 0, 0, in convertToWithoutRowidTable()
2387 if( pParse->nErr ){ in convertToWithoutRowidTable()
2616 Parse *pParse, /* Parse context */ in sqlite3EndTable() argument
2623 sqlite3 *db = pParse->db; /* The database connection */ in sqlite3EndTable()
2630 p = pParse->pNewTable; in sqlite3EndTable()
2648 sqlite3ErrorMsg(pParse, ""); in sqlite3EndTable()
2671 sqlite3ErrorMsg(pParse, in sqlite3EndTable()
2676 sqlite3ErrorMsg(pParse, "missing datatype for %s.%s", in sqlite3EndTable()
2701 sqlite3ErrorMsg(pParse, in sqlite3EndTable()
2706 sqlite3ErrorMsg(pParse, "PRIMARY KEY missing on table %s", p->zName); in sqlite3EndTable()
2710 convertToWithoutRowidTable(pParse, p); in sqlite3EndTable()
2718 sqlite3ResolveSelfReference(pParse, p, NC_IsCheck, 0, p->pCheck); in sqlite3EndTable()
2719 if( pParse->nErr ){ in sqlite3EndTable()
2740 if( sqlite3ResolveSelfReference(pParse, p, NC_GenCol, pX, 0) ){ in sqlite3EndTable()
2747 sqlite3ColumnSetExpr(pParse, p, &p->aCol[ii], in sqlite3EndTable()
2755 sqlite3ErrorMsg(pParse, "must have at least one non-generated column"); in sqlite3EndTable()
2780 v = sqlite3GetVdbe(pParse); in sqlite3EndTable()
2823 pParse->rc = SQLITE_ERROR; in sqlite3EndTable()
2824 pParse->nErr++; in sqlite3EndTable()
2827 regYield = ++pParse->nMem; in sqlite3EndTable()
2828 regRec = ++pParse->nMem; in sqlite3EndTable()
2829 regRowid = ++pParse->nMem; in sqlite3EndTable()
2830 assert(pParse->nTab==1); in sqlite3EndTable()
2831 sqlite3MayAbort(pParse); in sqlite3EndTable()
2832 sqlite3VdbeAddOp3(v, OP_OpenWrite, 1, pParse->regRoot, iDb); in sqlite3EndTable()
2834 pParse->nTab = 2; in sqlite3EndTable()
2837 if( pParse->nErr ) return; in sqlite3EndTable()
2838 pSelTab = sqlite3ResultSetOfSelect(pParse, pSelect, SQLITE_AFF_BLOB); in sqlite3EndTable()
2847 sqlite3Select(pParse, pSelect, &dest); in sqlite3EndTable()
2848 if( pParse->nErr ) return; in sqlite3EndTable()
2866 Token *pEnd2 = tabOpts ? &pParse->sLastToken : pEnd; in sqlite3EndTable()
2867 n = (int)(pEnd2->z - pParse->sNameToken.z); in sqlite3EndTable()
2870 "CREATE %s %.*s", zType2, n, pParse->sNameToken.z in sqlite3EndTable()
2878 sqlite3NestedParse(pParse, in sqlite3EndTable()
2886 pParse->regRoot, in sqlite3EndTable()
2888 pParse->regRowid in sqlite3EndTable()
2891 sqlite3ChangeCookie(pParse, iDb); in sqlite3EndTable()
2901 sqlite3NestedParse(pParse, in sqlite3EndTable()
2927 pParse->pNewTable = 0; in sqlite3EndTable()
2933 assert( !pParse->nested ); in sqlite3EndTable()
2948 p->u.tab.addColOffset = 13 + (int)(pCons->z - pParse->sNameToken.z); in sqlite3EndTable()
2958 Parse *pParse, /* The parsing context */ in sqlite3CreateView() argument
2974 sqlite3 *db = pParse->db; in sqlite3CreateView()
2976 if( pParse->nVar>0 ){ in sqlite3CreateView()
2977 sqlite3ErrorMsg(pParse, "parameters are not allowed in views"); in sqlite3CreateView()
2980 sqlite3StartTable(pParse, pName1, pName2, isTemp, 1, 0, noErr); in sqlite3CreateView()
2981 p = pParse->pNewTable; in sqlite3CreateView()
2982 if( p==0 || pParse->nErr ) goto create_view_fail; in sqlite3CreateView()
2993 sqlite3TwoPartName(pParse, pName1, pName2, &pName); in sqlite3CreateView()
2995 sqlite3FixInit(&sFix, pParse, iDb, "view", pName); in sqlite3CreateView()
3017 sEnd = pParse->sLastToken; in sqlite3CreateView()
3031 sqlite3EndTable(pParse, 0, &sEnd, 0, 0); in sqlite3CreateView()
3036 sqlite3RenameExprlistUnmap(pParse, pCNames); in sqlite3CreateView()
3049 static SQLITE_NOINLINE int viewGetColumnNames(Parse *pParse, Table *pTable){ in viewGetColumnNames() argument
3053 sqlite3 *db = pParse->db; /* Database connection for malloc errors */ in viewGetColumnNames()
3066 rc = sqlite3VtabCallConnect(pParse, pTable); in viewGetColumnNames()
3095 sqlite3ErrorMsg(pParse, "view %s is circularly defined", pTable->zName); in viewGetColumnNames()
3110 u8 eParseMode = pParse->eParseMode; in viewGetColumnNames()
3111 int nTab = pParse->nTab; in viewGetColumnNames()
3112 int nSelect = pParse->nSelect; in viewGetColumnNames()
3113 pParse->eParseMode = PARSE_MODE_NORMAL; in viewGetColumnNames()
3114 sqlite3SrcListAssignCursors(pParse, pSel->pSrc); in viewGetColumnNames()
3120 pSelTab = sqlite3ResultSetOfSelect(pParse, pSel, SQLITE_AFF_NONE); in viewGetColumnNames()
3123 pSelTab = sqlite3ResultSetOfSelect(pParse, pSel, SQLITE_AFF_NONE); in viewGetColumnNames()
3125 pParse->nTab = nTab; in viewGetColumnNames()
3126 pParse->nSelect = nSelect; in viewGetColumnNames()
3137 sqlite3ColumnsFromExprList(pParse, pTable->pCheck, in viewGetColumnNames()
3139 if( pParse->nErr==0 in viewGetColumnNames()
3143 sqlite3SelectAddColumnTypeAndCollation(pParse, pTable, pSel, in viewGetColumnNames()
3162 pParse->eParseMode = eParseMode; in viewGetColumnNames()
3173 int sqlite3ViewGetColumnNames(Parse *pParse, Table *pTable){ in sqlite3ViewGetColumnNames() argument
3176 return viewGetColumnNames(pParse, pTable); in sqlite3ViewGetColumnNames()
3248 static void destroyRootPage(Parse *pParse, int iTable, int iDb){ in destroyRootPage() argument
3249 Vdbe *v = sqlite3GetVdbe(pParse); in destroyRootPage()
3250 int r1 = sqlite3GetTempReg(pParse); in destroyRootPage()
3251 if( iTable<2 ) sqlite3ErrorMsg(pParse, "corrupt schema"); in destroyRootPage()
3253 sqlite3MayAbort(pParse); in destroyRootPage()
3264 sqlite3NestedParse(pParse, in destroyRootPage()
3267 pParse->db->aDb[iDb].zDbSName, iTable, r1, r1); in destroyRootPage()
3269 sqlite3ReleaseTempReg(pParse, r1); in destroyRootPage()
3278 static void destroyTable(Parse *pParse, Table *pTab){ in destroyTable() argument
3315 int iDb = sqlite3SchemaToIndex(pParse->db, pTab->pSchema); in destroyTable()
3316 assert( iDb>=0 && iDb<pParse->db->nDb ); in destroyTable()
3317 destroyRootPage(pParse, iLargest, iDb); in destroyTable()
3328 Parse *pParse, /* The parsing context */ in sqlite3ClearStatTables() argument
3334 const char *zDbName = pParse->db->aDb[iDb].zDbSName; in sqlite3ClearStatTables()
3338 if( sqlite3FindTable(pParse->db, zTab, zDbName) ){ in sqlite3ClearStatTables()
3339 sqlite3NestedParse(pParse, in sqlite3ClearStatTables()
3350 void sqlite3CodeDropTable(Parse *pParse, Table *pTab, int iDb, int isView){ in sqlite3CodeDropTable() argument
3352 sqlite3 *db = pParse->db; in sqlite3CodeDropTable()
3356 v = sqlite3GetVdbe(pParse); in sqlite3CodeDropTable()
3358 sqlite3BeginWriteOperation(pParse, 1, iDb); in sqlite3CodeDropTable()
3370 pTrigger = sqlite3TriggerList(pParse, pTab); in sqlite3CodeDropTable()
3374 sqlite3DropTriggerPtr(pParse, pTrigger); in sqlite3CodeDropTable()
3385 sqlite3NestedParse(pParse, in sqlite3CodeDropTable()
3399 sqlite3NestedParse(pParse, in sqlite3CodeDropTable()
3404 destroyTable(pParse, pTab); in sqlite3CodeDropTable()
3412 sqlite3MayAbort(pParse); in sqlite3CodeDropTable()
3415 sqlite3ChangeCookie(pParse, iDb); in sqlite3CodeDropTable()
3458 void sqlite3DropTable(Parse *pParse, SrcList *pName, int isView, int noErr){ in sqlite3DropTable() argument
3461 sqlite3 *db = pParse->db; in sqlite3DropTable()
3467 assert( pParse->nErr==0 ); in sqlite3DropTable()
3469 if( sqlite3ReadSchema(pParse) ) goto exit_drop_table; in sqlite3DropTable()
3472 pTab = sqlite3LocateTableItem(pParse, isView, &pName->a[0]); in sqlite3DropTable()
3477 sqlite3CodeVerifyNamedSchema(pParse, pName->a[0].zDatabase); in sqlite3DropTable()
3478 sqlite3ForceNotReadOnly(pParse); in sqlite3DropTable()
3488 if( IsVirtual(pTab) && sqlite3ViewGetColumnNames(pParse, pTab) ){ in sqlite3DropTable()
3497 if( sqlite3AuthCheck(pParse, SQLITE_DELETE, zTab, 0, zDb)){ in sqlite3DropTable()
3518 if( sqlite3AuthCheck(pParse, code, pTab->zName, zArg2, zDb) ){ in sqlite3DropTable()
3521 if( sqlite3AuthCheck(pParse, SQLITE_DELETE, pTab->zName, 0, zDb) ){ in sqlite3DropTable()
3527 sqlite3ErrorMsg(pParse, "table %s may not be dropped", pTab->zName); in sqlite3DropTable()
3536 sqlite3ErrorMsg(pParse, "use DROP TABLE to delete table %s", pTab->zName); in sqlite3DropTable()
3540 sqlite3ErrorMsg(pParse, "use DROP VIEW to delete view %s", pTab->zName); in sqlite3DropTable()
3548 v = sqlite3GetVdbe(pParse); in sqlite3DropTable()
3550 sqlite3BeginWriteOperation(pParse, 1, iDb); in sqlite3DropTable()
3552 sqlite3ClearStatTables(pParse, iDb, "tbl", pTab->zName); in sqlite3DropTable()
3553 sqlite3FkDropTable(pParse, pName, pTab); in sqlite3DropTable()
3555 sqlite3CodeDropTable(pParse, pTab, iDb, isView); in sqlite3DropTable()
3579 Parse *pParse, /* Parsing context */ in sqlite3CreateForeignKey() argument
3585 sqlite3 *db = pParse->db; in sqlite3CreateForeignKey()
3589 Table *p = pParse->pNewTable; in sqlite3CreateForeignKey()
3601 sqlite3ErrorMsg(pParse, "foreign key on %s" in sqlite3CreateForeignKey()
3608 sqlite3ErrorMsg(pParse, in sqlite3CreateForeignKey()
3631 sqlite3RenameTokenMap(pParse, (void*)z, pTo); in sqlite3CreateForeignKey()
3650 sqlite3ErrorMsg(pParse, in sqlite3CreateForeignKey()
3656 sqlite3RenameTokenRemap(pParse, &pFKey->aCol[i], pFromCol->a[i].zEName); in sqlite3CreateForeignKey()
3665 sqlite3RenameTokenRemap(pParse, z, pToCol->a[i].zEName); in sqlite3CreateForeignKey()
3710 void sqlite3DeferForeignKey(Parse *pParse, int isDeferred){ in sqlite3DeferForeignKey() argument
3714 if( (pTab = pParse->pNewTable)==0 ) return; in sqlite3DeferForeignKey()
3733 static void sqlite3RefillIndex(Parse *pParse, Index *pIndex, int memRootPage){ in sqlite3RefillIndex() argument
3735 int iTab = pParse->nTab++; /* Btree cursor used for pTab */ in sqlite3RefillIndex()
3736 int iIdx = pParse->nTab++; /* Btree cursor used for pIndex */ in sqlite3RefillIndex()
3745 sqlite3 *db = pParse->db; /* The database connection */ in sqlite3RefillIndex()
3749 if( sqlite3AuthCheck(pParse, SQLITE_REINDEX, pIndex->zName, 0, in sqlite3RefillIndex()
3756 sqlite3TableLock(pParse, iDb, pTab->tnum, 1, pTab->zName); in sqlite3RefillIndex()
3758 v = sqlite3GetVdbe(pParse); in sqlite3RefillIndex()
3765 pKey = sqlite3KeyInfoOfIndex(pParse, pIndex); in sqlite3RefillIndex()
3766 assert( pKey!=0 || pParse->nErr ); in sqlite3RefillIndex()
3769 iSorter = pParse->nTab++; in sqlite3RefillIndex()
3775 sqlite3OpenTable(pParse, iTab, iDb, pTab, OP_OpenRead); in sqlite3RefillIndex()
3777 regRecord = sqlite3GetTempReg(pParse); in sqlite3RefillIndex()
3778 sqlite3MultiWrite(pParse); in sqlite3RefillIndex()
3780 sqlite3GenerateIndexKey(pParse,pIndex,iTab,regRecord,0,&iPartIdxLabel,0,0); in sqlite3RefillIndex()
3782 sqlite3ResolvePartIdxLabel(pParse, iPartIdxLabel); in sqlite3RefillIndex()
3797 sqlite3UniqueConstraint(pParse, OE_Abort, pIndex); in sqlite3RefillIndex()
3807 sqlite3MayAbort(pParse); in sqlite3RefillIndex()
3823 sqlite3ReleaseTempReg(pParse, regRecord); in sqlite3RefillIndex()
3872 int sqlite3HasExplicitNulls(Parse *pParse, ExprList *pList){ in sqlite3HasExplicitNulls() argument
3878 sqlite3ErrorMsg(pParse, "unsupported use of NULLS %s", in sqlite3HasExplicitNulls()
3901 Parse *pParse, /* All information about this parse */ in sqlite3CreateIndex() argument
3920 sqlite3 *db = pParse->db; in sqlite3CreateIndex()
3930 assert( db->pParse==pParse ); in sqlite3CreateIndex()
3931 if( pParse->nErr ){ in sqlite3CreateIndex()
3938 if( SQLITE_OK!=sqlite3ReadSchema(pParse) ){ in sqlite3CreateIndex()
3941 if( sqlite3HasExplicitNulls(pParse, pList) ){ in sqlite3CreateIndex()
3955 iDb = sqlite3TwoPartName(pParse, pName1, pName2, &pName); in sqlite3CreateIndex()
3965 pTab = sqlite3SrcListLookup(pParse, pTblName); in sqlite3CreateIndex()
3972 sqlite3FixInit(&sFix, pParse, iDb, "index", pName); in sqlite3CreateIndex()
3978 pTab = sqlite3LocateTableItem(pParse, 0, &pTblName->a[0]); in sqlite3CreateIndex()
3982 sqlite3ErrorMsg(pParse, in sqlite3CreateIndex()
3991 pTab = pParse->pNewTable; in sqlite3CreateIndex()
4005 sqlite3ErrorMsg(pParse, "table %s may not be indexed", pTab->zName); in sqlite3CreateIndex()
4010 sqlite3ErrorMsg(pParse, "views may not be indexed"); in sqlite3CreateIndex()
4016 sqlite3ErrorMsg(pParse, "virtual tables may not be indexed"); in sqlite3CreateIndex()
4038 if( SQLITE_OK!=sqlite3CheckObjectName(pParse, zName,"index",pTab->zName) ){ in sqlite3CreateIndex()
4044 sqlite3ErrorMsg(pParse, "there is already a table named %s", zName); in sqlite3CreateIndex()
4050 sqlite3ErrorMsg(pParse, "index %s already exists", zName); in sqlite3CreateIndex()
4053 sqlite3CodeVerifySchema(pParse, iDb); in sqlite3CreateIndex()
4054 sqlite3ForceNotReadOnly(pParse); in sqlite3CreateIndex()
4081 if( sqlite3AuthCheck(pParse, SQLITE_INSERT, SCHEMA_TABLE(iDb), 0, zDb) ){ in sqlite3CreateIndex()
4086 if( sqlite3AuthCheck(pParse, i, zName, pTab->zName, zDb) ){ in sqlite3CreateIndex()
4101 pList = sqlite3ExprListAppend(pParse, 0, in sqlite3CreateIndex()
4107 sqlite3ExprListCheckLength(pParse, pList, "index"); in sqlite3CreateIndex()
4108 if( pParse->nErr ) goto exit_create_index; in sqlite3CreateIndex()
4146 sqlite3ResolveSelfReference(pParse, pTab, NC_PartIdx, pPIWhere, 0); in sqlite3CreateIndex()
4180 sqlite3ResolveSelfReference(pParse, pTab, NC_IdxExpr, pListItem->pExpr, 0); in sqlite3CreateIndex()
4181 if( pParse->nErr ) goto exit_create_index; in sqlite3CreateIndex()
4184 if( pTab==pParse->pNewTable ){ in sqlite3CreateIndex()
4185 sqlite3ErrorMsg(pParse, "expressions prohibited in PRIMARY KEY and " in sqlite3CreateIndex()
4228 if( !db->init.busy && !sqlite3LocateCollSeq(pParse, zColl) ){ in sqlite3CreateIndex()
4260 if( pParse->pNewTable==0 ) estimateIndexWidth(pIndex); in sqlite3CreateIndex()
4277 if( pTab==pParse->pNewTable ){ in sqlite3CreateIndex()
4326 sqlite3ErrorMsg(pParse, in sqlite3CreateIndex()
4335 pIndex->pNext = pParse->pNewIndex; in sqlite3CreateIndex()
4336 pParse->pNewIndex = pIndex; in sqlite3CreateIndex()
4349 assert( pParse->nErr==0 ); in sqlite3CreateIndex()
4357 sqlite3ErrorMsg(pParse, "invalid rootpage"); in sqlite3CreateIndex()
4358 pParse->rc = SQLITE_CORRUPT_BKPT; in sqlite3CreateIndex()
4388 int iMem = ++pParse->nMem; in sqlite3CreateIndex()
4390 v = sqlite3GetVdbe(pParse); in sqlite3CreateIndex()
4393 sqlite3BeginWriteOperation(pParse, 1, iDb); in sqlite3CreateIndex()
4409 int n = (int)(pParse->sLastToken.z - pName->z) + pParse->sLastToken.n; in sqlite3CreateIndex()
4422 sqlite3NestedParse(pParse, in sqlite3CreateIndex()
4436 sqlite3RefillIndex(pParse, pIndex, iMem); in sqlite3CreateIndex()
4437 sqlite3ChangeCookie(pParse, iDb); in sqlite3CreateIndex()
4452 assert( pParse->pNewIndex==0 ); in sqlite3CreateIndex()
4453 pParse->pNewIndex = pIndex; in sqlite3CreateIndex()
4557 void sqlite3DropIndex(Parse *pParse, SrcList *pName, int ifExists){ in sqlite3DropIndex() argument
4560 sqlite3 *db = pParse->db; in sqlite3DropIndex()
4566 assert( pParse->nErr==0 ); /* Never called with prior non-OOM errors */ in sqlite3DropIndex()
4568 if( SQLITE_OK!=sqlite3ReadSchema(pParse) ){ in sqlite3DropIndex()
4574 sqlite3ErrorMsg(pParse, "no such index: %S", pName->a); in sqlite3DropIndex()
4576 sqlite3CodeVerifyNamedSchema(pParse, pName->a[0].zDatabase); in sqlite3DropIndex()
4577 sqlite3ForceNotReadOnly(pParse); in sqlite3DropIndex()
4579 pParse->checkSchema = 1; in sqlite3DropIndex()
4583 sqlite3ErrorMsg(pParse, "index associated with UNIQUE " in sqlite3DropIndex()
4594 if( sqlite3AuthCheck(pParse, SQLITE_DELETE, zTab, 0, zDb) ){ in sqlite3DropIndex()
4598 if( sqlite3AuthCheck(pParse, code, pIndex->zName, pTab->zName, zDb) ){ in sqlite3DropIndex()
4605 v = sqlite3GetVdbe(pParse); in sqlite3DropIndex()
4607 sqlite3BeginWriteOperation(pParse, 1, iDb); in sqlite3DropIndex()
4608 sqlite3NestedParse(pParse, in sqlite3DropIndex()
4612 sqlite3ClearStatTables(pParse, iDb, "idx", pIndex->zName); in sqlite3DropIndex()
4613 sqlite3ChangeCookie(pParse, iDb); in sqlite3DropIndex()
4614 destroyRootPage(pParse, pIndex->tnum, iDb); in sqlite3DropIndex()
4669 IdList *sqlite3IdListAppend(Parse *pParse, IdList *pList, Token *pToken){ in sqlite3IdListAppend() argument
4670 sqlite3 *db = pParse->db; in sqlite3IdListAppend()
4688 sqlite3RenameTokenMap(pParse, (void*)pList->a[i].zName, pToken); in sqlite3IdListAppend()
4753 Parse *pParse, /* Parsing context into which errors are reported */ in sqlite3SrcListEnlarge() argument
4770 sqlite3 *db = pParse->db; in sqlite3SrcListEnlarge()
4773 sqlite3ErrorMsg(pParse, "too many FROM clause terms, max: %d", in sqlite3SrcListEnlarge()
4842 Parse *pParse, /* Parsing context, in which errors are reported */ in sqlite3SrcListAppend() argument
4850 assert( pParse!=0 ); in sqlite3SrcListAppend()
4851 assert( pParse->db!=0 ); in sqlite3SrcListAppend()
4852 db = pParse->db; in sqlite3SrcListAppend()
4854 pList = sqlite3DbMallocRawNN(pParse->db, sizeof(SrcList) ); in sqlite3SrcListAppend()
4861 SrcList *pNew = sqlite3SrcListEnlarge(pParse, pList, 1, pList->nSrc); in sqlite3SrcListAppend()
4886 void sqlite3SrcListAssignCursors(Parse *pParse, SrcList *pList){ in sqlite3SrcListAssignCursors() argument
4889 assert( pList || pParse->db->mallocFailed ); in sqlite3SrcListAssignCursors()
4893 pItem->iCursor = pParse->nTab++; in sqlite3SrcListAssignCursors()
4895 sqlite3SrcListAssignCursors(pParse, pItem->pSelect->pSrc); in sqlite3SrcListAssignCursors()
4943 Parse *pParse, /* Parsing context */ in sqlite3SrcListAppendFromTerm() argument
4952 sqlite3 *db = pParse->db; in sqlite3SrcListAppendFromTerm()
4954 sqlite3ErrorMsg(pParse, "a JOIN clause is required before %s", in sqlite3SrcListAppendFromTerm()
4959 p = sqlite3SrcListAppend(pParse, p, pTable, pDatabase); in sqlite3SrcListAppendFromTerm()
4969 sqlite3RenameTokenMap(pParse, pItem->zName, pToken); in sqlite3SrcListAppendFromTerm()
5004 void sqlite3SrcListIndexedBy(Parse *pParse, SrcList *p, Token *pIndexedBy){ in sqlite3SrcListIndexedBy() argument
5018 pItem->u1.zIndexedBy = sqlite3NameFromToken(pParse->db, pIndexedBy); in sqlite3SrcListIndexedBy()
5030 SrcList *sqlite3SrcListAppendList(Parse *pParse, SrcList *p1, SrcList *p2){ in sqlite3SrcListAppendList() argument
5033 SrcList *pNew = sqlite3SrcListEnlarge(pParse, p1, p2->nSrc, 1); in sqlite3SrcListAppendList()
5035 sqlite3SrcListDelete(pParse->db, p2); in sqlite3SrcListAppendList()
5039 sqlite3DbFree(pParse->db, p2); in sqlite3SrcListAppendList()
5050 void sqlite3SrcListFuncArgs(Parse *pParse, SrcList *p, ExprList *pList){ in sqlite3SrcListFuncArgs() argument
5059 sqlite3ExprListDelete(pParse->db, pList); in sqlite3SrcListFuncArgs()
5085 void sqlite3SrcListShiftJoinType(Parse *pParse, SrcList *p){ in sqlite3SrcListShiftJoinType() argument
5086 (void)pParse; in sqlite3SrcListShiftJoinType()
5111 void sqlite3BeginTransaction(Parse *pParse, int type){ in sqlite3BeginTransaction() argument
5116 assert( pParse!=0 ); in sqlite3BeginTransaction()
5117 db = pParse->db; in sqlite3BeginTransaction()
5119 if( sqlite3AuthCheck(pParse, SQLITE_TRANSACTION, "BEGIN", 0, 0) ){ in sqlite3BeginTransaction()
5122 v = sqlite3GetVdbe(pParse); in sqlite3BeginTransaction()
5147 void sqlite3EndTransaction(Parse *pParse, int eType){ in sqlite3EndTransaction() argument
5151 assert( pParse!=0 ); in sqlite3EndTransaction()
5152 assert( pParse->db!=0 ); in sqlite3EndTransaction()
5155 if( sqlite3AuthCheck(pParse, SQLITE_TRANSACTION, in sqlite3EndTransaction()
5159 v = sqlite3GetVdbe(pParse); in sqlite3EndTransaction()
5169 void sqlite3Savepoint(Parse *pParse, int op, Token *pName){ in sqlite3Savepoint() argument
5170 char *zName = sqlite3NameFromToken(pParse->db, pName); in sqlite3Savepoint()
5172 Vdbe *v = sqlite3GetVdbe(pParse); in sqlite3Savepoint()
5177 if( !v || sqlite3AuthCheck(pParse, SQLITE_SAVEPOINT, az[op], zName, 0) ){ in sqlite3Savepoint()
5178 sqlite3DbFree(pParse->db, zName); in sqlite3Savepoint()
5189 int sqlite3OpenTempDatabase(Parse *pParse){ in sqlite3OpenTempDatabase() argument
5190 sqlite3 *db = pParse->db; in sqlite3OpenTempDatabase()
5191 if( db->aDb[1].pBt==0 && !pParse->explain ){ in sqlite3OpenTempDatabase()
5203 sqlite3ErrorMsg(pParse, "unable to open a temporary database " in sqlite3OpenTempDatabase()
5205 pParse->rc = rc; in sqlite3OpenTempDatabase()
5236 void sqlite3CodeVerifySchema(Parse *pParse, int iDb){ in sqlite3CodeVerifySchema() argument
5237 sqlite3CodeVerifySchemaAtToplevel(sqlite3ParseToplevel(pParse), iDb); in sqlite3CodeVerifySchema()
5245 void sqlite3CodeVerifyNamedSchema(Parse *pParse, const char *zDb){ in sqlite3CodeVerifyNamedSchema() argument
5246 sqlite3 *db = pParse->db; in sqlite3CodeVerifyNamedSchema()
5251 sqlite3CodeVerifySchema(pParse, i); in sqlite3CodeVerifyNamedSchema()
5269 void sqlite3BeginWriteOperation(Parse *pParse, int setStatement, int iDb){ in sqlite3BeginWriteOperation() argument
5270 Parse *pToplevel = sqlite3ParseToplevel(pParse); in sqlite3BeginWriteOperation()
5283 void sqlite3MultiWrite(Parse *pParse){ in sqlite3MultiWrite() argument
5284 Parse *pToplevel = sqlite3ParseToplevel(pParse); in sqlite3MultiWrite()
5304 void sqlite3MayAbort(Parse *pParse){ in sqlite3MayAbort() argument
5305 Parse *pToplevel = sqlite3ParseToplevel(pParse); in sqlite3MayAbort()
5315 Parse *pParse, /* Parsing context */ in sqlite3HaltConstraint() argument
5323 assert( pParse->pVdbe!=0 ); in sqlite3HaltConstraint()
5324 v = sqlite3GetVdbe(pParse); in sqlite3HaltConstraint()
5325 assert( (errCode&0xff)==SQLITE_CONSTRAINT || pParse->nested ); in sqlite3HaltConstraint()
5327 sqlite3MayAbort(pParse); in sqlite3HaltConstraint()
5337 Parse *pParse, /* Parsing context */ in sqlite3UniqueConstraint() argument
5346 sqlite3StrAccumInit(&errMsg, pParse->db, 0, 0, in sqlite3UniqueConstraint()
5347 pParse->db->aLimit[SQLITE_LIMIT_LENGTH]); in sqlite3UniqueConstraint()
5362 sqlite3HaltConstraint(pParse, in sqlite3UniqueConstraint()
5373 Parse *pParse, /* Parsing context */ in sqlite3RowidConstraint() argument
5380 zMsg = sqlite3MPrintf(pParse->db, "%s.%s", pTab->zName, in sqlite3RowidConstraint()
5384 zMsg = sqlite3MPrintf(pParse->db, "%s.rowid", pTab->zName); in sqlite3RowidConstraint()
5387 sqlite3HaltConstraint(pParse, rc, onError, zMsg, P4_DYNAMIC, in sqlite3RowidConstraint()
5415 static void reindexTable(Parse *pParse, Table *pTab, char const *zColl){ in reindexTable() argument
5421 int iDb = sqlite3SchemaToIndex(pParse->db, pTab->pSchema); in reindexTable()
5422 sqlite3BeginWriteOperation(pParse, 0, iDb); in reindexTable()
5423 sqlite3RefillIndex(pParse, pIndex, -1); in reindexTable()
5436 static void reindexDatabases(Parse *pParse, char const *zColl){ in reindexDatabases() argument
5439 sqlite3 *db = pParse->db; /* The database connection */ in reindexDatabases()
5448 reindexTable(pParse, pTab, zColl); in reindexDatabases()
5468 void sqlite3Reindex(Parse *pParse, Token *pName1, Token *pName2){ in sqlite3Reindex() argument
5475 sqlite3 *db = pParse->db; /* The database connection */ in sqlite3Reindex()
5480 if( SQLITE_OK!=sqlite3ReadSchema(pParse) ){ in sqlite3Reindex()
5485 reindexDatabases(pParse, 0); in sqlite3Reindex()
5490 zColl = sqlite3NameFromToken(pParse->db, pName1); in sqlite3Reindex()
5494 reindexDatabases(pParse, zColl); in sqlite3Reindex()
5500 iDb = sqlite3TwoPartName(pParse, pName1, pName2, &pObjName); in sqlite3Reindex()
5507 reindexTable(pParse, pTab, 0); in sqlite3Reindex()
5514 sqlite3BeginWriteOperation(pParse, 0, iDb); in sqlite3Reindex()
5515 sqlite3RefillIndex(pParse, pIndex, -1); in sqlite3Reindex()
5518 sqlite3ErrorMsg(pParse, "unable to identify the object to be reindexed"); in sqlite3Reindex()
5528 KeyInfo *sqlite3KeyInfoOfIndex(Parse *pParse, Index *pIdx){ in sqlite3KeyInfoOfIndex() argument
5533 if( pParse->nErr ) return 0; in sqlite3KeyInfoOfIndex()
5535 pKey = sqlite3KeyInfoAlloc(pParse->db, nKey, nCol-nKey); in sqlite3KeyInfoOfIndex()
5537 pKey = sqlite3KeyInfoAlloc(pParse->db, nCol, 0); in sqlite3KeyInfoOfIndex()
5544 sqlite3LocateCollSeq(pParse, zColl); in sqlite3KeyInfoOfIndex()
5548 if( pParse->nErr ){ in sqlite3KeyInfoOfIndex()
5549 assert( pParse->rc==SQLITE_ERROR_MISSING_COLLSEQ ); in sqlite3KeyInfoOfIndex()
5559 pParse->rc = SQLITE_ERROR_RETRY; in sqlite3KeyInfoOfIndex()
5573 Parse *pParse, /* Parsing context */ in sqlite3CteNew() argument
5580 sqlite3 *db = pParse->db; in sqlite3CteNew()
5591 pNew->zName = sqlite3NameFromToken(pParse->db, pName); in sqlite3CteNew()
5624 Parse *pParse, /* Parsing context */ in sqlite3WithAdd() argument
5628 sqlite3 *db = pParse->db; in sqlite3WithAdd()
5643 sqlite3ErrorMsg(pParse, "duplicate WITH table name: %s", zName); in sqlite3WithAdd()