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
|
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
|
// String creates new string literal expression
|
||||||
var String = jet.String
|
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
|
// Date creates new date literal
|
||||||
var Date = func(year int, month time.Month, day int) DateExpression {
|
var Date = func(year int, month time.Month, day int) DateExpression {
|
||||||
return CAST(jet.Date(year, month, day)).AS_DATE()
|
return CAST(jet.Date(year, month, day)).AS_DATE()
|
||||||
|
|
|
||||||
|
|
@ -44,6 +44,10 @@ var Decimal = jet.Decimal
|
||||||
// String creates new string literal expression
|
// String creates new string literal expression
|
||||||
var String = jet.String
|
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
|
// Bytea craates new bytea literal expression
|
||||||
var Bytea = func(value string) StringExpression {
|
var Bytea = func(value string) StringExpression {
|
||||||
return CAST(jet.String(value)).AS_BYTEA()
|
return CAST(jet.String(value)).AS_BYTEA()
|
||||||
|
|
|
||||||
|
|
@ -78,7 +78,7 @@ func TestUUID(t *testing.T) {
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
require.True(t, dest.StrUUID != nil)
|
require.True(t, dest.StrUUID != nil)
|
||||||
require.True(t, dest.UUID.String() != uuid.UUID{}.String())
|
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())
|
require.Equal(t, dest.StrUUID.String(), dest.BinUUID.String())
|
||||||
requireLogged(t, query)
|
requireLogged(t, query)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -15,9 +15,12 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestUUIDType(t *testing.T) {
|
func TestUUIDType(t *testing.T) {
|
||||||
|
|
||||||
|
id := uuid.MustParse("a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11")
|
||||||
|
|
||||||
query := AllTypes.
|
query := AllTypes.
|
||||||
SELECT(AllTypes.UUID, AllTypes.UUIDPtr).
|
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, `
|
testutils.AssertDebugStatementSql(t, query, `
|
||||||
SELECT all_types.uuid AS "all_types.uuid",
|
SELECT all_types.uuid AS "all_types.uuid",
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue