Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | Allow recursive queries in user input. |
|---|---|
| Downloads: | Tarball | ZIP archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA1: |
beaf897cb1ab47d5b73f91f98ee7eeaf |
| User & Date: | jan.nijtmans 2015-01-22 19:49:00.408 |
Context
|
2015-01-22
| ||
| 22:52 | Make table sorting (by clicking on column headers) stable. In other words, identical values in the column being sorted preserve their prior relative order. Patch suggested by Jacek Cała. ... (check-in: fe61f4958d user: drh tags: trunk) | |
| 19:49 | Allow recursive queries in user input. ... (check-in: beaf897cb1 user: jan.nijtmans tags: trunk) | |
| 19:16 | Allow "with" as well as "select" to be used in ticket report queries, as suggested by Sean Woods on the ML. ... (check-in: ae72a652a7 user: jan.nijtmans tags: trunk) | |
Changes
Changes to src/report.c.
| ︙ | ︙ | |||
169 170 171 172 173 174 175 176 177 178 179 180 181 182 |
int rc = SQLITE_OK;
if( *(char**)pError ){
/* We've already seen an error. No need to continue. */
return SQLITE_OK;
}
switch( code ){
case SQLITE_SELECT:
case SQLITE_FUNCTION: {
break;
}
case SQLITE_READ: {
static const char *const azAllowed[] = {
"ticket",
"ticketchng",
| > | 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 |
int rc = SQLITE_OK;
if( *(char**)pError ){
/* We've already seen an error. No need to continue. */
return SQLITE_OK;
}
switch( code ){
case SQLITE_SELECT:
case SQLITE_RECURSIVE:
case SQLITE_FUNCTION: {
break;
}
case SQLITE_READ: {
static const char *const azAllowed[] = {
"ticket",
"ticketchng",
|
| ︙ | ︙ | |||
199 200 201 202 203 204 205 |
*(char**)pError = mprintf("access to table \"%s\" is restricted",zArg1);
rc = SQLITE_DENY;
}else if( !g.perm.RdAddr && strncmp(zArg2, "private_", 8)==0 ){
rc = SQLITE_IGNORE;
}
break;
}
| < < < < < | 200 201 202 203 204 205 206 207 208 209 210 211 212 213 |
*(char**)pError = mprintf("access to table \"%s\" is restricted",zArg1);
rc = SQLITE_DENY;
}else if( !g.perm.RdAddr && strncmp(zArg2, "private_", 8)==0 ){
rc = SQLITE_IGNORE;
}
break;
}
default: {
*(char**)pError = mprintf("only SELECT statements are allowed");
rc = SQLITE_DENY;
break;
}
}
return rc;
|
| ︙ | ︙ |