From 0a7e0b5392dddd900a205981430b86a92d046f87 Mon Sep 17 00:00:00 2001 From: go-jet Date: Mon, 17 Apr 2023 12:46:11 +0200 Subject: [PATCH] Expose internal RawBool type --- internal/jet/literal_expression.go | 5 +++++ mysql/expressions.go | 1 + mysql/expressions_test.go | 3 +++ postgres/expressions.go | 1 + postgres/expressions_test.go | 3 +++ sqlite/expressions.go | 1 + sqlite/expressions_test.go | 3 +++ 7 files changed, 17 insertions(+) diff --git a/internal/jet/literal_expression.go b/internal/jet/literal_expression.go index 3d89dc7b..8c28b446 100644 --- a/internal/jet/literal_expression.go +++ b/internal/jet/literal_expression.go @@ -445,6 +445,11 @@ func RawWithParent(raw string, parent ...Expression) Expression { return rawExp } +// RawBool helper that for raw string boolean expressions +func RawBool(raw string, namedArgs ...map[string]interface{}) BoolExpression { + return BoolExp(Raw(raw, namedArgs...)) +} + // RawInt helper that for integer expressions func RawInt(raw string, namedArgs ...map[string]interface{}) IntegerExpression { return IntExp(Raw(raw, namedArgs...)) diff --git a/mysql/expressions.go b/mysql/expressions.go index 5ab9c1f7..9fa95e6f 100644 --- a/mysql/expressions.go +++ b/mysql/expressions.go @@ -79,6 +79,7 @@ type RawArgs = map[string]interface{} var ( Raw = jet.Raw + RawBool = jet.RawBool RawInt = jet.RawInt RawFloat = jet.RawFloat RawString = jet.RawString diff --git a/mysql/expressions_test.go b/mysql/expressions_test.go index 2826c08d..39174b66 100644 --- a/mysql/expressions_test.go +++ b/mysql/expressions_test.go @@ -47,6 +47,9 @@ func TestRawInvalidArguments(t *testing.T) { } func TestRawType(t *testing.T) { + assertSerialize(t, RawBool("table.colInt < :float", RawArgs{":float": 11.22}).IS_FALSE(), + "(table.colInt < ?) IS FALSE", 11.22) + assertSerialize(t, RawFloat("table.colInt + &float", RawArgs{"&float": 11.22}).EQ(Float(3.14)), "((table.colInt + ?) = ?)", 11.22, 3.14) assertSerialize(t, RawString("table.colStr || str", RawArgs{"str": "doe"}).EQ(String("john doe")), diff --git a/postgres/expressions.go b/postgres/expressions.go index 60b0ee7b..faf153d2 100644 --- a/postgres/expressions.go +++ b/postgres/expressions.go @@ -90,6 +90,7 @@ type RawArgs = map[string]interface{} var ( Raw = jet.Raw + RawBool = jet.RawBool RawInt = jet.RawInt RawFloat = jet.RawFloat RawString = jet.RawString diff --git a/postgres/expressions_test.go b/postgres/expressions_test.go index 76403fbe..3ab361df 100644 --- a/postgres/expressions_test.go +++ b/postgres/expressions_test.go @@ -57,6 +57,9 @@ func TestRawInvalidArguments(t *testing.T) { } func TestRawHelperMethods(t *testing.T) { + assertSerialize(t, RawBool("table.colInt < :float", RawArgs{":float": 11.22}).IS_FALSE(), + "(table.colInt < $1) IS FALSE", 11.22) + assertSerialize(t, RawFloat("table.colInt + :float", RawArgs{":float": 11.22}).EQ(Float(3.14)), "((table.colInt + $1) = $2)", 11.22, 3.14) assertSerialize(t, RawString("table.colStr || str", RawArgs{"str": "doe"}).EQ(String("john doe")), diff --git a/sqlite/expressions.go b/sqlite/expressions.go index 8d457354..f1b0a0f7 100644 --- a/sqlite/expressions.go +++ b/sqlite/expressions.go @@ -82,6 +82,7 @@ type RawArgs = map[string]interface{} var ( Raw = jet.Raw + RawBool = jet.RawBool RawInt = jet.RawInt RawFloat = jet.RawFloat RawString = jet.RawString diff --git a/sqlite/expressions_test.go b/sqlite/expressions_test.go index 2c2bbef3..0f04df67 100644 --- a/sqlite/expressions_test.go +++ b/sqlite/expressions_test.go @@ -45,6 +45,9 @@ func TestRawInvalidArguments(t *testing.T) { } func TestRawType(t *testing.T) { + assertSerialize(t, RawBool("table.colInt < :float", RawArgs{":float": 11.22}).IS_FALSE(), + "(table.colInt < ?) IS FALSE", 11.22) + assertSerialize(t, RawFloat("table.colInt + &float", RawArgs{"&float": 11.22}).EQ(Float(3.14)), "((table.colInt + ?) = ?)", 11.22, 3.14) assertSerialize(t, RawString("table.colStr || str", RawArgs{"str": "doe"}).EQ(String("john doe")),