interaqt 0.8.7 → 0.8.8
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/dist/index.js +2026 -1490
- package/dist/index.js.map +1 -1
- package/dist/storage/erstorage/AttributeQuery.d.ts.map +1 -1
- package/dist/storage/erstorage/CreationExecutor.d.ts +67 -0
- package/dist/storage/erstorage/CreationExecutor.d.ts.map +1 -0
- package/dist/storage/erstorage/DeletionExecutor.d.ts +57 -0
- package/dist/storage/erstorage/DeletionExecutor.d.ts.map +1 -0
- package/dist/storage/erstorage/EntityQueryHandle.d.ts +1 -1
- package/dist/storage/erstorage/EntityToTableMap.d.ts +3 -1
- package/dist/storage/erstorage/EntityToTableMap.d.ts.map +1 -1
- package/dist/storage/erstorage/MatchExp.d.ts +1 -1
- package/dist/storage/erstorage/MatchExp.d.ts.map +1 -1
- package/dist/storage/erstorage/NewRecordData.d.ts.map +1 -1
- package/dist/storage/erstorage/QueryExecutor.d.ts +67 -0
- package/dist/storage/erstorage/QueryExecutor.d.ts.map +1 -0
- package/dist/storage/erstorage/RecordQuery.d.ts +1 -1
- package/dist/storage/erstorage/RecordQuery.d.ts.map +1 -1
- package/dist/storage/erstorage/RecordQueryAgent.d.ts +29 -64
- package/dist/storage/erstorage/RecordQueryAgent.d.ts.map +1 -1
- package/dist/storage/erstorage/SQLBuilder.d.ts +122 -0
- package/dist/storage/erstorage/SQLBuilder.d.ts.map +1 -0
- package/dist/storage/erstorage/Setup.d.ts +56 -0
- package/dist/storage/erstorage/Setup.d.ts.map +1 -1
- package/dist/storage/erstorage/UpdateExecutor.d.ts +53 -0
- package/dist/storage/erstorage/UpdateExecutor.d.ts.map +1 -0
- package/dist/storage/erstorage/util/AliasManager.d.ts +71 -0
- package/dist/storage/erstorage/util/AliasManager.d.ts.map +1 -0
- package/dist/storage/erstorage/util/FieldAliasMap.d.ts +22 -0
- package/dist/storage/erstorage/util/FieldAliasMap.d.ts.map +1 -0
- package/dist/storage/erstorage/util/RecursiveContext.d.ts +27 -0
- package/dist/storage/erstorage/util/RecursiveContext.d.ts.map +1 -0
- package/dist/storage/index.d.ts +5 -0
- package/dist/storage/index.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AttributeQuery.d.ts","sourceRoot":"","sources":["../../../src/storage/erstorage/AttributeQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AAGvD,OAAO,EAA+B,WAAW,EAAE,eAAe,EAAE,eAAe,EAAC,MAAM,kBAAkB,CAAC;AAG7G,MAAM,MAAM,4BAA4B,GAAG,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC,CAAA;AAC9E,MAAM,MAAM,sBAAsB,GAAG,MAAM,GAAG,4BAA4B,CAAA;AAC1E,MAAM,MAAM,kBAAkB,GAAG,sBAAsB,EAAE,CAAA;AAEzD,qBAAa,cAAc;
|
|
1
|
+
{"version":3,"file":"AttributeQuery.d.ts","sourceRoot":"","sources":["../../../src/storage/erstorage/AttributeQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AAGvD,OAAO,EAA+B,WAAW,EAAE,eAAe,EAAE,eAAe,EAAC,MAAM,kBAAkB,CAAC;AAG7G,MAAM,MAAM,4BAA4B,GAAG,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC,CAAA;AAC9E,MAAM,MAAM,sBAAsB,GAAG,MAAM,GAAG,4BAA4B,CAAA;AAC1E,MAAM,MAAM,kBAAkB,GAAG,sBAAsB,EAAE,CAAA;AAEzD,qBAAa,cAAc;IAkIJ,UAAU,EAAE,MAAM;IAAS,GAAG,EAAE,gBAAgB;IAAS,IAAI,EAAE,kBAAkB;IAAc,YAAY,CAAC,EAAE,MAAM;IAAS,aAAa,CAAC,EAAE,MAAM;IAAS,yBAAyB,CAAC,EAAE,OAAO;IAjI3M,cAAc,EAAE,WAAW,EAAE,CAAK;IAClC,cAAc,EAAE,WAAW,EAAE,CAAK;IAClC,aAAa,EAAE,WAAW,EAAE,CAAK;IACjC,eAAe,EAAE,MAAM,EAAE,CAAK;IAE9B,aAAa,EAAE,eAAe,CAAA;IAC9B,qBAAqB,CAAC,EAAE,WAAW,CAAA;IACnC,EAAE,SAAgB;WACX,uBAAuB,CAAC,kBAAkB,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,kBAAkB,GAAG,kBAAkB;WA2BhI,8BAA8B,CACxC,UAAU,EAAC,MAAM,EACjB,GAAG,EAAE,gBAAgB,EACrB,wBAAwB,CAAC,EAAE,OAAO,EAClC,4BAA4B,CAAC,EAAE,OAAO,EACtC,8BAA8B,CAAC,EAAE,OAAO,EAAE,iCAAiC;IAC3E,0BAA0B,CAAC,EAAE,OAAO,GACrC,kBAAkB;gBAuFF,UAAU,EAAE,MAAM,EAAS,GAAG,EAAE,gBAAgB,EAAS,IAAI,GAAE,kBAAuB,EAAS,YAAY,CAAC,EAAE,MAAM,YAAA,EAAS,aAAa,CAAC,EAAE,MAAM,YAAA,EAAS,yBAAyB,CAAC,EAAE,OAAO,YAAA;IA4DlN,6BAA6B,CAAC,SAAS,WAAoB,EAAE,WAAW,WAAoB,GAAG;QAAE,kBAAkB,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,WAAW,EAAE,MAAM,EAAE,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,EAAE;IAgDnL,IAAW,eAAe,IAAI,eAAe,CAE5C;IACD,oBAAoB;IA2BpB,kBAAkB;IAQlB,kBAAkB;CAKrB"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { EntityIdRef, Database, RecordMutationEvent } from '../../runtime';
|
|
2
|
+
import { EntityToTableMap } from './EntityToTableMap.js';
|
|
3
|
+
import { MatchExpressionData } from './MatchExp.js';
|
|
4
|
+
import { NewRecordData, RawEntityData } from './NewRecordData.js';
|
|
5
|
+
import { SQLBuilder } from './SQLBuilder.js';
|
|
6
|
+
import { FilteredEntityManager } from './FilteredEntityManager.js';
|
|
7
|
+
import { Record } from './RecordQueryAgent.js';
|
|
8
|
+
import { QueryExecutor } from './QueryExecutor.js';
|
|
9
|
+
/**
|
|
10
|
+
* CreationExecutor - 创建操作执行器
|
|
11
|
+
*
|
|
12
|
+
* 职责:
|
|
13
|
+
* 1. 记录创建(entity/relation)
|
|
14
|
+
* 2. 依赖处理(dependency resolution)
|
|
15
|
+
* 3. 关系建立(link creation)
|
|
16
|
+
* 4. 同行数据管理(same-row data handling)
|
|
17
|
+
* 5. 合并记录处理(combined records)
|
|
18
|
+
* 6. 创建事件生成(creation events)
|
|
19
|
+
*/
|
|
20
|
+
export declare class CreationExecutor {
|
|
21
|
+
private map;
|
|
22
|
+
private database;
|
|
23
|
+
private queryExecutor;
|
|
24
|
+
private helper;
|
|
25
|
+
private sqlBuilder;
|
|
26
|
+
private filteredEntityManager;
|
|
27
|
+
constructor(map: EntityToTableMap, database: Database, queryExecutor: QueryExecutor, filteredEntityManager: FilteredEntityManager, sqlBuilder: SQLBuilder, helper: {
|
|
28
|
+
updateRecord: (entity: string, matchExpression: MatchExpressionData, newRecordData: NewRecordData, events?: RecordMutationEvent[]) => Promise<Record[]>;
|
|
29
|
+
unlink: (linkName: string, matchExpression: MatchExpressionData, moveSource: boolean, reason: string, events?: RecordMutationEvent[]) => Promise<Record[]>;
|
|
30
|
+
deleteRecordSameRowData: (recordName: string, records: EntityIdRef[], events?: RecordMutationEvent[], inSameRowDataOp?: boolean) => Promise<Record[]>;
|
|
31
|
+
flashOutCombinedRecordsAndMergedLinks: (newEntityData: NewRecordData, events?: RecordMutationEvent[], reason?: string) => Promise<{
|
|
32
|
+
[k: string]: RawEntityData;
|
|
33
|
+
}>;
|
|
34
|
+
relocateCombinedRecordDataForLink: (linkName: string, matchExpression: MatchExpressionData, moveSource: boolean, events?: RecordMutationEvent[]) => Promise<Record[]>;
|
|
35
|
+
});
|
|
36
|
+
/**
|
|
37
|
+
* 创建记录依赖
|
|
38
|
+
* 处理往自身合并的需要新建的关系和 record
|
|
39
|
+
*/
|
|
40
|
+
createRecordDependency(newRecordData: NewRecordData, events?: RecordMutationEvent[]): Promise<NewRecordData>;
|
|
41
|
+
/**
|
|
42
|
+
* 创建记录(主入口)
|
|
43
|
+
*/
|
|
44
|
+
createRecord(newEntityData: NewRecordData, queryName?: string, events?: RecordMutationEvent[]): Promise<EntityIdRef>;
|
|
45
|
+
/**
|
|
46
|
+
* 预处理同行数据
|
|
47
|
+
* CAUTION 因为这里分配了 id,并且所有的判断逻辑都在,所以事件也放在这里处理,而不是真实插入或者更新数据的时候。
|
|
48
|
+
*/
|
|
49
|
+
preprocessSameRowData(newEntityData: NewRecordData, isUpdate?: boolean, events?: RecordMutationEvent[], oldRecord?: Record): Promise<NewRecordData>;
|
|
50
|
+
/**
|
|
51
|
+
* 插入同行数据
|
|
52
|
+
*/
|
|
53
|
+
insertSameRowData(newEntityData: NewRecordData, queryName?: string, events?: RecordMutationEvent[]): Promise<EntityIdRef>;
|
|
54
|
+
/**
|
|
55
|
+
* 处理创建时的关联关系
|
|
56
|
+
*/
|
|
57
|
+
handleCreationReliance(newEntityData: NewRecordData, events?: RecordMutationEvent[]): Promise<object>;
|
|
58
|
+
/**
|
|
59
|
+
* 从记录添加链接
|
|
60
|
+
*/
|
|
61
|
+
addLinkFromRecord(entity: string, attribute: string, entityId: string, relatedEntityId: string, attributes?: RawEntityData, events?: RecordMutationEvent[]): Promise<EntityIdRef>;
|
|
62
|
+
/**
|
|
63
|
+
* 添加链接
|
|
64
|
+
*/
|
|
65
|
+
addLink(linkName: string, sourceId: string, targetId: string, attributes?: RawEntityData, moveSource?: boolean, events?: RecordMutationEvent[]): Promise<EntityIdRef>;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=CreationExecutor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CreationExecutor.d.ts","sourceRoot":"","sources":["../../../src/storage/erstorage/CreationExecutor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { EntityIdRef, Database, RecordMutationEvent } from '../../runtime';
|
|
2
|
+
import { EntityToTableMap } from './EntityToTableMap.js';
|
|
3
|
+
import { MatchExpressionData } from './MatchExp.js';
|
|
4
|
+
import { RecordQuery } from './RecordQuery.js';
|
|
5
|
+
import { SQLBuilder } from './SQLBuilder.js';
|
|
6
|
+
import { FilteredEntityManager } from './FilteredEntityManager.js';
|
|
7
|
+
import { Record } from './RecordQueryAgent.js';
|
|
8
|
+
import { QueryExecutor } from './QueryExecutor.js';
|
|
9
|
+
/**
|
|
10
|
+
* DeletionExecutor - 删除操作执行器
|
|
11
|
+
*
|
|
12
|
+
* 职责:
|
|
13
|
+
* 1. 记录删除(entity/relation)
|
|
14
|
+
* 2. 关系解除(unlink)
|
|
15
|
+
* 3. 依赖删除(reliance deletion)
|
|
16
|
+
* 4. 同行数据删除(same-row data deletion)
|
|
17
|
+
* 5. 级联删除(cascading deletion)
|
|
18
|
+
* 6. 删除事件生成(deletion events)
|
|
19
|
+
*/
|
|
20
|
+
export declare class DeletionExecutor {
|
|
21
|
+
private map;
|
|
22
|
+
private database;
|
|
23
|
+
private queryExecutor;
|
|
24
|
+
private helper;
|
|
25
|
+
private sqlBuilder;
|
|
26
|
+
private filteredEntityManager;
|
|
27
|
+
constructor(map: EntityToTableMap, database: Database, queryExecutor: QueryExecutor, filteredEntityManager: FilteredEntityManager, sqlBuilder: SQLBuilder, helper: {
|
|
28
|
+
findRecords: (entityQuery: RecordQuery, queryName: string) => Promise<Record[]>;
|
|
29
|
+
relocateCombinedRecordDataForLink: (linkName: string, matchExpression: MatchExpressionData, moveSource: boolean, events?: RecordMutationEvent[]) => Promise<Record[]>;
|
|
30
|
+
});
|
|
31
|
+
/**
|
|
32
|
+
* 删除记录(主入口)
|
|
33
|
+
*/
|
|
34
|
+
deleteRecord(recordName: string, matchExp: MatchExpressionData, events?: RecordMutationEvent[], inSameRowDataOp?: boolean): Promise<Record[]>;
|
|
35
|
+
/**
|
|
36
|
+
* 删除记录的同行数据
|
|
37
|
+
* 这里会把同表的 reliance,以及 reliance 的 reliance 都删除掉
|
|
38
|
+
*/
|
|
39
|
+
deleteRecordSameRowData(recordName: string, records: EntityIdRef[], events?: RecordMutationEvent[], inSameRowDataOp?: boolean): Promise<Record[]>;
|
|
40
|
+
/**
|
|
41
|
+
* 处理被删除记录的依赖关系
|
|
42
|
+
*/
|
|
43
|
+
handleDeletedRecordReliance(recordName: string, record: EntityIdRef, events?: RecordMutationEvent[]): Promise<EntityIdRef>;
|
|
44
|
+
/**
|
|
45
|
+
* 删除非依赖的独立链接记录
|
|
46
|
+
*/
|
|
47
|
+
deleteNotReliantSeparateLinkRecords(recordName: string, records: EntityIdRef[], events?: RecordMutationEvent[]): Promise<void>;
|
|
48
|
+
/**
|
|
49
|
+
* 删除不同表中的依赖实体
|
|
50
|
+
*/
|
|
51
|
+
deleteDifferentTableReliance(recordName: string, records: EntityIdRef[], events?: RecordMutationEvent[]): Promise<void>;
|
|
52
|
+
/**
|
|
53
|
+
* 解除链接
|
|
54
|
+
*/
|
|
55
|
+
unlink(linkName: string, matchExpressionData: MatchExpressionData, moveSource?: boolean, reason?: string, events?: RecordMutationEvent[]): Promise<Record[]>;
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=DeletionExecutor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DeletionExecutor.d.ts","sourceRoot":"","sources":["../../../src/storage/erstorage/DeletionExecutor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAY,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAE9D,OAAO,EAAe,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE5D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD;;;;;;;;;;GAUG;AACH,qBAAa,gBAAgB;IAKrB,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,aAAa;IAGrB,OAAO,CAAC,MAAM;IATlB,OAAO,CAAC,UAAU,CAAY;IAC9B,OAAO,CAAC,qBAAqB,CAAuB;gBAGxC,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,QAAQ,EAClB,aAAa,EAAE,aAAa,EACpC,qBAAqB,EAAE,qBAAqB,EAC5C,UAAU,EAAE,UAAU,EACd,MAAM,EAAE;QACZ,WAAW,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAChF,iCAAiC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,mBAAmB,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,mBAAmB,EAAE,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;KACxK;IAML;;OAEG;IACG,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,CAAC,EAAE,mBAAmB,EAAE,EAAE,eAAe,UAAQ,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAsCjJ;;;OAGG;IACG,uBAAuB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,MAAM,CAAC,EAAE,mBAAmB,EAAE,EAAE,eAAe,UAAQ,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAoIrJ;;OAEG;IACG,2BAA2B,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,mBAAmB,EAAE;IAUzG;;OAEG;IACG,mCAAmC,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,MAAM,CAAC,EAAE,mBAAmB,EAAE;IAgBpH;;OAEG;IACG,4BAA4B,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,MAAM,CAAC,EAAE,mBAAmB,EAAE;IAyB7G;;OAEG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,UAAU,UAAQ,EAAE,MAAM,SAAK,EAAE,MAAM,CAAC,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAU/J"}
|
|
@@ -19,7 +19,7 @@ export declare class EntityQueryHandle {
|
|
|
19
19
|
addRelationByNameById(relationName: string, sourceEntityId: string, targetEntityId: string, rawData?: RawEntityData, events?: RecordMutationEvent[]): Promise<EntityIdRef>;
|
|
20
20
|
addRelationById(entity: string, attribute: string, entityId: string, attributeEntityId: string, relationData?: RawEntityData, events?: RecordMutationEvent[]): Promise<EntityIdRef>;
|
|
21
21
|
updateRelationByName(relationName: string, matchExpressionData: MatchExpressionData, rawData: RawEntityData, events?: RecordMutationEvent[]): Promise<Record[]>;
|
|
22
|
-
removeRelationByName(relationName: string, matchExpressionData: MatchExpressionData, events?: RecordMutationEvent[]): Promise<
|
|
22
|
+
removeRelationByName(relationName: string, matchExpressionData: MatchExpressionData, events?: RecordMutationEvent[]): Promise<Record[]>;
|
|
23
23
|
findRelationByName(relationName: string, matchExpressionData?: MatchExpressionData, modifierData?: ModifierData, attributeQueryData?: AttributeQueryData): Promise<Record[]>;
|
|
24
24
|
findOneRelationByName(relationName: string, matchExpressionData: MatchExpressionData, modifierData?: ModifierData, attributeQueryData?: AttributeQueryData): Promise<Record>;
|
|
25
25
|
findPath(entity: string, attribute: string, entityId: string, ancestorId: string): Promise<Record[] | undefined>;
|
|
@@ -2,6 +2,7 @@ import { AttributeInfo } from './AttributeInfo.js';
|
|
|
2
2
|
import { RecordInfo } from './RecordInfo.js';
|
|
3
3
|
import { LinkInfo } from './LinkInfo.js';
|
|
4
4
|
import { MatchExpressionData } from './MatchExp.js';
|
|
5
|
+
import { AliasManager } from './util/AliasManager.js';
|
|
5
6
|
export type ValueAttribute = {
|
|
6
7
|
name: string;
|
|
7
8
|
type: string;
|
|
@@ -85,7 +86,8 @@ type TableAndAliasStack = {
|
|
|
85
86
|
}[];
|
|
86
87
|
export declare class EntityToTableMap {
|
|
87
88
|
data: MapData;
|
|
88
|
-
|
|
89
|
+
aliasManager?: AliasManager | undefined;
|
|
90
|
+
constructor(data: MapData, aliasManager?: AliasManager | undefined);
|
|
89
91
|
getRecord(recordName: string): RecordMapItem;
|
|
90
92
|
getAttributeAndSymmetricDirection(rawAttributeName: string): [string, 'source' | 'target' | undefined];
|
|
91
93
|
getAttributeData(recordName: string, attributeName: string): ValueAttribute | RecordAttribute;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityToTableMap.d.ts","sourceRoot":"","sources":["../../../src/storage/erstorage/EntityToTableMap.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"EntityToTableMap.d.ts","sourceRoot":"","sources":["../../../src/storage/erstorage/EntityToTableMap.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAGtD,MAAM,MAAM,cAAc,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC;IAEb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,OAAO,CAAC;IAGrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IAEd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,GAAG,CAAC;IAChC,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,KAAK,GAAG,CAAA;CAC1D,CAAA;AAID,MAAM,MAAM,eAAe,GAAG;IAC1B,IAAI,EAAE,IAAI,CAAC;IACX,QAAQ,EAAE,IAAI,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IAEtB,QAAQ,CAAC,EAAG,OAAO,CAAC;IACpB,OAAO,EAAE,CAAC,GAAG,GAAC,GAAG,EAAE,GAAG,GAAC,GAAG,CAAC,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IAGnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAG,MAAM,CAAA;IAEf,UAAU,CAAC,EAAG,OAAO,CAAA;IAErB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,eAAe,CAAC,EAAE,GAAG,CAAA;IACrB,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,uBAAuB,CAAC,EAAE,mBAAmB,CAAC;IAC9C,sBAAsB,CAAC,EAAE,MAAM,CAAA;CAClC,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAExB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE;QACR,CAAC,CAAC,EAAC,MAAM,GAAG,cAAc,GAAC,eAAe,CAAA;KAC7C,CAAA;IACD,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,cAAc,CAAC,EAAG,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,mBAAmB,CAAC;IACtC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,uBAAuB,CAAC,EAAE,mBAAmB,CAAC;IAC9C,UAAU,CAAC,EAAG,MAAM,EAAE,CAAC;IAEvB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC5B,CAAA;AAED,KAAK,SAAS,GAAG;IACb,CAAC,CAAC,EAAC,MAAM,GAAG,aAAa,CAAA;CAC5B,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACtB,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,GAAC,SAAS,CAAC;IAEjC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAG3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAG,QAAQ,GAAC,QAAQ,GAAC,UAAU,CAAC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;IAGf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAE1B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,eAAe,CAAC,EAAE,GAAG,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,uBAAuB,CAAC,EAAE,mBAAmB,CAAA;CAChD,CAAA;AAED,KAAK,OAAO,GAAG;IACX,CAAC,CAAC,EAAC,MAAM,GAAG,WAAW,CAAA;CAC1B,CAAA;AAED,MAAM,MAAM,OAAO,GAAG;IAClB,OAAO,EAAE,SAAS,CAAA;IAClB,KAAK,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,KAAK,kBAAkB,GAAG;IACtB,KAAK,EAAC,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,aAAa,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAC,MAAM,CAAC;IAClB,SAAS,CAAC,EAAC,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,IAAI,EAAE,MAAM,EAAE,CAAA;CACjB,EAAE,CAAA;AAEH,qBAAa,gBAAgB;IACN,IAAI,EAAE,OAAO;IAAS,YAAY,CAAC,EAAE,YAAY;gBAAjD,IAAI,EAAE,OAAO,EAAS,YAAY,CAAC,EAAE,YAAY,YAAA;IAEpE,SAAS,CAAC,UAAU,EAAC,MAAM;IAG3B,iCAAiC,CAAC,gBAAgB,EAAC,MAAM,GAAG,CAAC,MAAM,EAAE,QAAQ,GAAC,QAAQ,GAAC,SAAS,CAAC;IAGjG,gBAAgB,CAAC,UAAU,EAAC,MAAM,EAAE,aAAa,EAAE,MAAM;IAGzD,aAAa,CAAC,UAAU,EAAC,MAAM;IAG/B,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAI,aAAa;IAQ9D,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;IAMpD,iBAAiB,CAAC,QAAQ,EAAE,MAAM;IAKlC,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,aAAa,GAAC,SAAS;IAuC1D,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,kBAAkB;IAsG7D,yBAAyB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,UAAQ,GAAG,CAAC,MAAM,EAAE,MAAM,EAAC,MAAM,CAAC;IAgCjH,2BAA2B,CAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,GAAC,SAAS;IAgBpE,4BAA4B,CAAE,QAAQ,EAAE,MAAM,EAAE,GAAI,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,GAAG,SAAS;IAapF,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAI,MAAM;IAyBnE,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;IAuB5C,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,GAAI,CAAC,aAAa,EAAE,EAAE,aAAa,EAAE,EAAE,aAAa,EAAE,CAAC;IAyBnH,oBAAoB,CAAC,UAAU,EAAC,MAAM,EAAE,aAAa,EAAE,MAAM,GAAE,MAAM;CAqGxE"}
|
|
@@ -2,7 +2,7 @@ import { BoolExp } from '../../shared';
|
|
|
2
2
|
import { EntityToTableMap } from './EntityToTableMap.js';
|
|
3
3
|
import { RecordQueryTree } from './RecordQuery.js';
|
|
4
4
|
import { Database } from '../../runtime';
|
|
5
|
-
import { PlaceholderGen } from './
|
|
5
|
+
import { PlaceholderGen } from './SQLBuilder.js';
|
|
6
6
|
export type MatchAtom = {
|
|
7
7
|
key: string;
|
|
8
8
|
value: [string, any];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MatchExp.d.ts","sourceRoot":"","sources":["../../../src/storage/erstorage/MatchExp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAwC,MAAM,SAAS,CAAC;AACvE,OAAO,EAAC,gBAAgB,EAAkB,MAAM,uBAAuB,CAAC;AAExE,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAC,QAAQ,EAAC,MAAM,UAAU,CAAC;AAClC,OAAO,EAAC,cAAc,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"MatchExp.d.ts","sourceRoot":"","sources":["../../../src/storage/erstorage/MatchExp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAwC,MAAM,SAAS,CAAC;AACvE,OAAO,EAAC,gBAAgB,EAAkB,MAAM,uBAAuB,CAAC;AAExE,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAC,QAAQ,EAAC,MAAM,UAAU,CAAC;AAClC,OAAO,EAAC,cAAc,EAAC,MAAM,iBAAiB,CAAC;AAE/C,MAAM,MAAM,SAAS,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAAE,CAAA;AACzF,MAAM,MAAM,mBAAmB,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;AAEpD,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG;IACrC,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,GAAG,EAAE,CAAA;IAEnB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAA;AAED,qBAAa,QAAQ;IA+DsB,GAAG,EAAE,gBAAgB;IAAqC,iBAAiB,CAAC,EAAE,MAAM;IAAS,YAAY,CAAC,EAAE,OAAO;WA9D5I,IAAI,CAAC,SAAS,EAAE,SAAS;WAQzB,UAAU,CAAC,SAAS,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE;WAYlD,SAAS,CAAC,UAAU,EAAE,SAAS,EAAE;IAQ/C;;;OAGG;WACW,YAAY,CAAC,UAAU,EAAE,mBAAmB,GAAG,MAAM,EAAE,EAAE;IA2BhE,eAAe,EAAE,eAAe,CAAA;IAChC,IAAI,CAAC,EAAE,mBAAmB,CAAA;IAC1B,UAAU,EAAE,MAAM,CAAA;gBACb,UAAU,EAAE,MAAM,EAAS,GAAG,EAAE,gBAAgB,EAAE,IAAI,CAAC,EAAE,mBAAmB,EAAS,iBAAiB,CAAC,EAAE,MAAM,YAAA,EAAS,YAAY,CAAC,EAAE,OAAO,YAAA;IAgB1J,uBAAuB,CAAC,SAAS,EAAE,mBAAmB,GAAG,mBAAmB;IA+C5E,cAAc,CAAC,SAAS,EAAE,mBAAmB,EAAE,eAAe,EAAE,eAAe;IA2C/E,iBAAiB,CAAC,kBAAkB,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAKjE,sBAAsB,CAAC,QAAQ,EAAE,MAAM;IASvC,kBAAkB,CAAC,gBAAgB,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,SAAS,EAAC,MAAM,EAAE,SAAS,EAAE,MAAM,GAAC,SAAS,EAAE,CAAC,EAAE,cAAc,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC;IAqDlL,yBAAyB,CAAC,CAAC,EAAE,cAAc,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI;IAsF3F,GAAG,CAAC,SAAS,EAAE,SAAS,GAAC,QAAQ,GAAG,QAAQ;IAa5C,MAAM,CAAC,aAAa,EAAE,MAAM;IA2D5B;;;OAGG;IACH,MAAM,IAAI,GAAG;IASb;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,gBAAgB,GAAG,QAAQ;CAU9D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NewRecordData.d.ts","sourceRoot":"","sources":["../../../src/storage/erstorage/NewRecordData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAkB,MAAM,uBAAuB,CAAC;AAEzE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAG/C,MAAM,MAAM,aAAa,GAAG;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,CAAA;AAEhD,MAAM,MAAM,aAAa,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,GAAG,CAAC;IACX,SAAS,CAAC,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,qBAAa,aAAa;IAiCH,GAAG,EAAE,gBAAgB;IAAS,kBAAkB,EAAE,MAAM;IAAS,OAAO,EAAE,aAAa;IAAS,IAAI,CAAC,EAAE,aAAa;IA/BhI,0BAA0B,EAAE,aAAa,EAAE,CAAK;IAEhD,4BAA4B,EAAE,aAAa,EAAE,CAAK;IAElD,2BAA2B,EAAE,aAAa,EAAE,CAAK;IAEjD,cAAc,CAAC,EAAE,aAAa,CAAA;IAE9B,kBAAkB,EAAG,aAAa,EAAE,CAAK;IAEzC,oBAAoB,EAAG,aAAa,EAAE,CAAK;IAE3C,mBAAmB,EAAE,aAAa,EAAE,CAAK;IAEzC,kCAAkC,EAAE,aAAa,EAAE,CAAK;IACxD,oCAAoC,EAAE,aAAa,EAAE,CAAK;IAC1D,mCAAmC,EAAE,aAAa,EAAE,CAAK;IAEzD,kBAAkB,EAAE,aAAa,EAAE,CAAK;IACxC,oBAAoB,EAAE,aAAa,EAAE,CAAK;IAC1C,mBAAmB,EAAE,aAAa,EAAE,CAAK;IAEzC,kBAAkB,EAAE,aAAa,EAAE,CAAK;IAExC,mBAAmB,EAAE,aAAa,EAAE,CAAK;IACzC,eAAe,EAAE,aAAa,EAAE,CAAK;IACrC,UAAU,EAAE,MAAM,CAAA;IAElB,mBAAmB,EAAE,aAAa,EAAE,CAAK;IAEzC,aAAa,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAK;gBAC5B,GAAG,EAAE,gBAAgB,EAAS,kBAAkB,EAAE,MAAM,EAAS,OAAO,EAAE,aAAa,EAAS,IAAI,CAAC,EAAE,aAAa,YAAA;
|
|
1
|
+
{"version":3,"file":"NewRecordData.d.ts","sourceRoot":"","sources":["../../../src/storage/erstorage/NewRecordData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAkB,MAAM,uBAAuB,CAAC;AAEzE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAG/C,MAAM,MAAM,aAAa,GAAG;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,CAAA;AAEhD,MAAM,MAAM,aAAa,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,GAAG,CAAC;IACX,SAAS,CAAC,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,qBAAa,aAAa;IAiCH,GAAG,EAAE,gBAAgB;IAAS,kBAAkB,EAAE,MAAM;IAAS,OAAO,EAAE,aAAa;IAAS,IAAI,CAAC,EAAE,aAAa;IA/BhI,0BAA0B,EAAE,aAAa,EAAE,CAAK;IAEhD,4BAA4B,EAAE,aAAa,EAAE,CAAK;IAElD,2BAA2B,EAAE,aAAa,EAAE,CAAK;IAEjD,cAAc,CAAC,EAAE,aAAa,CAAA;IAE9B,kBAAkB,EAAG,aAAa,EAAE,CAAK;IAEzC,oBAAoB,EAAG,aAAa,EAAE,CAAK;IAE3C,mBAAmB,EAAE,aAAa,EAAE,CAAK;IAEzC,kCAAkC,EAAE,aAAa,EAAE,CAAK;IACxD,oCAAoC,EAAE,aAAa,EAAE,CAAK;IAC1D,mCAAmC,EAAE,aAAa,EAAE,CAAK;IAEzD,kBAAkB,EAAE,aAAa,EAAE,CAAK;IACxC,oBAAoB,EAAE,aAAa,EAAE,CAAK;IAC1C,mBAAmB,EAAE,aAAa,EAAE,CAAK;IAEzC,kBAAkB,EAAE,aAAa,EAAE,CAAK;IAExC,mBAAmB,EAAE,aAAa,EAAE,CAAK;IACzC,eAAe,EAAE,aAAa,EAAE,CAAK;IACrC,UAAU,EAAE,MAAM,CAAA;IAElB,mBAAmB,EAAE,aAAa,EAAE,CAAK;IAEzC,aAAa,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAK;gBAC5B,GAAG,EAAE,gBAAgB,EAAS,kBAAkB,EAAE,MAAM,EAAS,OAAO,EAAE,aAAa,EAAS,IAAI,CAAC,EAAE,aAAa,YAAA;IAsFvI,KAAK,CAAC,iBAAiB,EAAE,aAAa;IAWtC,MAAM;;;IAKN,KAAK;IAIL,MAAM;IAGN,OAAO,IAAK,MAAM;IAIlB,uBAAuB,CAAC,SAAS,GAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAM,GAAI,aAAa,EAAE;CA4GhF"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { Database } from '../../runtime';
|
|
2
|
+
import { EntityToTableMap } from './EntityToTableMap.js';
|
|
3
|
+
import { SQLBuilder } from './SQLBuilder.js';
|
|
4
|
+
import { RecordQuery } from './RecordQuery.js';
|
|
5
|
+
import { RecursiveContext } from './util/RecursiveContext.js';
|
|
6
|
+
import { Record } from './RecordQueryAgent.js';
|
|
7
|
+
/**
|
|
8
|
+
* RecordQueryRef - 用于管理带标签的 RecordQuery 引用
|
|
9
|
+
*
|
|
10
|
+
* 在递归查询中,某些 RecordQuery 可能有 label 标记,
|
|
11
|
+
* 这个类负责收集所有带标签的查询,方便后续通过标签访问
|
|
12
|
+
*/
|
|
13
|
+
export declare class RecordQueryRef {
|
|
14
|
+
recordQuery: RecordQuery;
|
|
15
|
+
recordQueryByName: Map<string, RecordQuery>;
|
|
16
|
+
constructor(recordQuery: RecordQuery);
|
|
17
|
+
recursiveSaveLabelledRecordQuery(recordQuery: RecordQuery): void;
|
|
18
|
+
set(key: string, value: any): void;
|
|
19
|
+
get(key: string): RecordQuery | undefined;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* QueryExecutor - 查询执行器
|
|
23
|
+
*
|
|
24
|
+
* 职责:
|
|
25
|
+
* 1. 执行所有查询操作
|
|
26
|
+
* 2. 处理查询结果的结构化
|
|
27
|
+
* 3. 处理关联查询(x:1, x:n)
|
|
28
|
+
* 4. 处理递归查询
|
|
29
|
+
*
|
|
30
|
+
* 不负责:
|
|
31
|
+
* 1. SQL 构建(由 SQLBuilder 负责)
|
|
32
|
+
* 2. 数据变更操作(create/update/delete)
|
|
33
|
+
* 3. 事件处理
|
|
34
|
+
*/
|
|
35
|
+
export declare class QueryExecutor {
|
|
36
|
+
private map;
|
|
37
|
+
private database;
|
|
38
|
+
private sqlBuilder;
|
|
39
|
+
constructor(map: EntityToTableMap, database: Database, sqlBuilder: SQLBuilder);
|
|
40
|
+
/**
|
|
41
|
+
* 结构化原始返回结果
|
|
42
|
+
* @param rawReturns 数据库返回的原始结果
|
|
43
|
+
* @param JSONFields JSON 字段列表
|
|
44
|
+
* @param fieldAliasMap 字段别名映射
|
|
45
|
+
* @returns 结构化的 Record 数组
|
|
46
|
+
*/
|
|
47
|
+
private structureRawReturns;
|
|
48
|
+
/**
|
|
49
|
+
* 查找记录(主查询方法)
|
|
50
|
+
* CAUTION findRelatedRecords 中的递归调用会使得 includeRelationData 变为 true
|
|
51
|
+
*/
|
|
52
|
+
findRecords(entityQuery: RecordQuery, queryName?: string, recordQueryRef?: RecordQueryRef, context?: RecursiveContext): Promise<Record[]>;
|
|
53
|
+
/**
|
|
54
|
+
* 补全 x:1 遗留记录(x:1 主干上的 x:n 枝干)
|
|
55
|
+
*/
|
|
56
|
+
completeXToOneLeftoverRecords(entityQuery: RecordQuery, records: Record[], recordQueryRef: RecordQueryRef, context: RecursiveContext): Promise<void>;
|
|
57
|
+
/**
|
|
58
|
+
* 查找 x:many 关联记录
|
|
59
|
+
* CAUTION 任何两个具体的实体之间只能有一条关系,但是可以在关系上有多条数据。1:n 的数据
|
|
60
|
+
*/
|
|
61
|
+
findXToManyRelatedRecords(recordName: string, attributeName: string, recordId: string, relatedRecordQuery: RecordQuery, recordQueryRef: RecordQueryRef, context: RecursiveContext): Promise<Record[]>;
|
|
62
|
+
/**
|
|
63
|
+
* 查找树形结构的两个数据间的 path
|
|
64
|
+
*/
|
|
65
|
+
findPath(recordName: string, attributePathStr: string, startRecordId: string, endRecordId: string, limitLength?: number): Promise<Record[] | undefined>;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=QueryExecutor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QueryExecutor.d.ts","sourceRoot":"","sources":["../../../src/storage/erstorage/QueryExecutor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AACnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,WAAW,EAAe,MAAM,kBAAkB,CAAA;AAE3D,OAAO,EAAE,gBAAgB,EAAc,MAAM,4BAA4B,CAAA;AAMzE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAEnD;;;;;GAKG;AACH,qBAAa,cAAc;IAGJ,WAAW,EAAE,WAAW;IAFpC,iBAAiB,2BAAiC;gBAEtC,WAAW,EAAE,WAAW;IAK3C,gCAAgC,CAAC,WAAW,EAAE,WAAW;IASzD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG;IAI3B,GAAG,CAAC,GAAG,EAAE,MAAM;CAGlB;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,aAAa;IAElB,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,UAAU;gBAFV,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,UAAU;IAGlC;;;;;;OAMG;IACH,OAAO,CAAC,mBAAmB;IAqB3B;;;OAGG;IACG,WAAW,CACb,WAAW,EAAE,WAAW,EACxB,SAAS,SAAK,EACd,cAAc,CAAC,EAAE,cAAc,EAC/B,OAAO,GAAE,gBAAmD,GAC7D,OAAO,CAAC,MAAM,EAAE,CAAC;IA6HpB;;OAEG;IACG,6BAA6B,CAC/B,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,MAAM,EAAE,EACjB,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,gBAAgB;IAuD7B;;;OAGG;IACG,yBAAyB,CAC3B,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EAChB,kBAAkB,EAAE,WAAW,EAC/B,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,gBAAgB;IAmF7B;;OAEG;IACG,QAAQ,CACV,UAAU,EAAE,MAAM,EAClB,gBAAgB,EAAE,MAAM,EACxB,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,EACnB,WAAW,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC;CA0CnC"}
|
|
@@ -3,7 +3,7 @@ import { AttributeQuery, AttributeQueryData } from './AttributeQuery.js';
|
|
|
3
3
|
import { Modifier, ModifierData } from './Modifier.js';
|
|
4
4
|
import { EntityToTableMap } from './EntityToTableMap.js';
|
|
5
5
|
import { AttributeInfo } from './AttributeInfo.js';
|
|
6
|
-
import { RecursiveContext } from './
|
|
6
|
+
import { RecursiveContext } from './util/RecursiveContext.js';
|
|
7
7
|
export type RecordQueryData = {
|
|
8
8
|
matchExpression?: MatchExpressionData;
|
|
9
9
|
attributeQuery?: AttributeQueryData;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RecordQuery.d.ts","sourceRoot":"","sources":["../../../src/storage/erstorage/RecordQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAE,mBAAmB,EAAC,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAC,cAAc,EAAE,kBAAkB,EAAC,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAC,QAAQ,EAAE,YAAY,EAAC,MAAM,eAAe,CAAC;AACrD,OAAO,EAAC,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAC;AAEjD,OAAO,EAAC,gBAAgB,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"RecordQuery.d.ts","sourceRoot":"","sources":["../../../src/storage/erstorage/RecordQuery.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,97 +1,62 @@
|
|
|
1
1
|
import { EntityIdRef, Database, RecordMutationEvent } from '../../runtime';
|
|
2
|
-
import { BoolExp } from '../../shared';
|
|
3
2
|
import { EntityToTableMap } from './EntityToTableMap.js';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { RecordQuery, RecordQueryTree } from './RecordQuery.js';
|
|
3
|
+
import { MatchExpressionData } from './MatchExp.js';
|
|
4
|
+
import { RecordQuery } from './RecordQuery.js';
|
|
7
5
|
import { NewRecordData, RawEntityData } from './NewRecordData.js';
|
|
8
|
-
import {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
joinSource: [string, string];
|
|
12
|
-
joinIdField: [string, string];
|
|
13
|
-
joinTarget: [string, string];
|
|
14
|
-
}[];
|
|
15
|
-
declare class FieldAliasMap {
|
|
16
|
-
aliasToPath: Map<string, string[]>;
|
|
17
|
-
pathStrToAlias: Map<string, string>;
|
|
18
|
-
aliasPlaceholder: number;
|
|
19
|
-
getAlias(path: string[], forceCreate?: boolean): string | undefined;
|
|
20
|
-
getPath(alias: string): string[] | undefined;
|
|
21
|
-
}
|
|
6
|
+
import { PlaceholderGen } from './SQLBuilder.js';
|
|
7
|
+
import { RecursiveContext } from './util/RecursiveContext.js';
|
|
8
|
+
import { RecordQueryRef } from './QueryExecutor.js';
|
|
22
9
|
export type Record = EntityIdRef & {
|
|
23
10
|
[k: string]: any;
|
|
24
11
|
};
|
|
25
|
-
export declare const ROOT_LABEL = ":root";
|
|
26
|
-
export declare class RecursiveContext {
|
|
27
|
-
label: string;
|
|
28
|
-
parent?: RecursiveContext | undefined;
|
|
29
|
-
stack: any[];
|
|
30
|
-
constructor(label: string, parent?: RecursiveContext | undefined, stack?: any[]);
|
|
31
|
-
concat(value: any): RecursiveContext;
|
|
32
|
-
getStack(key: string): any[];
|
|
33
|
-
spawn(label: string): RecursiveContext;
|
|
34
|
-
}
|
|
35
|
-
declare class RecordQueryRef {
|
|
36
|
-
recordQuery: RecordQuery;
|
|
37
|
-
recordQueryByName: Map<string, RecordQuery>;
|
|
38
|
-
constructor(recordQuery: RecordQuery);
|
|
39
|
-
recursiveSaveLabelledRecordQuery(recordQuery: RecordQuery): void;
|
|
40
|
-
set(key: string, value: any): void;
|
|
41
|
-
get(key: string): RecordQuery | undefined;
|
|
42
|
-
}
|
|
43
|
-
export type PlaceholderGen = (name?: string) => string;
|
|
44
12
|
export declare class RecordQueryAgent {
|
|
45
13
|
map: EntityToTableMap;
|
|
46
14
|
database: Database;
|
|
47
15
|
getPlaceholder: () => PlaceholderGen;
|
|
48
16
|
private filteredEntityManager;
|
|
17
|
+
private sqlBuilder;
|
|
18
|
+
private queryExecutor;
|
|
19
|
+
private creationExecutor;
|
|
20
|
+
private deletionExecutor;
|
|
21
|
+
private updateExecutor;
|
|
49
22
|
constructor(map: EntityToTableMap, database: Database);
|
|
50
23
|
/**
|
|
51
24
|
* 初始化所有 filtered entity 的依赖关系
|
|
52
25
|
*/
|
|
53
26
|
private initializeFilteredEntityDependencies;
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
}[], JSONFields: string[], fieldAliasMap: FieldAliasMap): {}[];
|
|
27
|
+
/**
|
|
28
|
+
* 查找记录(主查询方法)- 委托给 QueryExecutor
|
|
29
|
+
* CAUTION findRelatedRecords 中的递归调用会使得 includeRelationData 变为 true
|
|
30
|
+
*/
|
|
59
31
|
findRecords(entityQuery: RecordQuery, queryName?: string, recordQueryRef?: RecordQueryRef, context?: RecursiveContext): Promise<Record[]>;
|
|
60
|
-
completeXToOneLeftoverRecords(entityQuery: RecordQuery, records: Record[], recordQueryRef: RecordQueryRef, context: RecursiveContext): Promise<void>;
|
|
61
|
-
findXToManyRelatedRecords(recordName: string, attributeName: string, recordId: string, relatedRecordQuery: RecordQuery, recordQueryRef: RecordQueryRef, context: RecursiveContext): Promise<Record[]>;
|
|
62
|
-
getJoinTables(queryTree: RecordQueryTree, context?: string[], parentInfos?: [string, string, string]): JoinTables;
|
|
63
|
-
withPrefix(prefix?: string): string;
|
|
64
|
-
buildSelectClause(queryFields: ReturnType<AttributeQuery["getValueAndXToOneRecordFields"]>, prefix?: string): [string, FieldAliasMap];
|
|
65
|
-
buildFromClause(entityName: string, prefix?: string): string;
|
|
66
|
-
buildJoinClause(joinTables: JoinTables, prefix?: string): string;
|
|
67
|
-
buildWhereClause(fieldMatchExp: BoolExp<FieldMatchAtom> | null, prefix: string | undefined, p: PlaceholderGen): [string, any[]];
|
|
68
|
-
parseMatchExpressionValue(entityName: string, fieldMatchExp: BoolExp<FieldMatchAtom> | null, contextRootEntity: string | undefined, p: PlaceholderGen): BoolExp<FieldMatchAtom> | null;
|
|
69
32
|
createRecordDependency(newRecordData: NewRecordData, events?: RecordMutationEvent[]): Promise<NewRecordData>;
|
|
70
33
|
createRecord(newEntityData: NewRecordData, queryName?: string, events?: RecordMutationEvent[]): Promise<EntityIdRef>;
|
|
71
34
|
preprocessSameRowData(newEntityData: NewRecordData, isUpdate?: boolean, events?: RecordMutationEvent[], oldRecord?: Record): Promise<NewRecordData>;
|
|
35
|
+
/**
|
|
36
|
+
* 处理合并记录和关系的闪出
|
|
37
|
+
* 用于创建和更新场景中处理合并记录的数据迁移
|
|
38
|
+
*/
|
|
72
39
|
flashOutCombinedRecordsAndMergedLinks(newEntityData: NewRecordData, events?: RecordMutationEvent[], reason?: string): Promise<{
|
|
73
40
|
[k: string]: RawEntityData;
|
|
74
41
|
}>;
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
42
|
+
/**
|
|
43
|
+
* 重定位合并记录数据用于链接
|
|
44
|
+
* 用于 unlink 场景中处理合并记录的数据迁移
|
|
45
|
+
*/
|
|
46
|
+
relocateCombinedRecordDataForLink(linkName: string, matchExpressionData: MatchExpressionData, moveSource?: boolean, events?: RecordMutationEvent[]): Promise<Record[]>;
|
|
47
|
+
updateRecord(entityName: string, matchExpressionData: MatchExpressionData, newEntityData: NewRecordData, events?: RecordMutationEvent[]): Promise<Record[]>;
|
|
79
48
|
updateRecordDataById(entityName: string, idRef: EntityIdRef, columnAndValue: {
|
|
80
49
|
field: string;
|
|
81
50
|
value: string;
|
|
82
51
|
}[]): Promise<EntityIdRef>;
|
|
83
|
-
updateSameRowData(entityName: string, matchedEntity: Record, newEntityDataWithDep: NewRecordData, events?: RecordMutationEvent[]): Promise<NewRecordData>;
|
|
84
|
-
handleUpdateReliance(entityName: string, matchedEntity: EntityIdRef, newEntityData: NewRecordData, events?: RecordMutationEvent[]): Promise<Record>;
|
|
85
|
-
updateRecord(entityName: string, matchExpressionData: MatchExpressionData, newEntityData: NewRecordData, events?: RecordMutationEvent[]): Promise<Record[]>;
|
|
86
52
|
deleteRecord(recordName: string, matchExp: MatchExpressionData, events?: RecordMutationEvent[], inSameRowDataOp?: boolean): Promise<Record[]>;
|
|
87
|
-
deleteRecordSameRowData(recordName: string, records: EntityIdRef[], events?: RecordMutationEvent[], inSameRowDataOp?: boolean): Promise<
|
|
88
|
-
handleDeletedRecordReliance(recordName: string, record: EntityIdRef, events?: RecordMutationEvent[]): Promise<EntityIdRef>;
|
|
89
|
-
deleteNotReliantSeparateLinkRecords(recordName: string, records: EntityIdRef[], events?: RecordMutationEvent[]): Promise<void>;
|
|
90
|
-
deleteDifferentTableReliance(recordName: string, records: EntityIdRef[], events?: RecordMutationEvent[]): Promise<void>;
|
|
53
|
+
deleteRecordSameRowData(recordName: string, records: EntityIdRef[], events?: RecordMutationEvent[], inSameRowDataOp?: boolean): Promise<Record[]>;
|
|
91
54
|
addLinkFromRecord(entity: string, attribute: string, entityId: string, relatedEntityId: string, attributes?: RawEntityData, events?: RecordMutationEvent[]): Promise<EntityIdRef>;
|
|
92
55
|
addLink(linkName: string, sourceId: string, targetId: string, attributes?: RawEntityData, moveSource?: boolean, events?: RecordMutationEvent[]): Promise<EntityIdRef>;
|
|
93
|
-
unlink(linkName: string, matchExpressionData: MatchExpressionData, moveSource?: boolean, reason?: string, events?: RecordMutationEvent[]): Promise<
|
|
56
|
+
unlink(linkName: string, matchExpressionData: MatchExpressionData, moveSource?: boolean, reason?: string, events?: RecordMutationEvent[]): Promise<Record[]>;
|
|
57
|
+
/**
|
|
58
|
+
* 查找树形结构的两个数据间的 path - 委托给 QueryExecutor
|
|
59
|
+
*/
|
|
94
60
|
findPath(recordName: string, attributePathStr: string, startRecordId: string, endRecordId: string, limitLength?: number): Promise<Record[] | undefined>;
|
|
95
61
|
}
|
|
96
|
-
export {};
|
|
97
62
|
//# sourceMappingURL=RecordQueryAgent.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RecordQueryAgent.d.ts","sourceRoot":"","sources":["../../../src/storage/erstorage/RecordQueryAgent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AACtE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"RecordQueryAgent.d.ts","sourceRoot":"","sources":["../../../src/storage/erstorage/RecordQueryAgent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { Database } from '../../runtime';
|
|
2
|
+
import { BoolExp } from '../../shared';
|
|
3
|
+
import { EntityToTableMap } from './EntityToTableMap.js';
|
|
4
|
+
import { FieldMatchAtom } from './MatchExp.js';
|
|
5
|
+
import { AttributeQuery } from './AttributeQuery.js';
|
|
6
|
+
import { RecordQuery, RecordQueryTree } from './RecordQuery.js';
|
|
7
|
+
import { Modifier } from './Modifier.js';
|
|
8
|
+
import { FieldAliasMap } from './util/FieldAliasMap.js';
|
|
9
|
+
/**
|
|
10
|
+
* JOIN 表信息
|
|
11
|
+
*/
|
|
12
|
+
export type JoinTables = {
|
|
13
|
+
for: any;
|
|
14
|
+
joinSource: [string, string];
|
|
15
|
+
joinIdField: [string, string];
|
|
16
|
+
joinTarget: [string, string];
|
|
17
|
+
}[];
|
|
18
|
+
/**
|
|
19
|
+
* 占位符生成器
|
|
20
|
+
*/
|
|
21
|
+
export type PlaceholderGen = (name?: string) => string;
|
|
22
|
+
/**
|
|
23
|
+
* SQLBuilder - 负责生成所有 SQL 语句
|
|
24
|
+
*
|
|
25
|
+
* 职责:
|
|
26
|
+
* 1. 构建 SELECT 查询(包括 JOIN、WHERE、MODIFIER 等)
|
|
27
|
+
* 2. 构建 INSERT 语句
|
|
28
|
+
* 3. 构建 UPDATE 语句
|
|
29
|
+
* 4. 构建 DELETE 语句
|
|
30
|
+
* 5. 处理字段别名和表别名
|
|
31
|
+
*
|
|
32
|
+
* 不负责:
|
|
33
|
+
* 1. 执行 SQL
|
|
34
|
+
* 2. 处理查询结果
|
|
35
|
+
* 3. 管理事务
|
|
36
|
+
*/
|
|
37
|
+
export declare class SQLBuilder {
|
|
38
|
+
map: EntityToTableMap;
|
|
39
|
+
database: Database;
|
|
40
|
+
private getPlaceholder;
|
|
41
|
+
constructor(map: EntityToTableMap, database: Database);
|
|
42
|
+
/**
|
|
43
|
+
* 构建完整的 xToOne 查询 SQL
|
|
44
|
+
*
|
|
45
|
+
* @param recordQuery 查询对象
|
|
46
|
+
* @param prefix 前缀(用于子查询)
|
|
47
|
+
* @param parentP 父查询的占位符生成器
|
|
48
|
+
* @returns [SQL字符串, 参数数组, 字段别名映射]
|
|
49
|
+
*/
|
|
50
|
+
buildXToOneFindQuery(recordQuery: RecordQuery, prefix?: string, parentP?: PlaceholderGen): [string, any[], FieldAliasMap];
|
|
51
|
+
/**
|
|
52
|
+
* 构建 SELECT 子句
|
|
53
|
+
*/
|
|
54
|
+
buildSelectClause(queryFields: ReturnType<AttributeQuery["getValueAndXToOneRecordFields"]>, prefix?: string): [string, FieldAliasMap];
|
|
55
|
+
/**
|
|
56
|
+
* 构建 FROM 子句
|
|
57
|
+
*/
|
|
58
|
+
buildFromClause(entityName: string, prefix?: string): string;
|
|
59
|
+
/**
|
|
60
|
+
* 构建 JOIN 子句
|
|
61
|
+
*/
|
|
62
|
+
buildJoinClause(joinTables: JoinTables, prefix?: string): string;
|
|
63
|
+
/**
|
|
64
|
+
* 构建 WHERE 子句
|
|
65
|
+
*/
|
|
66
|
+
buildWhereClause(fieldMatchExp: BoolExp<FieldMatchAtom> | null, prefix: string | undefined, p: PlaceholderGen): [string, any[]];
|
|
67
|
+
/**
|
|
68
|
+
* 构建 MODIFIER 子句(ORDER BY, LIMIT, OFFSET)
|
|
69
|
+
*/
|
|
70
|
+
buildModifierClause(modifier: Modifier, prefix: string | undefined, fieldAliasMap: FieldAliasMap): string;
|
|
71
|
+
/**
|
|
72
|
+
* 获取需要 JOIN 的表信息
|
|
73
|
+
*
|
|
74
|
+
* 根据查询树递归计算所有需要 JOIN 的表
|
|
75
|
+
*/
|
|
76
|
+
getJoinTables(queryTree: RecordQueryTree, context?: string[], parentInfos?: [string, string, string]): JoinTables;
|
|
77
|
+
/**
|
|
78
|
+
* 解析匹配表达式中的 EXIST 子查询
|
|
79
|
+
*/
|
|
80
|
+
parseMatchExpressionValue(entityName: string, fieldMatchExp: BoolExp<FieldMatchAtom> | null, contextRootEntity: string | undefined, p: PlaceholderGen): BoolExp<FieldMatchAtom> | null;
|
|
81
|
+
/**
|
|
82
|
+
* 构建 INSERT 语句
|
|
83
|
+
*/
|
|
84
|
+
buildInsertSQL(recordName: string, fieldAndValues: Array<{
|
|
85
|
+
field: string;
|
|
86
|
+
value: any;
|
|
87
|
+
fieldType?: string;
|
|
88
|
+
}>): [string, any[]];
|
|
89
|
+
/**
|
|
90
|
+
* 构建 UPDATE 语句
|
|
91
|
+
*/
|
|
92
|
+
buildUpdateSQL(entityName: string, idRef: {
|
|
93
|
+
id: string | number;
|
|
94
|
+
}, columnAndValue: Array<{
|
|
95
|
+
field: string;
|
|
96
|
+
value: any;
|
|
97
|
+
}>): [string, any[]];
|
|
98
|
+
/**
|
|
99
|
+
* 构建 DELETE 语句
|
|
100
|
+
*/
|
|
101
|
+
buildDeleteSQL(recordName: string, idField: string, id: string | number): [string, any[]];
|
|
102
|
+
/**
|
|
103
|
+
* 构建批量字段置 NULL 的 UPDATE 语句
|
|
104
|
+
* 用于删除合表记录时的部分删除场景(当同一行还有其他记录的数据时)
|
|
105
|
+
*/
|
|
106
|
+
buildUpdateFieldsToNullSQL(recordName: string, fields: string[], idRef: {
|
|
107
|
+
id: string | number;
|
|
108
|
+
}): [string, any[]];
|
|
109
|
+
/**
|
|
110
|
+
* 构建批量 DELETE 语句(通过 WHERE 条件)
|
|
111
|
+
*/
|
|
112
|
+
buildDeleteByWhereSQL(recordName: string, matchExp: BoolExp<FieldMatchAtom>): [string, any[]];
|
|
113
|
+
/**
|
|
114
|
+
* 添加前缀
|
|
115
|
+
*/
|
|
116
|
+
withPrefix(prefix?: string): string;
|
|
117
|
+
/**
|
|
118
|
+
* 准备字段值(处理 JSON 等特殊类型)
|
|
119
|
+
*/
|
|
120
|
+
prepareFieldValue(value: any, fieldType?: string): any;
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=SQLBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SQLBuilder.d.ts","sourceRoot":"","sources":["../../../src/storage/erstorage/SQLBuilder.ts"],"names":[],"mappings":"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"}
|