-
Notifications
You must be signed in to change notification settings - Fork 439
SQL Engine
ron190 edited this page Jun 7, 2024
·
22 revisions
💉jSQL generates default SQL syntax based on a template which is editable in tab SQL Engine, allowing to live-debug and optimize queries on the fly for current identified engine.
Any SQL part is defined by a unique ${tag} and all tags are replaced by its concrete value in the final query.
The entire template is roughly like the following:
character insertion layer # input prefix
${indices}:Normal or ${boolean.mode} & ${test}:Time+Blind # strategy layer
${window} # chars substring
${window.char}:Multibit+Bittest & ${bit} # chars position index
${injection}:all # main select
${database} ${table} ${fields} # all fields with main from
${field.value} # single field syntax
${indice} & ${calibrator} # Normal specific
${limit} # rows position
${limit.value} # rows position index-
Database: get names with number of tables -
Tables: get names with number of rows -
Columns: get names -
Rows: get de-duplicated rows-
Field: single column name, all fields are concatenated into${fields}with separator -
Field Separator: added between fields to separate column values
-
-
Metadata: get engine info like version and current user
-
Normal: apply union-based select -
Stacked: apply stack select -
Error: apply exception trigger that includes the result -
Boolean— bitwise strategies-
Mode—${boolean.mode}: useAND/ORdepending on the initial query state (eg.where 1=1 AND,where 1=0 OR) -
Blind: triggerYes/Noresponse for given single char ASCII code bit -
Time: triggerYes/Nopage delay for given single char ASCII code bit -
Multibit: get specific result for given single char ASCII code bits group -
Bit test—${test}: returntruewhen the bit of given ASCII code is1, else returnfalse
-
-
Char Sliding Window—${window.char}: set a substring of data -
Rows Sliding Window—${limit}: set rows starting at specific position (seeLIMIT) -
Limit start index—${limit.value}: setLIMITinitial position, some engine starts at0and some at1 -
Capacity—${capacity}: set specificNormalquery to measure indexes response size -
Calibrator—${calibrator}: repeat given char forNormalcapacity measure -
Failsafe: setNormalindex withN0+1form -
End comment: set SQL comment to ignore internal query remaining parts
-
Order by: set wrong column index to trigger specific engine error -
Order by error: expected engine error when order by index is wrong -
String error: expected SQL syntax error when query is incorrect -
Truthy: list of predicate checked as true by engine -
Falsy: list of predicate checked as false by engine
-
Privilege: get current user's read permission -
Read: get file content to read -
Write body: set file content to write -
Write path: set file path to write
Previous topic: Strategies, Next topic: Parameters