Description
Map explicit one-based numbered placeholder occurrences to zero-based binding slots and unused slots; repeated references intentionally reuse a binding.
SQL identifiers, string literals and parameter placeholders serve different roles. Quote doubling can encode a single token in a selected dialect, while binding indexes connect placeholders to supplied values. These tools work with explicit tokens or lists; they do not connect to a database or parse an entire SQL program.
Map explicit one-based numbered placeholder occurrences to zero-based binding slots and unused slots; repeated references intentionally reuse a binding.
When to use this tool
Use this tool to map explicit one-based numbered placeholder occurrences to zero-based binding slots and unused slots; repeated references intentionally reuse a binding.
How to use the tool and how it works
- Enter indexes, bindingCount using the field definitions below.
- Run the operation. Correct input errors before interpreting an output.
- Read result.bindingIndexes, result.unused. Use the ordering, boundary rules and absence conditions described below.
Validate one-based placeholder indexes against bindingCount, subtract one to produce binding indexes, and list unused zero-based binding positions.1
| Input field | Meaning and units | Accepted input |
|---|---|---|
| indexes | One-based placeholder indexes; positions of list entries remain zero-based. | Dense list of at most 128 finite numbers; integer/shape constraints above also apply. |
| bindingCount | Supplied nonnegative number of binding positions. | A finite safe integer within the operation’s stated bounds. |
| Output field | Interpretation |
|---|---|
| result | Object containing the named fields below. |
| result.bindingIndexes | Zero-based binding position for each supplied placeholder occurrence. |
| result.unused | Unused binding indexes, or unused binding names in the named coverage operation. |
{
"input": {
"indexes": [
2,
1,
2
],
"bindingCount": 3
},
"output": {
"result": {
"bindingIndexes": [
1,
0,
1
],
"unused": [
2
]
}
}
} Limitations and assumptions
- Repeated placeholders may map to the same binding; this does not tokenize SQL.
- Placeholder indexes are one-based when stated; occurrence positions and binding-list positions are zero-based. Supported quote styles are explicit local conventions rather than a promise of compatibility with every database dialect.
- Every declared top-level input field is required and unexpected fields are rejected. Ordinary strings are limited to 8,192 UTF-16 code units and lists to 128 entries, with tighter operation-specific bounds where stated. JSON text has bounded nesting and node counts.
- Numeric outputs must be finite and no larger in absolute magnitude than the safe-integer limit; operations returning exact large integers use decimal text. Positions are zero-based and spans end exclusively unless the operation explicitly states a different convention.
Alternative or Complementary methods
Use the database driver’s parameter binding for values and the target dialect’s identifier rules for names. Token formatting and occurrence audits are separate from execution, authorization and complete query validation.
References
Similar or alternative tools
- SQL Named Placeholder Binding Coverage
Audit explicit placeholder-name versus binding-name coverage, unused bindings and duplicate binding names; does not inspect values or execute SQL.
- SQL Named Placeholder Name Audit
Audit already-extracted SQL named placeholder identifiers under a portable ASCII grammar and exact duplicate policy; no SQL lexical discovery or dialect claim.