@@ -864,23 +864,56 @@
864 864 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_exec(&err);
865 865 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
866 866 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
867 867 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
868 868 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** COMMAND: test-db-prepare
869 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Usage: %fossil test-db-prepare ?OPTIONS? SQL
869 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Usage: %fossil test-db-prepare ?OPTIONS? SQL-STATEMENT
870 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
871 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Options:
872 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
873 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** --auth-report Enable the ticket report query authorizer.
874 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** --auth-ticket Enable the ticket schema query authorizer.
870 875 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
871 876 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Invoke db_prepare() on the SQL input. Report any errors encountered.
872 877 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** This command is used to verify error detection logic in the db_prepare()
873 878 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** utility routine.
874 879 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
875 880 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void db_test_db_prepare(void){
881 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const int fAuthReport = find_option("auth-report",0,0)!=0;
882 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const int fAuthSchema = find_option("auth-ticket",0,0)!=0;
883 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const int fAuth = fAuthReport + fAuthSchema;
884 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ char * zReportErr = 0; /* auth-report error string. */
885 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int nSchemaErr = 0; /* Number of auth-ticket errors. */
876 886 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Stmt err;
887 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
888 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if(fAuth>1){
889 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fossil_fatal("Only one of --auth-report or --auth-ticket "
890 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "may be used.");
891 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
877 892 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_find_and_open_repository(0,0);
878 893 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
verify_all_options();
879 894 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( g.argc!=3 ) usage("?OPTIONS? SQL");
895 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if(fAuthReport){
896 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ report_restrict_sql(&zReportErr);
897 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if(fAuthSchema){
898 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ticket_restrict_sql(&nSchemaErr);
899 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
880 900 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_prepare(&err, "%s", g.argv[2]/*safe-for-%s*/);
881 901 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_finalize(&err);
902 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if(fAuthReport){
903 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ report_unrestrict_sql();
904 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if(zReportErr){
905 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fossil_warning("Report authorizer error: %s\n", zReportErr);
906 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fossil_free(zReportErr);
907 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
908 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if(fAuthSchema){
909 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ticket_unrestrict_sql();
910 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if(nSchemaErr){
911 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fossil_warning("Ticket schema authorizer error count: %d\n",
912 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ nSchemaErr);
913 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
914 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
882 915 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
883 916 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
884 917 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
885 918 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Print the output of one or more SQL queries on standard output.
886 919 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** This routine is used for debugging purposes only.
887 920 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!