Files
wehub-resource-sync 5357c39144
Fuzzer / Run Fuzzer (push) Has been cancelled
Race tests / Go race tests (ubuntu-22.04) (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 13:01:40 +08:00

105 lines
2.9 KiB
Go

// Copyright 2022 Dolthub, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package schema
import (
"fmt"
"github.com/dolthub/vitess/go/vt/proto/query"
"github.com/dolthub/dolt/go/gen/fb/serial"
"github.com/dolthub/dolt/go/libraries/doltcore/schema/typeinfo"
)
// encodingFromQueryType returns a serial.Encoding for a query.Type.
func encodingFromQueryType(typ query.Type) serial.Encoding {
switch typ {
case query.Type_INT8:
return serial.EncodingInt8
case query.Type_UINT8:
return serial.EncodingUint8
case query.Type_INT16:
return serial.EncodingInt16
case query.Type_UINT16:
return serial.EncodingUint16
case query.Type_INT24:
return serial.EncodingInt32
case query.Type_UINT24:
return serial.EncodingUint32
case query.Type_INT32:
return serial.EncodingInt32
case query.Type_UINT32:
return serial.EncodingUint32
case query.Type_INT64:
return serial.EncodingInt64
case query.Type_UINT64:
return serial.EncodingUint64
case query.Type_FLOAT32:
return serial.EncodingFloat32
case query.Type_FLOAT64:
return serial.EncodingFloat64
case query.Type_BIT:
return serial.EncodingUint64
case query.Type_DECIMAL:
return serial.EncodingDecimal
case query.Type_YEAR:
return serial.EncodingYear
case query.Type_DATE:
return serial.EncodingDate
case query.Type_TIME:
return serial.EncodingTime
case query.Type_TIMESTAMP:
return serial.EncodingDatetime
case query.Type_DATETIME:
return serial.EncodingDatetime
case query.Type_ENUM:
return serial.EncodingEnum
case query.Type_SET:
return serial.EncodingSet
case query.Type_BINARY:
return serial.EncodingBytes
case query.Type_VARBINARY:
return serial.EncodingBytes
case query.Type_CHAR:
return serial.EncodingString
case query.Type_VARCHAR:
return serial.EncodingString
case query.Type_GEOMETRY:
if typeinfo.UseAdaptiveEncoding {
return serial.EncodingGeomAdaptive
}
return serial.EncodingGeomAddr
case query.Type_JSON:
if typeinfo.UseAdaptiveEncoding {
return serial.EncodingJsonAdaptive
}
return serial.EncodingJSONAddr
case query.Type_BLOB:
if typeinfo.UseAdaptiveEncoding {
return serial.EncodingBytesAdaptive
}
return serial.EncodingBytesAddr
case query.Type_TEXT:
if typeinfo.UseAdaptiveEncoding {
return serial.EncodingStringAdaptive
}
return serial.EncodingStringAddr
case query.Type_VECTOR:
return serial.EncodingBytesAdaptive
default:
panic(fmt.Sprintf("unknown encoding %v", typ))
}
}