mirror of
https://github.com/lightningnetwork/lnd.git
synced 2025-11-10 22:27:22 +01:00
Here we start using the newly added message_flags and channel_flags columns of the channel_policies table. The test added previoulsy to demonstrate the bug is now updated to show that the bug has been fixed.
78 lines
2.0 KiB
Go
78 lines
2.0 KiB
Go
package sqldb
|
|
|
|
import (
|
|
"database/sql"
|
|
"time"
|
|
|
|
"golang.org/x/exp/constraints"
|
|
)
|
|
|
|
// NoOpReset is a no-op function that can be used as a default
|
|
// reset function ExecTx calls.
|
|
var NoOpReset = func() {}
|
|
|
|
// SQLInt16 turns a numerical integer type into the NullInt16 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 SQLInt16[T constraints.Integer](num T) sql.NullInt16 {
|
|
return sql.NullInt16{
|
|
Int16: int16(num),
|
|
Valid: true,
|
|
}
|
|
}
|
|
|
|
// 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,
|
|
}
|
|
}
|
|
|
|
// ExtractSqlInt16 turns a NullInt16 into a numerical type. This can be useful
|
|
// when reading directly from the database, as this function handles extracting
|
|
// the inner value from the "option"-like struct.
|
|
func ExtractSqlInt16[T constraints.Integer](num sql.NullInt16) T {
|
|
return T(num.Int16)
|
|
}
|