diff --git a/internal/jet/expression.go b/internal/jet/expression.go index d62920c..05b1797 100644 --- a/internal/jet/expression.go +++ b/internal/jet/expression.go @@ -278,7 +278,7 @@ type customExpression struct { parts []Serializer } -func newCustomExpression(parts ...Serializer) Expression { +func CustomExpression(parts ...Serializer) Expression { ret := customExpression{ parts: parts, } diff --git a/internal/jet/func_expression.go b/internal/jet/func_expression.go index 6036b8d..7e49880 100644 --- a/internal/jet/func_expression.go +++ b/internal/jet/func_expression.go @@ -548,7 +548,7 @@ func TO_TIMESTAMP(timestampzStr, format StringExpression) TimestampzExpression { // EXTRACT extracts time component from time expression func EXTRACT(field string, from Expression) Expression { - return newCustomExpression(Token("EXTRACT("), Token(field), Token("FROM"), from, Token(")")) + return CustomExpression(Token("EXTRACT("), Token(field), Token("FROM"), from, Token(")")) } // CURRENT_DATE returns current date diff --git a/internal/jet/group_by_clause.go b/internal/jet/group_by_clause.go index 5f0c4b1..017bb4e 100644 --- a/internal/jet/group_by_clause.go +++ b/internal/jet/group_by_clause.go @@ -35,7 +35,7 @@ func GROUPING(expressions ...Expression) IntegerExpression { // WITH_ROLLUP operator is used with the GROUP BY clause to generate all prefixes of a group of columns including the empty list. // It creates extra rows in the result set that represent the subtotal values for each combination of columns. func WITH_ROLLUP(expressions ...Expression) GroupByClause { - return newCustomExpression( + return CustomExpression( parametersSerializer(expressions), Token("WITH ROLLUP"), ) } diff --git a/mysql/expressions.go b/mysql/expressions.go index b3f4ce5..53b1fa7 100644 --- a/mysql/expressions.go +++ b/mysql/expressions.go @@ -70,6 +70,12 @@ var DateTimeExp = jet.TimestampExp // Does not add sql cast to generated sql builder output. var TimestampExp = jet.TimestampExp +// CustomExpression is used to define custom expressions. +var CustomExpression = jet.CustomExpression + +// Token is used to define custom token in a custom expression. +type Token = jet.Token + // RawArgs is type used to pass optional arguments to Raw method type RawArgs = map[string]interface{} diff --git a/postgres/expressions.go b/postgres/expressions.go index 759f055..9872910 100644 --- a/postgres/expressions.go +++ b/postgres/expressions.go @@ -111,6 +111,12 @@ var ( TstzRangeExp = jet.TstzRangeExp ) +// CustomExpression is used to define custom expressions. +var CustomExpression = jet.CustomExpression + +// Token is used to define custom token in a custom expression. +type Token = jet.Token + // RawArgs is type used to pass optional arguments to Raw method type RawArgs = map[string]interface{} diff --git a/sqlite/expressions.go b/sqlite/expressions.go index 93bb7b7..42ccc96 100644 --- a/sqlite/expressions.go +++ b/sqlite/expressions.go @@ -73,6 +73,12 @@ var DateTimeExp = jet.TimestampExp // Does not add sql cast to generated sql builder output. var TimestampExp = jet.TimestampExp +// CustomExpression is used to define custom expressions. +var CustomExpression = jet.CustomExpression + +// Token is used to define custom token in a custom expression. +type Token = jet.Token + // RawArgs is type used to pass optional arguments to Raw method type RawArgs = map[string]interface{}