import { EntityDict, OperateOption, OperationResult, TxnOption, StorageSchema, SelectOption, AggregationResult } from 'oak-domain/lib/types'; import { EntityDict as BaseEntityDict } from 'oak-domain/lib/base-app-domain'; import { CascadeStore } from 'oak-domain/lib/store/CascadeStore'; import { PostgreSQLConfiguration } from './types/Configuration'; import { PostgreSQLConnector } from './connector'; import { PostgreSQLTranslator, PostgreSQLSelectOption, PostgreSQLOperateOption } from './translator'; import { AsyncContext } from 'oak-domain/lib/store/AsyncRowStore'; import { SyncContext } from 'oak-domain/lib/store/SyncRowStore'; import { CreateEntityOption } from '../types/Translator'; import { DbStore, Plan } from '../types/dbStore'; export declare class PostgreSQLStore> extends CascadeStore implements DbStore { protected countAbjointRow>(entity: T, selection: Pick, context: Cxt, option: OP): number; protected aggregateAbjointRowSync>(entity: T, aggregation: ED[T]['Aggregation'], context: Cxt, option: OP): AggregationResult; protected selectAbjointRow(entity: T, selection: ED[T]['Selection'], context: SyncContext, option: OP): Partial[]; protected updateAbjointRow(entity: T, operation: ED[T]['Operation'], context: SyncContext, option: OP): number; exec(script: string, txnId?: string): Promise; connector: PostgreSQLConnector; translator: PostgreSQLTranslator; constructor(storageSchema: StorageSchema, configuration: PostgreSQLConfiguration); checkRelationAsync>(entity: T, operation: Omit, context: Cxt): Promise; protected aggregateAbjointRowAsync>(entity: T, aggregation: ED[T]['Aggregation'], context: Cxt, option: OP): Promise>; aggregate(entity: T, aggregation: ED[T]['Aggregation'], context: Cxt, option: OP): Promise>; protected supportManyToOneJoin(): boolean; protected supportMultipleCreate(): boolean; private formResult; protected selectAbjointRowAsync(entity: T, selection: ED[T]['Selection'], context: AsyncContext, option?: PostgreSQLSelectOption): Promise[]>; protected updateAbjointRowAsync(entity: T, operation: ED[T]['Operation'], context: AsyncContext, option?: PostgreSQLOperateOption): Promise; operate(entity: T, operation: ED[T]['Operation'], context: Cxt, option: OperateOption): Promise>; select(entity: T, selection: ED[T]['Selection'], context: Cxt, option: SelectOption): Promise[]>; protected countAbjointRowAsync(entity: T, selection: Pick, context: AsyncContext, option: SelectOption): Promise; count(entity: T, selection: Pick, context: Cxt, option: SelectOption): Promise; begin(option?: TxnOption): Promise; commit(txnId: string): Promise; rollback(txnId: string): Promise; connect(): Promise; disconnect(): Promise; initialize(option: CreateEntityOption): Promise; readSchema(): Promise>; /** * 根据载入的dataSchema,和数据库中原来的schema,决定如何来upgrade * 制订出来的plan分为两阶段:增加阶段和削减阶段,在两个阶段之间,由用户来修正数据 */ makeUpgradePlan(): Promise; /** * 比较两个schema的不同,这里计算的是new对old的增量 * @param schemaOld * @param schemaNew */ diffSchema(schemaOld: StorageSchema, schemaNew: StorageSchema): Plan; }