func NewNumericFieldWithIndexingOptions(name string, arrayPositions []uint64, number float64, options IndexingOptions) *NumericField { numberInt64 := numeric.Float64ToInt64(number) prefixCoded := numeric.MustNewPrefixCodedInt64(numberInt64, 0) return &NumericField{ name: name, arrayPositions: arrayPositions, value: prefixCoded, options: options, // not correct, just a place holder until we revisit how fields are // represented and can fix this better numPlainTextBytes: uint64(8), } }
func NewDateTimeFieldWithIndexingOptions(name string, arrayPositions []uint64, dt time.Time, options IndexingOptions) (*DateTimeField, error) { if canRepresent(dt) { dtInt64 := dt.UnixNano() prefixCoded := numeric.MustNewPrefixCodedInt64(dtInt64, 0) return &DateTimeField{ name: name, arrayPositions: arrayPositions, value: prefixCoded, options: options, // not correct, just a place holder until we revisit how fields are // represented and can fix this better numPlainTextBytes: uint64(8), }, nil } return nil, fmt.Errorf("cannot represent %s in this type", dt) }
func newRange(minBound, maxBound int64, shift uint) *termRange { maxBound |= (int64(1) << shift) - int64(1) minBytes := numeric.MustNewPrefixCodedInt64(minBound, shift) maxBytes := numeric.MustNewPrefixCodedInt64(maxBound, shift) return newRangeBytes(minBytes, maxBytes) }