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.
276 lines (275 loc) • 25.4 kB
TypeScript
import { ToSql, SqlBuilder, DeleteData, InsertData, UpdateData, SelectData, SqlOperation, WithQueryData, CompoundOperator, JoinData, QueryColumns, WithSelectData, WithValuesData, OrderByEntry } from "./SqlBuilder";
import { ITableOrView } from "../utils/ITableOrView";
import { AnyValueSource, IAggregatedArrayValueSource, IAnyBooleanValueSource, IExecutableDeleteQuery, IExecutableInsertQuery, IExecutableSelectQuery, IExecutableUpdateQuery, __AggregatedArrayColumns, ValueType } from "../expressions/values";
import { Column } from "../utils/Column";
import { DefaultTypeAdapter, TypeAdapter } from "../TypeAdapter";
import type { ConnectionConfiguration } from "../utils/ConnectionConfiguration";
import { QueryRunner } from "../queryRunners/QueryRunner";
import { RawFragment } from "../utils/RawFragment";
export declare class AbstractSqlBuilder implements SqlBuilder {
_defaultTypeAdapter: DefaultTypeAdapter;
_queryRunner: QueryRunner;
_connectionConfiguration: ConnectionConfiguration;
_operationsThatNeedParenthesis: {
[operation in keyof SqlOperation]?: boolean;
};
_unique: number;
constructor();
_generateUnique(): number;
_resetUnique(): void;
_getSafeTableOrView(params: any[]): ITableOrView<any> | undefined;
_setSafeTableOrView(params: any[], tableOrView: ITableOrView<any> | undefined): void;
_getForceAliasAs(params: any[]): string | undefined;
_setForceAliasAs(params: any[], value: string | undefined): void;
_getForceAliasFor(params: any[]): ITableOrView<any> | undefined;
_setForceAliasFor(params: any[], value: ITableOrView<any> | undefined): void;
_getFakeNamesOf(params: any[]): Set<ITableOrView<any>> | undefined;
_setFakeNamesOf(params: any[], value: Set<ITableOrView<any>> | undefined): void;
_generateExternalWith(params: any[]): boolean;
_setGenerateExternalWith(params: any[], value: boolean): void;
_isWithGenerated(params: any[]): boolean;
_setWithGenerated(params: any[], value: boolean): void;
_isWithGeneratedFinished(params: any[]): boolean;
_setWithGeneratedFinished(params: any[], value: boolean): void;
_isAggregateArrayWrapped(params: any[]): boolean;
_setAggregateArrayWrapped(params: any[], value: boolean): void;
_getResultingOperation(params: any[]): '_and' | '_or' | undefined;
_setResultingOperation(params: any[], value: '_and' | '_or' | undefined): void;
_getContainsInsertReturningClause(params: any[]): boolean | undefined;
_setContainsInsertReturningClause(params: any[], value: boolean | undefined): void;
_ensureRootQuery(query: SelectData | InsertData | UpdateData | DeleteData, params: any[]): void;
_isCurrentRootQuery(query: SelectData | InsertData | UpdateData | DeleteData, params: any[]): boolean;
_resetRootQuery(query: SelectData | InsertData | UpdateData | DeleteData, params: any[]): void;
_getRootQuery(params: any[]): object | undefined;
_setRootQuery(params: any[], value: object | undefined): void;
_isValue(value: any): boolean;
_isReservedKeyword(_word: string): boolean;
_forceAsIdentifier(identifier: string): string;
_escape(identifier: string, strict: boolean): string;
_needParenthesis(value: any): boolean;
_needParenthesisExcluding(value: any, excluding: keyof SqlOperation): boolean;
_appendColumnName(column: Column, params: any[]): string;
_appendColumnNameForCondition(column: Column, params: any[]): string;
_appendRawColumnName(column: Column, params: any[]): string;
_appendRawColumnNameForValuesForInsert(column: Column, _params: any[]): string;
_appendLiteralValue(value: number | string, _params: any[]): string;
_getTableOrViewVisibleName(table: ITableOrView<any>): string;
_supportTableAliasWithAs: boolean;
_appendTableOrViewName(table: ITableOrView<any>, params: any[]): string;
_appendTableOrViewNameForFrom(table: ITableOrView<any>, _params: any[]): string;
_appendTableOrViewNoAliasForFrom(_table: ITableOrView<any>, _params: any[]): string;
_appendRawFragment(rawFragment: RawFragment<any>, params: any[]): string;
_appendCondition(condition: IAnyBooleanValueSource<any, any>, params: any[]): string;
_appendConditionParenthesis(condition: IAnyBooleanValueSource<any, any>, params: any[]): string;
_appendConditionParenthesisExcuding(condition: IAnyBooleanValueSource<any, any>, params: any[], excluding: keyof SqlOperation): string;
_appendSql(value: ToSql | AnyValueSource | IExecutableSelectQuery<any, any, any, any> | IExecutableInsertQuery<any, any> | IExecutableUpdateQuery<any, any> | IExecutableDeleteQuery<any, any>, params: any[]): string;
_appendSqlParenthesis(value: ToSql | AnyValueSource, params: any[]): string;
_appendSqlParenthesisExcluding(value: ToSql | AnyValueSource, params: any[], excluding: keyof SqlOperation): string;
_appendSpreadValue(value: any, params: any[], columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined, forceTypeCast?: boolean): string;
_appendValue(value: any, params: any[], columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined, forceTypeCast?: boolean): string;
_appendValueParenthesis(value: any, params: any[], columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined, forceTypeCast?: boolean): string;
_appendValueParenthesisExcluding(value: any, params: any[], columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined, excluding: keyof SqlOperation, forceTypeCast?: boolean): string;
_appendConditionSql(value: ToSql | AnyValueSource, params: any[]): string;
_appendConditionSqlParenthesisExcluding(value: ToSql | AnyValueSource, params: any[], excluding: keyof SqlOperation): string;
_appendConditionSqlParenthesis(value: ToSql | AnyValueSource, params: any[]): string;
_appendConditionValue(value: any, params: any[], columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined, forceTypeCast?: boolean): string;
_appendConditionValueParenthesis(value: any, params: any[], columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined, forceTypeCast?: boolean): string;
_appendConditionValueParenthesisExcluding(value: any, params: any[], columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined, excluding: keyof SqlOperation, forceTypeCast?: boolean): string;
_transformParamToDB(value: any, _columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): any;
_appendParam(value: any, params: any[], _columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined, forceTypeCast: boolean): string;
_appendConditionParam(value: any, params: any[], columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined, forceTypeCast: boolean): string;
_appendColumnAlias(name: string, _params: any[]): string;
_appendColumnValue(value: AnyValueSource, params: any[], _isOutermostQuery: boolean): string;
_buildWith(withData: WithQueryData, params: any[]): string;
_buildWithValues(withValues: WithValuesData, params: any[]): string;
_appendWithColumns(_withData: WithSelectData, _params: any[]): string;
_appendWithKeyword(recursive: boolean): string;
_inlineSelectAsValue(query: SelectData, params: any[]): string;
_inlineSelectAsValueForCondition(query: SelectData, params: any[]): string;
_buildInlineSelect(query: SelectData, params: any[]): string;
_buildSelect(query: SelectData, params: any[]): string;
_appendCompoundOperator(compoundOperator: CompoundOperator, _params: any[]): string;
_buildSelectWithColumnsInfoForCompound(query: SelectData, params: any[], columnsForInsert: {
[name: string]: Column | undefined;
}, isOutermostQuery: boolean): string;
_buildFromJoins(tables: ITableOrView<any>[] | undefined, joins: JoinData[] | undefined, requiredTablesOrViews: Set<ITableOrView<any>> | undefined, params: any[]): string;
_buildSelectWithColumnsInfo(query: SelectData, params: any[], columnsForInsert: {
[name: string]: Column | undefined;
}, isOutermostQuery: boolean): string;
_appendSelectColumn(value: AnyValueSource, params: any[], columnForInsert: Column | undefined, isOutermostQuery: boolean): string;
_fromNoTable(): string;
_buildSelectOrderBy(query: SelectData, params: any[]): string;
_appendOrderByColumnAlias(entry: OrderByEntry, query: SelectData, params: any[]): string;
_appendOrderByColumnAliasInsensitive(entry: OrderByEntry, query: SelectData, params: any[]): string;
_isStringOrderByColumn(entry: OrderByEntry, query: SelectData): boolean;
_buildSelectLimitOffset(query: SelectData, params: any[]): string;
_insertSupportWith: boolean;
_buildInsertMultiple(query: InsertData, params: any[]): string;
_appendCustomBooleanRemapForColumnIfRequired(column: Column, value: any, params: any[]): string | null;
_appendValueForColumn(column: Column, value: any, params: any[], forceTypeCast?: boolean): string;
_buildInsertDefaultValues(query: InsertData, params: any[]): string;
_buildInsert(query: InsertData, params: any[]): string;
_buildInsertFromSelect(query: InsertData, params: any[]): string;
_buildInsertOutput(_query: InsertData, _params: any[]): string;
_buildInsertReturning(query: InsertData, params: any[]): string;
_buildQueryReturning(queryColumns: QueryColumns | undefined, params: any[], isOutermostQuery: boolean): string;
_buildInsertOnConflictBeforeInto(_query: InsertData, _params: any[]): string;
_buildInsertOnConflictBeforeReturning(query: InsertData, params: any[]): string;
_nextSequenceValue(_params: any[], sequenceName: string): string;
_currentSequenceValue(_params: any[], sequenceName: string): string;
_buildUpdate(query: UpdateData, params: any[]): string;
_extractAdditionalRequiredTablesForUpdate(query: UpdateData, _params: any[]): Set<ITableOrView<any>> | undefined;
_extractAdditionalRequiredColumnsForUpdate(query: UpdateData, requiredTables: Set<ITableOrView<any>> | undefined, _params: any[]): Set<Column> | undefined;
_updateNewAlias: string;
_updateOldValueInFrom: boolean;
_appendColumnNameForUpdate(column: Column, _params: any[]): string;
_appendUpdateOldValueForUpdate(query: UpdateData, updatePrimaryKey: boolean, _requiredTables: Set<ITableOrView<any>> | undefined, _params: any[]): string;
_buildAfterUpdateTable(_query: UpdateData, _params: any[]): string;
_buildUpdateFrom(query: UpdateData, updatePrimaryKey: boolean, requiredTables: Set<ITableOrView<any>> | undefined, requiredColumns: Set<Column> | undefined, params: any[]): string;
_buildUpdateOutput(_query: UpdateData, _params: any[]): string;
_buildUpdateReturning(query: UpdateData, params: any[]): string;
_buildDelete(query: DeleteData, params: any[]): string;
_buidDeleteUsing(query: DeleteData, params: any[]): string;
_buildDeleteOutput(_query: DeleteData, _params: any[]): string;
_buildDeleteReturning(query: DeleteData, params: any[]): string;
_isNull(params: any[], valueSource: ToSql): string;
_isNotNull(params: any[], valueSource: ToSql): string;
_hasSameBooleanTypeAdapter(valueSource: Column, value: Column): valueSource is Column;
_equals(params: any[], valueSource: ToSql, value: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
_notEquals(params: any[], valueSource: ToSql, value: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
_is(params: any[], valueSource: ToSql, value: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
_isNot(params: any[], valueSource: ToSql, value: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
_equalsInsensitive(params: any[], valueSource: ToSql, value: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
_notEqualsInsensitive(params: any[], valueSource: ToSql, value: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
_lessThan(params: any[], valueSource: ToSql, value: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
_greaterThan(params: any[], valueSource: ToSql, value: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
_lessOrEquals(params: any[], valueSource: ToSql, value: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
_greaterOrEquals(params: any[], valueSource: ToSql, value: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
_in(params: any[], valueSource: ToSql, value: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
_notIn(params: any[], valueSource: ToSql, value: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
_like(params: any[], valueSource: ToSql, value: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
_notLike(params: any[], valueSource: ToSql, value: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
_likeInsensitive(params: any[], valueSource: ToSql, value: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
_notLikeInsensitive(params: any[], valueSource: ToSql, value: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
_startsWith(params: any[], valueSource: ToSql, value: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
_notStartsWith(params: any[], valueSource: ToSql, value: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
_endsWith(params: any[], valueSource: ToSql, value: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
_notEndsWith(params: any[], valueSource: ToSql, value: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
_startsWithInsensitive(params: any[], valueSource: ToSql, value: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
_notStartsWithInsensitive(params: any[], valueSource: ToSql, value: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
_endsWithInsensitive(params: any[], valueSource: ToSql, value: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
_notEndsWithInsensitive(params: any[], valueSource: ToSql, value: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
_contains(params: any[], valueSource: ToSql, value: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
_notContains(params: any[], valueSource: ToSql, value: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
_containsInsensitive(params: any[], valueSource: ToSql, value: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
_notContainsInsensitive(params: any[], valueSource: ToSql, value: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
_between(params: any[], valueSource: ToSql, value: any, value2: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
_notBetween(params: any[], valueSource: ToSql, value: any, value2: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
_pi(_params: any): string;
_random(_params: any): string;
_currentDate(_params: any): string;
_currentTime(_params: any): string;
_currentTimestamp(_params: any): string;
_default(_params: any): string;
_trueValue: string;
_true(_params: any): string;
_trueValueForCondition: string;
_trueForCondition(_params: any): string;
_falseValue: string;
_false(_params: any): string;
_falseValueForCondition: string;
_falseForCondition(_params: any): string;
_const(params: any[], value: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
_constForCondition(params: any[], value: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
_exists(params: any[], value: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
_notExists(params: any[], value: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
_escapeLikeWildcard(params: any[], value: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
_negate(params: any[], valueSource: ToSql): string;
_toLowerCase(params: any[], valueSource: ToSql): string;
_toUpperCase(params: any[], valueSource: ToSql): string;
_length(params: any[], valueSource: ToSql): string;
_trim(params: any[], valueSource: ToSql): string;
_trimLeft(params: any[], valueSource: ToSql): string;
_trimRight(params: any[], valueSource: ToSql): string;
_reverse(params: any[], valueSource: ToSql): string;
_asDouble(params: any[], valueSource: ToSql): string;
_abs(params: any[], valueSource: ToSql): string;
_ceil(params: any[], valueSource: ToSql): string;
_floor(params: any[], valueSource: ToSql): string;
_round(params: any[], valueSource: ToSql): string;
_exp(params: any[], valueSource: ToSql): string;
_ln(params: any[], valueSource: ToSql): string;
_log10(params: any[], valueSource: ToSql): string;
_sqrt(params: any[], valueSource: ToSql): string;
_cbrt(params: any[], valueSource: ToSql): string;
_sign(params: any[], valueSource: ToSql): string;
_acos(params: any[], valueSource: ToSql): string;
_asin(params: any[], valueSource: ToSql): string;
_atan(params: any[], valueSource: ToSql): string;
_cos(params: any[], valueSource: ToSql): string;
_cot(params: any[], valueSource: ToSql): string;
_sin(params: any[], valueSource: ToSql): string;
_tan(params: any[], valueSource: ToSql): string;
_getDate(params: any[], valueSource: ToSql): string;
_getTime(params: any[], valueSource: ToSql): string;
_getFullYear(params: any[], valueSource: ToSql): string;
_getMonth(params: any[], valueSource: ToSql): string;
_getDay(params: any[], valueSource: ToSql): string;
_getHours(params: any[], valueSource: ToSql): string;
_getMinutes(params: any[], valueSource: ToSql): string;
_getSeconds(params: any[], valueSource: ToSql): string;
_getMilliseconds(params: any[], valueSource: ToSql): string;
_asString(params: any[], valueSource: ToSql): string;
_asNullValue(_params: any[], _columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
_prior(params: any[], valueSource: ToSql): string;
_valueWhenNull(params: any[], valueSource: ToSql, value: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
_nullIfValue(params: any[], valueSource: ToSql, value: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
_and(params: any[], valueSource: ToSql, value: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
_or(params: any[], valueSource: ToSql, value: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
_concat(params: any[], valueSource: ToSql, value: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
_substrToEnd(params: any[], valueSource: ToSql, value: any, _columnType: ValueType, _columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
_substringToEnd(params: any[], valueSource: ToSql, value: any, _columnType: ValueType, _columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
_getMathArgumentType(columnType: ValueType, _columnTypeName: string, value: any): ValueType;
_getMathArgumentTypeName(columnType: ValueType, columnTypeName: string, value: any): string;
_power(params: any[], valueSource: ToSql, value: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
_logn(params: any[], valueSource: ToSql, value: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
_roundn(params: any[], valueSource: ToSql, value: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
_minimumBetweenTwoValues(params: any[], valueSource: ToSql, value: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
_maximumBetweenTwoValues(params: any[], valueSource: ToSql, value: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
_add(params: any[], valueSource: ToSql, value: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
_substract(params: any[], valueSource: ToSql, value: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
_multiply(params: any[], valueSource: ToSql, value: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
_divide(params: any[], valueSource: ToSql, value: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
_modulo(params: any[], valueSource: ToSql, value: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
_atan2(params: any[], valueSource: ToSql, value: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
_substr(params: any[], valueSource: ToSql, value: any, value2: any, _columnType: ValueType, _columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
_substring(params: any[], valueSource: ToSql, value: any, value2: any, _columnType: ValueType, _columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
_replaceAll(params: any[], valueSource: ToSql, value: any, value2: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
_buildCallProcedure(params: any[], procedureName: string, procedureParams: AnyValueSource[]): string;
_buildCallFunction(params: any[], functionName: string, functionParams: AnyValueSource[]): string;
_fragment(params: any[], sql: TemplateStringsArray, sqlParams: AnyValueSource[]): string;
_rawFragment(params: any[], sql: TemplateStringsArray, sqlParams: Array<AnyValueSource | IExecutableSelectQuery<any, any, any, any> | IExecutableInsertQuery<any, any> | IExecutableUpdateQuery<any, any> | IExecutableDeleteQuery<any, any>>): string;
_rawFragmentTableName(params: any[], tableOrView: ITableOrView<any>): string;
_rawFragmentTableAlias(params: any[], tableOrView: ITableOrView<any>): string;
_countAll(_params: any[]): string;
_count(params: any[], value: any): string;
_countDistinct(params: any[], value: any): string;
_max(params: any[], value: any): string;
_min(params: any[], value: any): string;
_sum(params: any[], value: any): string;
_sumDistinct(params: any[], value: any): string;
_average(params: any[], value: any): string;
_averageDistinct(params: any[], value: any): string;
_stringConcat(params: any[], separator: string | undefined, value: any): string;
_stringConcatDistinct(params: any[], separator: string | undefined, value: any): string;
_aggregateValueAsArray(valueSource: IAggregatedArrayValueSource<any, any, any>, params: any[]): string;
_needAgggregateArrayColumnsTransformation(query: SelectData, _params: any[]): boolean;
_supportOrderByWhenAggregateArray: boolean;
_supportLimitWhenAggregateArray: boolean;
_needAgggregateArrayWrapper(query: SelectData, _params: any[]): boolean;
_buildSelectAsAggregatedArray(_query: SelectData, _params: any[]): string;
_appendAggragateArrayWrapperBegin(query: SelectData, params: any[], aggregateId: number): string;
_appendAggragateArrayWrapperEnd(_query: SelectData, _params: any[], aggregateId: number): string;
_appendAggragateArrayColumns(aggregatedArrayColumns: __AggregatedArrayColumns | AnyValueSource, aggregatedArrayDistinct: boolean, params: any[], _query: SelectData | undefined): string;
_appendAggragateArrayWrappedColumns(aggregatedArrayColumns: __AggregatedArrayColumns | AnyValueSource, _params: any[], aggregateId: number): string;
}