@simplysm/orm-common 13.0.69 → 13.0.70
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 +54 -1447
- package/dist/create-db-context.d.ts +10 -10
- package/dist/create-db-context.js +9 -9
- package/dist/create-db-context.js.map +1 -1
- package/dist/ddl/column-ddl.d.ts +4 -4
- package/dist/ddl/initialize.d.ts +17 -17
- package/dist/ddl/initialize.js +2 -2
- package/dist/ddl/initialize.js.map +1 -1
- package/dist/ddl/relation-ddl.d.ts +6 -6
- package/dist/ddl/schema-ddl.d.ts +4 -4
- package/dist/ddl/table-ddl.d.ts +24 -24
- package/dist/ddl/table-ddl.js +4 -4
- package/dist/ddl/table-ddl.js.map +1 -1
- package/dist/errors/db-transaction-error.d.ts +15 -15
- package/dist/errors/db-transaction-error.d.ts.map +1 -1
- package/dist/exec/executable.d.ts +23 -23
- package/dist/exec/executable.js +3 -3
- package/dist/exec/executable.js.map +1 -1
- package/dist/exec/queryable.d.ts +160 -160
- package/dist/exec/queryable.js +119 -119
- package/dist/exec/queryable.js.map +1 -1
- package/dist/exec/search-parser.d.ts +37 -37
- package/dist/exec/search-parser.d.ts.map +1 -1
- package/dist/expr/expr-unit.d.ts +4 -4
- package/dist/expr/expr.d.ts +257 -257
- package/dist/expr/expr.js +265 -265
- package/dist/expr/expr.js.map +1 -1
- package/dist/query-builder/base/expr-renderer-base.d.ts +9 -9
- package/dist/query-builder/base/expr-renderer-base.js +2 -2
- package/dist/query-builder/base/expr-renderer-base.js.map +1 -1
- package/dist/query-builder/base/query-builder-base.d.ts +26 -26
- package/dist/query-builder/base/query-builder-base.d.ts.map +1 -1
- package/dist/query-builder/base/query-builder-base.js +22 -22
- package/dist/query-builder/base/query-builder-base.js.map +1 -1
- package/dist/query-builder/mssql/mssql-expr-renderer.d.ts +4 -4
- package/dist/query-builder/mssql/mssql-expr-renderer.d.ts.map +1 -1
- package/dist/query-builder/mssql/mssql-expr-renderer.js +18 -18
- package/dist/query-builder/mssql/mssql-expr-renderer.js.map +1 -1
- package/dist/query-builder/mssql/mssql-query-builder.d.ts +2 -2
- package/dist/query-builder/mssql/mssql-query-builder.d.ts.map +1 -1
- package/dist/query-builder/mssql/mssql-query-builder.js +11 -11
- package/dist/query-builder/mssql/mssql-query-builder.js.map +1 -1
- package/dist/query-builder/mysql/mysql-expr-renderer.d.ts +4 -4
- package/dist/query-builder/mysql/mysql-expr-renderer.d.ts.map +1 -1
- package/dist/query-builder/mysql/mysql-expr-renderer.js +17 -17
- package/dist/query-builder/mysql/mysql-expr-renderer.js.map +1 -1
- package/dist/query-builder/mysql/mysql-query-builder.d.ts +8 -8
- package/dist/query-builder/mysql/mysql-query-builder.d.ts.map +1 -1
- package/dist/query-builder/mysql/mysql-query-builder.js +5 -5
- package/dist/query-builder/mysql/mysql-query-builder.js.map +1 -1
- package/dist/query-builder/postgresql/postgresql-expr-renderer.d.ts +4 -4
- package/dist/query-builder/postgresql/postgresql-expr-renderer.d.ts.map +1 -1
- package/dist/query-builder/postgresql/postgresql-expr-renderer.js +17 -17
- package/dist/query-builder/postgresql/postgresql-expr-renderer.js.map +1 -1
- package/dist/query-builder/postgresql/postgresql-query-builder.d.ts +5 -5
- package/dist/query-builder/postgresql/postgresql-query-builder.d.ts.map +1 -1
- package/dist/query-builder/postgresql/postgresql-query-builder.js +8 -8
- package/dist/query-builder/postgresql/postgresql-query-builder.js.map +1 -1
- package/dist/query-builder/query-builder.d.ts +1 -1
- package/dist/schema/factory/column-builder.d.ts +79 -79
- package/dist/schema/factory/column-builder.js +42 -42
- package/dist/schema/factory/index-builder.d.ts +39 -39
- package/dist/schema/factory/index-builder.js +26 -26
- package/dist/schema/factory/relation-builder.d.ts +99 -99
- package/dist/schema/factory/relation-builder.d.ts.map +1 -1
- package/dist/schema/factory/relation-builder.js +38 -38
- package/dist/schema/procedure-builder.d.ts +49 -49
- package/dist/schema/procedure-builder.d.ts.map +1 -1
- package/dist/schema/procedure-builder.js +33 -33
- package/dist/schema/table-builder.d.ts +59 -59
- package/dist/schema/table-builder.d.ts.map +1 -1
- package/dist/schema/table-builder.js +43 -43
- package/dist/schema/view-builder.d.ts +49 -49
- package/dist/schema/view-builder.d.ts.map +1 -1
- package/dist/schema/view-builder.js +32 -32
- package/dist/types/column.d.ts +22 -22
- package/dist/types/column.js +1 -1
- package/dist/types/column.js.map +1 -1
- package/dist/types/db.d.ts +40 -40
- package/dist/types/expr.d.ts +59 -59
- package/dist/types/expr.d.ts.map +1 -1
- package/dist/types/query-def.d.ts +44 -44
- package/dist/types/query-def.d.ts.map +1 -1
- package/dist/utils/result-parser.d.ts +11 -11
- package/dist/utils/result-parser.js +3 -3
- package/dist/utils/result-parser.js.map +1 -1
- package/package.json +5 -5
- package/src/create-db-context.ts +20 -20
- package/src/ddl/column-ddl.ts +4 -4
- package/src/ddl/initialize.ts +259 -259
- package/src/ddl/relation-ddl.ts +89 -89
- package/src/ddl/schema-ddl.ts +4 -4
- package/src/ddl/table-ddl.ts +189 -189
- package/src/errors/db-transaction-error.ts +13 -13
- package/src/exec/executable.ts +25 -25
- package/src/exec/queryable.ts +2033 -2033
- package/src/exec/search-parser.ts +57 -57
- package/src/expr/expr-unit.ts +4 -4
- package/src/expr/expr.ts +2140 -2140
- package/src/query-builder/base/expr-renderer-base.ts +237 -237
- package/src/query-builder/base/query-builder-base.ts +213 -213
- package/src/query-builder/mssql/mssql-expr-renderer.ts +607 -607
- package/src/query-builder/mssql/mssql-query-builder.ts +650 -650
- package/src/query-builder/mysql/mysql-expr-renderer.ts +613 -613
- package/src/query-builder/mysql/mysql-query-builder.ts +759 -759
- package/src/query-builder/postgresql/postgresql-expr-renderer.ts +611 -611
- package/src/query-builder/postgresql/postgresql-query-builder.ts +686 -686
- package/src/query-builder/query-builder.ts +19 -19
- package/src/schema/factory/column-builder.ts +423 -423
- package/src/schema/factory/index-builder.ts +164 -164
- package/src/schema/factory/relation-builder.ts +453 -453
- package/src/schema/procedure-builder.ts +232 -232
- package/src/schema/table-builder.ts +319 -319
- package/src/schema/view-builder.ts +221 -221
- package/src/types/column.ts +188 -188
- package/src/types/db.ts +208 -208
- package/src/types/expr.ts +697 -697
- package/src/types/query-def.ts +513 -513
- package/src/utils/result-parser.ts +458 -458
- package/tests/db-context/create-db-context.spec.ts +224 -0
- package/tests/db-context/define-db-context.spec.ts +68 -0
- package/tests/ddl/basic.expected.ts +341 -0
- package/tests/ddl/basic.spec.ts +714 -0
- package/tests/ddl/column-builder.expected.ts +310 -0
- package/tests/ddl/column-builder.spec.ts +637 -0
- package/tests/ddl/index-builder.expected.ts +38 -0
- package/tests/ddl/index-builder.spec.ts +202 -0
- package/tests/ddl/procedure-builder.expected.ts +52 -0
- package/tests/ddl/procedure-builder.spec.ts +234 -0
- package/tests/ddl/relation-builder.expected.ts +36 -0
- package/tests/ddl/relation-builder.spec.ts +372 -0
- package/tests/ddl/table-builder.expected.ts +113 -0
- package/tests/ddl/table-builder.spec.ts +433 -0
- package/tests/ddl/view-builder.expected.ts +38 -0
- package/tests/ddl/view-builder.spec.ts +176 -0
- package/tests/dml/delete.expected.ts +96 -0
- package/tests/dml/delete.spec.ts +160 -0
- package/tests/dml/insert.expected.ts +192 -0
- package/tests/dml/insert.spec.ts +288 -0
- package/tests/dml/update.expected.ts +176 -0
- package/tests/dml/update.spec.ts +318 -0
- package/tests/dml/upsert.expected.ts +215 -0
- package/tests/dml/upsert.spec.ts +242 -0
- package/tests/errors/queryable-errors.spec.ts +177 -0
- package/tests/escape.spec.ts +100 -0
- package/tests/examples/pivot.expected.ts +211 -0
- package/tests/examples/pivot.spec.ts +533 -0
- package/tests/examples/sampling.expected.ts +69 -0
- package/tests/examples/sampling.spec.ts +104 -0
- package/tests/examples/unpivot.expected.ts +120 -0
- package/tests/examples/unpivot.spec.ts +226 -0
- package/tests/exec/search-parser.spec.ts +283 -0
- package/tests/executable/basic.expected.ts +18 -0
- package/tests/executable/basic.spec.ts +54 -0
- package/tests/expr/comparison.expected.ts +282 -0
- package/tests/expr/comparison.spec.ts +400 -0
- package/tests/expr/conditional.expected.ts +134 -0
- package/tests/expr/conditional.spec.ts +276 -0
- package/tests/expr/date.expected.ts +332 -0
- package/tests/expr/date.spec.ts +526 -0
- package/tests/expr/math.expected.ts +62 -0
- package/tests/expr/math.spec.ts +106 -0
- package/tests/expr/string.expected.ts +218 -0
- package/tests/expr/string.spec.ts +356 -0
- package/tests/expr/utility.expected.ts +147 -0
- package/tests/expr/utility.spec.ts +182 -0
- package/tests/select/basic.expected.ts +322 -0
- package/tests/select/basic.spec.ts +502 -0
- package/tests/select/filter.expected.ts +357 -0
- package/tests/select/filter.spec.ts +1068 -0
- package/tests/select/group.expected.ts +169 -0
- package/tests/select/group.spec.ts +244 -0
- package/tests/select/join.expected.ts +582 -0
- package/tests/select/join.spec.ts +805 -0
- package/tests/select/order.expected.ts +150 -0
- package/tests/select/order.spec.ts +189 -0
- package/tests/select/recursive-cte.expected.ts +244 -0
- package/tests/select/recursive-cte.spec.ts +514 -0
- package/tests/select/result-meta.spec.ts +270 -0
- package/tests/select/subquery.expected.ts +363 -0
- package/tests/select/subquery.spec.ts +537 -0
- package/tests/select/view.expected.ts +155 -0
- package/tests/select/view.spec.ts +235 -0
- package/tests/select/window.expected.ts +345 -0
- package/tests/select/window.spec.ts +618 -0
- package/tests/setup/MockExecutor.ts +18 -0
- package/tests/setup/TestDbContext.ts +59 -0
- package/tests/setup/models/Company.ts +13 -0
- package/tests/setup/models/Employee.ts +10 -0
- package/tests/setup/models/MonthlySales.ts +11 -0
- package/tests/setup/models/Post.ts +16 -0
- package/tests/setup/models/Sales.ts +10 -0
- package/tests/setup/models/User.ts +19 -0
- package/tests/setup/procedure/GetAllUsers.ts +9 -0
- package/tests/setup/procedure/GetUserById.ts +12 -0
- package/tests/setup/test-utils.ts +72 -0
- package/tests/setup/views/ActiveUsers.ts +8 -0
- package/tests/setup/views/UserSummary.ts +11 -0
- package/tests/types/nullable-queryable-record.spec.ts +145 -0
- package/tests/utils/result-parser-perf.spec.ts +210 -0
- package/tests/utils/result-parser.spec.ts +701 -0
- package/docs/expressions.md +0 -172
- package/docs/queries.md +0 -444
- package/docs/schema.md +0 -245
package/dist/types/db.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import type { ColumnPrimitive, ColumnPrimitiveStr } from "./column";
|
|
|
2
2
|
import type { QueryDef } from "./query-def";
|
|
3
3
|
import type { DbContextBase, DbContextDdlMethods } from "./db-context-def";
|
|
4
4
|
/**
|
|
5
|
-
* 지원하는
|
|
5
|
+
* 지원하는 Database 방언
|
|
6
6
|
*
|
|
7
7
|
* - `mysql`: MySQL 8.0.14+
|
|
8
8
|
* - `mssql`: Microsoft SQL Server 2012+
|
|
@@ -10,13 +10,13 @@ import type { DbContextBase, DbContextDdlMethods } from "./db-context-def";
|
|
|
10
10
|
*/
|
|
11
11
|
export type Dialect = "mysql" | "mssql" | "postgresql";
|
|
12
12
|
/**
|
|
13
|
-
* 지원하는 모든
|
|
13
|
+
* 지원하는 모든 Database 방언 목록
|
|
14
14
|
*
|
|
15
|
-
*
|
|
15
|
+
* testing에서 dialect별 Validation 시 사용
|
|
16
16
|
*
|
|
17
17
|
* @example
|
|
18
18
|
* ```typescript
|
|
19
|
-
* it.each(dialects)("[%s] SQL
|
|
19
|
+
* it.each(dialects)("[%s] SQL Validation", (dialect) => {
|
|
20
20
|
* const builder = createQueryBuilder(dialect);
|
|
21
21
|
* expect(builder.build(def)).toMatchSql(expected[dialect]);
|
|
22
22
|
* });
|
|
@@ -24,15 +24,15 @@ export type Dialect = "mysql" | "mssql" | "postgresql";
|
|
|
24
24
|
*/
|
|
25
25
|
export declare const dialects: Dialect[];
|
|
26
26
|
/**
|
|
27
|
-
* QueryBuilder.build()
|
|
27
|
+
* QueryBuilder.build() return type
|
|
28
28
|
*
|
|
29
|
-
* 빌드된 SQL 문자열과 다중 결과셋
|
|
29
|
+
* 빌드된 SQL 문자열과 다중 결과셋 processing를 위한 Metadata
|
|
30
30
|
*
|
|
31
31
|
* @property sql - 빌드된 SQL 문자열
|
|
32
|
-
* @property resultSetIndex -
|
|
32
|
+
* @property resultSetIndex - Result를 가져올 결과셋 Index (Basic: 0)
|
|
33
33
|
* - MySQL INSERT with OUTPUT: 1 (INSERT + SELECT 중 SELECT)
|
|
34
34
|
* @property resultSetStride - 다중 결과에서 N번째마다 결과셋 추출
|
|
35
|
-
* - 예: index=1, stride=2 → 1, 3, 5, 7... 의 결과셋
|
|
35
|
+
* - 예: index=1, stride=2 → 1, 3, 5, 7... 의 결과셋 return
|
|
36
36
|
* - MySQL 다중 INSERT: INSERT;SELECT; × N → 1, 3, 5...
|
|
37
37
|
*/
|
|
38
38
|
export interface QueryBuildResult {
|
|
@@ -41,30 +41,30 @@ export interface QueryBuildResult {
|
|
|
41
41
|
resultSetStride?: number;
|
|
42
42
|
}
|
|
43
43
|
/**
|
|
44
|
-
*
|
|
44
|
+
* Transaction isolation level
|
|
45
45
|
*
|
|
46
|
-
* - `READ_UNCOMMITTED`:
|
|
47
|
-
* - `READ_COMMITTED`:
|
|
48
|
-
* - `REPEATABLE_READ`:
|
|
49
|
-
* - `SERIALIZABLE`: 완전
|
|
46
|
+
* - `READ_UNCOMMITTED`: commit되지 않은 data read 가능 (Dirty Read)
|
|
47
|
+
* - `READ_COMMITTED`: commit된 data만 read (default)
|
|
48
|
+
* - `REPEATABLE_READ`: Transaction 내 동일 query 동일 result 보장
|
|
49
|
+
* - `SERIALIZABLE`: 완전 serialize (가장 엄격)
|
|
50
50
|
*/
|
|
51
51
|
export type IsolationLevel = "READ_UNCOMMITTED" | "READ_COMMITTED" | "REPEATABLE_READ" | "SERIALIZABLE";
|
|
52
52
|
/**
|
|
53
|
-
*
|
|
53
|
+
* Query result data record type
|
|
54
54
|
*
|
|
55
|
-
* 재귀적
|
|
55
|
+
* 재귀적 structure로 중첩 관계(include) result 표현
|
|
56
56
|
*
|
|
57
57
|
* @example
|
|
58
58
|
* ```typescript
|
|
59
59
|
* // 단순 레코드
|
|
60
60
|
* type User = { id: number; name: string; }
|
|
61
61
|
*
|
|
62
|
-
* // 중첩
|
|
62
|
+
* // 중첩 relationship include
|
|
63
63
|
* type UserWithPosts = {
|
|
64
64
|
* id: number;
|
|
65
65
|
* name: string;
|
|
66
|
-
* posts: { id: number; title: string; }[] // 1:N
|
|
67
|
-
* company: { id: number; name: string; } // N:1
|
|
66
|
+
* posts: { id: number; title: string; }[] // 1:N relationship
|
|
67
|
+
* company: { id: number; name: string; } // N:1 relationship
|
|
68
68
|
* }
|
|
69
69
|
* ```
|
|
70
70
|
*/
|
|
@@ -72,9 +72,9 @@ export type DataRecord = {
|
|
|
72
72
|
[key: string]: ColumnPrimitive | DataRecord | DataRecord[];
|
|
73
73
|
};
|
|
74
74
|
/**
|
|
75
|
-
* DbContext 실행기
|
|
75
|
+
* DbContext 실행기 interface
|
|
76
76
|
*
|
|
77
|
-
* 실제 DB 연결과
|
|
77
|
+
* 실제 DB 연결과 Execute query을 담당
|
|
78
78
|
* NodeDbContextExecutor (서버) 또는 SdOrmServiceClientDbContextExecutor (클라이언트) 구현
|
|
79
79
|
*
|
|
80
80
|
* @example
|
|
@@ -88,7 +88,7 @@ export type DataRecord = {
|
|
|
88
88
|
* }
|
|
89
89
|
* ```
|
|
90
90
|
*
|
|
91
|
-
* @see {@link DbContext}
|
|
91
|
+
* @see {@link DbContext} DbContextused in
|
|
92
92
|
*/
|
|
93
93
|
export interface DbContextExecutor {
|
|
94
94
|
/**
|
|
@@ -96,40 +96,40 @@ export interface DbContextExecutor {
|
|
|
96
96
|
*/
|
|
97
97
|
connect(): Promise<void>;
|
|
98
98
|
/**
|
|
99
|
-
* DB 연결
|
|
99
|
+
* DB 연결 end
|
|
100
100
|
*/
|
|
101
101
|
close(): Promise<void>;
|
|
102
102
|
/**
|
|
103
|
-
*
|
|
103
|
+
* Transaction start
|
|
104
104
|
*
|
|
105
|
-
* @param isolationLevel -
|
|
105
|
+
* @param isolationLevel - isolation level (Select)
|
|
106
106
|
*/
|
|
107
107
|
beginTransaction(isolationLevel?: IsolationLevel): Promise<void>;
|
|
108
108
|
/**
|
|
109
|
-
*
|
|
109
|
+
* Transaction commit
|
|
110
110
|
*/
|
|
111
111
|
commitTransaction(): Promise<void>;
|
|
112
112
|
/**
|
|
113
|
-
*
|
|
113
|
+
* Transaction rollback
|
|
114
114
|
*/
|
|
115
115
|
rollbackTransaction(): Promise<void>;
|
|
116
116
|
/**
|
|
117
|
-
* QueryDef
|
|
117
|
+
* QueryDef array 실행
|
|
118
118
|
*
|
|
119
|
-
* @template T -
|
|
120
|
-
* @param defs -
|
|
121
|
-
* @param resultMetas -
|
|
122
|
-
* @returns 각 QueryDef별
|
|
119
|
+
* @template T - Result record type
|
|
120
|
+
* @param defs - Execute할 QueryDef array
|
|
121
|
+
* @param resultMetas - Result Transform을 위한 Metadata (Select)
|
|
122
|
+
* @returns 각 QueryDef별 result 배열의 array
|
|
123
123
|
*/
|
|
124
124
|
executeDefs<T = DataRecord>(defs: QueryDef[], resultMetas?: (ResultMeta | undefined)[]): Promise<T[][]>;
|
|
125
125
|
}
|
|
126
126
|
/**
|
|
127
|
-
*
|
|
127
|
+
* Query result Transform을 위한 Metadata
|
|
128
128
|
*
|
|
129
|
-
* SELECT 결과를 TypeScript 객체로
|
|
129
|
+
* SELECT 결과를 TypeScript 객체로 Transform 시 사용
|
|
130
130
|
*
|
|
131
|
-
* @property columns -
|
|
132
|
-
* @property joins - JOIN 별칭 →
|
|
131
|
+
* @property columns - Column명 → ColumnPrimitiveStr Mapping
|
|
132
|
+
* @property joins - JOIN 별칭 → 단일/array 여부
|
|
133
133
|
*/
|
|
134
134
|
export interface ResultMeta {
|
|
135
135
|
columns: Record<string, ColumnPrimitiveStr>;
|
|
@@ -138,12 +138,12 @@ export interface ResultMeta {
|
|
|
138
138
|
}>;
|
|
139
139
|
}
|
|
140
140
|
/**
|
|
141
|
-
*
|
|
141
|
+
* Database migration definition
|
|
142
142
|
*
|
|
143
|
-
*
|
|
143
|
+
* schema 변경을 version control
|
|
144
144
|
*
|
|
145
|
-
* @property name -
|
|
146
|
-
* @property up -
|
|
145
|
+
* @property name - Migration 고유 이름 (타임스탬프 권장)
|
|
146
|
+
* @property up - Migration 실행 function
|
|
147
147
|
*
|
|
148
148
|
* @example
|
|
149
149
|
* ```typescript
|
|
@@ -166,7 +166,7 @@ export interface ResultMeta {
|
|
|
166
166
|
* ];
|
|
167
167
|
* ```
|
|
168
168
|
*
|
|
169
|
-
* @see {@link DbContext.initialize}
|
|
169
|
+
* @see {@link DbContext.initialize} migration 실행
|
|
170
170
|
*/
|
|
171
171
|
export interface Migration {
|
|
172
172
|
name: string;
|
package/dist/types/expr.d.ts
CHANGED
|
@@ -1,71 +1,71 @@
|
|
|
1
1
|
import type { ColumnPrimitive, DataType } from "./column";
|
|
2
2
|
import type { SelectQueryDef } from "./query-def";
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* Date 연산 단위
|
|
5
5
|
*
|
|
6
|
-
* dateDiff, dateAdd 등
|
|
6
|
+
* dateDiff, dateAdd 등 Date functionused in
|
|
7
7
|
*/
|
|
8
8
|
export type DateSeparator = "year" | "month" | "day" | "hour" | "minute" | "second";
|
|
9
9
|
/**
|
|
10
|
-
*
|
|
10
|
+
* column 참조 expression
|
|
11
11
|
*
|
|
12
|
-
* @property path -
|
|
12
|
+
* @property path - Column 경로 (table별칭.column명 등)
|
|
13
13
|
*/
|
|
14
14
|
export interface ExprColumn {
|
|
15
15
|
type: "column";
|
|
16
16
|
path: string[];
|
|
17
17
|
}
|
|
18
18
|
/**
|
|
19
|
-
* 리터럴
|
|
19
|
+
* 리터럴 value expression
|
|
20
20
|
*
|
|
21
|
-
* @property value -
|
|
21
|
+
* @property value - Column 프리미티브 value
|
|
22
22
|
*/
|
|
23
23
|
export interface ExprValue {
|
|
24
24
|
type: "value";
|
|
25
25
|
value: ColumnPrimitive;
|
|
26
26
|
}
|
|
27
27
|
/**
|
|
28
|
-
* Raw SQL
|
|
28
|
+
* Raw SQL expression
|
|
29
29
|
*
|
|
30
30
|
* @property sql - SQL 문자열 (파라미터는 {0}, {1}로 표시)
|
|
31
|
-
* @property params - 파라미터
|
|
31
|
+
* @property params - 파라미터 expression array
|
|
32
32
|
*/
|
|
33
33
|
export interface ExprRaw {
|
|
34
34
|
type: "raw";
|
|
35
35
|
sql: string;
|
|
36
36
|
params: Expr[];
|
|
37
37
|
}
|
|
38
|
-
/** 동등
|
|
38
|
+
/** 동등 comparison (=) - NULL-safe */
|
|
39
39
|
export interface ExprEq {
|
|
40
40
|
type: "eq";
|
|
41
41
|
source: Expr;
|
|
42
42
|
target: Expr;
|
|
43
43
|
}
|
|
44
|
-
/**
|
|
44
|
+
/** Greater than comparison (>) */
|
|
45
45
|
export interface ExprGt {
|
|
46
46
|
type: "gt";
|
|
47
47
|
source: Expr;
|
|
48
48
|
target: Expr;
|
|
49
49
|
}
|
|
50
|
-
/**
|
|
50
|
+
/** Less than comparison (<) */
|
|
51
51
|
export interface ExprLt {
|
|
52
52
|
type: "lt";
|
|
53
53
|
source: Expr;
|
|
54
54
|
target: Expr;
|
|
55
55
|
}
|
|
56
|
-
/**
|
|
56
|
+
/** Greater than or equal comparison (>=) */
|
|
57
57
|
export interface ExprGte {
|
|
58
58
|
type: "gte";
|
|
59
59
|
source: Expr;
|
|
60
60
|
target: Expr;
|
|
61
61
|
}
|
|
62
|
-
/**
|
|
62
|
+
/** Less than or equal comparison (<=) */
|
|
63
63
|
export interface ExprLte {
|
|
64
64
|
type: "lte";
|
|
65
65
|
source: Expr;
|
|
66
66
|
target: Expr;
|
|
67
67
|
}
|
|
68
|
-
/**
|
|
68
|
+
/** range comparison (BETWEEN from AND to) */
|
|
69
69
|
export interface ExprBetween {
|
|
70
70
|
type: "between";
|
|
71
71
|
source: Expr;
|
|
@@ -77,46 +77,46 @@ export interface ExprIsNull {
|
|
|
77
77
|
type: "null";
|
|
78
78
|
arg: Expr;
|
|
79
79
|
}
|
|
80
|
-
/**
|
|
80
|
+
/** pattern 매칭 (LIKE) */
|
|
81
81
|
export interface ExprLike {
|
|
82
82
|
type: "like";
|
|
83
83
|
source: Expr;
|
|
84
84
|
pattern: Expr;
|
|
85
85
|
}
|
|
86
|
-
/**
|
|
86
|
+
/** regular expression 매칭 (REGEXP) */
|
|
87
87
|
export interface ExprRegexp {
|
|
88
88
|
type: "regexp";
|
|
89
89
|
source: Expr;
|
|
90
90
|
pattern: Expr;
|
|
91
91
|
}
|
|
92
|
-
/**
|
|
92
|
+
/** value 목록 include 검사 (IN) */
|
|
93
93
|
export interface ExprIn {
|
|
94
94
|
type: "in";
|
|
95
95
|
source: Expr;
|
|
96
96
|
values: Expr[];
|
|
97
97
|
}
|
|
98
|
-
/**
|
|
98
|
+
/** Subquery result include 검사 (IN subquery) */
|
|
99
99
|
export interface ExprInQuery {
|
|
100
100
|
type: "inQuery";
|
|
101
101
|
source: Expr;
|
|
102
102
|
query: SelectQueryDef;
|
|
103
103
|
}
|
|
104
|
-
/**
|
|
104
|
+
/** Subquery 존재 검사 (EXISTS) */
|
|
105
105
|
export interface ExprExists {
|
|
106
106
|
type: "exists";
|
|
107
107
|
query: SelectQueryDef;
|
|
108
108
|
}
|
|
109
|
-
/**
|
|
109
|
+
/** logic 부정 (NOT) */
|
|
110
110
|
export interface ExprNot {
|
|
111
111
|
type: "not";
|
|
112
112
|
arg: WhereExpr;
|
|
113
113
|
}
|
|
114
|
-
/**
|
|
114
|
+
/** logic 곱 (AND) */
|
|
115
115
|
export interface ExprAnd {
|
|
116
116
|
type: "and";
|
|
117
117
|
conditions: WhereExpr[];
|
|
118
118
|
}
|
|
119
|
-
/**
|
|
119
|
+
/** logic 합 (OR) */
|
|
120
120
|
export interface ExprOr {
|
|
121
121
|
type: "or";
|
|
122
122
|
conditions: WhereExpr[];
|
|
@@ -138,7 +138,7 @@ export interface ExprRight {
|
|
|
138
138
|
source: Expr;
|
|
139
139
|
length: Expr;
|
|
140
140
|
}
|
|
141
|
-
/** 좌우 공백
|
|
141
|
+
/** 좌우 공백 Remove (TRIM) */
|
|
142
142
|
export interface ExprTrim {
|
|
143
143
|
type: "trim";
|
|
144
144
|
arg: Expr;
|
|
@@ -157,12 +157,12 @@ export interface ExprReplace {
|
|
|
157
157
|
from: Expr;
|
|
158
158
|
to: Expr;
|
|
159
159
|
}
|
|
160
|
-
/** 대문자
|
|
160
|
+
/** 대문자 Transform (UPPER) */
|
|
161
161
|
export interface ExprUpper {
|
|
162
162
|
type: "upper";
|
|
163
163
|
arg: Expr;
|
|
164
164
|
}
|
|
165
|
-
/** 소문자
|
|
165
|
+
/** 소문자 Transform (LOWER) */
|
|
166
166
|
export interface ExprLower {
|
|
167
167
|
type: "lower";
|
|
168
168
|
arg: Expr;
|
|
@@ -177,7 +177,7 @@ export interface ExprByteLength {
|
|
|
177
177
|
type: "byteLength";
|
|
178
178
|
arg: Expr;
|
|
179
179
|
}
|
|
180
|
-
/**
|
|
180
|
+
/** part 문자열 (SUBSTRING) */
|
|
181
181
|
export interface ExprSubstring {
|
|
182
182
|
type: "substring";
|
|
183
183
|
source: Expr;
|
|
@@ -256,27 +256,27 @@ export interface ExprIsoYearMonth {
|
|
|
256
256
|
type: "isoYearMonth";
|
|
257
257
|
arg: Expr;
|
|
258
258
|
}
|
|
259
|
-
/**
|
|
259
|
+
/** Date 차이 (DATEDIFF) */
|
|
260
260
|
export interface ExprDateDiff {
|
|
261
261
|
type: "dateDiff";
|
|
262
262
|
separator: DateSeparator;
|
|
263
263
|
from: Expr;
|
|
264
264
|
to: Expr;
|
|
265
265
|
}
|
|
266
|
-
/**
|
|
266
|
+
/** Date 연산 (DATEADD) */
|
|
267
267
|
export interface ExprDateAdd {
|
|
268
268
|
type: "dateAdd";
|
|
269
269
|
separator: DateSeparator;
|
|
270
270
|
source: Expr;
|
|
271
271
|
value: Expr;
|
|
272
272
|
}
|
|
273
|
-
/**
|
|
273
|
+
/** Date 포맷 (FORMAT/DATE_FORMAT) */
|
|
274
274
|
export interface ExprFormatDate {
|
|
275
275
|
type: "formatDate";
|
|
276
276
|
source: Expr;
|
|
277
277
|
format: string;
|
|
278
278
|
}
|
|
279
|
-
/** NULL 대체 (COALESCE - 첫 번째 non-null
|
|
279
|
+
/** NULL 대체 (COALESCE - 첫 번째 non-null return) */
|
|
280
280
|
export interface ExprIfNull {
|
|
281
281
|
type: "ifNull";
|
|
282
282
|
args: Expr[];
|
|
@@ -287,12 +287,12 @@ export interface ExprNullIf {
|
|
|
287
287
|
source: Expr;
|
|
288
288
|
value: Expr;
|
|
289
289
|
}
|
|
290
|
-
/** 조건을 값으로
|
|
290
|
+
/** 조건을 값으로 Transform (boolean → 0/1) */
|
|
291
291
|
export interface ExprIs {
|
|
292
292
|
type: "is";
|
|
293
293
|
condition: WhereExpr;
|
|
294
294
|
}
|
|
295
|
-
/** CASE WHEN
|
|
295
|
+
/** CASE WHEN expression */
|
|
296
296
|
export interface ExprSwitch {
|
|
297
297
|
type: "switch";
|
|
298
298
|
cases: {
|
|
@@ -301,7 +301,7 @@ export interface ExprSwitch {
|
|
|
301
301
|
}[];
|
|
302
302
|
else: Expr;
|
|
303
303
|
}
|
|
304
|
-
/** IF
|
|
304
|
+
/** IF expression (IIF/IF) */
|
|
305
305
|
export interface ExprIf {
|
|
306
306
|
type: "if";
|
|
307
307
|
condition: WhereExpr;
|
|
@@ -334,17 +334,17 @@ export interface ExprMin {
|
|
|
334
334
|
type: "min";
|
|
335
335
|
arg: Expr;
|
|
336
336
|
}
|
|
337
|
-
/** 최대값
|
|
337
|
+
/** 최대값 selection (GREATEST) */
|
|
338
338
|
export interface ExprGreatest {
|
|
339
339
|
type: "greatest";
|
|
340
340
|
args: Expr[];
|
|
341
341
|
}
|
|
342
|
-
/** 최소값
|
|
342
|
+
/** 최소값 selection (LEAST) */
|
|
343
343
|
export interface ExprLeast {
|
|
344
344
|
type: "least";
|
|
345
345
|
args: Expr[];
|
|
346
346
|
}
|
|
347
|
-
/**
|
|
347
|
+
/** row 번호 (ROW_NUMBER 단순 Version) */
|
|
348
348
|
export interface ExprRowNum {
|
|
349
349
|
type: "rowNum";
|
|
350
350
|
}
|
|
@@ -352,7 +352,7 @@ export interface ExprRowNum {
|
|
|
352
352
|
export interface ExprRandom {
|
|
353
353
|
type: "random";
|
|
354
354
|
}
|
|
355
|
-
/**
|
|
355
|
+
/** type transformation (CAST) */
|
|
356
356
|
export interface ExprCast {
|
|
357
357
|
type: "cast";
|
|
358
358
|
source: Expr;
|
|
@@ -375,14 +375,14 @@ export interface WinFnNtile {
|
|
|
375
375
|
type: "ntile";
|
|
376
376
|
n: number;
|
|
377
377
|
}
|
|
378
|
-
/** LAG() - 이전
|
|
378
|
+
/** LAG() - 이전 row value */
|
|
379
379
|
export interface WinFnLag {
|
|
380
380
|
type: "lag";
|
|
381
381
|
column: Expr;
|
|
382
382
|
offset?: number;
|
|
383
383
|
default?: Expr;
|
|
384
384
|
}
|
|
385
|
-
/** LEAD() - 다음
|
|
385
|
+
/** LEAD() - 다음 row value */
|
|
386
386
|
export interface WinFnLead {
|
|
387
387
|
type: "lead";
|
|
388
388
|
column: Expr;
|
|
@@ -399,76 +399,76 @@ export interface WinFnLastValue {
|
|
|
399
399
|
type: "lastValue";
|
|
400
400
|
column: Expr;
|
|
401
401
|
}
|
|
402
|
-
/**
|
|
402
|
+
/** Window SUM */
|
|
403
403
|
export interface WinFnSum {
|
|
404
404
|
type: "sum";
|
|
405
405
|
column: Expr;
|
|
406
406
|
}
|
|
407
|
-
/**
|
|
407
|
+
/** Window AVG */
|
|
408
408
|
export interface WinFnAvg {
|
|
409
409
|
type: "avg";
|
|
410
410
|
column: Expr;
|
|
411
411
|
}
|
|
412
|
-
/**
|
|
412
|
+
/** Window COUNT */
|
|
413
413
|
export interface WinFnCount {
|
|
414
414
|
type: "count";
|
|
415
415
|
column?: Expr;
|
|
416
416
|
}
|
|
417
|
-
/**
|
|
417
|
+
/** Window MIN */
|
|
418
418
|
export interface WinFnMin {
|
|
419
419
|
type: "min";
|
|
420
420
|
column: Expr;
|
|
421
421
|
}
|
|
422
|
-
/**
|
|
422
|
+
/** Window MAX */
|
|
423
423
|
export interface WinFnMax {
|
|
424
424
|
type: "max";
|
|
425
425
|
column: Expr;
|
|
426
426
|
}
|
|
427
427
|
/**
|
|
428
|
-
*
|
|
428
|
+
* Window function union type
|
|
429
429
|
*
|
|
430
|
-
* 순위, 탐색,
|
|
430
|
+
* 순위, 탐색, aggregation Window function
|
|
431
431
|
*/
|
|
432
432
|
export type WinFn = WinFnRowNumber | WinFnRank | WinFnDenseRank | WinFnNtile | WinFnLag | WinFnLead | WinFnFirstValue | WinFnLastValue | WinFnSum | WinFnAvg | WinFnCount | WinFnMin | WinFnMax;
|
|
433
433
|
/**
|
|
434
|
-
*
|
|
434
|
+
* Window 스펙 (OVER 절)
|
|
435
435
|
*
|
|
436
|
-
* @property partitionBy - PARTITION BY
|
|
437
|
-
* @property orderBy - ORDER BY [
|
|
436
|
+
* @property partitionBy - PARTITION BY expression 목록
|
|
437
|
+
* @property orderBy - ORDER BY [column, 방향] 목록
|
|
438
438
|
*/
|
|
439
439
|
export interface WinSpec {
|
|
440
440
|
partitionBy?: Expr[];
|
|
441
441
|
orderBy?: [Expr, ("ASC" | "DESC")?][];
|
|
442
442
|
}
|
|
443
443
|
/**
|
|
444
|
-
*
|
|
444
|
+
* Window expression
|
|
445
445
|
*
|
|
446
|
-
*
|
|
446
|
+
* Window function + Window 스펙 composition
|
|
447
447
|
*/
|
|
448
448
|
export interface ExprWindow {
|
|
449
449
|
type: "window";
|
|
450
450
|
fn: WinFn;
|
|
451
451
|
spec: WinSpec;
|
|
452
452
|
}
|
|
453
|
-
/** 스칼라
|
|
453
|
+
/** 스칼라 Subquery */
|
|
454
454
|
export interface ExprSubquery {
|
|
455
455
|
type: "subquery";
|
|
456
456
|
queryDef: SelectQueryDef;
|
|
457
457
|
}
|
|
458
458
|
/**
|
|
459
|
-
* WHERE 절에 사용되는
|
|
459
|
+
* WHERE 절에 사용되는 expression (boolean return)
|
|
460
460
|
*
|
|
461
|
-
*
|
|
462
|
-
* where(), having()
|
|
461
|
+
* comparison 연산 + logic 연산의 union type
|
|
462
|
+
* where(), having() 등used in
|
|
463
463
|
*/
|
|
464
464
|
export type WhereExpr = ExprEq | ExprGt | ExprLt | ExprGte | ExprLte | ExprBetween | ExprIsNull | ExprLike | ExprRegexp | ExprIn | ExprInQuery | ExprExists | ExprNot | ExprAnd | ExprOr;
|
|
465
465
|
/**
|
|
466
|
-
* 모든
|
|
466
|
+
* 모든 expression union type
|
|
467
467
|
*
|
|
468
|
-
*
|
|
469
|
-
* select(), orderBy()
|
|
468
|
+
* value, 문자열, Number, Date, condition, aggregation, Window 등 모든 expression
|
|
469
|
+
* select(), orderBy() 등used in
|
|
470
470
|
*
|
|
471
|
-
* @see {@link WhereExpr} WHERE 절 전용
|
|
471
|
+
* @see {@link WhereExpr} WHERE 절 전용 expression
|
|
472
472
|
*/
|
|
473
473
|
export type Expr = ExprColumn | ExprValue | ExprRaw | ExprConcat | ExprLeft | ExprRight | ExprTrim | ExprPadStart | ExprReplace | ExprUpper | ExprLower | ExprLength | ExprByteLength | ExprSubstring | ExprIndexOf | ExprAbs | ExprRound | ExprCeil | ExprFloor | ExprYear | ExprMonth | ExprDay | ExprHour | ExprMinute | ExprSecond | ExprIsoWeek | ExprIsoWeekStartDate | ExprIsoYearMonth | ExprDateDiff | ExprDateAdd | ExprFormatDate | ExprIfNull | ExprNullIf | ExprIs | ExprSwitch | ExprIf | ExprCount | ExprSum | ExprAvg | ExprMax | ExprMin | ExprGreatest | ExprLeast | ExprRowNum | ExprRandom | ExprCast | ExprWindow | ExprSubquery;
|
|
474
474
|
//# sourceMappingURL=expr.d.ts.map
|
package/dist/types/expr.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expr.d.ts","sourceRoot":"","sources":["..\\..\\src\\types\\expr.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAIpF;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,eAAe,CAAC;CACxB;AAED;;;;;GAKG;AACH,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,KAAK,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,IAAI,EAAE,CAAC;CAChB;AAMD,
|
|
1
|
+
{"version":3,"file":"expr.d.ts","sourceRoot":"","sources":["..\\..\\src\\types\\expr.ts"],"names":[],"mappings":"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"}
|