mirror of
https://github.com/lightningnetwork/lnd.git
synced 2025-03-13 11:09:23 +01:00
sqldb: add utility functions for SQL NULL types
This commit is contained in:
parent
74e7a50f4a
commit
5cf67c4440
1 changed files with 54 additions and 0 deletions
54
sqldb/sqlutils.go
Normal file
54
sqldb/sqlutils.go
Normal file
|
@ -0,0 +1,54 @@
|
|||
package sqldb
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
"time"
|
||||
|
||||
"golang.org/x/exp/constraints"
|
||||
)
|
||||
|
||||
// sqlInt32 turns a numerical integer type into the NullInt32 that sql/sqlc
|
||||
// uses when an integer field can be permitted to be NULL.
|
||||
//
|
||||
// We use this constraints.Integer constraint here which maps to all signed and
|
||||
// unsigned integer types.
|
||||
func sqlInt32[T constraints.Integer](num T) sql.NullInt32 {
|
||||
return sql.NullInt32{
|
||||
Int32: int32(num),
|
||||
Valid: true,
|
||||
}
|
||||
}
|
||||
|
||||
// sqlInt64 turns a numerical integer type into the NullInt64 that sql/sqlc
|
||||
// uses when an integer field can be permitted to be NULL.
|
||||
//
|
||||
// We use this constraints.Integer constraint here which maps to all signed and
|
||||
// unsigned integer types.
|
||||
func sqlInt64[T constraints.Integer](num T) sql.NullInt64 {
|
||||
return sql.NullInt64{
|
||||
Int64: int64(num),
|
||||
Valid: true,
|
||||
}
|
||||
}
|
||||
|
||||
// sqlStr turns a string into the NullString that sql/sqlc uses when a string
|
||||
// can be permitted to be NULL.
|
||||
func sqlStr(s string) sql.NullString {
|
||||
if s == "" {
|
||||
return sql.NullString{}
|
||||
}
|
||||
|
||||
return sql.NullString{
|
||||
String: s,
|
||||
Valid: true,
|
||||
}
|
||||
}
|
||||
|
||||
// sqlTime turns a time.Time into the NullTime that sql/sqlc uses when a time
|
||||
// can be permitted to be NULL.
|
||||
func sqlTime(t time.Time) sql.NullTime {
|
||||
return sql.NullTime{
|
||||
Time: t,
|
||||
Valid: true,
|
||||
}
|
||||
}
|
Loading…
Add table
Reference in a new issue