ts-sql-query
Version:
Type-safe SQL query builder like QueryDSL or JOOQ in Java or Linq in .Net for TypeScript with MariaDB, MySql, Oracle, PostgreSql, Sqlite and SqlServer support.
39 lines (38 loc) • 2.71 kB
TypeScript
import { HasIsValue, ITableOrView } from "../utils/ITableOrView";
import type { Column, ColumnWithDefaultValue, ComputedColumn, OptionalColumn, PrimaryKeyAutogeneratedColumn, PrimaryKeyColumn, __ColumnPrivate } from "../utils/Column";
import type { TypeAdapter } from "../TypeAdapter";
import type { QueryColumns, SqlBuilder, ToSql } from "../sqlBuilders/SqlBuilder";
import { ValueType } from "../expressions/values";
import { ValueSourceImpl } from "./ValueSourceImpl";
import { isColumnObject, type } from "../utils/symbols";
export declare class ColumnImpl extends ValueSourceImpl implements Column, __ColumnPrivate, ToSql {
[type]: 'column';
[isColumnObject]: true;
__name: string;
__tableOrView: ITableOrView<any>;
__hasDefault: boolean;
__isPrimaryKey: boolean;
__isAutogeneratedPrimaryKey: boolean;
__isComputed: boolean;
__sequenceName?: string;
constructor(table: ITableOrView<any>, name: string, valueType: ValueType, valueTypeName: string, typeAdapter: TypeAdapter | undefined);
__toSql(sqlBuilder: SqlBuilder, params: any[]): string;
__toSqlForCondition(sqlBuilder: SqlBuilder, params: any[]): string;
__asColumn(): this & Column;
__asOptionalColumn(): this & OptionalColumn;
__asColumnWithDefaultValue(): this & ColumnWithDefaultValue;
__asOptionalColumnWithDefaultValue(): this & OptionalColumn & ColumnWithDefaultValue;
__asAutogeneratedPrimaryKey(): this & ColumnWithDefaultValue & PrimaryKeyColumn & PrimaryKeyAutogeneratedColumn;
__asAutogeneratedPrimaryKeyBySequence(sequenceName: string): this & ColumnWithDefaultValue & PrimaryKeyColumn & PrimaryKeyAutogeneratedColumn;
__asPrimaryKey(): this & PrimaryKeyColumn;
__asComputedColumn(): this & ComputedColumn;
__asOptionalComputedColumn(): this & OptionalColumn & ComputedColumn;
__registerTableOrView(sqlBuilder: HasIsValue, requiredTablesOrViews: Set<ITableOrView<any>>): void;
__registerRequiredColumn(_sqlBuilder: HasIsValue, requiredColumns: Set<Column>, onlyForTablesOrViews: Set<ITableOrView<any>>): void;
__getOldValues(sqlBuilder: HasIsValue): ITableOrView<any> | undefined;
__getValuesForInsert(sqlBuilder: HasIsValue): ITableOrView<any> | undefined;
__isAllowed(sqlBuilder: HasIsValue): boolean;
}
export declare function createColumnsFrom(sqlBuilder: HasIsValue, columns: QueryColumns, target: QueryColumns, table: ITableOrView<any>): void;
export declare function createColumnsFromInnerObject(sqlBuilder: HasIsValue, columns: QueryColumns, target: QueryColumns, table: ITableOrView<any>, prefix: string): void;
export declare function getInnerObjetRuleToApply(sqlBuilder: HasIsValue, columns: QueryColumns): 1 | 2 | 3 | 4;