Lines Matching refs:pParse
31 static int isAlterableTable(Parse *pParse, Table *pTab){ in isAlterableTable() argument
36 && sqlite3ReadOnlyShadowTables(pParse->db) in isAlterableTable()
40 sqlite3ErrorMsg(pParse, "table %s may not be altered", pTab->zName); in isAlterableTable()
54 Parse *pParse, /* Parse context */ in renameTestSchema() argument
60 pParse->colNamesSet = 1; in renameTestSchema()
61 sqlite3NestedParse(pParse, in renameTestSchema()
72 sqlite3NestedParse(pParse, in renameTestSchema()
90 static void renameFixQuotes(Parse *pParse, const char *zDb, int bTemp){ in renameFixQuotes() argument
91 sqlite3NestedParse(pParse, in renameFixQuotes()
98 sqlite3NestedParse(pParse, in renameFixQuotes()
111 static void renameReloadSchema(Parse *pParse, int iDb, u16 p5){ in renameReloadSchema() argument
112 Vdbe *v = pParse->pVdbe; in renameReloadSchema()
114 sqlite3ChangeCookie(pParse, iDb); in renameReloadSchema()
115 sqlite3VdbeAddParseSchemaOp(pParse->pVdbe, iDb, 0, p5); in renameReloadSchema()
116 if( iDb!=1 ) sqlite3VdbeAddParseSchemaOp(pParse->pVdbe, 1, 0, p5); in renameReloadSchema()
125 Parse *pParse, /* Parser context. */ in sqlite3AlterRenameTable() argument
133 sqlite3 *db = pParse->db; /* Database connection */ in sqlite3AlterRenameTable()
141 assert( sqlite3BtreeHoldsAllMutexes(pParse->db) ); in sqlite3AlterRenameTable()
143 pTab = sqlite3LocateTableItem(pParse, 0, &pSrc->a[0]); in sqlite3AlterRenameTable()
145 iDb = sqlite3SchemaToIndex(pParse->db, pTab->pSchema); in sqlite3AlterRenameTable()
159 sqlite3ErrorMsg(pParse, in sqlite3AlterRenameTable()
167 if( SQLITE_OK!=isAlterableTable(pParse, pTab) ){ in sqlite3AlterRenameTable()
170 if( SQLITE_OK!=sqlite3CheckObjectName(pParse,zName,"table",zName) ){ in sqlite3AlterRenameTable()
176 sqlite3ErrorMsg(pParse, "view %s may not be altered", pTab->zName); in sqlite3AlterRenameTable()
183 if( sqlite3AuthCheck(pParse, SQLITE_ALTER_TABLE, zDb, pTab->zName, 0) ){ in sqlite3AlterRenameTable()
189 if( sqlite3ViewGetColumnNames(pParse, pTab) ){ in sqlite3AlterRenameTable()
204 v = sqlite3GetVdbe(pParse); in sqlite3AlterRenameTable()
208 sqlite3MayAbort(pParse); in sqlite3AlterRenameTable()
216 sqlite3NestedParse(pParse, in sqlite3AlterRenameTable()
226 sqlite3NestedParse(pParse, in sqlite3AlterRenameTable()
247 sqlite3NestedParse(pParse, in sqlite3AlterRenameTable()
257 sqlite3NestedParse(pParse, in sqlite3AlterRenameTable()
275 int i = ++pParse->nMem; in sqlite3AlterRenameTable()
281 renameReloadSchema(pParse, iDb, INITFLAG_AlterRename); in sqlite3AlterRenameTable()
282 renameTestSchema(pParse, zDb, iDb==1, "after rename", 0); in sqlite3AlterRenameTable()
294 Parse *pParse, /* Parsing context */ in sqlite3ErrorIfNotEmpty() argument
299 sqlite3NestedParse(pParse, in sqlite3ErrorIfNotEmpty()
313 void sqlite3AlterFinishAddColumn(Parse *pParse, Token *pColDef){ in sqlite3AlterFinishAddColumn() argument
326 db = pParse->db; in sqlite3AlterFinishAddColumn()
327 assert( db->pParse==pParse ); in sqlite3AlterFinishAddColumn()
328 if( pParse->nErr ) return; in sqlite3AlterFinishAddColumn()
330 pNew = pParse->pNewTable; in sqlite3AlterFinishAddColumn()
344 if( sqlite3AuthCheck(pParse, SQLITE_ALTER_TABLE, zDb, pTab->zName, 0) ){ in sqlite3AlterFinishAddColumn()
355 sqlite3ErrorMsg(pParse, "Cannot add a PRIMARY KEY column"); in sqlite3AlterFinishAddColumn()
359 sqlite3ErrorMsg(pParse, in sqlite3AlterFinishAddColumn()
374 sqlite3ErrorIfNotEmpty(pParse, zDb, zTab, in sqlite3AlterFinishAddColumn()
378 sqlite3ErrorIfNotEmpty(pParse, zDb, zTab, in sqlite3AlterFinishAddColumn()
396 sqlite3ErrorIfNotEmpty(pParse, zDb, zTab, in sqlite3AlterFinishAddColumn()
402 sqlite3ErrorIfNotEmpty(pParse, zDb, zTab, "cannot add a STORED column"); in sqlite3AlterFinishAddColumn()
417 sqlite3NestedParse(pParse, in sqlite3AlterFinishAddColumn()
428 v = sqlite3GetVdbe(pParse); in sqlite3AlterFinishAddColumn()
434 r1 = sqlite3GetTempReg(pParse); in sqlite3AlterFinishAddColumn()
441 sqlite3ReleaseTempReg(pParse, r1); in sqlite3AlterFinishAddColumn()
444 renameReloadSchema(pParse, iDb, INITFLAG_AlterAdd); in sqlite3AlterFinishAddColumn()
450 sqlite3NestedParse(pParse, in sqlite3AlterFinishAddColumn()
478 void sqlite3AlterBeginAddColumn(Parse *pParse, SrcList *pSrc){ in sqlite3AlterBeginAddColumn() argument
484 sqlite3 *db = pParse->db; in sqlite3AlterBeginAddColumn()
487 assert( pParse->pNewTable==0 ); in sqlite3AlterBeginAddColumn()
490 pTab = sqlite3LocateTableItem(pParse, 0, &pSrc->a[0]); in sqlite3AlterBeginAddColumn()
495 sqlite3ErrorMsg(pParse, "virtual tables may not be altered"); in sqlite3AlterBeginAddColumn()
502 sqlite3ErrorMsg(pParse, "Cannot add a column to a view"); in sqlite3AlterBeginAddColumn()
505 if( SQLITE_OK!=isAlterableTable(pParse, pTab) ){ in sqlite3AlterBeginAddColumn()
509 sqlite3MayAbort(pParse); in sqlite3AlterBeginAddColumn()
523 pParse->pNewTable = pNew; in sqlite3AlterBeginAddColumn()
561 static int isRealTable(Parse *pParse, Table *pTab, int bDrop){ in isRealTable() argument
574 sqlite3ErrorMsg(pParse, "cannot %s %s \"%s\"", in isRealTable()
592 Parse *pParse, /* Parsing context */ in sqlite3AlterRenameColumn() argument
597 sqlite3 *db = pParse->db; /* Database connection */ in sqlite3AlterRenameColumn()
607 pTab = sqlite3LocateTableItem(pParse, 0, &pSrc->a[0]); in sqlite3AlterRenameColumn()
611 if( SQLITE_OK!=isAlterableTable(pParse, pTab) ) goto exit_rename_column; in sqlite3AlterRenameColumn()
612 if( SQLITE_OK!=isRealTable(pParse, pTab, 0) ) goto exit_rename_column; in sqlite3AlterRenameColumn()
621 if( sqlite3AuthCheck(pParse, SQLITE_ALTER_TABLE, zDb, pTab->zName, 0) ){ in sqlite3AlterRenameColumn()
634 sqlite3ErrorMsg(pParse, "no such column: \"%T\"", pOld); in sqlite3AlterRenameColumn()
639 renameTestSchema(pParse, zDb, iSchema==1, "", 0); in sqlite3AlterRenameColumn()
640 renameFixQuotes(pParse, zDb, iSchema==1); in sqlite3AlterRenameColumn()
646 sqlite3MayAbort(pParse); in sqlite3AlterRenameColumn()
651 sqlite3NestedParse(pParse, in sqlite3AlterRenameColumn()
661 sqlite3NestedParse(pParse, in sqlite3AlterRenameColumn()
669 renameReloadSchema(pParse, iSchema, INITFLAG_AlterRename); in sqlite3AlterRenameColumn()
670 renameTestSchema(pParse, zDb, iSchema==1, "after rename", 1); in sqlite3AlterRenameColumn()
739 static void renameTokenCheckAll(Parse *pParse, const void *pPtr){ in renameTokenCheckAll() argument
740 assert( pParse==pParse->db->pParse ); in renameTokenCheckAll()
741 assert( pParse->db->mallocFailed==0 || pParse->nErr!=0 ); in renameTokenCheckAll()
742 if( pParse->nErr==0 ){ in renameTokenCheckAll()
745 for(p=pParse->pRename; p; p=p->pNext){ in renameTokenCheckAll()
770 Parse *pParse, in sqlite3RenameTokenMap() argument
775 assert( pPtr || pParse->db->mallocFailed ); in sqlite3RenameTokenMap()
776 renameTokenCheckAll(pParse, pPtr); in sqlite3RenameTokenMap()
777 if( ALWAYS(pParse->eParseMode!=PARSE_MODE_UNMAP) ){ in sqlite3RenameTokenMap()
778 pNew = sqlite3DbMallocZero(pParse->db, sizeof(RenameToken)); in sqlite3RenameTokenMap()
782 pNew->pNext = pParse->pRename; in sqlite3RenameTokenMap()
783 pParse->pRename = pNew; in sqlite3RenameTokenMap()
795 void sqlite3RenameTokenRemap(Parse *pParse, const void *pTo, const void *pFrom){ in sqlite3RenameTokenRemap() argument
797 renameTokenCheckAll(pParse, pTo); in sqlite3RenameTokenRemap()
798 for(p=pParse->pRename; p; p=p->pNext){ in sqlite3RenameTokenRemap()
810 Parse *pParse = pWalker->pParse; in renameUnmapExprCb() local
811 sqlite3RenameTokenRemap(pParse, 0, (const void*)pExpr); in renameUnmapExprCb()
813 sqlite3RenameTokenRemap(pParse, 0, (const void*)&pExpr->y.pTab); in renameUnmapExprCb()
825 Parse *pParse = pWalker->pParse; in renameWalkWith() local
835 pCopy = sqlite3WithDup(pParse->db, pWith); in renameWalkWith()
836 pCopy = sqlite3WithPush(pParse, pCopy, 1); in renameWalkWith()
842 sNC.pParse = pParse; in renameWalkWith()
843 if( pCopy ) sqlite3SelectPrep(sNC.pParse, p, &sNC); in renameWalkWith()
844 if( sNC.pParse->db->mallocFailed ) return; in renameWalkWith()
846 sqlite3RenameExprlistUnmap(pParse, pWith->a[i].pCols); in renameWalkWith()
848 if( pCopy && pParse->pWith==pCopy ){ in renameWalkWith()
849 pParse->pWith = pCopy->pOuter; in renameWalkWith()
858 Parse *pParse, in unmapColumnIdlistNames() argument
864 sqlite3RenameTokenRemap(pParse, 0, (const void*)pIdList->a[ii].zName); in unmapColumnIdlistNames()
872 Parse *pParse = pWalker->pParse; in renameUnmapSelectCb() local
874 if( pParse->nErr ) return WRC_Abort; in renameUnmapSelectCb()
884 sqlite3RenameTokenRemap(pParse, 0, (void*)pList->a[i].zEName); in renameUnmapSelectCb()
891 sqlite3RenameTokenRemap(pParse, 0, (void*)pSrc->a[i].zName); in renameUnmapSelectCb()
895 unmapColumnIdlistNames(pParse, pSrc->a[i].u3.pUsing); in renameUnmapSelectCb()
907 void sqlite3RenameExprUnmap(Parse *pParse, Expr *pExpr){ in sqlite3RenameExprUnmap() argument
908 u8 eMode = pParse->eParseMode; in sqlite3RenameExprUnmap()
911 sWalker.pParse = pParse; in sqlite3RenameExprUnmap()
914 pParse->eParseMode = PARSE_MODE_UNMAP; in sqlite3RenameExprUnmap()
916 pParse->eParseMode = eMode; in sqlite3RenameExprUnmap()
923 void sqlite3RenameExprlistUnmap(Parse *pParse, ExprList *pEList){ in sqlite3RenameExprlistUnmap() argument
928 sWalker.pParse = pParse; in sqlite3RenameExprlistUnmap()
933 sqlite3RenameTokenRemap(pParse, 0, (void*)pEList->a[i].zEName); in sqlite3RenameExprlistUnmap()
961 Parse *pParse, in renameTokenFind() argument
969 for(pp=&pParse->pRename; (*pp); pp=&(*pp)->pNext){ in renameTokenFind()
1012 && pWalker->pParse->pTriggerTab==p->pTab in renameColumnExprCb()
1014 renameTokenFind(pWalker->pParse, p, (void*)pExpr); in renameColumnExprCb()
1020 renameTokenFind(pWalker->pParse, p, (void*)pExpr); in renameColumnExprCb()
1060 Parse *pParse in renameColumnParseError() argument
1066 zErr = sqlite3MPrintf(pParse->db, "error in %s %s%s%s: %s", in renameColumnParseError()
1068 pParse->zErrMsg in renameColumnParseError()
1071 sqlite3DbFree(pParse->db, zErr); in renameColumnParseError()
1081 Parse *pParse, in renameColumnElistNames() argument
1094 renameTokenFind(pParse, pCtx, (const void*)zName); in renameColumnElistNames()
1106 Parse *pParse, in renameColumnIdlistNames() argument
1116 renameTokenFind(pParse, pCtx, (const void*)zName); in renameColumnIdlistNames()
1287 static int renameResolveTrigger(Parse *pParse){ in renameResolveTrigger() argument
1288 sqlite3 *db = pParse->db; in renameResolveTrigger()
1289 Trigger *pNew = pParse->pNewTrigger; in renameResolveTrigger()
1295 sNC.pParse = pParse; in renameResolveTrigger()
1297 pParse->pTriggerTab = sqlite3FindTable(db, pNew->table, in renameResolveTrigger()
1300 pParse->eTriggerOp = pNew->op; in renameResolveTrigger()
1303 if( ALWAYS(pParse->pTriggerTab) ){ in renameResolveTrigger()
1304 rc = sqlite3ViewGetColumnNames(pParse, pParse->pTriggerTab); in renameResolveTrigger()
1314 sqlite3SelectPrep(pParse, pStep->pSelect, &sNC); in renameResolveTrigger()
1315 if( pParse->nErr ) rc = pParse->rc; in renameResolveTrigger()
1318 SrcList *pSrc = sqlite3TriggerStepSrc(pParse, pStep); in renameResolveTrigger()
1321 pParse, pStep->pExprList, pSrc, 0, 0, 0, 0, 0, 0 in renameResolveTrigger()
1328 sqlite3SelectPrep(pParse, pSel, 0); in renameResolveTrigger()
1329 rc = pParse->nErr ? SQLITE_ERROR : SQLITE_OK; in renameResolveTrigger()
1341 sqlite3SelectPrep(pParse, p->pSelect, 0); in renameResolveTrigger()
1420 static void renameParseCleanup(Parse *pParse){ in renameParseCleanup() argument
1421 sqlite3 *db = pParse->db; in renameParseCleanup()
1423 if( pParse->pVdbe ){ in renameParseCleanup()
1424 sqlite3VdbeFinalize(pParse->pVdbe); in renameParseCleanup()
1426 sqlite3DeleteTable(db, pParse->pNewTable); in renameParseCleanup()
1427 while( (pIdx = pParse->pNewIndex)!=0 ){ in renameParseCleanup()
1428 pParse->pNewIndex = pIdx->pNext; in renameParseCleanup()
1431 sqlite3DeleteTrigger(db, pParse->pNewTrigger); in renameParseCleanup()
1432 sqlite3DbFree(db, pParse->zErrMsg); in renameParseCleanup()
1433 renameTokenFree(db, pParse->pRename); in renameParseCleanup()
1434 sqlite3ParseObjectReset(pParse); in renameParseCleanup()
1508 sWalker.pParse = &sParse; in renameColumnFunc()
1634 renameTokenFind(pWalker->pParse, p, (void*)&pExpr->y.pTab); in renameTableExprCb()
1652 assert( pWalker->pParse->db->mallocFailed ); in renameTableSelectCb()
1658 renameTokenFind(pWalker->pParse, p, pItem->zName); in renameTableSelectCb()
1716 sWalker.pParse = &sParse; in renameTableFunc()
1733 sNC.pParse = &sParse; in renameTableFunc()
1840 renameTokenFind(pWalker->pParse, pWalker->u.pRename, (const void*)pExpr); in renameQuotefixExprCb()
1901 sWalker.pParse = &sParse; in renameQuotefixFunc()
2016 sNC.pParse = &sParse; in renameTableTest()
2125 void sqlite3AlterDropColumn(Parse *pParse, SrcList *pSrc, const Token *pName){ in sqlite3AlterDropColumn() argument
2126 sqlite3 *db = pParse->db; /* Database handle */ in sqlite3AlterDropColumn()
2134 assert( pParse->pNewTable==0 ); in sqlite3AlterDropColumn()
2137 pTab = sqlite3LocateTableItem(pParse, 0, &pSrc->a[0]); in sqlite3AlterDropColumn()
2142 if( SQLITE_OK!=isAlterableTable(pParse, pTab) ) goto exit_drop_column; in sqlite3AlterDropColumn()
2143 if( SQLITE_OK!=isRealTable(pParse, pTab, 1) ) goto exit_drop_column; in sqlite3AlterDropColumn()
2153 sqlite3ErrorMsg(pParse, "no such column: \"%T\"", pName); in sqlite3AlterDropColumn()
2160 sqlite3ErrorMsg(pParse, "cannot drop %s column: \"%s\"", in sqlite3AlterDropColumn()
2169 sqlite3ErrorMsg(pParse, "cannot drop column \"%s\": no other columns exist",zCol); in sqlite3AlterDropColumn()
2179 if( sqlite3AuthCheck(pParse, SQLITE_ALTER_TABLE, zDb, pTab->zName, zCol) ){ in sqlite3AlterDropColumn()
2183 renameTestSchema(pParse, zDb, iDb==1, "", 0); in sqlite3AlterDropColumn()
2184 renameFixQuotes(pParse, zDb, iDb==1); in sqlite3AlterDropColumn()
2185 sqlite3NestedParse(pParse, in sqlite3AlterDropColumn()
2193 renameReloadSchema(pParse, iDb, INITFLAG_AlterDrop); in sqlite3AlterDropColumn()
2194 renameTestSchema(pParse, zDb, iDb==1, "after drop column", 1); in sqlite3AlterDropColumn()
2197 if( pParse->nErr==0 && (pTab->aCol[iCol].colFlags & COLFLAG_VIRTUAL)==0 ){ in sqlite3AlterDropColumn()
2205 Vdbe *v = sqlite3GetVdbe(pParse); in sqlite3AlterDropColumn()
2206 iCur = pParse->nTab++; in sqlite3AlterDropColumn()
2207 sqlite3OpenTable(pParse, iCur, iDb, pTab, OP_OpenWrite); in sqlite3AlterDropColumn()
2209 reg = ++pParse->nMem; in sqlite3AlterDropColumn()
2212 pParse->nMem += pTab->nCol; in sqlite3AlterDropColumn()
2215 pParse->nMem += pPk->nColumn; in sqlite3AlterDropColumn()
2221 regRec = ++pParse->nMem; in sqlite3AlterDropColumn()
2243 pParse->nMem++; in sqlite3AlterDropColumn()