Vendor packages update
This commit is contained in:
105
vendor/github.com/uptrace/bun/dialect/append.go
generated
vendored
Normal file
105
vendor/github.com/uptrace/bun/dialect/append.go
generated
vendored
Normal file
@@ -0,0 +1,105 @@
|
||||
package dialect
|
||||
|
||||
import (
|
||||
"math"
|
||||
"strconv"
|
||||
|
||||
"github.com/uptrace/bun/internal"
|
||||
)
|
||||
|
||||
func AppendError(b []byte, err error) []byte {
|
||||
b = append(b, "?!("...)
|
||||
b = append(b, err.Error()...)
|
||||
b = append(b, ')')
|
||||
return b
|
||||
}
|
||||
|
||||
func AppendNull(b []byte) []byte {
|
||||
return append(b, "NULL"...)
|
||||
}
|
||||
|
||||
func AppendBool(b []byte, v bool) []byte {
|
||||
if v {
|
||||
return append(b, "TRUE"...)
|
||||
}
|
||||
return append(b, "FALSE"...)
|
||||
}
|
||||
|
||||
func AppendFloat32(b []byte, num float32) []byte {
|
||||
return appendFloat(b, float64(num), 32)
|
||||
}
|
||||
|
||||
func AppendFloat64(b []byte, num float64) []byte {
|
||||
return appendFloat(b, num, 64)
|
||||
}
|
||||
|
||||
func appendFloat(b []byte, num float64, bitSize int) []byte {
|
||||
switch {
|
||||
case math.IsNaN(num):
|
||||
return append(b, "'NaN'"...)
|
||||
case math.IsInf(num, 1):
|
||||
return append(b, "'Infinity'"...)
|
||||
case math.IsInf(num, -1):
|
||||
return append(b, "'-Infinity'"...)
|
||||
default:
|
||||
return strconv.AppendFloat(b, num, 'f', -1, bitSize)
|
||||
}
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
func AppendName(b []byte, ident string, quote byte) []byte {
|
||||
return appendName(b, internal.Bytes(ident), quote)
|
||||
}
|
||||
|
||||
func appendName(b, ident []byte, quote byte) []byte {
|
||||
b = append(b, quote)
|
||||
for _, c := range ident {
|
||||
if c == quote {
|
||||
b = append(b, quote, quote)
|
||||
} else {
|
||||
b = append(b, c)
|
||||
}
|
||||
}
|
||||
b = append(b, quote)
|
||||
return b
|
||||
}
|
||||
|
||||
func AppendIdent(b []byte, name string, quote byte) []byte {
|
||||
return appendIdent(b, internal.Bytes(name), quote)
|
||||
}
|
||||
|
||||
func appendIdent(b, name []byte, quote byte) []byte {
|
||||
var quoted bool
|
||||
loop:
|
||||
for _, c := range name {
|
||||
switch c {
|
||||
case '*':
|
||||
if !quoted {
|
||||
b = append(b, '*')
|
||||
continue loop
|
||||
}
|
||||
case '.':
|
||||
if quoted {
|
||||
b = append(b, quote)
|
||||
quoted = false
|
||||
}
|
||||
b = append(b, '.')
|
||||
continue loop
|
||||
}
|
||||
|
||||
if !quoted {
|
||||
b = append(b, quote)
|
||||
quoted = true
|
||||
}
|
||||
if c == quote {
|
||||
b = append(b, quote, quote)
|
||||
} else {
|
||||
b = append(b, c)
|
||||
}
|
||||
}
|
||||
if quoted {
|
||||
b = append(b, quote)
|
||||
}
|
||||
return b
|
||||
}
|
||||
Reference in New Issue
Block a user