mirror of
https://github.com/pgsty/minio.git
synced 2026-07-20 04:30:26 +03:00
Run modernize (#21546)
`go run golang.org/x/tools/gopls/internal/analysis/modernize/cmd/modernize@latest -fix -test ./...` executed. `go generate ./...` ran afterwards to keep generated.
This commit is contained in:
@@ -84,7 +84,7 @@ func TestRead(t *testing.T) {
|
||||
}
|
||||
|
||||
type tester interface {
|
||||
Fatal(...interface{})
|
||||
Fatal(...any)
|
||||
}
|
||||
|
||||
func openTestFile(t tester, file string) []byte {
|
||||
@@ -508,10 +508,10 @@ func BenchmarkReaderBasic(b *testing.B) {
|
||||
}
|
||||
defer r.Close()
|
||||
b.ReportAllocs()
|
||||
b.ResetTimer()
|
||||
|
||||
b.SetBytes(int64(len(f)))
|
||||
var record sql.Record
|
||||
for i := 0; i < b.N; i++ {
|
||||
for b.Loop() {
|
||||
r, err = NewReader(io.NopCloser(bytes.NewBuffer(f)), &args)
|
||||
if err != nil {
|
||||
b.Fatalf("Reading init failed with %s", err)
|
||||
@@ -537,7 +537,7 @@ func BenchmarkReaderHuge(b *testing.B) {
|
||||
AllowQuotedRecordDelimiter: false,
|
||||
unmarshaled: true,
|
||||
}
|
||||
for n := 0; n < 11; n++ {
|
||||
for n := range 11 {
|
||||
f := openTestFile(b, "nyc-taxi-data-100k.csv")
|
||||
want := 309
|
||||
for i := 0; i < n; i++ {
|
||||
@@ -549,7 +549,7 @@ func BenchmarkReaderHuge(b *testing.B) {
|
||||
b.SetBytes(int64(len(f)))
|
||||
b.ResetTimer()
|
||||
var record sql.Record
|
||||
for i := 0; i < b.N; i++ {
|
||||
for b.Loop() {
|
||||
r, err := NewReader(io.NopCloser(bytes.NewBuffer(f)), &args)
|
||||
if err != nil {
|
||||
b.Fatalf("Reading init failed with %s", err)
|
||||
@@ -590,10 +590,10 @@ func BenchmarkReaderReplace(b *testing.B) {
|
||||
}
|
||||
defer r.Close()
|
||||
b.ReportAllocs()
|
||||
b.ResetTimer()
|
||||
|
||||
b.SetBytes(int64(len(f)))
|
||||
var record sql.Record
|
||||
for i := 0; i < b.N; i++ {
|
||||
for b.Loop() {
|
||||
r, err = NewReader(io.NopCloser(bytes.NewBuffer(f)), &args)
|
||||
if err != nil {
|
||||
b.Fatalf("Reading init failed with %s", err)
|
||||
@@ -627,10 +627,10 @@ func BenchmarkReaderReplaceTwo(b *testing.B) {
|
||||
}
|
||||
defer r.Close()
|
||||
b.ReportAllocs()
|
||||
b.ResetTimer()
|
||||
|
||||
b.SetBytes(int64(len(f)))
|
||||
var record sql.Record
|
||||
for i := 0; i < b.N; i++ {
|
||||
for b.Loop() {
|
||||
r, err = NewReader(io.NopCloser(bytes.NewBuffer(f)), &args)
|
||||
if err != nil {
|
||||
b.Fatalf("Reading init failed with %s", err)
|
||||
|
||||
@@ -46,8 +46,8 @@ func (r *Record) Get(name string) (*sql.Value, error) {
|
||||
index, found := r.nameIndexMap[name]
|
||||
if !found {
|
||||
// Check if index.
|
||||
if strings.HasPrefix(name, "_") {
|
||||
idx, err := strconv.Atoi(strings.TrimPrefix(name, "_"))
|
||||
if after, ok := strings.CutPrefix(name, "_"); ok {
|
||||
idx, err := strconv.Atoi(after)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("column %v not found", name)
|
||||
}
|
||||
@@ -133,12 +133,12 @@ func (r *Record) WriteJSON(writer io.Writer) error {
|
||||
}
|
||||
|
||||
// Raw - returns the underlying data with format info.
|
||||
func (r *Record) Raw() (sql.SelectObjectFormat, interface{}) {
|
||||
func (r *Record) Raw() (sql.SelectObjectFormat, any) {
|
||||
return sql.SelectFmtCSV, r
|
||||
}
|
||||
|
||||
// Replace - is not supported for CSV
|
||||
func (r *Record) Replace(_ interface{}) error {
|
||||
func (r *Record) Replace(_ any) error {
|
||||
return errors.New("Replace is not supported for CSV")
|
||||
}
|
||||
|
||||
|
||||
@@ -88,7 +88,7 @@ func BenchmarkPReader(b *testing.B) {
|
||||
b.ReportAllocs()
|
||||
b.ResetTimer()
|
||||
var record sql.Record
|
||||
for i := 0; i < b.N; i++ {
|
||||
for b.Loop() {
|
||||
r := NewPReader(io.NopCloser(bytes.NewBuffer(f)), &ReaderArgs{})
|
||||
for {
|
||||
record, err = r.Read(record)
|
||||
|
||||
@@ -88,7 +88,7 @@ func BenchmarkReader(b *testing.B) {
|
||||
b.ReportAllocs()
|
||||
b.ResetTimer()
|
||||
var record sql.Record
|
||||
for i := 0; i < b.N; i++ {
|
||||
for b.Loop() {
|
||||
r := NewReader(io.NopCloser(bytes.NewBuffer(f)), &ReaderArgs{})
|
||||
for {
|
||||
record, err = r.Read(record)
|
||||
|
||||
@@ -76,7 +76,7 @@ func (r *Record) Clone(dst sql.Record) sql.Record {
|
||||
|
||||
// Set - sets the value for a column name.
|
||||
func (r *Record) Set(name string, value *sql.Value) (sql.Record, error) {
|
||||
var v interface{}
|
||||
var v any
|
||||
if b, ok := value.ToBool(); ok {
|
||||
v = b
|
||||
} else if f, ok := value.ToFloat(); ok {
|
||||
@@ -126,7 +126,7 @@ func (r *Record) WriteCSV(writer io.Writer, opts sql.WriteCSVOpts) error {
|
||||
columnValue = ""
|
||||
case RawJSON:
|
||||
columnValue = string([]byte(val))
|
||||
case []interface{}:
|
||||
case []any:
|
||||
b, err := json.Marshal(val)
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -151,7 +151,7 @@ func (r *Record) WriteCSV(writer io.Writer, opts sql.WriteCSVOpts) error {
|
||||
}
|
||||
|
||||
// Raw - returns the underlying representation.
|
||||
func (r *Record) Raw() (sql.SelectObjectFormat, interface{}) {
|
||||
func (r *Record) Raw() (sql.SelectObjectFormat, any) {
|
||||
return r.SelectFormat, r.KVS
|
||||
}
|
||||
|
||||
@@ -161,7 +161,7 @@ func (r *Record) WriteJSON(writer io.Writer) error {
|
||||
}
|
||||
|
||||
// Replace the underlying buffer of json data.
|
||||
func (r *Record) Replace(k interface{}) error {
|
||||
func (r *Record) Replace(k any) error {
|
||||
v, ok := k.(jstream.KVS)
|
||||
if !ok {
|
||||
return fmt.Errorf("cannot replace internal data in json record with type %T", k)
|
||||
|
||||
@@ -29,14 +29,14 @@ type MetaValue struct {
|
||||
Offset int
|
||||
Length int
|
||||
Depth int
|
||||
Value interface{}
|
||||
Value any
|
||||
ValueType ValueType
|
||||
}
|
||||
|
||||
// KV contains a key and value pair parsed from a decoded object
|
||||
type KV struct {
|
||||
Key string `json:"key"`
|
||||
Value interface{} `json:"value"`
|
||||
Key string `json:"key"`
|
||||
Value any `json:"value"`
|
||||
}
|
||||
|
||||
// KVS - represents key values in an JSON object
|
||||
@@ -160,7 +160,7 @@ func (d *Decoder) decode() {
|
||||
}
|
||||
}
|
||||
|
||||
func (d *Decoder) emitAny() (interface{}, error) {
|
||||
func (d *Decoder) emitAny() (any, error) {
|
||||
if d.pos >= atomic.LoadInt64(&d.end) {
|
||||
return nil, d.mkError(ErrUnexpectedEOF)
|
||||
}
|
||||
@@ -189,7 +189,7 @@ func (d *Decoder) willEmit() bool {
|
||||
|
||||
// any used to decode any valid JSON value, and returns an
|
||||
// interface{} that holds the actual data
|
||||
func (d *Decoder) any() (interface{}, ValueType, error) {
|
||||
func (d *Decoder) any() (any, ValueType, error) {
|
||||
c := d.cur()
|
||||
|
||||
switch c {
|
||||
@@ -239,7 +239,7 @@ func (d *Decoder) any() (interface{}, ValueType, error) {
|
||||
i, err := d.array()
|
||||
return i, Array, err
|
||||
case '{':
|
||||
var i interface{}
|
||||
var i any
|
||||
var err error
|
||||
if d.objectAsKVS {
|
||||
i, err = d.objectOrdered()
|
||||
@@ -426,7 +426,7 @@ func (d *Decoder) number() (float64, error) {
|
||||
}
|
||||
|
||||
// array accept valid JSON array value
|
||||
func (d *Decoder) array() ([]interface{}, error) {
|
||||
func (d *Decoder) array() ([]any, error) {
|
||||
d.depth++
|
||||
if d.maxDepth > 0 && d.depth > d.maxDepth {
|
||||
return nil, ErrMaxDepth
|
||||
@@ -434,9 +434,9 @@ func (d *Decoder) array() ([]interface{}, error) {
|
||||
|
||||
var (
|
||||
c byte
|
||||
v interface{}
|
||||
v any
|
||||
err error
|
||||
array = make([]interface{}, 0)
|
||||
array = make([]any, 0)
|
||||
)
|
||||
|
||||
// look ahead for ] - if the array is empty.
|
||||
@@ -470,7 +470,7 @@ out:
|
||||
}
|
||||
|
||||
// object accept valid JSON array value
|
||||
func (d *Decoder) object() (map[string]interface{}, error) {
|
||||
func (d *Decoder) object() (map[string]any, error) {
|
||||
d.depth++
|
||||
if d.maxDepth > 0 && d.depth > d.maxDepth {
|
||||
return nil, ErrMaxDepth
|
||||
@@ -479,15 +479,15 @@ func (d *Decoder) object() (map[string]interface{}, error) {
|
||||
var (
|
||||
c byte
|
||||
k string
|
||||
v interface{}
|
||||
v any
|
||||
t ValueType
|
||||
err error
|
||||
obj map[string]interface{}
|
||||
obj map[string]any
|
||||
)
|
||||
|
||||
// skip allocating map if it will not be emitted
|
||||
if d.depth > d.emitDepth {
|
||||
obj = make(map[string]interface{})
|
||||
obj = make(map[string]any)
|
||||
}
|
||||
|
||||
// if the object has no keys
|
||||
@@ -567,7 +567,7 @@ func (d *Decoder) objectOrdered() (KVS, error) {
|
||||
var (
|
||||
c byte
|
||||
k string
|
||||
v interface{}
|
||||
v any
|
||||
t ValueType
|
||||
err error
|
||||
obj KVS
|
||||
|
||||
@@ -74,7 +74,7 @@ func TestDecoderFlat(t *testing.T) {
|
||||
1, 2.5
|
||||
]`
|
||||
expected = []struct {
|
||||
Value interface{}
|
||||
Value any
|
||||
ValueType ValueType
|
||||
}{
|
||||
{
|
||||
|
||||
@@ -85,17 +85,17 @@ func TestScannerFailure(t *testing.T) {
|
||||
|
||||
func BenchmarkBufioScanner(b *testing.B) {
|
||||
b.Run("small", func(b *testing.B) {
|
||||
for i := 0; i < b.N; i++ {
|
||||
for b.Loop() {
|
||||
benchmarkBufioScanner(smallInput)
|
||||
}
|
||||
})
|
||||
b.Run("medium", func(b *testing.B) {
|
||||
for i := 0; i < b.N; i++ {
|
||||
for b.Loop() {
|
||||
benchmarkBufioScanner(mediumInput)
|
||||
}
|
||||
})
|
||||
b.Run("large", func(b *testing.B) {
|
||||
for i := 0; i < b.N; i++ {
|
||||
for b.Loop() {
|
||||
benchmarkBufioScanner(largeInput)
|
||||
}
|
||||
})
|
||||
@@ -111,17 +111,17 @@ func benchmarkBufioScanner(b []byte) {
|
||||
|
||||
func BenchmarkBufioReader(b *testing.B) {
|
||||
b.Run("small", func(b *testing.B) {
|
||||
for i := 0; i < b.N; i++ {
|
||||
for b.Loop() {
|
||||
benchmarkBufioReader(smallInput)
|
||||
}
|
||||
})
|
||||
b.Run("medium", func(b *testing.B) {
|
||||
for i := 0; i < b.N; i++ {
|
||||
for b.Loop() {
|
||||
benchmarkBufioReader(mediumInput)
|
||||
}
|
||||
})
|
||||
b.Run("large", func(b *testing.B) {
|
||||
for i := 0; i < b.N; i++ {
|
||||
for b.Loop() {
|
||||
benchmarkBufioReader(largeInput)
|
||||
}
|
||||
})
|
||||
@@ -145,17 +145,17 @@ loop:
|
||||
|
||||
func BenchmarkScanner(b *testing.B) {
|
||||
b.Run("small", func(b *testing.B) {
|
||||
for i := 0; i < b.N; i++ {
|
||||
for b.Loop() {
|
||||
benchmarkScanner(smallInput)
|
||||
}
|
||||
})
|
||||
b.Run("medium", func(b *testing.B) {
|
||||
for i := 0; i < b.N; i++ {
|
||||
for b.Loop() {
|
||||
benchmarkScanner(mediumInput)
|
||||
}
|
||||
})
|
||||
b.Run("large", func(b *testing.B) {
|
||||
for i := 0; i < b.N; i++ {
|
||||
for b.Loop() {
|
||||
benchmarkScanner(largeInput)
|
||||
}
|
||||
})
|
||||
|
||||
@@ -56,7 +56,7 @@ func (pr *Reader) Read(dst sql.Record) (rec sql.Record, rerr error) {
|
||||
|
||||
kvs := jstream.KVS{}
|
||||
for _, col := range pr.r.Columns() {
|
||||
var value interface{}
|
||||
var value any
|
||||
if v, ok := nextRow[col.FlatName()]; ok {
|
||||
value, err = convertFromAnnotation(col.Element(), v)
|
||||
if err != nil {
|
||||
@@ -80,12 +80,12 @@ func (pr *Reader) Read(dst sql.Record) (rec sql.Record, rerr error) {
|
||||
// annotations. LogicalType annotations if present override the deprecated
|
||||
// ConvertedType annotations. Ref:
|
||||
// https://github.com/apache/parquet-format/blob/master/LogicalTypes.md
|
||||
func convertFromAnnotation(se *parquettypes.SchemaElement, v interface{}) (interface{}, error) {
|
||||
func convertFromAnnotation(se *parquettypes.SchemaElement, v any) (any, error) {
|
||||
if se == nil {
|
||||
return v, nil
|
||||
}
|
||||
|
||||
var value interface{}
|
||||
var value any
|
||||
switch val := v.(type) {
|
||||
case []byte:
|
||||
// TODO: only strings are supported in s3select output (not
|
||||
|
||||
@@ -46,7 +46,7 @@ func genSampleCSVData(count int) []byte {
|
||||
csvWriter := csv.NewWriter(buf)
|
||||
csvWriter.Write([]string{"id", "name", "age", "city"})
|
||||
|
||||
for i := 0; i < count; i++ {
|
||||
for i := range count {
|
||||
csvWriter.Write([]string{
|
||||
strconv.Itoa(i),
|
||||
newRandString(10),
|
||||
|
||||
@@ -630,7 +630,7 @@ func TestJSONQueries(t *testing.T) {
|
||||
if len(testReq) == 0 {
|
||||
var escaped bytes.Buffer
|
||||
xml.EscapeText(&escaped, []byte(testCase.query))
|
||||
testReq = []byte(fmt.Sprintf(defRequest, escaped.String()))
|
||||
testReq = fmt.Appendf(nil, defRequest, escaped.String())
|
||||
}
|
||||
s3Select, err := NewS3Select(bytes.NewReader(testReq))
|
||||
if err != nil {
|
||||
@@ -676,7 +676,7 @@ func TestJSONQueries(t *testing.T) {
|
||||
if len(testReq) == 0 {
|
||||
var escaped bytes.Buffer
|
||||
xml.EscapeText(&escaped, []byte(testCase.query))
|
||||
testReq = []byte(fmt.Sprintf(defRequest, escaped.String()))
|
||||
testReq = fmt.Appendf(nil, defRequest, escaped.String())
|
||||
}
|
||||
s3Select, err := NewS3Select(bytes.NewReader(testReq))
|
||||
if err != nil {
|
||||
@@ -761,7 +761,7 @@ func TestCSVQueries(t *testing.T) {
|
||||
t.Run(testCase.name, func(t *testing.T) {
|
||||
testReq := testCase.requestXML
|
||||
if len(testReq) == 0 {
|
||||
testReq = []byte(fmt.Sprintf(defRequest, testCase.query))
|
||||
testReq = fmt.Appendf(nil, defRequest, testCase.query)
|
||||
}
|
||||
s3Select, err := NewS3Select(bytes.NewReader(testReq))
|
||||
if err != nil {
|
||||
@@ -944,7 +944,7 @@ func TestCSVQueries2(t *testing.T) {
|
||||
t.Run(testCase.name, func(t *testing.T) {
|
||||
testReq := testCase.requestXML
|
||||
if len(testReq) == 0 {
|
||||
testReq = []byte(fmt.Sprintf(defRequest, testCase.query))
|
||||
testReq = fmt.Appendf(nil, defRequest, testCase.query)
|
||||
}
|
||||
s3Select, err := NewS3Select(bytes.NewReader(testReq))
|
||||
if err != nil {
|
||||
@@ -1088,7 +1088,7 @@ true`,
|
||||
t.Run(testCase.name, func(t *testing.T) {
|
||||
testReq := testCase.requestXML
|
||||
if len(testReq) == 0 {
|
||||
testReq = []byte(fmt.Sprintf(defRequest, testCase.query))
|
||||
testReq = fmt.Appendf(nil, defRequest, testCase.query)
|
||||
}
|
||||
s3Select, err := NewS3Select(bytes.NewReader(testReq))
|
||||
if err != nil {
|
||||
|
||||
@@ -31,7 +31,7 @@ import (
|
||||
)
|
||||
|
||||
type tester interface {
|
||||
Fatal(args ...interface{})
|
||||
Fatal(args ...any)
|
||||
}
|
||||
|
||||
func loadCompressed(t tester, file string) (js []byte) {
|
||||
|
||||
@@ -185,7 +185,7 @@ allElems:
|
||||
}
|
||||
|
||||
// Raw - returns the underlying representation.
|
||||
func (r *Record) Raw() (sql.SelectObjectFormat, interface{}) {
|
||||
func (r *Record) Raw() (sql.SelectObjectFormat, any) {
|
||||
return sql.SelectFmtSIMDJSON, r.object
|
||||
}
|
||||
|
||||
@@ -211,7 +211,7 @@ func (r *Record) WriteJSON(writer io.Writer) error {
|
||||
}
|
||||
|
||||
// Replace the underlying buffer of json data.
|
||||
func (r *Record) Replace(k interface{}) error {
|
||||
func (r *Record) Replace(k any) error {
|
||||
v, ok := k.(simdjson.Object)
|
||||
if !ok {
|
||||
return fmt.Errorf("cannot replace internal data in simd json record with type %T", k)
|
||||
|
||||
@@ -413,7 +413,7 @@ func (e *JSONPath) evalNode(r Record, tableAlias string) (*Value, error) {
|
||||
}
|
||||
|
||||
// jsonToValue will convert the json value to an internal value.
|
||||
func jsonToValue(result interface{}) (*Value, error) {
|
||||
func jsonToValue(result any) (*Value, error) {
|
||||
switch rval := result.(type) {
|
||||
case string:
|
||||
return FromString(rval), nil
|
||||
@@ -434,7 +434,7 @@ func jsonToValue(result interface{}) (*Value, error) {
|
||||
return nil, err
|
||||
}
|
||||
return FromBytes(bs), nil
|
||||
case []interface{}:
|
||||
case []any:
|
||||
dst := make([]Value, len(rval))
|
||||
for i := range rval {
|
||||
v, err := jsonToValue(rval[i])
|
||||
|
||||
@@ -34,7 +34,7 @@ var (
|
||||
|
||||
// jsonpathEval evaluates a JSON path and returns the value at the path.
|
||||
// If the value should be considered flat (from wildcards) any array returned should be considered individual values.
|
||||
func jsonpathEval(p []*JSONPathElement, v interface{}) (r interface{}, flat bool, err error) {
|
||||
func jsonpathEval(p []*JSONPathElement, v any) (r any, flat bool, err error) {
|
||||
// fmt.Printf("JPATHexpr: %v jsonobj: %v\n\n", p, v)
|
||||
if len(p) == 0 || v == nil {
|
||||
return v, false, nil
|
||||
@@ -71,7 +71,7 @@ func jsonpathEval(p []*JSONPathElement, v interface{}) (r interface{}, flat bool
|
||||
case p[0].Index != nil:
|
||||
idx := *p[0].Index
|
||||
|
||||
arr, ok := v.([]interface{})
|
||||
arr, ok := v.([]any)
|
||||
if !ok {
|
||||
return nil, false, errIndexLookup
|
||||
}
|
||||
@@ -100,14 +100,14 @@ func jsonpathEval(p []*JSONPathElement, v interface{}) (r interface{}, flat bool
|
||||
}
|
||||
|
||||
case p[0].ArrayWildcard:
|
||||
arr, ok := v.([]interface{})
|
||||
arr, ok := v.([]any)
|
||||
if !ok {
|
||||
return nil, false, errWildcardArrayLookup
|
||||
}
|
||||
|
||||
// Lookup remainder of path in each array element and
|
||||
// make result array.
|
||||
var result []interface{}
|
||||
var result []any
|
||||
for _, a := range arr {
|
||||
rval, flatten, err := jsonpathEval(p[1:], a)
|
||||
if err != nil {
|
||||
@@ -116,7 +116,7 @@ func jsonpathEval(p []*JSONPathElement, v interface{}) (r interface{}, flat bool
|
||||
|
||||
if flatten {
|
||||
// Flatten if array.
|
||||
if arr, ok := rval.([]interface{}); ok {
|
||||
if arr, ok := rval.([]any); ok {
|
||||
result = append(result, arr...)
|
||||
continue
|
||||
}
|
||||
|
||||
@@ -30,9 +30,9 @@ import (
|
||||
"github.com/minio/minio/internal/s3select/jstream"
|
||||
)
|
||||
|
||||
func getJSONStructs(b []byte) ([]interface{}, error) {
|
||||
func getJSONStructs(b []byte) ([]any, error) {
|
||||
dec := jstream.NewDecoder(bytes.NewBuffer(b), 0).ObjectAsKVS().MaxDepth(100)
|
||||
var result []interface{}
|
||||
var result []any
|
||||
for parsedVal := range dec.Stream() {
|
||||
result = append(result, parsedVal.Value)
|
||||
}
|
||||
@@ -60,13 +60,13 @@ func TestJsonpathEval(t *testing.T) {
|
||||
)
|
||||
cases := []struct {
|
||||
str string
|
||||
res []interface{}
|
||||
res []any
|
||||
}{
|
||||
{"s.title", []interface{}{"Murder on the Orient Express", "The Robots of Dawn", "Pigs Have Wings"}},
|
||||
{"s.authorInfo.yearRange", []interface{}{[]interface{}{1890.0, 1976.0}, []interface{}{1920.0, 1992.0}, []interface{}{1881.0, 1975.0}}},
|
||||
{"s.authorInfo.name", []interface{}{"Agatha Christie", "Isaac Asimov", "P. G. Wodehouse"}},
|
||||
{"s.authorInfo.yearRange[0]", []interface{}{1890.0, 1920.0, 1881.0}},
|
||||
{"s.publicationHistory[0].pages", []interface{}{256.0, 336.0, Missing{}}},
|
||||
{"s.title", []any{"Murder on the Orient Express", "The Robots of Dawn", "Pigs Have Wings"}},
|
||||
{"s.authorInfo.yearRange", []any{[]any{1890.0, 1976.0}, []any{1920.0, 1992.0}, []any{1881.0, 1975.0}}},
|
||||
{"s.authorInfo.name", []any{"Agatha Christie", "Isaac Asimov", "P. G. Wodehouse"}},
|
||||
{"s.authorInfo.yearRange[0]", []any{1890.0, 1920.0, 1881.0}},
|
||||
{"s.publicationHistory[0].pages", []any{256.0, 336.0, Missing{}}},
|
||||
}
|
||||
for i, tc := range cases {
|
||||
t.Run(tc.str, func(t *testing.T) {
|
||||
|
||||
@@ -63,16 +63,16 @@ type Record interface {
|
||||
Reset()
|
||||
|
||||
// Returns underlying representation
|
||||
Raw() (SelectObjectFormat, interface{})
|
||||
Raw() (SelectObjectFormat, any)
|
||||
|
||||
// Replaces the underlying data
|
||||
Replace(k interface{}) error
|
||||
Replace(k any) error
|
||||
}
|
||||
|
||||
// IterToValue converts a simdjson Iter to its underlying value.
|
||||
// Objects are returned as simdjson.Object
|
||||
// Arrays are returned as []interface{} with parsed values.
|
||||
func IterToValue(iter simdjson.Iter) (interface{}, error) {
|
||||
func IterToValue(iter simdjson.Iter) (any, error) {
|
||||
switch iter.Type() {
|
||||
case simdjson.TypeString:
|
||||
v, err := iter.String()
|
||||
@@ -118,7 +118,7 @@ func IterToValue(iter simdjson.Iter) (interface{}, error) {
|
||||
return nil, err
|
||||
}
|
||||
iter := arr.Iter()
|
||||
var dst []interface{}
|
||||
var dst []any
|
||||
var next simdjson.Iter
|
||||
for {
|
||||
typ, err := iter.AdvanceIter(&next)
|
||||
|
||||
@@ -174,7 +174,7 @@ func (e *SelectStatement) EvalFrom(format string, input Record) ([]*Record, erro
|
||||
case jstream.KVS:
|
||||
kvs = v
|
||||
|
||||
case []interface{}:
|
||||
case []any:
|
||||
recs := make([]*Record, len(v))
|
||||
for i, val := range v {
|
||||
tmpRec := input.Clone(nil)
|
||||
@@ -207,7 +207,7 @@ func (e *SelectStatement) EvalFrom(format string, input Record) ([]*Record, erro
|
||||
return nil, err
|
||||
}
|
||||
|
||||
case []interface{}:
|
||||
case []any:
|
||||
recs := make([]*Record, len(v))
|
||||
for i, val := range v {
|
||||
tmpRec := input.Clone(nil)
|
||||
|
||||
@@ -46,7 +46,7 @@ var (
|
||||
// the type may not be determined yet. In these cases, a byte-slice is
|
||||
// used.
|
||||
type Value struct {
|
||||
value interface{}
|
||||
value any
|
||||
}
|
||||
|
||||
// Missing is used to indicate a non-existing value.
|
||||
|
||||
@@ -217,7 +217,7 @@ func TestValue_CSVString(t *testing.T) {
|
||||
|
||||
func TestValue_bytesToInt(t *testing.T) {
|
||||
type fields struct {
|
||||
value interface{}
|
||||
value any
|
||||
}
|
||||
tests := []struct {
|
||||
name string
|
||||
@@ -367,7 +367,7 @@ func TestValue_bytesToInt(t *testing.T) {
|
||||
|
||||
func TestValue_bytesToFloat(t *testing.T) {
|
||||
type fields struct {
|
||||
value interface{}
|
||||
value any
|
||||
}
|
||||
tests := []struct {
|
||||
name string
|
||||
@@ -569,7 +569,7 @@ func TestValue_bytesToFloat(t *testing.T) {
|
||||
|
||||
func TestValue_bytesToBool(t *testing.T) {
|
||||
type fields struct {
|
||||
value interface{}
|
||||
value any
|
||||
}
|
||||
tests := []struct {
|
||||
name string
|
||||
|
||||
Reference in New Issue
Block a user