oak-db/lib/MySQL/translator.d.ts

108 lines
4.1 KiB
TypeScript

import { EntityDict, Q_FullTextValue, RefOrExpression, Ref, StorageSchema } from "oak-domain/lib/types";
import { EntityDict as BaseEntityDict } from 'oak-domain/lib/base-app-domain';
import { DataType } from "oak-domain/lib/types/schema/DataTypes";
import { SqlOperateOption, SqlSelectOption, SqlTranslator } from "../sqlTranslator";
import { CreateEntityOption } from '../types/Translator';
export interface MySqlSelectOption extends SqlSelectOption {
}
export interface MysqlOperateOption extends SqlOperateOption {
}
export declare class MySqlTranslator<ED extends EntityDict & BaseEntityDict> extends SqlTranslator<ED> {
protected getDefaultSelectFilter(alias: string, option?: MySqlSelectOption): string;
private makeUpSchema;
constructor(schema: StorageSchema<ED>);
static supportedDataTypes: DataType[];
static spatialTypes: DataType[];
static withLengthDataTypes: DataType[];
static withPrecisionDataTypes: DataType[];
static withScaleDataTypes: DataType[];
static unsignedAndZerofillTypes: DataType[];
static withWidthDataTypes: DataType[];
static dataTypeDefaults: {
varchar: {
length: number;
};
nvarchar: {
length: number;
};
"national varchar": {
length: number;
};
char: {
length: number;
};
binary: {
length: number;
};
varbinary: {
length: number;
};
decimal: {
precision: number;
scale: number;
};
dec: {
precision: number;
scale: number;
};
numeric: {
precision: number;
scale: number;
};
fixed: {
precision: number;
scale: number;
};
float: {
precision: number;
};
double: {
precision: number;
};
time: {
precision: number;
};
datetime: {
precision: number;
};
timestamp: {
precision: number;
};
bit: {
width: number;
};
int: {
width: number;
};
integer: {
width: number;
};
tinyint: {
width: number;
};
smallint: {
width: number;
};
mediumint: {
width: number;
};
bigint: {
width: number;
};
};
maxAliasLength: number;
private populateDataTypeDef;
protected translateAttrProjection(dataType: DataType, alias: string, attr: string): string;
protected translateObjectPredicate(predicate: Record<string, any>, alias: string, attr: string): string;
protected translateObjectProjection(projection: Record<string, any>, alias: string, attr: string, prefix: string): string;
protected translateAttrValue(dataType: DataType | Ref, value: any): string;
protected translateFullTextSearch<T extends keyof ED>(value: Q_FullTextValue, entity: T, alias: string): string;
translateCreateEntity<T extends keyof ED>(entity: T, options?: CreateEntityOption): string[];
private translateFnName;
private translateAttrInExpression;
protected translateExpression<T extends keyof ED>(entity: T, alias: string, expression: RefOrExpression<keyof ED[T]["OpSchema"]>, refDict: Record<string, [string, keyof ED]>): string;
protected populateSelectStmt<T extends keyof ED>(projectionText: string, fromText: string, aliasDict: Record<string, string>, filterText: string, sorterText?: string, groupByText?: string, indexFrom?: number, count?: number, option?: MySqlSelectOption): string;
protected populateUpdateStmt(updateText: string, fromText: string, aliasDict: Record<string, string>, filterText: string, sorterText?: string, indexFrom?: number, count?: number, option?: MysqlOperateOption): string;
protected populateRemoveStmt(updateText: string, fromText: string, aliasDict: Record<string, string>, filterText: string, sorterText?: string, indexFrom?: number, count?: number, option?: MysqlOperateOption): string;
}