@vulcan-sql/core
Version:
Core package of VulcanSQL
62 lines (61 loc) • 3.36 kB
TypeScript
import { ComparisonPredicate, ComparisonOperator, LogicalOperator, BetweenPredicateInput, InPredicateInput, NullPredicateInput } from './commonTypes';
export interface JoinOnOperatorInput {
leftColumn: string;
operator: ComparisonOperator;
rightColumn: string;
}
export interface JoinOnClauseOperation {
command: ComparisonPredicate | LogicalOperator | null;
data?: JoinOnOperatorInput | BetweenPredicateInput | InPredicateInput | NullPredicateInput;
}
export interface IJoinOnClause {
operations: Array<JoinOnClauseOperation>;
on(leftColumn: string, operator: string, rightColumn: string): JoinOnClause;
onBetween(column: string, min: number, max: number): JoinOnClause;
onNotBetween(column: string, min: number, max: number): JoinOnClause;
onIn(column: string, values: string[] | number[]): JoinOnClause;
onNotIn(column: string, values: string[] | number[]): JoinOnClause;
onNull(column: string): JoinOnClause;
onNotNull(column: string): JoinOnClause;
andOn(leftColumn: string, operator: string, rightColumn: string): JoinOnClause;
andOnBetween(column: string, min: number, max: number): JoinOnClause;
andOnNotBetween(column: string, min: number, max: number): JoinOnClause;
andOnIn(column: string, values: string[] | number[]): JoinOnClause;
andOnNotIn(column: string, values: string[] | number[]): JoinOnClause;
andOnNull(column: string): JoinOnClause;
andOnNotNull(column: string): JoinOnClause;
orOn(leftColumn: string, operator: string, rightColumn: string): JoinOnClause;
orOnBetween(column: string, min: number, max: number): JoinOnClause;
orOnNotBetween(column: string, min: number, max: number): JoinOnClause;
orOnIn(column: string, values: string[] | number[]): JoinOnClause;
orOnNotIn(column: string, values: string[] | number[]): JoinOnClause;
orOnNull(column: string): JoinOnClause;
orOnNotNull(column: string): JoinOnClause;
}
export declare class JoinOnClause implements IJoinOnClause {
private _operations;
constructor();
get operations(): JoinOnClauseOperation[];
on(leftColumn: string, operator: string, rightColumn: string): this;
onBetween(column: string, min: number, max: number): this;
onNotBetween(column: string, min: number, max: number): this;
onIn(column: string, values: number[] | string[]): this;
onNotIn(column: string, values: number[] | string[]): this;
onNull(column: string): this;
onNotNull(column: string): this;
andOn(leftColumn: string, operator: string, rightColumn: string): this;
andOnBetween(column: string, min: number, max: number): this;
andOnNotBetween(column: string, min: number, max: number): this;
andOnIn(column: string, values: number[] | string[]): this;
andOnNotIn(column: string, values: number[] | string[]): this;
andOnNull(column: string): this;
andOnNotNull(column: string): this;
orOn(leftColumn: string, operator: string, rightColumn: string): this;
orOnBetween(column: string, min: number, max: number): this;
orOnNotBetween(column: string, min: number, max: number): this;
orOnIn(column: string, values: number[] | string[]): this;
orOnNotIn(column: string, values: number[] | string[]): this;
orOnNull(column: string): this;
orOnNotNull(column: string): this;
private recordOn;
}