@spinajs/orm-sql 2.0.481 → 2.0.482
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 +61 -3
- package/lib/cjs/compilers.d.ts +67 -3
- package/lib/cjs/compilers.d.ts.map +1 -1
- package/lib/cjs/compilers.js +225 -105
- package/lib/cjs/compilers.js.map +1 -1
- package/lib/cjs/converters.d.ts.map +1 -1
- package/lib/cjs/converters.js +1 -4
- package/lib/cjs/converters.js.map +1 -1
- package/lib/cjs/index.d.ts.map +1 -1
- package/lib/cjs/index.js +10 -2
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/statements.d.ts.map +1 -1
- package/lib/cjs/statements.js +84 -24
- package/lib/cjs/statements.js.map +1 -1
- package/lib/mjs/compilers.d.ts +67 -3
- package/lib/mjs/compilers.d.ts.map +1 -1
- package/lib/mjs/compilers.js +224 -106
- package/lib/mjs/compilers.js.map +1 -1
- package/lib/mjs/converters.d.ts.map +1 -1
- package/lib/mjs/converters.js +1 -4
- package/lib/mjs/converters.js.map +1 -1
- package/lib/mjs/index.d.ts.map +1 -1
- package/lib/mjs/index.js +10 -2
- package/lib/mjs/index.js.map +1 -1
- package/lib/mjs/statements.d.ts.map +1 -1
- package/lib/mjs/statements.js +85 -25
- package/lib/mjs/statements.js.map +1 -1
- package/lib/tsconfig.cjs.tsbuildinfo +1 -1
- package/lib/tsconfig.mjs.tsbuildinfo +1 -1
- package/package.json +13 -14
package/README.md
CHANGED
|
@@ -1,11 +1,69 @@
|
|
|
1
1
|
# `@spinajs/orm-sql`
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
The generic SQL layer for [`@spinajs/orm`](../orm): concrete, dialect-neutral statements and
|
|
4
|
+
compilers, plus `SqlDriver` — the base class every dialect driver extends.
|
|
5
|
+
|
|
6
|
+
You rarely install it directly. It arrives as a dependency of
|
|
7
|
+
[`@spinajs/orm-sqlite`](../orm-sqlite), [`@spinajs/orm-mysql`](../orm-mysql) or
|
|
8
|
+
[`@spinajs/orm-mssql`](../orm-mssql).
|
|
9
|
+
|
|
10
|
+
## What it provides
|
|
11
|
+
|
|
12
|
+
- **`SqlDriver`** — implements `OrmDriver.execute()` in terms of one abstract method,
|
|
13
|
+
`executeOnDb(stmt, params, context)`. A dialect driver only has to know how to send a string
|
|
14
|
+
with bindings to its server.
|
|
15
|
+
- **Statements** — `SqlWhereStatement`, `SqlJoinStatement`, `SqlColumnStatement`,
|
|
16
|
+
`SqlInStatement`, `SqlExistsQueryStatement` and the rest.
|
|
17
|
+
- **Compilers** — one per query shape, from `SqlSelectQueryCompiler` to
|
|
18
|
+
`SqlTableHistoryQueryCompiler`.
|
|
19
|
+
- **Converters** — `SqlDatetimeValueConverter`, `SqlBooleanValueConverter`,
|
|
20
|
+
`SqlTimeValueConverter`, `SqlSetConverter`.
|
|
21
|
+
|
|
22
|
+
`SqlDriver.resolve()` registers all of it into the driver's own child DI container, so a dialect
|
|
23
|
+
overrides only what genuinely differs.
|
|
4
24
|
|
|
5
25
|
## Usage
|
|
6
26
|
|
|
27
|
+
```ts
|
|
28
|
+
import { SqlDriver } from '@spinajs/orm-sql';
|
|
29
|
+
import { QueryContext, ServerResponseMapper } from '@spinajs/orm';
|
|
30
|
+
import { Injectable } from '@spinajs/di';
|
|
31
|
+
|
|
32
|
+
@Injectable('orm-driver-mydb')
|
|
33
|
+
export class MyDbOrmDriver extends SqlDriver {
|
|
34
|
+
public async executeOnDb(stmt: string, params: unknown[], _context: QueryContext) {
|
|
35
|
+
return this.withReconnect(() => myClient.query(stmt, params));
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
public resolve() {
|
|
39
|
+
super.resolve();
|
|
40
|
+
// Mandatory: no generic implementation exists for either of these.
|
|
41
|
+
this.Container.register(MyServerResponseMapper).as(ServerResponseMapper);
|
|
42
|
+
this.Container.register(MyTableExistsCompiler).as(TableExistsCompiler);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// ... connect / disconnect / ping / supportedFeatures / tableInfo
|
|
46
|
+
// ... plus the six transaction primitives
|
|
47
|
+
}
|
|
7
48
|
```
|
|
8
|
-
const ormSql = require('@spinajs/orm-sql');
|
|
9
49
|
|
|
10
|
-
|
|
50
|
+
## Documentation
|
|
51
|
+
|
|
52
|
+
Full documentation lives in **[docs/](docs/)**.
|
|
53
|
+
|
|
54
|
+
| | Page |
|
|
55
|
+
| --- | --- |
|
|
56
|
+
| 01 | [Overview](docs/01-overview.md) |
|
|
57
|
+
| 02 | [Compilers](docs/02-compilers.md) |
|
|
58
|
+
| 03 | [Statements](docs/03-statements.md) |
|
|
59
|
+
| 04 | [Writing a driver](docs/04-writing-a-driver.md) |
|
|
60
|
+
|
|
61
|
+
See also [the core's architecture page](../orm/docs/12-architecture.md) for how a query becomes
|
|
62
|
+
SQL, end to end.
|
|
63
|
+
|
|
64
|
+
## Development
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
npm test # compiles builders and asserts on the SQL — no database required
|
|
68
|
+
npm run build
|
|
11
69
|
```
|
package/lib/cjs/compilers.d.ts
CHANGED
|
@@ -1,5 +1,27 @@
|
|
|
1
|
-
import { LimitBuilder, DropTableQueryBuilder, AlterColumnQueryBuilder, TableCloneQueryCompiler, OnDuplicateQueryBuilder, IJoinCompiler, DeleteQueryBuilder, IColumnsBuilder, IColumnsCompiler, ICompilerOutput, LimitQueryCompiler, IGroupByCompiler, InsertQueryBuilder, IWhereBuilder, IWhereCompiler, OrderByBuilder, QueryBuilder, SelectQueryBuilder, UpdateQueryBuilder, SelectQueryCompiler, TableQueryCompiler, TableQueryBuilder, ColumnQueryBuilder, ColumnQueryCompiler, IQueryBuilder, OrderByQueryCompiler, OnDuplicateQueryCompiler, IJoinBuilder, IndexQueryCompiler, IndexQueryBuilder, IRecursiveCompiler, IWithRecursiveBuilder, ForeignKeyBuilder, ForeignKeyQueryCompiler, IGroupByBuilder, AlterTableQueryBuilder, CloneTableQueryBuilder, AlterTableQueryCompiler, TableAliasCompiler, DropTableCompiler, DropEventQueryBuilder, TableHistoryQueryCompiler, EventQueryBuilder, EventIntervalDesc, IHavingCompiler, RawSchemaQueryCompiler, RawSchemaQueryBuilder, DropViewQueryBuilder, DropViewCompiler } from '@spinajs/orm';
|
|
1
|
+
import { LimitBuilder, DropTableQueryBuilder, AlterColumnQueryBuilder, TableCloneQueryCompiler, OnDuplicateQueryBuilder, IJoinCompiler, DeleteQueryBuilder, IColumnsBuilder, IColumnsCompiler, ICompilerOutput, LimitQueryCompiler, IGroupByCompiler, InsertQueryBuilder, IWhereBuilder, IWhereCompiler, OrderByBuilder, QueryBuilder, SelectQueryBuilder, UpdateQueryBuilder, SelectQueryCompiler, TableQueryCompiler, TableQueryBuilder, ColumnQueryBuilder, ColumnQueryCompiler, IQueryBuilder, OrderByQueryCompiler, OnDuplicateQueryCompiler, IJoinBuilder, IndexQueryCompiler, IndexQueryBuilder, IRecursiveCompiler, IWithRecursiveBuilder, ForeignKeyBuilder, ForeignKeyQueryCompiler, IGroupByBuilder, AlterTableQueryBuilder, CloneTableQueryBuilder, AlterTableQueryCompiler, AlterColumnQueryCompiler, TableAliasCompiler, DropTableCompiler, DropEventQueryBuilder, TableHistoryQueryCompiler, EventQueryBuilder, EventIntervalDesc, IHavingCompiler, RawSchemaQueryCompiler, RawSchemaQueryBuilder, DropViewQueryBuilder, DropViewCompiler } from '@spinajs/orm';
|
|
2
2
|
import { Container, IContainer } from '@spinajs/di';
|
|
3
|
+
/**
|
|
4
|
+
* Central identifier escaping for the MySQL-flavoured dialect.
|
|
5
|
+
*
|
|
6
|
+
* Wraps a table/column/alias/schema name in backticks and escapes any embedded
|
|
7
|
+
* backtick by doubling it (the MySQL rule). For a normal identifier (no special
|
|
8
|
+
* characters) the output is byte-identical to the previous raw interpolation
|
|
9
|
+
* (`` `${name}` ``), so existing generated SQL is unchanged; only names that
|
|
10
|
+
* actually contain a backtick produce different — and now safe — output.
|
|
11
|
+
*
|
|
12
|
+
* Dialects that quote differently (e.g. `[name]` with `]`-doubling) override
|
|
13
|
+
* this by shadowing the relevant compiler/statement, the same way
|
|
14
|
+
* {@link SqlTableAliasCompiler} is already overridden per driver.
|
|
15
|
+
*/
|
|
16
|
+
export declare function escapeIdentifier(name: string): string;
|
|
17
|
+
/**
|
|
18
|
+
* Escapes a DDL string *literal* (SET/ENUM member, COMMENT, CHARACTER SET,
|
|
19
|
+
* COLLATE, string DEFAULT). These are single-quoted string literals, NOT
|
|
20
|
+
* identifiers, so the correct escaping is doubling embedded single quotes.
|
|
21
|
+
* Returns the value WITHOUT the surrounding quotes so callers keep their exact
|
|
22
|
+
* quoting; for a value with no quote the output is byte-identical.
|
|
23
|
+
*/
|
|
24
|
+
export declare function escapeStringLiteral(value: string): string;
|
|
3
25
|
export declare class SqlTableAliasCompiler implements TableAliasCompiler {
|
|
4
26
|
compile(builder: IQueryBuilder, tbl?: string): string;
|
|
5
27
|
}
|
|
@@ -112,6 +134,18 @@ export declare class SqlInsertQueryCompiler extends SqlQueryCompiler<InsertQuery
|
|
|
112
134
|
expression: string;
|
|
113
135
|
};
|
|
114
136
|
protected upsort(): ICompilerOutput;
|
|
137
|
+
/**
|
|
138
|
+
* Indices of the columns that take part in this INSERT.
|
|
139
|
+
*
|
|
140
|
+
* An auto increment primary key is omitted only when NO row supplies a value
|
|
141
|
+
* for it. If at least one row supplies one the column stays, and the rows
|
|
142
|
+
* that don't emit NULL so the engine assigns the value.
|
|
143
|
+
*
|
|
144
|
+
* Both {@link columns} and {@link values} MUST derive their shape from this
|
|
145
|
+
* single decision - deciding per-row in one place and per-batch in the other
|
|
146
|
+
* produced value tuples whose arity did not match the column list.
|
|
147
|
+
*/
|
|
148
|
+
protected keptColumnIndices(): number[];
|
|
115
149
|
protected values(): {
|
|
116
150
|
bindings: any[];
|
|
117
151
|
data: string;
|
|
@@ -217,8 +251,38 @@ export declare class SqlColumnQueryCompiler implements ColumnQueryCompiler {
|
|
|
217
251
|
compile(): ICompilerOutput;
|
|
218
252
|
protected _defaultCompiler(): string;
|
|
219
253
|
}
|
|
220
|
-
export
|
|
221
|
-
|
|
254
|
+
export interface SqlAlterColumnQueryCompiler {
|
|
255
|
+
}
|
|
256
|
+
export declare class SqlAlterColumnQueryCompiler extends AlterColumnQueryCompiler {
|
|
257
|
+
protected container: Container;
|
|
258
|
+
protected builder: AlterColumnQueryBuilder;
|
|
259
|
+
constructor(container: Container, builder: AlterColumnQueryBuilder);
|
|
260
|
+
/**
|
|
261
|
+
* Renders the column body using the DRIVER's own column compiler, resolved
|
|
262
|
+
* from the container (late binding) - exactly like the CREATE TABLE path does.
|
|
263
|
+
* Previously this was `super.compile()`, which statically bound every driver
|
|
264
|
+
* to orm-sql's MySQL dialect.
|
|
265
|
+
*/
|
|
266
|
+
protected _columnDefinition(): ICompilerOutput;
|
|
267
|
+
/**
|
|
268
|
+
* Whether the expression produced by `compile()` is already a complete, standalone
|
|
269
|
+
* statement. When true, SqlAlterTableQueryCompiler emits it verbatim instead of
|
|
270
|
+
* prefixing it with `ALTER TABLE <table> `.
|
|
271
|
+
*
|
|
272
|
+
* Needed by dialects whose alteration is not expressible as a suffix of ALTER TABLE,
|
|
273
|
+
* eg. MSSQL's `EXEC sp_rename '[t].[old]', 'new', 'COLUMN'`.
|
|
274
|
+
*
|
|
275
|
+
* It is read AFTER `compile()`, so a subclass may decide per `builder.AlterType`.
|
|
276
|
+
* Defaults to false - MySQL (this class) always emits a suffix.
|
|
277
|
+
*/
|
|
278
|
+
get IsStandaloneStatement(): boolean;
|
|
279
|
+
/**
|
|
280
|
+
* Dialect hooks. Returning `null` means "emit no statement at all" - the
|
|
281
|
+
* parent AlterTableQueryCompiler filters such columns out.
|
|
282
|
+
*/
|
|
283
|
+
protected _add(definition: string): string | null;
|
|
284
|
+
protected _modify(definition: string): string | null;
|
|
285
|
+
protected _rename(): string | null;
|
|
222
286
|
compile(): ICompilerOutput;
|
|
223
287
|
}
|
|
224
288
|
export declare class SqlEventQueryCompiler extends SqlQueryCompiler<EventQueryBuilder> {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compilers.d.ts","sourceRoot":"","sources":["../../src/compilers.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,uBAAuB,EAAmB,uBAAuB,EAAE,aAAa,EAAE,kBAAkB,EAAE,eAAe,EAAE,gBAAgB,EAAE,eAAe,EAAiB,kBAAkB,EAAE,gBAAgB,EAAE,kBAAkB,EAAmB,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,mBAAmB,EAAY,aAAa,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,eAAe,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,uBAAuB,
|
|
1
|
+
{"version":3,"file":"compilers.d.ts","sourceRoot":"","sources":["../../src/compilers.ts"],"names":[],"mappings":"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"}
|