Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Add test cases and assert() statements to ensure that the authorizer is being called as expected from within ALTER TABLE. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
ff10d2c7de430c88167b1e6e4f5307ee |
User & Date: | dan 2018-10-06 13:46:22.771 |
Context
2018-10-06
| ||
14:38 | Fix the ".help -all" option in the command-line shell. (check-in: aac8f1dff0 user: drh tags: trunk) | |
14:33 | Ensure each ALTER TABLE statement makes just a single SQLITE_ALTER_TABLE call to the authorizer function. (Leaf check-in: dac285474a user: dan tags: alter-auth-callbacks) | |
13:46 | Add test cases and assert() statements to ensure that the authorizer is being called as expected from within ALTER TABLE. (check-in: ff10d2c7de user: dan tags: trunk) | |
2018-10-05
| ||
15:10 | Changes to geopoly to silience false-positive warnings coming out of clang. (check-in: 11d9015f31 user: drh tags: trunk) | |
Changes
Changes to src/auth.c.
︙ | |||
147 148 149 150 151 152 153 154 155 156 157 158 159 160 | 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 | + | Table *pTab = 0; /* The table being read */ const char *zCol; /* Name of the column of the table */ int iSrc; /* Index in pTabList->a[] of table being read */ int iDb; /* The index of the database the expression refers to */ int iCol; /* Index of column in table */ assert( pExpr->op==TK_COLUMN || pExpr->op==TK_TRIGGER ); assert( !IN_RENAME_OBJECT || db->xAuth==0 ); if( db->xAuth==0 ) return; iDb = sqlite3SchemaToIndex(pParse->db, pSchema); if( iDb<0 ){ /* An attempt to read a column out of a subquery or other ** temporary table. */ return; } |
︙ | |||
203 204 205 206 207 208 209 210 211 212 213 214 215 216 | 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 | + | ){ sqlite3 *db = pParse->db; int rc; /* Don't do any authorization checks if the database is initialising ** or if the parser is being invoked from within sqlite3_declare_vtab. */ assert( !IN_RENAME_OBJECT || db->xAuth==0 ); if( db->init.busy || IN_SPECIAL_PARSE ){ return SQLITE_OK; } if( db->xAuth==0 ){ return SQLITE_OK; } |
︙ |
Added test/alterauth2.test.