Dialect refactor improvements and clean up.
This commit is contained in:
parent
23fd973699
commit
647ef21aaf
52 changed files with 1097 additions and 671 deletions
|
|
@ -127,6 +127,7 @@ func TestExpressionCast(t *testing.T) {
|
|||
postgres.CAST(String("111")).AS_BIGINT(),
|
||||
postgres.CAST(String("11.23")).AS_NUMERIC(30, 10),
|
||||
postgres.CAST(String("11.23")).AS_NUMERIC(30),
|
||||
postgres.CAST(String("11.23")).AS_NUMERIC(),
|
||||
postgres.CAST(String("11.23")).AS_REAL(),
|
||||
postgres.CAST(String("11.23")).AS_DOUBLE(),
|
||||
postgres.CAST(Int(234)).AS_TEXT(),
|
||||
|
|
@ -162,45 +163,56 @@ func TestExpressionCast(t *testing.T) {
|
|||
|
||||
func TestStringOperators(t *testing.T) {
|
||||
query := AllTypes.SELECT(
|
||||
AllTypes.Text.EQ(AllTypes.Character),
|
||||
AllTypes.Text.EQ(AllTypes.Char),
|
||||
AllTypes.Text.EQ(String("Text")),
|
||||
AllTypes.Text.NOT_EQ(AllTypes.CharacterVaryingPtr),
|
||||
AllTypes.Text.NOT_EQ(AllTypes.VarCharPtr),
|
||||
AllTypes.Text.NOT_EQ(String("Text")),
|
||||
AllTypes.Text.GT(AllTypes.Text),
|
||||
AllTypes.Text.GT(String("Text")),
|
||||
AllTypes.Text.GT_EQ(AllTypes.TextPtr),
|
||||
AllTypes.Text.GT_EQ(String("Text")),
|
||||
AllTypes.Text.LT(AllTypes.Character),
|
||||
AllTypes.Text.LT(AllTypes.Char),
|
||||
AllTypes.Text.LT(String("Text")),
|
||||
AllTypes.Text.LT_EQ(AllTypes.CharacterVaryingPtr),
|
||||
AllTypes.Text.LT_EQ(AllTypes.VarChar),
|
||||
AllTypes.Text.LT_EQ(String("Text")),
|
||||
AllTypes.Text.CONCAT(String("text2")),
|
||||
AllTypes.Text.CONCAT(Int(11)),
|
||||
AllTypes.Text.LIKE(String("abc")),
|
||||
AllTypes.Text.NOT_LIKE(String("_b_")),
|
||||
AllTypes.Text.SIMILAR_TO(String("%(b|d)%")),
|
||||
AllTypes.Text.NOT_SIMILAR_TO(String("(b|c)%")),
|
||||
AllTypes.Text.REGEXP_LIKE(String("aba")),
|
||||
AllTypes.Text.REGEXP_LIKE(String("aba"), "c"),
|
||||
AllTypes.Text.REGEXP_LIKE(String("aba"), "i"),
|
||||
|
||||
BIT_LENGTH(AllTypes.Text),
|
||||
CHAR_LENGTH(AllTypes.Character),
|
||||
BIT_LENGTH(String("length")),
|
||||
CHAR_LENGTH(AllTypes.Char),
|
||||
CHAR_LENGTH(String("length")),
|
||||
OCTET_LENGTH(AllTypes.Text),
|
||||
LOWER(AllTypes.CharacterVaryingPtr),
|
||||
UPPER(AllTypes.Character),
|
||||
BTRIM(AllTypes.CharacterVarying),
|
||||
BTRIM(AllTypes.CharacterVarying, String("AA")),
|
||||
LTRIM(AllTypes.CharacterVarying),
|
||||
LTRIM(AllTypes.CharacterVarying, String("A")),
|
||||
RTRIM(AllTypes.CharacterVarying),
|
||||
RTRIM(AllTypes.CharacterVarying, String("B")),
|
||||
OCTET_LENGTH(String("length")),
|
||||
LOWER(AllTypes.VarCharPtr),
|
||||
LOWER(String("length")),
|
||||
UPPER(AllTypes.Char),
|
||||
UPPER(String("upper")),
|
||||
BTRIM(AllTypes.VarChar),
|
||||
BTRIM(String("btrim")),
|
||||
BTRIM(AllTypes.VarChar, String("AA")),
|
||||
BTRIM(String("btrim"), String("AA")),
|
||||
LTRIM(AllTypes.VarChar),
|
||||
LTRIM(String("ltrim")),
|
||||
LTRIM(AllTypes.VarChar, String("A")),
|
||||
LTRIM(String("Ltrim"), String("A")),
|
||||
RTRIM(String("rtrim")),
|
||||
RTRIM(AllTypes.VarChar, String("B")),
|
||||
CHR(Int(65)),
|
||||
//CONCAT(String("string1"), Int(1), Float(11.12)),
|
||||
//CONCAT_WS(String("string1"), Int(1), Float(11.12)),
|
||||
CONVERT(String("text_in_utf8"), String("UTF8"), String("LATIN1")),
|
||||
CONCAT(AllTypes.VarCharPtr, AllTypes.VarCharPtr, String("aaa"), Int(1)),
|
||||
CONCAT(Bool(false), Int(1), Float(22.2), String("test test")),
|
||||
CONCAT_WS(String("string1"), Int(1), Float(11.22), String("bytea"), Bool(false)), //Float(11.12)),
|
||||
CONVERT(String("bytea"), String("UTF8"), String("LATIN1")),
|
||||
CONVERT(AllTypes.Bytea, String("UTF8"), String("LATIN1")),
|
||||
CONVERT_FROM(String("text_in_utf8"), String("UTF8")),
|
||||
CONVERT_TO(String("text_in_utf8"), String("UTF8")),
|
||||
ENCODE(String("123\000\001"), String("base64")),
|
||||
DECODE(String("MTIzAAE="), String("base64")),
|
||||
//FORMAT(String("Hello %s, %1$s"), String("World")),
|
||||
FORMAT(String("Hello %s, %1$s"), String("World")),
|
||||
INITCAP(String("hi THOMAS")),
|
||||
LEFT(String("abcde"), Int(2)),
|
||||
RIGHT(String("abcde"), Int(2)),
|
||||
|
|
@ -210,13 +222,13 @@ func TestStringOperators(t *testing.T) {
|
|||
LPAD(String("Hi"), Int(5), String("xy")),
|
||||
RPAD(String("Hi"), Int(5)),
|
||||
RPAD(String("Hi"), Int(5), String("xy")),
|
||||
MD5(AllTypes.CharacterVarying),
|
||||
MD5(AllTypes.VarChar),
|
||||
REPEAT(AllTypes.Text, Int(33)),
|
||||
REPLACE(AllTypes.Character, String("BA"), String("AB")),
|
||||
REVERSE(AllTypes.CharacterVarying),
|
||||
REPLACE(AllTypes.Char, String("BA"), String("AB")),
|
||||
REVERSE(AllTypes.VarChar),
|
||||
STRPOS(AllTypes.Text, String("A")),
|
||||
SUBSTR(AllTypes.CharacterPtr, Int(3)),
|
||||
SUBSTR(AllTypes.CharacterPtr, Int(3), Int(2)),
|
||||
SUBSTR(AllTypes.Char, Int(3)),
|
||||
SUBSTR(AllTypes.CharPtr, Int(3), Int(2)),
|
||||
TO_HEX(AllTypes.IntegerPtr),
|
||||
)
|
||||
|
||||
|
|
@ -224,7 +236,7 @@ func TestStringOperators(t *testing.T) {
|
|||
|
||||
//fmt.Println(query.Sql())
|
||||
//fmt.Println(args[15])
|
||||
//fmt.Println(query.DebugSql())
|
||||
fmt.Println(query.Sql())
|
||||
|
||||
err := query.Query(db, &struct{}{})
|
||||
|
||||
|
|
@ -459,7 +471,7 @@ func TestIntegerOperators(t *testing.T) {
|
|||
AllTypes.SmallInt.BIT_XOR(Int(11)).AS("bit xor 2"),
|
||||
|
||||
BIT_NOT(MINUSi(AllTypes.SmallInt)).AS("bit_not_1"),
|
||||
BIT_NOT(MINUSi(Int(11, true))).AS("bit_not_2"),
|
||||
BIT_NOT(MINUSi(Int(11))).AS("bit_not_2"),
|
||||
|
||||
AllTypes.SmallInt.BIT_SHIFT_LEFT(AllTypes.SmallInt.DIV(Int(2))).AS("bit shift left 1"),
|
||||
AllTypes.SmallInt.BIT_SHIFT_LEFT(Int(4)).AS("bit shift left 2"),
|
||||
|
|
@ -513,8 +525,8 @@ SELECT all_types.big_int AS "all_types.big_int",
|
|||
(all_types.small_int | $16) AS "bit or 2",
|
||||
(all_types.small_int # all_types.small_int) AS "bit xor 1",
|
||||
(all_types.small_int # $17) AS "bit xor 2",
|
||||
(~ (- all_types.small_int)) AS "bit_not_1",
|
||||
(~ (- 11)) AS "bit_not_2",
|
||||
(~ all_types.small_int) AS "bit_not_1",
|
||||
(~ 11) AS "bit_not_2",
|
||||
(all_types.small_int << (all_types.small_int / $18)) AS "bit shift left 1",
|
||||
(all_types.small_int << $19) AS "bit shift left 2",
|
||||
(all_types.small_int >> (all_types.small_int / $20)) AS "bit shift right 1",
|
||||
|
|
@ -539,7 +551,7 @@ LIMIT $22;
|
|||
testutils.AssertJSONFile(t, dest, "./testdata/common/int_operators.json")
|
||||
}
|
||||
|
||||
func TestTimeOperators(t *testing.T) {
|
||||
func TestTimeExpression(t *testing.T) {
|
||||
query := AllTypes.SELECT(
|
||||
AllTypes.Time.EQ(AllTypes.Time),
|
||||
AllTypes.Time.EQ(Time(23, 6, 6, 1)),
|
||||
|
|
@ -799,10 +811,10 @@ var allTypesRow0 = model.AllTypes{
|
|||
Bigserial: 1,
|
||||
//MoneyPtr: nil,
|
||||
//Money:
|
||||
CharacterVaryingPtr: StringPtr("ABBA"),
|
||||
CharacterVarying: "ABBA",
|
||||
CharacterPtr: StringPtr("JOHN "),
|
||||
Character: "JOHN ",
|
||||
VarCharPtr: StringPtr("ABBA"),
|
||||
VarChar: "ABBA",
|
||||
CharPtr: StringPtr("JOHN "),
|
||||
Char: "JOHN ",
|
||||
TextPtr: StringPtr("Some text"),
|
||||
Text: "Some text",
|
||||
ByteaPtr: ByteArrayPtr([]byte("bytea")),
|
||||
|
|
@ -865,10 +877,10 @@ var allTypesRow1 = model.AllTypes{
|
|||
Bigserial: 2,
|
||||
//MoneyPtr: nil,
|
||||
//Money:
|
||||
CharacterVaryingPtr: nil,
|
||||
CharacterVarying: "ABBA",
|
||||
CharacterPtr: nil,
|
||||
Character: "JOHN ",
|
||||
VarCharPtr: nil,
|
||||
VarChar: "ABBA",
|
||||
CharPtr: nil,
|
||||
Char: "JOHN ",
|
||||
TextPtr: nil,
|
||||
Text: "Some text",
|
||||
ByteaPtr: nil,
|
||||
|
|
|
|||
|
|
@ -1273,8 +1273,6 @@ func TestAllSetOperators(t *testing.T) {
|
|||
UNION_ALL,
|
||||
INTERSECT,
|
||||
INTERSECT_ALL,
|
||||
//EXCEPT,
|
||||
//EXCEPT_ALL,
|
||||
}
|
||||
|
||||
expectedDestLen := []int{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue