Documentation ¶
Index ¶
- Constants
- Variables
- func AnyCompare(element any, v Value) int
- func SecondaryMaxOrder() int
- func SecondaryMinOrder() int
- func SecondaryNullOrder() int
- func ToSecondaryOrder(dataType schema.FieldType, val Value) int
- type ArrayValue
- type BoolValue
- type BytesValue
- type Collation
- type Comparable
- type DateTimeValue
- type DoubleValue
- type IntValue
- type MaxValue
- type NullValue
- type StringValue
- type Value
Constants ¶
const (
INDEX_MAX_STRING_LEN = 64
)
const ( // SmallestNonZeroNormalFloat32 is the smallest positive non-zero floating number. The go package version // has the denormalized form which is higher than this. SmallestNonZeroNormalFloat32 = 0x1p-126 )
Variables ¶
var EmptyCollation = NewCollation()
Functions ¶
func AnyCompare ¶
func SecondaryMaxOrder ¶
func SecondaryMaxOrder() int
func SecondaryMinOrder ¶
func SecondaryMinOrder() int
func SecondaryNullOrder ¶
func SecondaryNullOrder() int
Types ¶
type ArrayValue ¶
type ArrayValue struct {
// contains filtered or unexported fields
}
func NewArrayValue ¶
func NewArrayValue(v []byte, decoded []any) *ArrayValue
func (*ArrayValue) AsInterface ¶
func (a *ArrayValue) AsInterface() any
func (*ArrayValue) DataType ¶
func (a *ArrayValue) DataType() schema.FieldType
func (*ArrayValue) String ¶
func (a *ArrayValue) String() string
type BytesValue ¶
type BytesValue []byte
func NewBytesValue ¶
func NewBytesValue(v []byte) *BytesValue
func (*BytesValue) AsInterface ¶
func (b *BytesValue) AsInterface() any
func (*BytesValue) DataType ¶
func (b *BytesValue) DataType() schema.FieldType
func (*BytesValue) String ¶
func (b *BytesValue) String() string
type Collation ¶
type Collation struct {
// contains filtered or unexported fields
}
func NewCollation ¶
func NewCollation() *Collation
func NewCollationFrom ¶
func NewSortKeyCollation ¶
func NewSortKeyCollation() *Collation
NewSortKeyCollation is used for with the secondary index. We generate a sort key when storing a string in the index and also use it when comparing strings when filtering.
func (*Collation) CompareString ¶
CompareString returns an integer comparing the two strings. The result will be 0 if a==b, -1 if a < b, and +1 if a > b.
func (*Collation) GenerateSortKey ¶
func (*Collation) IsCaseInsensitive ¶
func (*Collation) IsCaseSensitive ¶
func (*Collation) IsCollationSortKey ¶
type Comparable ¶
type Comparable interface { // CompareTo returns a value indicating the relationship between the receiver and the parameter. // // Returns a negative integer, zero, or a positive integer as the receiver is less than, equal // to, or greater than the parameter i.e. v1.CompareTo(v2) returns -1 if v1 < v2 CompareTo(v Value) (int, error) }
type DateTimeValue ¶
type DateTimeValue struct {
Value string
}
func NewDateTimeValue ¶
func NewDateTimeValue(v string) *DateTimeValue
func (*DateTimeValue) AsInterface ¶
func (d *DateTimeValue) AsInterface() any
func (*DateTimeValue) DataType ¶
func (d *DateTimeValue) DataType() schema.FieldType
func (*DateTimeValue) String ¶
func (d *DateTimeValue) String() string
type DoubleValue ¶
type DoubleValue struct { Double float64 Float *big.Float // contains filtered or unexported fields }
func NewDoubleUsingFloat ¶
func NewDoubleUsingFloat(v float64) *DoubleValue
func NewDoubleValue ¶
func NewDoubleValue(raw string) (*DoubleValue, error)
func (*DoubleValue) AsInterface ¶
func (d *DoubleValue) AsInterface() any
func (*DoubleValue) DataType ¶
func (d *DoubleValue) DataType() schema.FieldType
func (*DoubleValue) String ¶
func (d *DoubleValue) String() string
type MaxValue ¶
type MaxValue struct{}
func NewMaxValue ¶
func NewMaxValue() *MaxValue
func (*MaxValue) AsInterface ¶
type NullValue ¶
type NullValue struct{}
func NewNullValue ¶
func NewNullValue() *NullValue
func (*NullValue) AsInterface ¶
type StringValue ¶
func NewStringValue ¶
func NewStringValue(v string, collation *Collation) *StringValue
func (*StringValue) AsInterface ¶
func (s *StringValue) AsInterface() any
func (*StringValue) DataType ¶
func (s *StringValue) DataType() schema.FieldType
func (*StringValue) String ¶
func (s *StringValue) String() string
type Value ¶
type Value interface { fmt.Stringer Comparable // AsInterface to return the value as interface AsInterface() any DataType() schema.FieldType }
Value is our value object that implements comparable so that two values can be compared. This is used to build the keys(primary key or any other index key), or to build the selector filter. Note: if the field data type is byte/binary then the value object returned is base64 decoded. The reason is that JSON has encoded the byte array to base64 so to make sure we are using the user provided value in building the key and the filter we must first decode this field. This allows us later to perform prefix scans.
func MaxOrderValue ¶
func MaxOrderValue() Value
func MinOrderValue ¶
func MinOrderValue() Value