Add UUID helper function

UUID creates string literal expression from uuid object.
uuid can be any uuid type with a String method.
This commit is contained in:
go-jet 2021-05-11 13:20:07 +02:00
parent 256be8a406
commit f30cbb9e89
5 changed files with 19 additions and 2 deletions

View file

@ -409,3 +409,9 @@ func Raw(raw string, parent ...Expression) Expression {
return rawExp
}
// UUID is a helper function to create string literal expression from uuid object
// value can be any uuid type with a String method
func UUID(value fmt.Stringer) StringExpression {
return String(value.String())
}

View file

@ -51,6 +51,10 @@ var Decimal = jet.Decimal
// String creates new string literal expression
var String = jet.String
// UUID is a helper function to create string literal expression from uuid object
// value can be any uuid type with a String method
var UUID = jet.UUID
// Date creates new date literal
var Date = func(year int, month time.Month, day int) DateExpression {
return CAST(jet.Date(year, month, day)).AS_DATE()

View file

@ -44,6 +44,10 @@ var Decimal = jet.Decimal
// String creates new string literal expression
var String = jet.String
// UUID is a helper function to create string literal expression from uuid object
// value can be any uuid type with a String method
var UUID = jet.UUID
// Bytea craates new bytea literal expression
var Bytea = func(value string) StringExpression {
return CAST(jet.String(value)).AS_BYTEA()

View file

@ -78,7 +78,7 @@ func TestUUID(t *testing.T) {
require.NoError(t, err)
require.True(t, dest.StrUUID != nil)
require.True(t, dest.UUID.String() != uuid.UUID{}.String())
require.True(t, dest.StrUUID.String() != uuid.UUID{}.String())
require.Equal(t, dest.StrUUID.String(), "dc8daae3-b83b-11e9-8eb4-98ded00c39c6")
require.Equal(t, dest.StrUUID.String(), dest.BinUUID.String())
requireLogged(t, query)
}

View file

@ -15,9 +15,12 @@ import (
)
func TestUUIDType(t *testing.T) {
id := uuid.MustParse("a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11")
query := AllTypes.
SELECT(AllTypes.UUID, AllTypes.UUIDPtr).
WHERE(AllTypes.UUID.EQ(String("a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11")))
WHERE(AllTypes.UUID.EQ(UUID(id)))
testutils.AssertDebugStatementSql(t, query, `
SELECT all_types.uuid AS "all_types.uuid",