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:
parent
256be8a406
commit
f30cbb9e89
5 changed files with 19 additions and 2 deletions
|
|
@ -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())
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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",
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue