@kuindji/typed-sql 0.2.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -3
- package/dist/columns.d.ts +11 -3
- package/dist/columns.d.ts.map +1 -1
- package/dist/expressions.d.ts +84 -13
- package/dist/expressions.d.ts.map +1 -1
- package/dist/parsing/extract.d.ts +13 -9
- package/dist/parsing/extract.d.ts.map +1 -1
- package/dist/parsing/normalize.d.ts +9 -3
- package/dist/parsing/normalize.d.ts.map +1 -1
- package/dist/parsing/pg-literals.d.ts +10 -2
- package/dist/parsing/pg-literals.d.ts.map +1 -1
- package/dist/parsing/split.d.ts +27 -3
- package/dist/parsing/split.d.ts.map +1 -1
- package/dist/parsing/string-utils.d.ts +2 -4
- package/dist/parsing/string-utils.d.ts.map +1 -1
- package/dist/parsing/tokenize.d.ts +27 -17
- package/dist/parsing/tokenize.d.ts.map +1 -1
- package/dist/partial.d.ts +6 -6
- package/dist/partial.d.ts.map +1 -1
- package/dist/tables.d.ts +58 -13
- package/dist/tables.d.ts.map +1 -1
- package/dist/validation/dispatch.d.ts +7 -5
- package/dist/validation/dispatch.d.ts.map +1 -1
- package/dist/validation/joins.d.ts +3 -3
- package/dist/validation/joins.d.ts.map +1 -1
- package/dist/validation/return-derived.d.ts +8 -4
- package/dist/validation/return-derived.d.ts.map +1 -1
- package/dist/validation/return-derived.js.map +1 -1
- package/dist/validation/return-types.d.ts +1 -1
- package/dist/validation/return-types.d.ts.map +1 -1
- package/dist/validation/validate-columns.d.ts +27 -16
- package/dist/validation/validate-columns.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/columns.ts +168 -32
- package/src/expressions.ts +589 -63
- package/src/parsing/extract.ts +72 -32
- package/src/parsing/normalize.ts +114 -10
- package/src/parsing/pg-literals.ts +32 -10
- package/src/parsing/split.ts +236 -72
- package/src/parsing/string-utils.ts +15 -15
- package/src/parsing/tokenize.ts +224 -146
- package/src/partial.ts +9 -15
- package/src/tables.ts +546 -183
- package/src/validation/dispatch.ts +58 -52
- package/src/validation/joins.ts +15 -19
- package/src/validation/return-derived.ts +60 -4
- package/src/validation/return-types.ts +9 -3
- package/src/validation/validate-columns.ts +161 -67
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import type { AliasesInQuery, InsertTargetTable, TableKeyValid, TablesInQuery, UpdateTargetTable } from "../tables.js";
|
|
2
2
|
import type { AllTrue, And, StartsWith } from "../utils.js";
|
|
3
|
-
import type { CleanIdent, DQuoteSpaceSentinel, ExceedsLengthBudget, ExtractAliasResult, ExtractBefore, ExtractConflictColumns, ExtractConflictUpdateExcludedCols, ExtractConflictUpdateSetColumns, ExtractInsertColumns, ExtractLastWhere, ExtractReturningList, ExtractSelectList, ExtractUpdateSetColumns, ReplaceAll, SplitSelectList, StripSubqueries,
|
|
4
|
-
import type { ColumnRefValidLooseWith, IsSimpleRefPart,
|
|
3
|
+
import type { CleanIdent, DQuoteSpaceSentinel, ExceedsLengthBudget, ExtractAliasResult, ExtractBefore, ExtractConflictColumns, ExtractConflictUpdateExcludedCols, ExtractConflictUpdateSetColumns, ExtractInsertColumns, ExtractLastWhere, ExtractReturningList, ExtractSelectList, ExtractUpdateSetColumns, ReplaceAll, SplitSelectList, StripSubqueries, Trim } from "../parsing.js";
|
|
4
|
+
import type { ColumnRefValidLooseWith, IsSimpleRefPart, QualifiedRefScan, ResolveAlias, TableKeysByName, UnqualifiedRefScan, UnqualifiedColumnValid } from "../columns.js";
|
|
5
5
|
import type { ColumnsExistInTable, RefScanBeforeOrderBy, RefScanOrderBy, RefScanSegment, SelectAliasesInQuery, SelectAliasSet } from "./return-types.js";
|
|
6
|
-
import type { CteRow, SingleCteMatch } from "./cte.js";
|
|
6
|
+
import type { CteNames, CteRow, SingleCteMatch } from "./cte.js";
|
|
7
7
|
import type { DatabaseSchema } from "../schema.js";
|
|
8
|
-
import type { DerivedRenamedRow, DerivedTableMatch } from "./return-derived.js";
|
|
8
|
+
import type { AliasHasNoSpace, DerivedRenamedRow, DerivedTableMatch } from "./return-derived.js";
|
|
9
9
|
import type { ExprsValidList } from "../expressions.js";
|
|
10
10
|
import type { HasReturning, QueryKind, ValidateSQLNormalized } from "./dispatch.js";
|
|
11
11
|
export type ValidateCteShape<N extends string, S extends DatabaseSchema> = SingleCteMatch<N> extends {
|
|
@@ -25,39 +25,50 @@ export type OuterProjInRow<E extends string, Name extends string, Row, S extends
|
|
|
25
25
|
} ? ProjRefInRow<Trim<Raw>, Name, Row, S> : ProjRefInRow<Trim<E>, Name, Row, S>;
|
|
26
26
|
export type ProjRefInRow<Raw extends string, Name extends string, Row, S extends DatabaseSchema> = Raw extends "*" ? true : Raw extends `${Name}.*` ? true : Raw extends `${number}` ? true : Raw extends `'${string}` ? true : Raw extends `"${string}` ? true : Raw extends `${string}(${infer Inner})${string}` ? SegRefsInRow<Inner, Name, Row, S> : Raw extends `${infer Q}.${infer Col}` ? IsSimpleRefPart<Q> extends true ? IsSimpleRefPart<Col> extends true ? CleanIdent<Q> extends Name ? KeyInRow<CleanIdent<Col>, Row> : false : true : true : IsSimpleRefPart<Raw> extends true ? KeyInRow<CleanIdent<Raw>, Row> : true;
|
|
27
27
|
export type KeyInRow<K extends string, Row> = [K] extends [keyof Row] ? true : false;
|
|
28
|
-
export type SegRefsInRow<Seg extends string, Name extends string, Row, S extends DatabaseSchema> = Trim<Seg> extends "" ? true :
|
|
28
|
+
export type SegRefsInRow<Seg extends string, Name extends string, Row, S extends DatabaseSchema> = Trim<Seg> extends "" ? true : And<AllTrue<QualifiedRefScan<Seg> extends infer R ? R extends string ? ProjRefInRow<R, Name, Row, S> : true : true>, AllTrue<UnqualifiedRefScan<Seg, S, never, never> extends infer R ? R extends string ? ProjRefInRow<R, Name, Row, S> : true : true>, true, true>;
|
|
29
29
|
export type OuterWhereRefsInRow<OuterText extends string, Name extends string, Row, S extends DatabaseSchema> = StripSubqueries<OuterText> extends infer Stripped extends string ? Stripped extends `${string} where ${string}` ? SegRefsInRow<ExtractLastWhere<Stripped>, Name, Row, S> : true : true;
|
|
30
30
|
export type OuterTailClauseRefsInRow<OuterText extends string, Name extends string, Row, S extends DatabaseSchema> = StripSubqueries<OuterText> extends infer Stripped extends string ? SelectAliasesInQuery<Stripped> extends infer SelAliases extends string ? And<SegRefsInRowWithAliases<ExtractGroupByExpr<Stripped>, Name, Row, S, SelAliases>, SegRefsInRowWithAliases<ExtractHavingExpr<Stripped>, Name, Row, S, SelAliases>, SegRefsInRowWithAliases<ExtractOrderByExpr<Stripped>, Name, Row, S, SelAliases>, true, true> : true : true;
|
|
31
31
|
type StopAtLimitTail<S extends string> = ExtractBefore<ExtractBefore<ExtractBefore<S, " limit ">, " offset ">, " union ">;
|
|
32
32
|
type ExtractGroupByExpr<S extends string> = S extends `${string} group by ${infer R}` ? StopAtLimitTail<ExtractBefore<ExtractBefore<R, " having ">, " order by ">> : "";
|
|
33
33
|
type ExtractHavingExpr<S extends string> = S extends `${string} having ${infer R}` ? StopAtLimitTail<ExtractBefore<R, " order by ">> : "";
|
|
34
34
|
type ExtractOrderByExpr<S extends string> = S extends `${string} order by ${infer R}` ? StopAtLimitTail<R> : "";
|
|
35
|
-
export type SegRefsInRowWithAliases<Seg extends string, Name extends string, Row, S extends DatabaseSchema, SelAliases extends string> = Trim<Seg> extends "" ? true :
|
|
35
|
+
export type SegRefsInRowWithAliases<Seg extends string, Name extends string, Row, S extends DatabaseSchema, SelAliases extends string> = Trim<Seg> extends "" ? true : And<AllTrue<QualifiedRefScan<Seg> extends infer R ? R extends string ? RefInRowOrAlias<R, Name, Row, S, SelAliases> : true : true>, AllTrue<UnqualifiedRefScan<Seg, S, never, never> extends infer R ? R extends string ? RefInRowOrAlias<R, Name, Row, S, SelAliases> : true : true>, true, true>;
|
|
36
36
|
export type RefInRowOrAlias<R extends string, Name extends string, Row, S extends DatabaseSchema, SelAliases extends string> = [
|
|
37
37
|
SelAliases
|
|
38
38
|
] extends [never] ? ProjRefInRow<R, Name, Row, S> : CleanIdent<R> extends SelAliases ? true : ProjRefInRow<R, Name, Row, S>;
|
|
39
39
|
export type AllTablesValid<N extends string, S extends DatabaseSchema> = TablesInQuery<N, S> extends infer Tables extends string ? AllTablesValidFor<Tables, S> : true;
|
|
40
40
|
export type AllTablesValidFor<Tables extends string, S extends DatabaseSchema> = AllTrue<Tables extends string ? TableKeyValid<Tables, S> : true>;
|
|
41
|
-
export type AllColumnsValid<N extends string, S extends DatabaseSchema> = TablesInQuery<N, S> extends infer Tables extends string ? AliasesInQuery<N, S> extends infer Aliases extends string ?
|
|
42
|
-
export type AllColumnsValidFor<N extends string, S extends DatabaseSchema, Tables extends string, Aliases extends string,
|
|
41
|
+
export type AllColumnsValid<N extends string, S extends DatabaseSchema> = TablesInQuery<N, S> extends infer Tables extends string ? AliasesInQuery<N, S> extends infer Aliases extends string ? AllColumnsValidFor<N, S, Tables, Aliases, RefScanSegment<N>> : false : false;
|
|
42
|
+
export type AllColumnsValidFor<N extends string, S extends DatabaseSchema, Tables extends string, Aliases extends string, RefSeg extends string> = SelectAliasSet<N> extends infer SelectAliases extends string ? QueryKind<N> extends "update" ? And<ColumnsValidInUpdate<N, S>, ColumnsValidInInsert<N, S>, ColumnsValidInSelectOrReturningFor<N, S, Tables, Aliases>, QualifiedColumnRefsValidFor<N, S, Tables, Aliases, RefSeg>, UnqualifiedColumnRefsValidFor<N, S, Tables, Aliases, RefSeg, never>> : And<ColumnsValidInSelectOrReturningFor<N, S, Tables, Aliases>, ColumnsValidInInsert<N, S>, ColumnsValidInUpdate<N, S>, QualifiedColumnRefsValidFor<N, S, Tables, Aliases, RefSeg>, SelectUnqualifiedRefsScoped<N, S, Tables, Aliases, SelectAliases>> : false;
|
|
43
43
|
export type SelectUnqualifiedRefsScoped<N extends string, S extends DatabaseSchema, Tables extends string, Aliases extends string, SelectAliases extends string> = [
|
|
44
44
|
SelectAliases
|
|
45
|
-
] extends [never] ? UnqualifiedColumnRefsValidFor<N, S, Tables, Aliases,
|
|
45
|
+
] extends [never] ? UnqualifiedColumnRefsValidFor<N, S, Tables, Aliases, RefScanSegment<N>, never> : And<UnqualifiedColumnRefsValidFor<N, S, Tables, Aliases, RefScanBeforeOrderBy<N>, never>, UnqualifiedColumnRefsValidFor<N, S, Tables, Aliases, RefScanOrderBy<N>, SelectAliases>, true, true, true>;
|
|
46
46
|
export type ColumnsValidInSelectOrReturning<N extends string, S extends DatabaseSchema> = TablesInQuery<N, S> extends infer Tables extends string ? AliasesInQuery<N, S> extends infer Aliases extends string ? ColumnsValidInSelectOrReturningFor<N, S, Tables, Aliases> : true : true;
|
|
47
|
-
export type ColumnsValidInSelectOrReturningFor<N extends string, S extends DatabaseSchema, Tables extends string, Aliases extends string> = HasReturning<N> extends true ? [Tables] extends [never] ? true : ExprsValidList<SplitSelectList<ReplaceAll<ExtractReturningList<N>, DQuoteSpaceSentinel, " ">>, Tables, Aliases, S
|
|
47
|
+
export type ColumnsValidInSelectOrReturningFor<N extends string, S extends DatabaseSchema, Tables extends string, Aliases extends string> = HasReturning<N> extends true ? [Tables] extends [never] ? true : ExprsValidList<SplitSelectList<ReplaceAll<ExtractReturningList<N>, DQuoteSpaceSentinel, " ">>, Tables, Aliases, S, [], SelectLocalRels<N>> : QueryKind<N> extends "select" ? [Tables] extends [never] ? true : ExprsValidList<SplitSelectList<ReplaceAll<ExtractSelectList<N>, DQuoteSpaceSentinel, " ">>, Tables, Aliases, S, [], SelectLocalRels<N>> : true;
|
|
48
|
+
type SelectLocalRels<N extends string> = N extends `with ${string}` ? CteNames<N> : never;
|
|
48
49
|
export type ColumnsValidInInsert<N extends string, S extends DatabaseSchema> = QueryKind<N> extends "insert" ? InsertTargetTable<N, S> extends infer TableKey extends string ? TableKey extends never ? true : And<ColumnsExistInTable<ExtractInsertColumns<N>, TableKey, S>, ColumnsExistInTable<ExtractConflictColumns<N>, TableKey, S>, ColumnsExistInTable<ExtractConflictUpdateSetColumns<N>, TableKey, S>, ColumnsExistInTable<ExtractConflictUpdateExcludedCols<N>, TableKey, S>, true> : true : true;
|
|
49
50
|
export type ColumnsValidInUpdate<N extends string, S extends DatabaseSchema> = QueryKind<N> extends "update" ? UpdateTargetTable<N, S> extends infer TableKey extends string ? TableKey extends never ? true : ColumnsExistInTable<ExtractUpdateSetColumns<N>, TableKey, S> : true : true;
|
|
50
|
-
export type QualifiedColumnRefsValid<N extends string, S extends DatabaseSchema> = TablesInQuery<N, S> extends infer Tables extends string ? AliasesInQuery<N, S> extends infer Aliases extends string ?
|
|
51
|
-
export type QualifiedColumnRefsValidFor<N extends string, S extends DatabaseSchema, Tables extends string, Aliases extends string,
|
|
51
|
+
export type QualifiedColumnRefsValid<N extends string, S extends DatabaseSchema> = TablesInQuery<N, S> extends infer Tables extends string ? AliasesInQuery<N, S> extends infer Aliases extends string ? QualifiedColumnRefsValidFor<N, S, Tables, Aliases, RefScanSegment<N>> : true : true;
|
|
52
|
+
export type QualifiedColumnRefsValidFor<N extends string, S extends DatabaseSchema, Tables extends string, Aliases extends string, RefSeg extends string> = HasLocalRelations<N> extends true ? QualifiedRefsValidWithLocal<N, S, Tables, Aliases, RefSeg, CteNames<N>> : QualifiedRefScan<RefSeg> extends infer Cols ? AllTrue<Cols extends string ? ColumnRefValidLooseWith<Cols, Tables, Aliases, S> : true> : true;
|
|
53
|
+
type HasLocalRelations<N extends string> = N extends `with ${string}` ? true : N extends `${string} from (${string}` ? true : N extends `${string} join (${string}` ? true : false;
|
|
54
|
+
type QualifiedRefsValidWithLocal<N extends string, S extends DatabaseSchema, Tables extends string, Aliases extends string, RefSeg extends string, Ctes extends string> = QualifiedRefScan<RefSeg> extends infer Cols ? AllTrue<Cols extends string ? IsLocalRelation<RefQualifierOf<Cols>, Ctes, N> extends true ? true : ColumnRefValidLooseWith<Cols, Tables, Aliases, S> : true> : true;
|
|
55
|
+
type RefQualifierOf<Col extends string> = Col extends `${infer Q}.${string}` ? CleanIdent<Q> : never;
|
|
56
|
+
type IsLocalRelation<Q extends string, Ctes extends string, N extends string> = [
|
|
57
|
+
Q
|
|
58
|
+
] extends [never] ? false : Q extends Ctes ? true : IsDerivedSourceAlias<Q, N>;
|
|
59
|
+
type IsDerivedSourceAlias<Q extends string, N extends string> = N extends `${string}) as ${Q} ${string}` ? true : N extends `${string}) as ${Q}(${string}` ? true : N extends `${string}) as ${Q}` ? true : N extends `${string}) ${Q} ${string}` ? true : N extends `${string}) ${Q}(${string}` ? true : N extends `${string}) ${Q}` ? true : false;
|
|
52
60
|
export type AliasedTableKeys<Aliases extends string> = Aliases extends `${string}=>${infer T}` ? T : never;
|
|
53
61
|
export type QualifierShadowedByAlias<Q extends string, Tables extends string, Aliases extends string, S extends DatabaseSchema> = [
|
|
54
62
|
ResolveAlias<CleanIdent<Q>, Aliases>
|
|
55
63
|
] extends [never] ? [Extract<TableKeysByName<CleanIdent<Q>, Tables>, AliasedTableKeys<Aliases>>] extends [never] ? false : true : false;
|
|
56
64
|
export type NoAliasShadowedQualifiers<N extends string, S extends DatabaseSchema, Tables extends string, Aliases extends string> = [
|
|
57
65
|
AliasedTableKeys<Aliases>
|
|
58
|
-
] extends [never] ? true : N extends `${string}.${string}` ? AllTrue<
|
|
59
|
-
export type OuterScopeUnqualifiedValid<N extends string, S extends DatabaseSchema> = StartsWith<N, "select "> extends true ? Lowercase<N> extends `${string}(${string}select${string}` ? ExceedsLengthBudget<N> extends true ? true : StripSubqueries<N> extends infer Stripped extends string ? TablesInQuery<Stripped, S> extends infer OT extends string ? [OT] extends [never] ? true : AllTablesValidFor<OT, S> extends true ? AliasesInQuery<Stripped, S> extends infer OA extends string ? UnqualifiedColumnRefsValidFor<Stripped, S, OT, OA,
|
|
60
|
-
export type UnqualifiedColumnRefsValid<N extends string, S extends DatabaseSchema> = TablesInQuery<N, S> extends infer Tables extends string ? AliasesInQuery<N, S> extends infer Aliases extends string ?
|
|
61
|
-
export type UnqualifiedColumnRefsValidFor<N extends string, S extends DatabaseSchema, Tables extends string, Aliases extends string,
|
|
66
|
+
] extends [never] ? true : N extends `${string}.${string}` ? AllTrue<QualifiedRefScan<N> extends infer R ? R extends `${infer Q}.${string}` ? QualifierShadowedByAlias<Q, Tables, Aliases, S> extends true ? false : true : true : true> : true;
|
|
67
|
+
export type OuterScopeUnqualifiedValid<N extends string, S extends DatabaseSchema> = StartsWith<N, "select "> extends true ? Lowercase<N> extends `${string}(${string}select${string}` ? ExceedsLengthBudget<N> extends true ? true : StripSubqueries<N> extends infer Stripped extends string ? TablesInQuery<Stripped, S> extends infer OT extends string ? [OT] extends [never] ? true : AllTablesValidFor<OT, S> extends true ? AliasesInQuery<Stripped, S> extends infer OA extends string ? UnqualifiedColumnRefsValidFor<Stripped, S, OT, OA, RefScanSegment<Stripped>, SelectAliasesInQuery<Stripped>> : true : true : true : true : true : true;
|
|
68
|
+
export type UnqualifiedColumnRefsValid<N extends string, S extends DatabaseSchema> = TablesInQuery<N, S> extends infer Tables extends string ? AliasesInQuery<N, S> extends infer Aliases extends string ? SelectAliasesInQuery<N> extends infer SelectAliases extends string ? UnqualifiedColumnRefsValidFor<N, S, Tables, Aliases, RefScanSegment<N>, SelectAliases> : true : true : true;
|
|
69
|
+
export type UnqualifiedColumnRefsValidFor<N extends string, S extends DatabaseSchema, Tables extends string, Aliases extends string, RefSeg extends string, SelectAliases extends string> = UnqualifiedRefScan<RefSeg, S, Tables, Aliases> extends infer Cols ? AllTrue<Cols extends string ? CleanIdent<Cols> extends SelectAliases ? true : UnqualifiedColumnValid<Cols, Tables, Aliases, S> extends true ? true : CleanIdent<Cols> extends SourceAliasListCols<N> ? true : false : true> : true;
|
|
70
|
+
type SourceAliasListCols<N extends string> = N extends `with ${infer CteHead}(${infer CteCols}) as (${infer Rest}` ? AliasHasNoSpace<Trim<CteHead>> extends true ? ColNamesFromList<CteCols> | DerivedAliasListCols<Rest> : DerivedAliasListCols<N> : DerivedAliasListCols<N>;
|
|
71
|
+
type DerivedAliasListCols<N extends string, Steps extends any[] = []> = Steps["length"] extends 15 ? never : N extends `${string}) as ${infer Rest}` ? Rest extends `${infer Alias}(${infer Cols})${infer Tail}` ? AliasHasNoSpace<Trim<Alias>> extends true ? ColNamesFromList<Cols> | DerivedAliasListCols<Tail, [any, ...Steps]> : DerivedAliasListCols<Tail, [any, ...Steps]> : never : never;
|
|
72
|
+
type ColNamesFromList<L extends string> = L extends `${infer A},${infer R}` ? CleanIdent<A> | ColNamesFromList<R> : CleanIdent<L>;
|
|
62
73
|
export {};
|
|
63
74
|
//# sourceMappingURL=validate-columns.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-columns.d.ts","sourceRoot":"","sources":["../../src/validation/validate-columns.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"validate-columns.d.ts","sourceRoot":"","sources":["../../src/validation/validate-columns.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/columns.ts
CHANGED
|
@@ -10,11 +10,14 @@ import type {
|
|
|
10
10
|
CanPrecedeColumn,
|
|
11
11
|
CleanExpr,
|
|
12
12
|
CleanIdent,
|
|
13
|
+
CleanLooseToken,
|
|
14
|
+
DQuoteSpaceSentinel,
|
|
13
15
|
HasSpecial,
|
|
14
16
|
IsParamPlaceholder,
|
|
15
17
|
IsQualifiedRefCandidate,
|
|
16
18
|
IsRuntimeStringFragment,
|
|
17
19
|
IsSqlConstant,
|
|
20
|
+
LooseScanView,
|
|
18
21
|
OperatorToken,
|
|
19
22
|
ReplaceAll,
|
|
20
23
|
SqlReserved,
|
|
@@ -206,49 +209,182 @@ export type ColumnRefValidNoTables<ColRef extends string, S extends DatabaseSche
|
|
|
206
209
|
: ColumnExistsInAnyTable<B, S>
|
|
207
210
|
: ColumnExistsInAnyTable<CleanIdent<ColRef>, S>;
|
|
208
211
|
|
|
209
|
-
//
|
|
212
|
+
// ---- Direct-string column ref-scans ----
|
|
213
|
+
//
|
|
214
|
+
// Best-effort qualified / unqualified column references across a query segment.
|
|
215
|
+
// These walk the padded `LooseScanView` string DIRECTLY, word by word — replacing
|
|
216
|
+
// the old `TokenizeLoose` token ARRAY plus two array-walks (round-9): every array
|
|
217
|
+
// build/destructure step minted a unique-content tuple and its apparent-`Array`
|
|
218
|
+
// types, while a word-jump string walk interns its substrings and `[any, ...Steps]`
|
|
219
|
+
// counter tuples. Token semantics are reproduced verbatim:
|
|
220
|
+
// - per word, the kept token is `CleanLooseToken<ReplaceAll<H, DQuoteSpaceSentinel, " ">>`
|
|
221
|
+
// (exactly the old `SrclPush`); a word cleaning to `""` never occupied an array
|
|
222
|
+
// position, so it updates NO register and consumes NO cap budget;
|
|
223
|
+
// - `IS [NOT] DISTINCT FROM` (old `DropDistinctFrom` pre-pass, fused in): a `from`
|
|
224
|
+
// token whose RAW-stream predecessor is `distinct` is operator text, not a
|
|
225
|
+
// FROM-clause boundary — it is dropped, so the filtered-stream `Prev` the next
|
|
226
|
+
// token sees stays `distinct` (which `CanPrecedeColumn` blesses) instead of
|
|
227
|
+
// `from` (which would mark it a table source and skip validation). `PrevRaw`
|
|
228
|
+
// tracks the UNFILTERED stream (a dropped `from` still sets it to `from`),
|
|
229
|
+
// mirroring the old pre-pass's own `Prev` chain exactly. The old pass only ran
|
|
230
|
+
// when the segment contained `distinct ` — per-token it's the same test, and
|
|
231
|
+
// its 400-token cap (remainder unfiltered) is gone: a >400-token `distinct`
|
|
232
|
+
// stream now validates its RHS like any other, never rejecting valid SQL.
|
|
233
|
+
//
|
|
234
|
+
// Cap parity: `Steps` caps total WORDS at 2000 (the old split cap — on cap the old
|
|
235
|
+
// pipeline blobbed the remainder into ONE token and the walkers processed it; the
|
|
236
|
+
// `*Last` arms apply the same one-token transform to the remainder). `Kept` caps
|
|
237
|
+
// kept TOKENS at 900 (the old ref-walk cap — return `Acc`, rest unscanned).
|
|
210
238
|
|
|
211
|
-
export type
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
239
|
+
export type QualifiedRefScan<Seg extends string> =
|
|
240
|
+
LooseScanView<Seg> extends infer V extends string
|
|
241
|
+
? QrsWalk<V>
|
|
242
|
+
: never;
|
|
243
|
+
|
|
244
|
+
type QrsWalk<
|
|
245
|
+
V extends string,
|
|
216
246
|
Acc extends string = never,
|
|
217
247
|
Prev extends string = "",
|
|
248
|
+
PrevRaw extends string = "",
|
|
249
|
+
Kept extends any[] = [],
|
|
218
250
|
Steps extends any[] = []
|
|
219
|
-
> = Steps["length"] extends
|
|
220
|
-
? Acc
|
|
221
|
-
:
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
?
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
251
|
+
> = Steps["length"] extends 2000
|
|
252
|
+
? QrsLast<V, Acc, Prev>
|
|
253
|
+
: Kept["length"] extends 900
|
|
254
|
+
? Acc
|
|
255
|
+
: V extends `${infer H} ${infer R}`
|
|
256
|
+
? CleanLooseToken<ReplaceAll<H, DQuoteSpaceSentinel, " ">> extends infer M extends string
|
|
257
|
+
? M extends ""
|
|
258
|
+
? QrsWalk<R, Acc, Prev, PrevRaw, Kept, [any, ...Steps]>
|
|
259
|
+
: M extends "from"
|
|
260
|
+
? PrevRaw extends "distinct"
|
|
261
|
+
? QrsWalk<R, Acc, Prev, "from", Kept, [any, ...Steps]>
|
|
262
|
+
: QrsWalk<R, Acc, "from", "from", [any, ...Kept], [any, ...Steps]>
|
|
263
|
+
: M extends `${string}.${string}`
|
|
264
|
+
? Prev extends "from" | "join" | "update" | "into" | "delete"
|
|
265
|
+
? QrsWalk<R, Acc, M, M, [any, ...Kept], [any, ...Steps]>
|
|
266
|
+
: IsQualifiedRefCandidate<M> extends true
|
|
267
|
+
? QrsWalk<R, Acc | M, M, M, [any, ...Kept], [any, ...Steps]>
|
|
268
|
+
: QrsWalk<R, Acc, M, M, [any, ...Kept], [any, ...Steps]>
|
|
269
|
+
: QrsWalk<R, Acc, M, M, [any, ...Kept], [any, ...Steps]>
|
|
270
|
+
: never
|
|
271
|
+
: QrsLast<V, Acc, Prev>;
|
|
272
|
+
|
|
273
|
+
// Final word (or capped remainder) as one token. A trailing `from` is never a ref
|
|
274
|
+
// and there is no subsequent token for its `Prev` effect to matter — `Acc` either way.
|
|
275
|
+
type QrsLast<H extends string, Acc extends string, Prev extends string> =
|
|
276
|
+
CleanLooseToken<ReplaceAll<H, DQuoteSpaceSentinel, " ">> extends infer M extends string
|
|
277
|
+
? M extends `${string}.${string}`
|
|
278
|
+
? Prev extends "from" | "join" | "update" | "into" | "delete"
|
|
279
|
+
? Acc
|
|
280
|
+
: IsQualifiedRefCandidate<M> extends true
|
|
281
|
+
? Acc | M
|
|
282
|
+
: Acc
|
|
283
|
+
: Acc
|
|
284
|
+
: never;
|
|
230
285
|
|
|
231
|
-
|
|
286
|
+
export type UnqualifiedRefScan<
|
|
287
|
+
Seg extends string,
|
|
288
|
+
S extends DatabaseSchema,
|
|
289
|
+
Tables extends string,
|
|
290
|
+
Aliases extends string
|
|
291
|
+
> = LooseScanView<Seg> extends infer V extends string
|
|
292
|
+
? UrsWalk<V, S, Tables, Aliases>
|
|
293
|
+
: never;
|
|
232
294
|
|
|
233
|
-
|
|
234
|
-
|
|
295
|
+
// Deferred-decision walk: the old array walker judged token T with (Prev, Next) via
|
|
296
|
+
// one-token lookahead. Here the PENDING token `Pend` is judged only when the NEXT
|
|
297
|
+
// kept token `M` materializes — `IsUnqualifiedColumnCandidate<Pend, PrevPrev, M, …>`
|
|
298
|
+
// — then registers shift (`PrevPrev := Pend`, `Pend := M`). At end of stream `Pend`
|
|
299
|
+
// is judged with `Next = ""`, exactly the old `[T]` tail arm. `Pend = ""` means "no
|
|
300
|
+
// pending yet" — safe sentinel (kept tokens are never empty), and the candidate
|
|
301
|
+
// check is `false` for `""`, so the initial shift needs no special arm.
|
|
302
|
+
type UrsWalk<
|
|
303
|
+
V extends string,
|
|
235
304
|
S extends DatabaseSchema,
|
|
236
305
|
Tables extends string,
|
|
237
306
|
Aliases extends string,
|
|
238
307
|
Acc extends string = never,
|
|
239
|
-
|
|
308
|
+
PrevPrev extends string = "",
|
|
309
|
+
Pend extends string = "",
|
|
310
|
+
PrevRaw extends string = "",
|
|
311
|
+
Kept extends any[] = [],
|
|
240
312
|
Steps extends any[] = []
|
|
241
|
-
> = Steps["length"] extends
|
|
242
|
-
? Acc
|
|
243
|
-
:
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
313
|
+
> = Steps["length"] extends 2000
|
|
314
|
+
? UrsLast<V, S, Tables, Aliases, Acc, PrevPrev, Pend, PrevRaw>
|
|
315
|
+
: Kept["length"] extends 900
|
|
316
|
+
? Acc
|
|
317
|
+
: V extends `${infer H} ${infer R}`
|
|
318
|
+
? CleanLooseToken<ReplaceAll<H, DQuoteSpaceSentinel, " ">> extends infer M extends string
|
|
319
|
+
? M extends ""
|
|
320
|
+
? UrsWalk<R, S, Tables, Aliases, Acc, PrevPrev, Pend, PrevRaw, Kept, [any, ...Steps]>
|
|
321
|
+
: M extends "from"
|
|
322
|
+
? PrevRaw extends "distinct"
|
|
323
|
+
? UrsWalk<R, S, Tables, Aliases, Acc, PrevPrev, Pend, "from", Kept, [any, ...Steps]>
|
|
324
|
+
: UrsShift<R, S, Tables, Aliases, Acc, PrevPrev, Pend, M, Kept, Steps>
|
|
325
|
+
: UrsShift<R, S, Tables, Aliases, Acc, PrevPrev, Pend, M, Kept, Steps>
|
|
326
|
+
: never
|
|
327
|
+
: UrsLast<V, S, Tables, Aliases, Acc, PrevPrev, Pend, PrevRaw>;
|
|
328
|
+
|
|
329
|
+
type UrsShift<
|
|
330
|
+
R extends string,
|
|
331
|
+
S extends DatabaseSchema,
|
|
332
|
+
Tables extends string,
|
|
333
|
+
Aliases extends string,
|
|
334
|
+
Acc extends string,
|
|
335
|
+
PrevPrev extends string,
|
|
336
|
+
Pend extends string,
|
|
337
|
+
M extends string,
|
|
338
|
+
Kept extends any[],
|
|
339
|
+
Steps extends any[]
|
|
340
|
+
> = IsUnqualifiedColumnCandidate<Pend, PrevPrev, M, Tables, Aliases, S> extends true
|
|
341
|
+
? UrsWalk<R, S, Tables, Aliases, Acc | Pend, Pend, M, M, [any, ...Kept], [any, ...Steps]>
|
|
342
|
+
: UrsWalk<R, S, Tables, Aliases, Acc, Pend, M, M, [any, ...Kept], [any, ...Steps]>;
|
|
343
|
+
|
|
344
|
+
// Final word (or capped remainder) as one token: judge `Pend` with the final token
|
|
345
|
+
// as `Next`, then the final token itself with `Next = ""`. A final dropped
|
|
346
|
+
// `distinct`-`from` ends the stream, so only `Pend` (with `Next = ""`) is judged.
|
|
347
|
+
type UrsLast<
|
|
348
|
+
H extends string,
|
|
349
|
+
S extends DatabaseSchema,
|
|
350
|
+
Tables extends string,
|
|
351
|
+
Aliases extends string,
|
|
352
|
+
Acc extends string,
|
|
353
|
+
PrevPrev extends string,
|
|
354
|
+
Pend extends string,
|
|
355
|
+
PrevRaw extends string
|
|
356
|
+
> = CleanLooseToken<ReplaceAll<H, DQuoteSpaceSentinel, " ">> extends infer M extends string
|
|
357
|
+
? M extends ""
|
|
358
|
+
? UrsEnd<S, Tables, Aliases, Acc, PrevPrev, Pend>
|
|
359
|
+
: M extends "from"
|
|
360
|
+
? PrevRaw extends "distinct"
|
|
361
|
+
? UrsEnd<S, Tables, Aliases, Acc, PrevPrev, Pend>
|
|
362
|
+
: UrsLast2<S, Tables, Aliases, Acc, PrevPrev, Pend, M>
|
|
363
|
+
: UrsLast2<S, Tables, Aliases, Acc, PrevPrev, Pend, M>
|
|
364
|
+
: never;
|
|
365
|
+
|
|
366
|
+
type UrsLast2<
|
|
367
|
+
S extends DatabaseSchema,
|
|
368
|
+
Tables extends string,
|
|
369
|
+
Aliases extends string,
|
|
370
|
+
Acc extends string,
|
|
371
|
+
PrevPrev extends string,
|
|
372
|
+
Pend extends string,
|
|
373
|
+
M extends string
|
|
374
|
+
> = IsUnqualifiedColumnCandidate<Pend, PrevPrev, M, Tables, Aliases, S> extends true
|
|
375
|
+
? UrsEnd<S, Tables, Aliases, Acc | Pend, Pend, M>
|
|
376
|
+
: UrsEnd<S, Tables, Aliases, Acc, Pend, M>;
|
|
377
|
+
|
|
378
|
+
type UrsEnd<
|
|
379
|
+
S extends DatabaseSchema,
|
|
380
|
+
Tables extends string,
|
|
381
|
+
Aliases extends string,
|
|
382
|
+
Acc extends string,
|
|
383
|
+
PrevPrev extends string,
|
|
384
|
+
Pend extends string
|
|
385
|
+
> = IsUnqualifiedColumnCandidate<Pend, PrevPrev, "", Tables, Aliases, S> extends true
|
|
386
|
+
? Acc | Pend
|
|
387
|
+
: Acc;
|
|
252
388
|
|
|
253
389
|
export type UnqualifiedColumnValid<
|
|
254
390
|
Col extends string,
|