Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Restrict the scope of internal-use functions in alter.c. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
4396914f8e1a847d86c22fb0b91e7431 |
User & Date: | drh 2018-09-12 15:51:56.382 |
Context
2018-09-12
| ||
20:32 | Fix an assert() in os_unix.c that is not true when using RBU. (check-in: 028ed8618a user: dan tags: trunk) | |
15:51 | Restrict the scope of internal-use functions in alter.c. (check-in: 4396914f8e user: drh tags: trunk) | |
14:28 | Improvements to the documentation for SQLITE_FCNTL_DATA_VERSION. No changes to code. (check-in: 2783762433 user: drh tags: trunk) | |
Changes
Changes to src/alter.c.
︙ | ︙ | |||
39 40 41 42 43 44 45 | /* ** Generate code to verify that the schemas of database zDb and, if ** bTemp is not true, database "temp", can still be parsed. This is ** called at the end of the generation of an ALTER TABLE ... RENAME ... ** statement to ensure that the operation has not rendered any schema ** objects unusable. */ | | | 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | /* ** Generate code to verify that the schemas of database zDb and, if ** bTemp is not true, database "temp", can still be parsed. This is ** called at the end of the generation of an ALTER TABLE ... RENAME ... ** statement to ensure that the operation has not rendered any schema ** objects unusable. */ static void renameTestSchema(Parse *pParse, const char *zDb, int bTemp){ sqlite3NestedParse(pParse, "SELECT 1 " "FROM \"%w\".%s " "WHERE name NOT LIKE 'sqlite_%%'" " AND sql NOT LIKE 'create virtual%%'" " AND sqlite_rename_test(%Q, sql, type, name, %d)=NULL ", zDb, MASTER_NAME, |
︙ | ︙ | |||
66 67 68 69 70 71 72 | } } /* ** Generate code to reload the schema for database iDb. And, if iDb!=1, for ** the temp database as well. */ | | | 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 | } } /* ** Generate code to reload the schema for database iDb. And, if iDb!=1, for ** the temp database as well. */ static void renameReloadSchema(Parse *pParse, int iDb){ Vdbe *v = pParse->pVdbe; if( v ){ sqlite3ChangeCookie(pParse, iDb); sqlite3VdbeAddParseSchemaOp(pParse->pVdbe, iDb, 0); if( iDb!=1 ) sqlite3VdbeAddParseSchemaOp(pParse->pVdbe, 1, 0); } } |
︙ | ︙ | |||
646 647 648 649 650 651 652 | ** ** sqlite3_free(x); ** if( x==y ) ... ** ** Technically, as x no longer points into a valid object or to the byte ** following a valid object, it may not be used in comparison operations. */ | | | 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 | ** ** sqlite3_free(x); ** if( x==y ) ... ** ** Technically, as x no longer points into a valid object or to the byte ** following a valid object, it may not be used in comparison operations. */ static void renameTokenCheckAll(Parse *pParse, void *pPtr){ if( pParse->nErr==0 && pParse->db->mallocFailed==0 ){ RenameToken *p; u8 i = 0; for(p=pParse->pRename; p; p=p->pNext){ if( p->p ){ assert( p->p!=pPtr ); i += *(u8*)(p->p); |
︙ | ︙ |