# # AFL dictionary for SQL # ---------------------- # # Modeled based on SQLite documentation, contains some number of SQLite # extensions. Other dialects of SQL may benefit from customized dictionaries. # # If you append @1 to the file name when loading this dictionary, afl-fuzz # will also additionally load a selection of pragma keywords that are very # specific to SQLite (and are probably less interesting from the security # standpoint, because they are usually not allowed in non-privileged # contexts). # # Created by Michal Zalewski # function_abs=" abs(1)" function_avg=" avg(1)" function_changes=" changes()" function_char=" char(1)" function_coalesce=" coalesce(1,1)" function_count=" count(1)" function_date=" date(1,1,1)" function_datetime=" datetime(1,1,1)" function_decimal=" decimal(1,1)" function_glob=" glob(1,1)" function_group_concat=" group_concat(1,1)" function_hex=" hex(1)" function_ifnull=" ifnull(1,1)" function_instr=" instr(1,1)" function_julianday=" julianday(1,1,1)" function_last_insert_rowid=" last_insert_rowid()" function_length=" length(1)" function_like=" like(1,1)" function_likelihood=" likelihood(1,1)" function_likely=" likely(1)" function_load_extension=" load_extension(1,1)" function_lower=" lower(1)" function_ltrim=" ltrim(1,1)" function_max=" max(1,1)" function_min=" min(1,1)" function_nullif=" nullif(1,1)" function_printf=" printf(1,1)" function_quote=" quote(1)" function_random=" random()" function_randomblob=" randomblob(1)" function_replace=" replace(1,1,1)" function_round=" round(1,1)" function_rtrim=" rtrim(1,1)" function_soundex=" soundex(1)" function_sqlite_compileoption_get=" sqlite_compileoption_get(1)" function_sqlite_compileoption_used=" sqlite_compileoption_used(1)" function_sqlite_source_id=" sqlite_source_id()" function_sqlite_version=" sqlite_version()" function_strftime=" strftime(1,1,1,1)" function_substr=" substr(1,1,1)" function_sum=" sum(1)" function_time=" time(1,1,1)" function_total=" total(1)" function_total_changes=" total_changes()" function_trim=" trim(1,1)" function_typeof=" typeof(1)" function_unicode=" unicode(1)" function_unlikely=" unlikely(1)" function_upper=" upper(1)" function_varchar=" varchar(1)" function_zeroblob=" zeroblob(1)" keyword_ABORT="ABORT" keyword_ACTION="ACTION" keyword_ADD="ADD" keyword_AFTER="AFTER" keyword_ALL="ALL" keyword_ALTER="ALTER" keyword_ANALYZE="ANALYZE" keyword_AND="AND" keyword_AS="AS" keyword_ASC="ASC" keyword_ATTACH="ATTACH" keyword_AUTOINCREMENT="AUTOINCREMENT" keyword_BEFORE="BEFORE" keyword_BEGIN="BEGIN" keyword_BETWEEN="BETWEEN" keyword_BY="BY" keyword_CASCADE="CASCADE" keyword_CASE="CASE" keyword_CAST="CAST" keyword_CHECK="CHECK" keyword_COLLATE="COLLATE" keyword_COLUMN="COLUMN" keyword_COMMIT="COMMIT" keyword_CONFLICT="CONFLICT" keyword_CONSTRAINT="CONSTRAINT" keyword_CREATE="CREATE" keyword_CROSS="CROSS" keyword_CURRENT_DATE="CURRENT_DATE" keyword_CURRENT_TIME="CURRENT_TIME" keyword_CURRENT_TIMESTAMP="CURRENT_TIMESTAMP" keyword_DATABASE="DATABASE" keyword_DEFAULT="DEFAULT" keyword_DEFERRABLE="DEFERRABLE" keyword_DEFERRED="DEFERRED" keyword_DELETE="DELETE" keyword_DESC="DESC" keyword_DETACH="DETACH" keyword_DISTINCT="DISTINCT" keyword_DROP="DROP" keyword_EACH="EACH" keyword_ELSE="ELSE" keyword_END="END" keyword_ESCAPE="ESCAPE" keyword_EXCEPT="EXCEPT" keyword_EXCLUSIVE="EXCLUSIVE" keyword_EXISTS="EXISTS" keyword_EXPLAIN="EXPLAIN" keyword_FAIL="FAIL" keyword_FOR="FOR" keyword_FOREIGN="FOREIGN" keyword_FROM="FROM" keyword_FULL="FULL" keyword_GLOB="GLOB" keyword_GROUP="GROUP" keyword_HAVING="HAVING" keyword_IF="IF" keyword_IGNORE="IGNORE" keyword_IMMEDIATE="IMMEDIATE" keyword_IN="IN" keyword_INDEX="INDEX" keyword_INDEXED="INDEXED" keyword_INITIALLY="INITIALLY" keyword_INNER="INNER" keyword_INSERT="INSERT" keyword_INSTEAD="INSTEAD" keyword_INTERSECT="INTERSECT" keyword_INTO="INTO" keyword_IS="IS" keyword_ISNULL="ISNULL" keyword_JOIN="JOIN" keyword_KEY="KEY" keyword_LEFT="LEFT" keyword_LIKE="LIKE" keyword_LIMIT="LIMIT" keyword_MATCH="MATCH" keyword_NATURAL="NATURAL" keyword_NO="NO" keyword_NOT="NOT" keyword_NOTNULL="NOTNULL" keyword_NULL="NULL" keyword_OF="OF" keyword_OFFSET="OFFSET" keyword_ON="ON" keyword_OR="OR" keyword_ORDER="ORDER" keyword_OUTER="OUTER" keyword_PLAN="PLAN" keyword_PRAGMA="PRAGMA" keyword_PRIMARY="PRIMARY" keyword_QUERY="QUERY" keyword_RAISE="RAISE" keyword_RECURSIVE="RECURSIVE" keyword_REFERENCES="REFERENCES" #keyword_REGEXP="REGEXP" keyword_REINDEX="REINDEX" keyword_RELEASE="RELEASE" keyword_RENAME="RENAME" keyword_REPLACE="REPLACE" keyword_RESTRICT="RESTRICT" keyword_RIGHT="RIGHT" keyword_ROLLBACK="ROLLBACK" keyword_ROW="ROW" keyword_SAVEPOINT="SAVEPOINT" keyword_SELECT="SELECT" keyword_SET="SET" keyword_TABLE="TABLE" keyword_TEMP="TEMP" keyword_TEMPORARY="TEMPORARY" keyword_THEN="THEN" keyword_TO="TO" keyword_TRANSACTION="TRANSACTION" keyword_TRIGGER="TRIGGER" keyword_UNION="UNION" keyword_UNIQUE="UNIQUE" keyword_UPDATE="UPDATE" keyword_USING="USING" keyword_VACUUM="VACUUM" keyword_VALUES="VALUES" keyword_VIEW="VIEW" keyword_VIRTUAL="VIRTUAL" keyword_WHEN="WHEN" keyword_WHERE="WHERE" keyword_WITH="WITH" keyword_WITHOUT="WITHOUT" operator_concat=" || " operator_ebove_eq=" >=" snippet_1eq1=" 1=1" snippet_at=" @1" snippet_backticks=" `a`" snippet_blob=" blob" snippet_brackets=" [a]" snippet_colon=" :1" snippet_comment=" /* */" snippet_date="2001-01-01" snippet_dollar=" $1" snippet_dotref=" a.b" snippet_fmtY="%Y" snippet_int=" int" snippet_neg1=" -1" snippet_pair=" a,b" snippet_parentheses=" (1)" snippet_plus2days="+2 days" snippet_qmark=" ?1" snippet_semicolon=" ;" snippet_star=" *" snippet_string_pair=" \"a\",\"b\"" string_dbl_q=" \"a\"" string_escaped_q=" 'a''b'" string_single_q=" 'a'" pragma_application_id@1=" application_id" pragma_auto_vacuum@1=" auto_vacuum" pragma_automatic_index@1=" automatic_index" pragma_busy_timeout@1=" busy_timeout" pragma_cache_size@1=" cache_size" pragma_cache_spill@1=" cache_spill" pragma_case_sensitive_like@1=" case_sensitive_like" pragma_checkpoint_fullfsync@1=" checkpoint_fullfsync" pragma_collation_list@1=" collation_list" pragma_compile_options@1=" compile_options" pragma_count_changes@1=" count_changes" pragma_data_store_directory@1=" data_store_directory" pragma_database_list@1=" database_list" pragma_default_cache_size@1=" default_cache_size" pragma_defer_foreign_keys@1=" defer_foreign_keys" pragma_empty_result_callbacks@1=" empty_result_callbacks" pragma_encoding@1=" encoding" pragma_foreign_key_check@1=" foreign_key_check" pragma_foreign_key_list@1=" foreign_key_list" pragma_foreign_keys@1=" foreign_keys" pragma_freelist_count@1=" freelist_count" pragma_full_column_names@1=" full_column_names" pragma_fullfsync@1=" fullfsync" pragma_ignore_check_constraints@1=" ignore_check_constraints" pragma_incremental_vacuum@1=" incremental_vacuum" pragma_index_info@1=" index_info" pragma_index_list@1=" index_list" pragma_integrity_check@1=" integrity_check" pragma_journal_mode@1=" journal_mode" pragma_journal_size_limit@1=" journal_size_limit" pragma_legacy_file_format@1=" legacy_file_format" pragma_locking_mode@1=" locking_mode" pragma_max_page_count@1=" max_page_count" pragma_mmap_size@1=" mmap_size" pragma_page_count@1=" page_count" pragma_page_size@1=" page_size" pragma_parser_trace@1=" parser_trace" pragma_query_only@1=" query_only" pragma_quick_check@1=" quick_check" pragma_read_uncommitted@1=" read_uncommitted" pragma_recursive_triggers@1=" recursive_triggers" pragma_reverse_unordered_selects@1=" reverse_unordered_selects" pragma_schema_version@1=" schema_version" pragma_secure_delete@1=" secure_delete" pragma_short_column_names@1=" short_column_names" pragma_shrink_memory@1=" shrink_memory" pragma_soft_heap_limit@1=" soft_heap_limit" pragma_stats@1=" stats" pragma_synchronous@1=" synchronous" pragma_table_info@1=" table_info" pragma_temp_store@1=" temp_store" pragma_temp_store_directory@1=" temp_store_directory" pragma_threads@1=" threads" pragma_user_version@1=" user_version" pragma_vdbe_addoptrace@1=" vdbe_addoptrace" pragma_vdbe_debug@1=" vdbe_debug" pragma_vdbe_listing@1=" vdbe_listing" pragma_vdbe_trace@1=" vdbe_trace" pragma_wal_autocheckpoint@1=" wal_autocheckpoint" pragma_wal_checkpoint@1=" wal_checkpoint" pragma_writable_schema@1=" writable_schema" # This part has been generated with testing/libfuzzer/dictionary_generator.py # using sqlite3_prepare_v2_fuzzer binary and ISO/IEC FCD 9075-1. "all" "code" "BE" "text" "TP2," "supported" "GR4)" "syntax" "S151," "S043," "\xe2\x80\x9cCR\xe2\x80\x9d" "(SQL/PSM)" "query" "expressions" "TP2;" "row" "[ISO9075-14]," "BNF." "," "P" "on" "initial" "name," "[ISO9075-11])," "QE," "STANDARD" "PKG010" "TRIGGER," "V" "CS" "SQL\xe2\x80\x9d:" "IEC" "Expression" "F521," "sequence:" "must" "none" "SR3)" "word" "INTERNATIONAL" "ANSI" "this" "PSM" "PUBLIC)," "modified" "value" "<" "descriptor" "while" "paragraph" "values" "resources" "error" "exceptions" "IT" "F," "CO," "[ISO9075-4]," "control" "type," "reserved" "SQL:" "" "[ISO9075-2])." "F052," "attribute" "is" "type:" "level," "it" "[ISO9075-2]," "incremental" "MONTH," "dropped" "MONTH." "allowed" "S241," "\xe2\x80\x9cSQL" "TIMESTAMP" "failed" "SC" "end" "Format" "ST." "permission" "V," "length" "same" "[ISO10646]." "write" "arguments" "F555," "F671," "," "." "parameter" "NATIONAL" "Types" "A" "Insert" "32/WG" "used" "temporary" "\xe2\x80\x9cOLAP\xe2\x80\x9d" "(FCD)" "may" "after" "(SQL/OLB)" "THIS" "Q" "SQL/CLI" "levels" "two" "characters" "date" "such" "[ISO9075-9]" "data" "stack" "single" "a" "FEAT," "lower" "transaction" "in" "database" "EXTRACT)" "expression" "32N1963" "CD" "without" "QE." "1" "CALL" "F" "[ISO9075-4])." "entry" "the" "SUBJECT" "N1968;" "order" "left" "FEAT1," "FEAT1." "S081," "YEAR" "READ," "SQL;" "A," "symbols" "S161," "[ISO9075-10]" "already" "identify" "V." "during" "differs" "(UCS)." "Final" "before" "tables" "[UCS]" "Multiple" "integer" "NT," "character" "," "ID\xe2\x80\x9d" "(INFORMATION_SCHEMA)" "source" "add" "other" "TP1" "SQLSTATE" "has" "match" "KEY." "real" "On" "C1," "D" "[ISO14651]" "views" "read" "\xe2\x80\x9cGR\xe2\x80\x9d" "L" "primary" "TB1." "qualified" "(SUBSTRING," "T" "compound" "not" "using" "unique" "LOB" "name" "term" "sorting" "like" "B," "[ISO9075-1]" "RESULT," "Numeric" "MONTH" "PURPOSES." "[ISO9075-11]." "mode" "(DEFINITION_SCHEMA)." "SQL" "ISO" "page" "constraints" "\xc2\xa9ISO/IEC" "right" "Java" "sequence" "TB1" "TB2" "P002," "DAY," "extended" "(SQL/CLI)" "X" "specified" "S051," "clauses" "operation" "FEAT" "out" "E," "XML." "for" "space" "support" "T041," "[ISO9075-4]" "content" "I" "does" "STUDY" "CHARACTER," "B1" "T212," "be" "object" "[ISO9075-11]," "G" "ZONE," "S2." "collations" "[ISO9075-2]:" "" "O" "standard" "[ISO9075-2]" "base" "W" "collation" "HOUR," "UNDER," "JTC" "C." "definition" "Square" "\xe2\x80\x9cSR\xe2\x80\x9d" "extension" "constraint" "column" "of" "C," "F701," "(SQL/CLI)." "T191," "range" "GR" "1," "constructor" "commit" "or" "first" "referenced" "statements" "encoding" "B1." "clause" "variables" "within" "number" "one" "NT" "variable" "because" "references" "another" "blank" "operator" "RETURN" "COMMITTED," "9075-1:2011(E)" "[ISO9075-14]" "(SQL/OLB)." "D1" "exists" "REFERENCE" "area" "S041," "unknown" "Symbol" "there" "system" "long" "ID" "start" "returns" "2" "authorized" "statement" "X2" "FCD" "STILL" "S231," "final" "READ" "schema" "function" "DELETE," "B" "TC\xe2\x80\x9d." "declare" "month" "Deprecated" "exactly" "[ISO10646]" "JTC1" "but" "9075-1:2010(E)" "part" "T201," "D2." "," "attempt" "line" "with" "than" "" "BEFORE," "DAY." "DATE" "default" "EXECUTE." "B1," "F191," "tree" "second" "SHOULD" "[ISO9075-13]," "A1," "1/SC" "VARYING," "." "SQL/CLI," "were" "1)" "." "CLI," "called" "are" "and" "(SQL/MED)." "[ISO9075-4]:" "associated" "\xe2\x80\x9cAR\xe2\x80\x9d" "defined" "(SQL/XML)" "CHARACTER" "argument" "an" "[ISO9075-4])" "non-deterministic" "as" "Other" "at" "have" "[ISO9075-4]." "CS." "\xe2\x80\x9cV\xe2\x80\x9d" "Y." "null" "any" "CLI" "Function" "NOTE" "functions" "UCS" "returned" "F411," "no" "TIME" "that" "-" "RETURN)," "A1" "OLAP" "internal" "S071," "[ISO9075-10]," "T431," "A1." "\xe2\x80\x9cONLY" "Y" "SS" "UNCOMMITTED," "multiple" "Name" "truncate" "normal" "symbol" "literal" "M" "\xe2\x80\x9c