types

package
v0.6.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 16, 2024 License: Apache-2.0 Imports: 19 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DoltgresTypeBaseID_Bool        = DoltgresTypeBaseID(SerializationID_Bool)
	DoltgresTypeBaseID_Bytea       = DoltgresTypeBaseID(SerializationID_Bytea)
	DoltgresTypeBaseID_Char        = DoltgresTypeBaseID(SerializationID_Char)
	DoltgresTypeBaseID_Date        = DoltgresTypeBaseID(SerializationID_Date)
	DoltgresTypeBaseID_Float32     = DoltgresTypeBaseID(SerializationID_Float32)
	DoltgresTypeBaseID_Float64     = DoltgresTypeBaseID(SerializationID_Float64)
	DoltgresTypeBaseID_Int16       = DoltgresTypeBaseID(SerializationID_Int16)
	DoltgresTypeBaseID_Int32       = DoltgresTypeBaseID(SerializationID_Int32)
	DoltgresTypeBaseID_Int64       = DoltgresTypeBaseID(SerializationID_Int64)
	DoltgresTypeBaseID_Null        = DoltgresTypeBaseID(SerializationID_Null)
	DoltgresTypeBaseID_Numeric     = DoltgresTypeBaseID(SerializationID_Numeric)
	DoltgresTypeBaseID_Text        = DoltgresTypeBaseID(SerializationID_Text)
	DoltgresTypeBaseID_Time        = DoltgresTypeBaseID(SerializationID_Time)
	DoltgresTypeBaseID_Timestamp   = DoltgresTypeBaseID(SerializationID_Timestamp)
	DoltgresTypeBaseID_TimestampTZ = DoltgresTypeBaseID(SerializationID_TimestampTZ)
	DoltgresTypeBaseID_TimeTZ      = DoltgresTypeBaseID(SerializationID_TimeTZ)
	DoltgresTypeBaseID_Uuid        = DoltgresTypeBaseID(SerializationID_Uuid)
	DoltgresTypeBaseID_VarChar     = DoltgresTypeBaseID(SerializationID_VarChar)
)
View Source
const (
	// StringMaxLength is the maximum number of characters (not bytes) that a Char, VarChar, or BpChar may contain.
	StringMaxLength = 10485760
)

Variables

View Source
var (
	NumericValueMaxInt16 = decimal.NewFromInt(32767)                // NumericValueMaxInt16 is the max Int16 value for NUMERIC types
	NumericValueMaxInt32 = decimal.NewFromInt(2147483647)           // NumericValueMaxInt16 is the max Int32 value for NUMERIC types
	NumericValueMaxInt64 = decimal.NewFromInt(9223372036854775807)  // NumericValueMaxInt16 is the max Int64 value for NUMERIC types
	NumericValueMinInt16 = decimal.NewFromInt(-32768)               // NumericValueMaxInt16 is the min Int16 value for NUMERIC types
	NumericValueMinInt32 = decimal.NewFromInt(-2147483648)          // NumericValueMaxInt16 is the min Int32 value for NUMERIC types
	NumericValueMinInt64 = decimal.NewFromInt(-9223372036854775808) // NumericValueMaxInt16 is the min Int64 value for NUMERIC types
)
View Source
var AnyArray = AnyArrayType{}

AnyArray is an array that may contain elements of any type.

View Source
var Bool = BoolType{}

Bool is the standard boolean.

View Source
var BoolArray = createArrayType(Bool, SerializationID_BoolArray, oid.T__bool)

BoolArray is the array variant of Bool.

View Source
var BpChar = CharType{Length: stringUnbounded}

BpChar is a char that has an unbounded length. "bpchar" and "char" are the same type, distinguished by the length being bounded or unbounded.

View Source
var BpCharArray = createArrayTypeWithFuncs(BpChar, SerializationID_CharArray, oid.T__bpchar, arrayContainerFunctions{
	SQL: stringArraySQL,
})

BpCharArray is the array variant of BpChar.

View Source
var Bytea = ByteaType{}

Bytea is the byte string type.

View Source
var ByteaArray = createArrayType(Bytea, SerializationID_ByteaArray, oid.T__bytea)

ByteaArray is the array variant of Bytea.

View Source
var CharArray = BpCharArray

CharArray is the array variant of BpChar. This is an alias of BpCharArray, since the documentation references "char" more so than "bpchar" in PostgreSQL 15. They're the same type with different characteristics depending on the length.

View Source
var Date = DateType{}

Date is the day, month, and year.

View Source
var DateArray = createArrayType(Date, SerializationID_DateArray, oid.T__date)

DateArray is the array variant of Date.

View Source
var Float32 = Float32Type{}

Float32 is an float32.

View Source
var Float32Array = createArrayType(Float32, SerializationID_Float32Array, oid.T__float4)

Float32Array is the array variant of Float32.

View Source
var Float64 = Float64Type{}

Float64 is an float64.

View Source
var Float64Array = createArrayType(Float64, SerializationID_Float64Array, oid.T__float8)

Float64Array is the array variant of Float64.

View Source
var Int16 = Int16Type{}

Int16 is an int16.

View Source
var Int16Array = createArrayType(Int16, SerializationID_Int16Array, oid.T__int2)

Int16Array is the array variant of Int16.

View Source
var Int32 = Int32Type{}

Int32 is an int32.

View Source
var Int32Array = createArrayType(Int32, SerializationID_Int32Array, oid.T__int4)

Int32Array is the array variant of Int32.

View Source
var Int64 = Int64Type{}

Int64 is an int64.

View Source
var Int64Array = createArrayType(Int64, SerializationID_Int64Array, oid.T__int8)

Int64Array is the array variant of Int64.

View Source
var Null = NullType{}

Null is the null type

View Source
var Numeric = NumericType{-1, -1}

Numeric is a precise and unbounded decimal value.

View Source
var NumericArray = createArrayType(Numeric, SerializationID_NumericArray, oid.T__numeric)

NumericArray is the array variant of Numeric.

View Source
var Text = TextType{}

Text is the text type.

View Source
var TextArray = createArrayTypeWithFuncs(Text, SerializationID_TextArray, oid.T__text, arrayContainerFunctions{
	SQL: stringArraySQL,
})

TextArray is the array variant of Text.

View Source
var Time = TimeType{-1}

Time is the time without a time zone. Precision is unbounded.

View Source
var TimeArray = createArrayType(Time, SerializationID_TimeArray, oid.T__time)

TimeArray is the array variant of Time.

View Source
var TimeTZ = TimeTZType{-1}

TimeTZ is the time with a time zone. Precision is unbounded.

View Source
var TimeTZArray = createArrayType(TimeTZ, SerializationID_TimeTZArray, oid.T__timetz)

TimeTZArray is the array variant of TimeTZ.

View Source
var Timestamp = TimestampType{-1}

Timestamp is the timestamp without a time zone. Precision is unbounded.

View Source
var TimestampArray = createArrayType(Timestamp, SerializationID_TimestampArray, oid.T__timestamp)

TimestampArray is the array variant of Timestamp.

View Source
var TimestampTZ = TimestampTZType{-1}

TimestampTZ is the timestamp with a time zone. Precision is unbounded.

View Source
var TimestampTZArray = createArrayType(TimestampTZ, SerializationID_TimestampTZArray, oid.T__timestamptz)

TimestampTZArray is the array variant of TimestampTZ.

View Source
var Unknown = UnknownType{}

Unknown represents an invalid or indeterminate type. This is primarily used internally.

View Source
var Uuid = UuidType{}

Uuid is the UUID type.

View Source
var UuidArray = createArrayType(Uuid, SerializationID_UuidArray, oid.T__uuid)

UuidArray is the array variant of Uuid.

View Source
var VarChar = VarCharType{Length: stringUnbounded}

VarChar is a varchar that has an unbounded length.

View Source
var VarCharArray = createArrayTypeWithFuncs(VarChar, SerializationID_VarCharArray, oid.T__varchar, arrayContainerFunctions{
	SQL: stringArraySQL,
})

VarCharArray is the array variant of VarChar.

Functions

func DeserializeType

func DeserializeType(serializedType []byte) (types.ExtendedType, error)

DeserializeType is able to deserialize the given serialized type into an appropriate extended type. All extended types will be defined by DoltgreSQL.

func MustSerializeType

func MustSerializeType(extendedType types.ExtendedType) []byte

MustSerializeType internally calls SerializeType and panics on error. In general, panics should only occur when a type has not yet had its Serialization implemented yet.

func SerializeType

func SerializeType(extendedType types.ExtendedType) ([]byte, error)

SerializeType is able to serialize the given extended type into a byte slice. All extended types will be defined by DoltgreSQL.

Types

type AnyArrayType added in v0.6.0

type AnyArrayType struct{}

AnyArrayType is the extended type implementation of the PostgreSQL anyarray.

func (AnyArrayType) BaseID added in v0.6.0

func (aa AnyArrayType) BaseID() DoltgresTypeBaseID

BaseID implements the DoltgresType interface.

func (AnyArrayType) BaseType added in v0.6.0

func (aa AnyArrayType) BaseType() DoltgresType

BaseType implements the DoltgresArrayType interface.

func (AnyArrayType) CollationCoercibility added in v0.6.0

func (aa AnyArrayType) CollationCoercibility(ctx *sql.Context) (collation sql.CollationID, coercibility byte)

CollationCoercibility implements the DoltgresType interface.

func (AnyArrayType) Compare added in v0.6.0

func (aa AnyArrayType) Compare(v1 any, v2 any) (int, error)

Compare implements the DoltgresType interface.

func (AnyArrayType) Convert added in v0.6.0

func (aa AnyArrayType) Convert(val any) (any, sql.ConvertInRange, error)

Convert implements the DoltgresType interface.

func (AnyArrayType) DeserializeValue added in v0.6.0

func (aa AnyArrayType) DeserializeValue(val []byte) (any, error)

DeserializeValue implements the DoltgresType interface.

func (AnyArrayType) Equals added in v0.6.0

func (aa AnyArrayType) Equals(otherType sql.Type) bool

Equals implements the DoltgresType interface.

func (AnyArrayType) FormatSerializedValue added in v0.6.0

func (aa AnyArrayType) FormatSerializedValue(val []byte) (string, error)

FormatSerializedValue implements the DoltgresType interface.

func (AnyArrayType) FormatValue added in v0.6.0

func (aa AnyArrayType) FormatValue(val any) (string, error)

FormatValue implements the DoltgresType interface.

func (AnyArrayType) GetSerializationID added in v0.6.0

func (aa AnyArrayType) GetSerializationID() SerializationID

GetSerializationID implements the DoltgresType interface.

func (AnyArrayType) IsUnbounded added in v0.6.0

func (aa AnyArrayType) IsUnbounded() bool

IsUnbounded implements the DoltgresType interface.

func (AnyArrayType) MaxSerializedWidth added in v0.6.0

func (aa AnyArrayType) MaxSerializedWidth() types.ExtendedTypeSerializedWidth

MaxSerializedWidth implements the DoltgresType interface.

func (AnyArrayType) MaxTextResponseByteLength added in v0.6.0

func (aa AnyArrayType) MaxTextResponseByteLength(ctx *sql.Context) uint32

MaxTextResponseByteLength implements the DoltgresType interface.

func (AnyArrayType) OID added in v0.6.0

func (aa AnyArrayType) OID() uint32

OID implements the DoltgresType interface.

func (AnyArrayType) Promote added in v0.6.0

func (aa AnyArrayType) Promote() sql.Type

Promote implements the DoltgresType interface.

func (AnyArrayType) SQL added in v0.6.0

func (aa AnyArrayType) SQL(ctx *sql.Context, dest []byte, v any) (sqltypes.Value, error)

SQL implements the DoltgresType interface.

func (AnyArrayType) SerializeType added in v0.6.0

func (aa AnyArrayType) SerializeType() ([]byte, error)

SerializeType implements the DoltgresType interface.

func (AnyArrayType) SerializeValue added in v0.6.0

func (aa AnyArrayType) SerializeValue(val any) ([]byte, error)

SerializeValue implements the DoltgresType interface.

func (AnyArrayType) SerializedCompare added in v0.6.0

func (aa AnyArrayType) SerializedCompare(v1 []byte, v2 []byte) (int, error)

SerializedCompare implements the DoltgresType interface.

func (AnyArrayType) String added in v0.6.0

func (aa AnyArrayType) String() string

String implements the DoltgresType interface.

func (AnyArrayType) ToArrayType added in v0.6.0

func (aa AnyArrayType) ToArrayType() DoltgresArrayType

ToArrayType implements the DoltgresType interface.

func (AnyArrayType) Type added in v0.6.0

func (aa AnyArrayType) Type() query.Type

Type implements the DoltgresType interface.

func (AnyArrayType) ValueType added in v0.6.0

func (aa AnyArrayType) ValueType() reflect.Type

ValueType implements the DoltgresType interface.

func (AnyArrayType) Zero added in v0.6.0

func (aa AnyArrayType) Zero() any

Zero implements the DoltgresType interface.

type BoolType

type BoolType struct{}

BoolType is the extended type implementation of the PostgreSQL boolean.

func (BoolType) BaseID added in v0.5.0

func (b BoolType) BaseID() DoltgresTypeBaseID

BaseID implements the DoltgresType interface.

func (BoolType) CollationCoercibility

func (b BoolType) CollationCoercibility(ctx *sql.Context) (collation sql.CollationID, coercibility byte)

CollationCoercibility implements the DoltgresType interface.

func (BoolType) Compare

func (b BoolType) Compare(v1 any, v2 any) (int, error)

Compare implements the DoltgresType interface.

func (BoolType) Convert

func (b BoolType) Convert(val any) (any, sql.ConvertInRange, error)

Convert implements the DoltgresType interface.

func (BoolType) DeserializeValue

func (b BoolType) DeserializeValue(val []byte) (any, error)

DeserializeValue implements the DoltgresType interface.

func (BoolType) Equals

func (b BoolType) Equals(otherType sql.Type) bool

Equals implements the DoltgresType interface.

func (BoolType) FormatSerializedValue

func (b BoolType) FormatSerializedValue(val []byte) (string, error)

FormatSerializedValue implements the DoltgresType interface.

func (BoolType) FormatValue

func (b BoolType) FormatValue(val any) (string, error)

FormatValue implements the DoltgresType interface.

func (BoolType) GetSerializationID added in v0.6.0

func (b BoolType) GetSerializationID() SerializationID

GetSerializationID implements the DoltgresType interface.

func (BoolType) IsUnbounded added in v0.6.0

func (b BoolType) IsUnbounded() bool

IsUnbounded implements the DoltgresType interface.

func (BoolType) MaxSerializedWidth

func (b BoolType) MaxSerializedWidth() types.ExtendedTypeSerializedWidth

MaxSerializedWidth implements the DoltgresType interface.

func (BoolType) MaxTextResponseByteLength

func (b BoolType) MaxTextResponseByteLength(ctx *sql.Context) uint32

MaxTextResponseByteLength implements the DoltgresType interface.

func (BoolType) OID added in v0.5.0

func (b BoolType) OID() uint32

OID implements the DoltgresType interface.

func (BoolType) Promote

func (b BoolType) Promote() sql.Type

Promote implements the DoltgresType interface.

func (BoolType) SQL

func (b BoolType) SQL(ctx *sql.Context, dest []byte, v any) (sqltypes.Value, error)

SQL implements the DoltgresType interface.

func (BoolType) SerializeType added in v0.6.0

func (b BoolType) SerializeType() ([]byte, error)

SerializeType implements the DoltgresType interface.

func (BoolType) SerializeValue

func (b BoolType) SerializeValue(val any) ([]byte, error)

SerializeValue implements the DoltgresType interface.

func (BoolType) SerializedCompare

func (b BoolType) SerializedCompare(v1 []byte, v2 []byte) (int, error)

SerializedCompare implements the DoltgresType interface.

func (BoolType) String

func (b BoolType) String() string

String implements the DoltgresType interface.

func (BoolType) ToArrayType added in v0.6.0

func (b BoolType) ToArrayType() DoltgresArrayType

ToArrayType implements the DoltgresType interface.

func (BoolType) Type

func (b BoolType) Type() query.Type

Type implements the DoltgresType interface.

func (BoolType) ValueType

func (b BoolType) ValueType() reflect.Type

ValueType implements the DoltgresType interface.

func (BoolType) Zero

func (b BoolType) Zero() any

Zero implements the DoltgresType interface.

type ByteaType added in v0.6.0

type ByteaType struct{}

ByteaType is the extended type implementation of the PostgreSQL bytea.

func (ByteaType) BaseID added in v0.6.0

func (b ByteaType) BaseID() DoltgresTypeBaseID

BaseID implements the DoltgresType interface.

func (ByteaType) CollationCoercibility added in v0.6.0

func (b ByteaType) CollationCoercibility(ctx *sql.Context) (collation sql.CollationID, coercibility byte)

CollationCoercibility implements the DoltgresType interface.

func (ByteaType) Compare added in v0.6.0

func (b ByteaType) Compare(v1 any, v2 any) (int, error)

Compare implements the DoltgresType interface.

func (ByteaType) Convert added in v0.6.0

func (b ByteaType) Convert(val any) (any, sql.ConvertInRange, error)

Convert implements the DoltgresType interface.

func (ByteaType) DeserializeValue added in v0.6.0

func (b ByteaType) DeserializeValue(val []byte) (any, error)

DeserializeValue implements the DoltgresType interface.

func (ByteaType) Equals added in v0.6.0

func (b ByteaType) Equals(otherType sql.Type) bool

Equals implements the DoltgresType interface.

func (ByteaType) FormatSerializedValue added in v0.6.0

func (b ByteaType) FormatSerializedValue(val []byte) (string, error)

FormatSerializedValue implements the DoltgresType interface.

func (ByteaType) FormatValue added in v0.6.0

func (b ByteaType) FormatValue(val any) (string, error)

FormatValue implements the DoltgresType interface.

func (ByteaType) GetSerializationID added in v0.6.0

func (b ByteaType) GetSerializationID() SerializationID

GetSerializationID implements the DoltgresType interface.

func (ByteaType) IsUnbounded added in v0.6.0

func (b ByteaType) IsUnbounded() bool

IsUnbounded implements the DoltgresType interface.

func (ByteaType) MaxSerializedWidth added in v0.6.0

func (b ByteaType) MaxSerializedWidth() types.ExtendedTypeSerializedWidth

MaxSerializedWidth implements the DoltgresType interface.

func (ByteaType) MaxTextResponseByteLength added in v0.6.0

func (b ByteaType) MaxTextResponseByteLength(ctx *sql.Context) uint32

MaxTextResponseByteLength implements the DoltgresType interface.

func (ByteaType) OID added in v0.6.0

func (b ByteaType) OID() uint32

OID implements the DoltgresType interface.

func (ByteaType) Promote added in v0.6.0

func (b ByteaType) Promote() sql.Type

Promote implements the DoltgresType interface.

func (ByteaType) SQL added in v0.6.0

func (b ByteaType) SQL(ctx *sql.Context, dest []byte, v any) (sqltypes.Value, error)

SQL implements the DoltgresType interface.

func (ByteaType) SerializeType added in v0.6.0

func (b ByteaType) SerializeType() ([]byte, error)

SerializeType implements the DoltgresType interface.

func (ByteaType) SerializeValue added in v0.6.0

func (b ByteaType) SerializeValue(val any) ([]byte, error)

SerializeValue implements the DoltgresType interface.

func (ByteaType) SerializedCompare added in v0.6.0

func (b ByteaType) SerializedCompare(v1 []byte, v2 []byte) (int, error)

SerializedCompare implements the DoltgresType interface.

func (ByteaType) String added in v0.6.0

func (b ByteaType) String() string

String implements the DoltgresType interface.

func (ByteaType) ToArrayType added in v0.6.0

func (b ByteaType) ToArrayType() DoltgresArrayType

ToArrayType implements the DoltgresType interface.

func (ByteaType) Type added in v0.6.0

func (b ByteaType) Type() query.Type

Type implements the DoltgresType interface.

func (ByteaType) ValueType added in v0.6.0

func (b ByteaType) ValueType() reflect.Type

ValueType implements the DoltgresType interface.

func (ByteaType) Zero added in v0.6.0

func (b ByteaType) Zero() any

Zero implements the DoltgresType interface.

type CharType added in v0.6.0

type CharType struct {
	// Length represents the maximum number of characters that the type may hold.
	// When this is set to unbounded, then it becomes recognized as bpchar.
	Length uint32
}

CharType is the extended type implementation of the PostgreSQL char and bpchar, which are the same type internally.

func (CharType) BaseID added in v0.6.0

func (b CharType) BaseID() DoltgresTypeBaseID

BaseID implements the DoltgresType interface.

func (CharType) CollationCoercibility added in v0.6.0

func (b CharType) CollationCoercibility(ctx *sql.Context) (collation sql.CollationID, coercibility byte)

CollationCoercibility implements the DoltgresType interface.

func (CharType) Compare added in v0.6.0

func (b CharType) Compare(v1 any, v2 any) (int, error)

Compare implements the DoltgresType interface.

func (CharType) Convert added in v0.6.0

func (b CharType) Convert(val any) (any, sql.ConvertInRange, error)

Convert implements the DoltgresType interface.

func (CharType) DeserializeValue added in v0.6.0

func (b CharType) DeserializeValue(val []byte) (any, error)

DeserializeValue implements the DoltgresType interface.

func (CharType) Equals added in v0.6.0

func (b CharType) Equals(otherType sql.Type) bool

Equals implements the DoltgresType interface.

func (CharType) FormatSerializedValue added in v0.6.0

func (b CharType) FormatSerializedValue(val []byte) (string, error)

FormatSerializedValue implements the DoltgresType interface.

func (CharType) FormatValue added in v0.6.0

func (b CharType) FormatValue(val any) (string, error)

FormatValue implements the DoltgresType interface.

func (CharType) GetSerializationID added in v0.6.0

func (b CharType) GetSerializationID() SerializationID

GetSerializationID implements the DoltgresType interface.

func (CharType) IsUnbounded added in v0.6.0

func (b CharType) IsUnbounded() bool

IsUnbounded implements the DoltgresType interface.

func (CharType) MaxSerializedWidth added in v0.6.0

func (b CharType) MaxSerializedWidth() types.ExtendedTypeSerializedWidth

MaxSerializedWidth implements the DoltgresType interface.

func (CharType) MaxTextResponseByteLength added in v0.6.0

func (b CharType) MaxTextResponseByteLength(ctx *sql.Context) uint32

MaxTextResponseByteLength implements the DoltgresType interface.

func (CharType) OID added in v0.6.0

func (b CharType) OID() uint32

OID implements the DoltgresType interface.

func (CharType) Promote added in v0.6.0

func (b CharType) Promote() sql.Type

Promote implements the DoltgresType interface.

func (CharType) SQL added in v0.6.0

func (b CharType) SQL(ctx *sql.Context, dest []byte, v any) (sqltypes.Value, error)

SQL implements the DoltgresType interface.

func (CharType) SerializeType added in v0.6.0

func (b CharType) SerializeType() ([]byte, error)

SerializeType implements the DoltgresType interface.

func (CharType) SerializeValue added in v0.6.0

func (b CharType) SerializeValue(val any) ([]byte, error)

SerializeValue implements the DoltgresType interface.

func (CharType) SerializedCompare added in v0.6.0

func (b CharType) SerializedCompare(v1 []byte, v2 []byte) (int, error)

SerializedCompare implements the DoltgresType interface.

func (CharType) String added in v0.6.0

func (b CharType) String() string

String implements the DoltgresType interface.

func (CharType) ToArrayType added in v0.6.0

func (b CharType) ToArrayType() DoltgresArrayType

ToArrayType implements the DoltgresType interface.

func (CharType) Type added in v0.6.0

func (b CharType) Type() query.Type

Type implements the DoltgresType interface.

func (CharType) ValueType added in v0.6.0

func (b CharType) ValueType() reflect.Type

ValueType implements the DoltgresType interface.

func (CharType) Zero added in v0.6.0

func (b CharType) Zero() any

Zero implements the DoltgresType interface.

type DateType added in v0.6.0

type DateType struct{}

DateType is the extended type implementation of the PostgreSQL date.

func (DateType) BaseID added in v0.6.0

func (b DateType) BaseID() DoltgresTypeBaseID

BaseID implements the DoltgresType interface.

func (DateType) CollationCoercibility added in v0.6.0

func (b DateType) CollationCoercibility(ctx *sql.Context) (collation sql.CollationID, coercibility byte)

CollationCoercibility implements the DoltgresType interface.

func (DateType) Compare added in v0.6.0

func (b DateType) Compare(v1 any, v2 any) (int, error)

Compare implements the DoltgresType interface.

func (DateType) Convert added in v0.6.0

func (b DateType) Convert(val any) (any, sql.ConvertInRange, error)

Convert implements the DoltgresType interface.

func (DateType) DeserializeValue added in v0.6.0

func (b DateType) DeserializeValue(val []byte) (any, error)

DeserializeValue implements the DoltgresType interface.

func (DateType) Equals added in v0.6.0

func (b DateType) Equals(otherType sql.Type) bool

Equals implements the DoltgresType interface.

func (DateType) FormatSerializedValue added in v0.6.0

func (b DateType) FormatSerializedValue(val []byte) (string, error)

FormatSerializedValue implements the DoltgresType interface.

func (DateType) FormatValue added in v0.6.0

func (b DateType) FormatValue(val any) (string, error)

FormatValue implements the DoltgresType interface.

func (DateType) GetSerializationID added in v0.6.0

func (b DateType) GetSerializationID() SerializationID

GetSerializationID implements the DoltgresType interface.

func (DateType) IsUnbounded added in v0.6.0

func (b DateType) IsUnbounded() bool

IsUnbounded implements the DoltgresType interface.

func (DateType) MaxSerializedWidth added in v0.6.0

func (b DateType) MaxSerializedWidth() types.ExtendedTypeSerializedWidth

MaxSerializedWidth implements the DoltgresType interface.

func (DateType) MaxTextResponseByteLength added in v0.6.0

func (b DateType) MaxTextResponseByteLength(ctx *sql.Context) uint32

MaxTextResponseByteLength implements the DoltgresType interface.

func (DateType) OID added in v0.6.0

func (b DateType) OID() uint32

OID implements the DoltgresType interface.

func (DateType) Promote added in v0.6.0

func (b DateType) Promote() sql.Type

Promote implements the DoltgresType interface.

func (DateType) SQL added in v0.6.0

func (b DateType) SQL(ctx *sql.Context, dest []byte, v any) (sqltypes.Value, error)

SQL implements the DoltgresType interface.

func (DateType) SerializeType added in v0.6.0

func (b DateType) SerializeType() ([]byte, error)

SerializeType implements the DoltgresType interface.

func (DateType) SerializeValue added in v0.6.0

func (b DateType) SerializeValue(val any) ([]byte, error)

SerializeValue implements the DoltgresType interface.

func (DateType) SerializedCompare added in v0.6.0

func (b DateType) SerializedCompare(v1 []byte, v2 []byte) (int, error)

SerializedCompare implements the DoltgresType interface.

func (DateType) String added in v0.6.0

func (b DateType) String() string

String implements the DoltgresType interface.

func (DateType) ToArrayType added in v0.6.0

func (b DateType) ToArrayType() DoltgresArrayType

ToArrayType implements the DoltgresType interface.

func (DateType) Type added in v0.6.0

func (b DateType) Type() query.Type

Type implements the DoltgresType interface.

func (DateType) ValueType added in v0.6.0

func (b DateType) ValueType() reflect.Type

ValueType implements the DoltgresType interface.

func (DateType) Zero added in v0.6.0

func (b DateType) Zero() any

Zero implements the DoltgresType interface.

type DoltgresArrayType added in v0.6.0

type DoltgresArrayType interface {
	DoltgresType
	// BaseType is the inner type of the array. This will always be a non-array type.
	BaseType() DoltgresType
}

DoltgresArrayType is a DoltgresType that represents an array variant of a non-array type.

func IsBaseIDArrayType added in v0.6.0

func IsBaseIDArrayType(id DoltgresTypeBaseID) (DoltgresArrayType, bool)

IsBaseIDArrayType returns whether the given base ID is an array type. If it is, it also returns the type.

type DoltgresType added in v0.5.0

type DoltgresType interface {
	types.ExtendedType
	// BaseID returns the DoltgresTypeBaseID for this type.
	BaseID() DoltgresTypeBaseID
	// GetSerializationID returns the SerializationID for this type.
	GetSerializationID() SerializationID
	// IsUnbounded returns whether the type is unbounded. Unbounded types do not enforce a length, precision, etc. on
	// values. All values are still bound by the field size limit, but that differs from any type-enforced limits.
	IsUnbounded() bool
	// OID returns an OID that we are associating with this type. OIDs are not unique, and are not guaranteed to be the
	// same between versions of Postgres. However, they've so far appeared relatively stable, and many libraries rely on
	// them for type identification, so we return them here. These should not be used for any sort of identification on
	// our side. For that, we should use DoltgresTypeBaseID, which we can guarantee will be unique and non-changing once
	// we've stabilized development.
	OID() uint32
	// SerializeType returns a byte slice representing the serialized form of the type. All serialized types MUST start
	// with their SerializationID. Deserialization is done through the DeserializeType function.
	SerializeType() ([]byte, error)

	// ToArrayType converts the calling DoltgresType into its corresponding array type. When called on a
	// DoltgresArrayType, then it simply returns itself, as a multidimensional or nested array is equivalent to a
	// standard array.
	ToArrayType() DoltgresArrayType
	// contains filtered or unexported methods
}

DoltgresType is a type that is distinct from the MySQL types in GMS.

type DoltgresTypeBaseID added in v0.5.0

type DoltgresTypeBaseID uint32

DoltgresTypeBaseID is an ID that is common between all variations of a DoltgresType. For example, VARCHAR(3) and VARCHAR(6) are different types, however they will return the same DoltgresTypeBaseID. This ID is not suitable for serialization, as it may change over time. Many types use their SerializationID as their base ID, so for types that are not serializable (such as the "any" types), it is recommended that they start way after the largest SerializationID to prevent base ID conflicts.

const (
	DoltgresTypeBaseID_Any DoltgresTypeBaseID = iota + 2147483648
	DoltgresTypeBaseID_AnyElement
	DoltgresTypeBaseID_AnyArray
	DoltgresTypeBaseID_AnyNonArray
	DoltgresTypeBaseID_AnyEnum
	DoltgresTypeBaseID_AnyRange
	DoltgresTypeBaseID_AnyMultirange
	DoltgresTypeBaseID_AnyCompatible
	DoltgresTypeBaseID_AnyCompatibleArray
	DoltgresTypeBaseID_AnyCompatibleNonArray
	DoltgresTypeBaseID_AnyCompatibleRange
	DoltgresTypeBaseID_AnyCompatibleMultirange
	DoltgresTypeBaseID_CString
	DoltgresTypeBaseID_Internal
	DoltgresTypeBaseID_Language_Handler
	DoltgresTypeBaseID_FDW_Handler
	DoltgresTypeBaseID_Table_AM_Handler
	DoltgresTypeBaseID_Index_AM_Handler
	DoltgresTypeBaseID_TSM_Handler
	DoltgresTypeBaseID_Record
	DoltgresTypeBaseID_Trigger
	DoltgresTypeBaseID_Event_Trigger
	DoltgresTypeBaseID_PG_DDL_Command
	DoltgresTypeBaseID_Void
	DoltgresTypeBaseID_Unknown
)

type Float32Type added in v0.5.0

type Float32Type struct{}

Float32Type is the extended type implementation of the PostgreSQL real.

func (Float32Type) BaseID added in v0.5.0

func (b Float32Type) BaseID() DoltgresTypeBaseID

BaseID implements the DoltgresType interface.

func (Float32Type) CollationCoercibility added in v0.5.0

func (b Float32Type) CollationCoercibility(ctx *sql.Context) (collation sql.CollationID, coercibility byte)

CollationCoercibility implements the DoltgresType interface.

func (Float32Type) Compare added in v0.5.0

func (b Float32Type) Compare(v1 any, v2 any) (int, error)

Compare implements the DoltgresType interface.

func (Float32Type) Convert added in v0.5.0

func (b Float32Type) Convert(val any) (any, sql.ConvertInRange, error)

Convert implements the DoltgresType interface.

func (Float32Type) DeserializeValue added in v0.5.0

func (b Float32Type) DeserializeValue(val []byte) (any, error)

DeserializeValue implements the DoltgresType interface.

func (Float32Type) Equals added in v0.5.0

func (b Float32Type) Equals(otherType sql.Type) bool

Equals implements the DoltgresType interface.

func (Float32Type) FormatSerializedValue added in v0.5.0

func (b Float32Type) FormatSerializedValue(val []byte) (string, error)

FormatSerializedValue implements the DoltgresType interface.

func (Float32Type) FormatValue added in v0.5.0

func (b Float32Type) FormatValue(val any) (string, error)

FormatValue implements the DoltgresType interface.

func (Float32Type) GetSerializationID added in v0.6.0

func (b Float32Type) GetSerializationID() SerializationID

GetSerializationID implements the DoltgresType interface.

func (Float32Type) IsUnbounded added in v0.6.0

func (b Float32Type) IsUnbounded() bool

IsUnbounded implements the DoltgresType interface.

func (Float32Type) MaxSerializedWidth added in v0.5.0

func (b Float32Type) MaxSerializedWidth() types.ExtendedTypeSerializedWidth

MaxSerializedWidth implements the DoltgresType interface.

func (Float32Type) MaxTextResponseByteLength added in v0.5.0

func (b Float32Type) MaxTextResponseByteLength(ctx *sql.Context) uint32

MaxTextResponseByteLength implements the DoltgresType interface.

func (Float32Type) OID added in v0.5.0

func (b Float32Type) OID() uint32

OID implements the DoltgresType interface.

func (Float32Type) Promote added in v0.5.0

func (b Float32Type) Promote() sql.Type

Promote implements the DoltgresType interface.

func (Float32Type) SQL added in v0.5.0

func (b Float32Type) SQL(ctx *sql.Context, dest []byte, v any) (sqltypes.Value, error)

SQL implements the DoltgresType interface.

func (Float32Type) SerializeType added in v0.6.0

func (b Float32Type) SerializeType() ([]byte, error)

SerializeType implements the DoltgresType interface.

func (Float32Type) SerializeValue added in v0.5.0

func (b Float32Type) SerializeValue(val any) ([]byte, error)

SerializeValue implements the DoltgresType interface.

func (Float32Type) SerializedCompare added in v0.5.0

func (b Float32Type) SerializedCompare(v1 []byte, v2 []byte) (int, error)

SerializedCompare implements the DoltgresType interface.

func (Float32Type) String added in v0.5.0

func (b Float32Type) String() string

String implements the DoltgresType interface.

func (Float32Type) ToArrayType added in v0.6.0

func (b Float32Type) ToArrayType() DoltgresArrayType

ToArrayType implements the DoltgresType interface.

func (Float32Type) Type added in v0.5.0

func (b Float32Type) Type() query.Type

Type implements the DoltgresType interface.

func (Float32Type) ValueType added in v0.5.0

func (b Float32Type) ValueType() reflect.Type

ValueType implements the DoltgresType interface.

func (Float32Type) Zero added in v0.5.0

func (b Float32Type) Zero() any

Zero implements the DoltgresType interface.

type Float64Type added in v0.5.0

type Float64Type struct{}

Float64Type is the extended type implementation of the PostgreSQL double precision.

func (Float64Type) BaseID added in v0.5.0

func (b Float64Type) BaseID() DoltgresTypeBaseID

BaseID implements the DoltgresType interface.

func (Float64Type) CollationCoercibility added in v0.5.0

func (b Float64Type) CollationCoercibility(ctx *sql.Context) (collation sql.CollationID, coercibility byte)

CollationCoercibility implements the DoltgresType interface.

func (Float64Type) Compare added in v0.5.0

func (b Float64Type) Compare(v1 any, v2 any) (int, error)

Compare implements the DoltgresType interface.

func (Float64Type) Convert added in v0.5.0

func (b Float64Type) Convert(val any) (any, sql.ConvertInRange, error)

Convert implements the DoltgresType interface.

func (Float64Type) DeserializeValue added in v0.5.0

func (b Float64Type) DeserializeValue(val []byte) (any, error)

DeserializeValue implements the DoltgresType interface.

func (Float64Type) Equals added in v0.5.0

func (b Float64Type) Equals(otherType sql.Type) bool

Equals implements the DoltgresType interface.

func (Float64Type) FormatSerializedValue added in v0.5.0

func (b Float64Type) FormatSerializedValue(val []byte) (string, error)

FormatSerializedValue implements the DoltgresType interface.

func (Float64Type) FormatValue added in v0.5.0

func (b Float64Type) FormatValue(val any) (string, error)

FormatValue implements the DoltgresType interface.

func (Float64Type) GetSerializationID added in v0.6.0

func (b Float64Type) GetSerializationID() SerializationID

GetSerializationID implements the DoltgresType interface.

func (Float64Type) IsUnbounded added in v0.6.0

func (b Float64Type) IsUnbounded() bool

IsUnbounded implements the DoltgresType interface.

func (Float64Type) MaxSerializedWidth added in v0.5.0

func (b Float64Type) MaxSerializedWidth() types.ExtendedTypeSerializedWidth

MaxSerializedWidth implements the DoltgresType interface.

func (Float64Type) MaxTextResponseByteLength added in v0.5.0

func (b Float64Type) MaxTextResponseByteLength(ctx *sql.Context) uint32

MaxTextResponseByteLength implements the DoltgresType interface.

func (Float64Type) OID added in v0.5.0

func (b Float64Type) OID() uint32

OID implements the DoltgresType interface.

func (Float64Type) Promote added in v0.5.0

func (b Float64Type) Promote() sql.Type

Promote implements the DoltgresType interface.

func (Float64Type) SQL added in v0.5.0

func (b Float64Type) SQL(ctx *sql.Context, dest []byte, v any) (sqltypes.Value, error)

SQL implements the DoltgresType interface.

func (Float64Type) SerializeType added in v0.6.0

func (b Float64Type) SerializeType() ([]byte, error)

SerializeType implements the DoltgresType interface.

func (Float64Type) SerializeValue added in v0.5.0

func (b Float64Type) SerializeValue(val any) ([]byte, error)

SerializeValue implements the DoltgresType interface.

func (Float64Type) SerializedCompare added in v0.5.0

func (b Float64Type) SerializedCompare(v1 []byte, v2 []byte) (int, error)

SerializedCompare implements the DoltgresType interface.

func (Float64Type) String added in v0.5.0

func (b Float64Type) String() string

String implements the DoltgresType interface.

func (Float64Type) ToArrayType added in v0.6.0

func (b Float64Type) ToArrayType() DoltgresArrayType

ToArrayType implements the DoltgresType interface.

func (Float64Type) Type added in v0.5.0

func (b Float64Type) Type() query.Type

Type implements the DoltgresType interface.

func (Float64Type) ValueType added in v0.5.0

func (b Float64Type) ValueType() reflect.Type

ValueType implements the DoltgresType interface.

func (Float64Type) Zero added in v0.5.0

func (b Float64Type) Zero() any

Zero implements the DoltgresType interface.

type Int16Type added in v0.5.0

type Int16Type struct{}

Int16Type is the extended type implementation of the PostgreSQL smallint.

func (Int16Type) BaseID added in v0.5.0

func (b Int16Type) BaseID() DoltgresTypeBaseID

BaseID implements the DoltgresType interface.

func (Int16Type) CollationCoercibility added in v0.5.0

func (b Int16Type) CollationCoercibility(ctx *sql.Context) (collation sql.CollationID, coercibility byte)

CollationCoercibility implements the DoltgresType interface.

func (Int16Type) Compare added in v0.5.0

func (b Int16Type) Compare(v1 any, v2 any) (int, error)

Compare implements the DoltgresType interface.

func (Int16Type) Convert added in v0.5.0

func (b Int16Type) Convert(val any) (any, sql.ConvertInRange, error)

Convert implements the DoltgresType interface.

func (Int16Type) DeserializeValue added in v0.5.0

func (b Int16Type) DeserializeValue(val []byte) (any, error)

DeserializeValue implements the DoltgresType interface.

func (Int16Type) Equals added in v0.5.0

func (b Int16Type) Equals(otherType sql.Type) bool

Equals implements the DoltgresType interface.

func (Int16Type) FormatSerializedValue added in v0.5.0

func (b Int16Type) FormatSerializedValue(val []byte) (string, error)

FormatSerializedValue implements the DoltgresType interface.

func (Int16Type) FormatValue added in v0.5.0

func (b Int16Type) FormatValue(val any) (string, error)

FormatValue implements the DoltgresType interface.

func (Int16Type) GetSerializationID added in v0.6.0

func (b Int16Type) GetSerializationID() SerializationID

GetSerializationID implements the DoltgresType interface.

func (Int16Type) IsUnbounded added in v0.6.0

func (b Int16Type) IsUnbounded() bool

IsUnbounded implements the DoltgresType interface.

func (Int16Type) MaxSerializedWidth added in v0.5.0

func (b Int16Type) MaxSerializedWidth() types.ExtendedTypeSerializedWidth

MaxSerializedWidth implements the DoltgresType interface.

func (Int16Type) MaxTextResponseByteLength added in v0.5.0

func (b Int16Type) MaxTextResponseByteLength(ctx *sql.Context) uint32

MaxTextResponseByteLength implements the DoltgresType interface.

func (Int16Type) OID added in v0.5.0

func (b Int16Type) OID() uint32

OID implements the DoltgresType interface.

func (Int16Type) Promote added in v0.5.0

func (b Int16Type) Promote() sql.Type

Promote implements the DoltgresType interface.

func (Int16Type) SQL added in v0.5.0

func (b Int16Type) SQL(ctx *sql.Context, dest []byte, v any) (sqltypes.Value, error)

SQL implements the DoltgresType interface.

func (Int16Type) SerializeType added in v0.6.0

func (b Int16Type) SerializeType() ([]byte, error)

SerializeType implements the DoltgresType interface.

func (Int16Type) SerializeValue added in v0.5.0

func (b Int16Type) SerializeValue(val any) ([]byte, error)

SerializeValue implements the DoltgresType interface.

func (Int16Type) SerializedCompare added in v0.5.0

func (b Int16Type) SerializedCompare(v1 []byte, v2 []byte) (int, error)

SerializedCompare implements the DoltgresType interface.

func (Int16Type) String added in v0.5.0

func (b Int16Type) String() string

String implements the DoltgresType interface.

func (Int16Type) ToArrayType added in v0.6.0

func (b Int16Type) ToArrayType() DoltgresArrayType

ToArrayType implements the DoltgresType interface.

func (Int16Type) Type added in v0.5.0

func (b Int16Type) Type() query.Type

Type implements the DoltgresType interface.

func (Int16Type) ValueType added in v0.5.0

func (b Int16Type) ValueType() reflect.Type

ValueType implements the DoltgresType interface.

func (Int16Type) Zero added in v0.5.0

func (b Int16Type) Zero() any

Zero implements the DoltgresType interface.

type Int32Type added in v0.5.0

type Int32Type struct{}

Int32Type is the extended type implementation of the PostgreSQL integer.

func (Int32Type) BaseID added in v0.5.0

func (b Int32Type) BaseID() DoltgresTypeBaseID

BaseID implements the DoltgresType interface.

func (Int32Type) CollationCoercibility added in v0.5.0

func (b Int32Type) CollationCoercibility(ctx *sql.Context) (collation sql.CollationID, coercibility byte)

CollationCoercibility implements the DoltgresType interface.

func (Int32Type) Compare added in v0.5.0

func (b Int32Type) Compare(v1 any, v2 any) (int, error)

Compare implements the DoltgresType interface.

func (Int32Type) Convert added in v0.5.0

func (b Int32Type) Convert(val any) (any, sql.ConvertInRange, error)

Convert implements the DoltgresType interface.

func (Int32Type) DeserializeValue added in v0.5.0

func (b Int32Type) DeserializeValue(val []byte) (any, error)

DeserializeValue implements the DoltgresType interface.

func (Int32Type) Equals added in v0.5.0

func (b Int32Type) Equals(otherType sql.Type) bool

Equals implements the DoltgresType interface.

func (Int32Type) FormatSerializedValue added in v0.5.0

func (b Int32Type) FormatSerializedValue(val []byte) (string, error)

FormatSerializedValue implements the DoltgresType interface.

func (Int32Type) FormatValue added in v0.5.0

func (b Int32Type) FormatValue(val any) (string, error)

FormatValue implements the DoltgresType interface.

func (Int32Type) GetSerializationID added in v0.6.0

func (b Int32Type) GetSerializationID() SerializationID

GetSerializationID implements the DoltgresType interface.

func (Int32Type) IsUnbounded added in v0.6.0

func (b Int32Type) IsUnbounded() bool

IsUnbounded implements the DoltgresType interface.

func (Int32Type) MaxSerializedWidth added in v0.5.0

func (b Int32Type) MaxSerializedWidth() types.ExtendedTypeSerializedWidth

MaxSerializedWidth implements the DoltgresType interface.

func (Int32Type) MaxTextResponseByteLength added in v0.5.0

func (b Int32Type) MaxTextResponseByteLength(ctx *sql.Context) uint32

MaxTextResponseByteLength implements the DoltgresType interface.

func (Int32Type) OID added in v0.5.0

func (b Int32Type) OID() uint32

OID implements the DoltgresType interface.

func (Int32Type) Promote added in v0.5.0

func (b Int32Type) Promote() sql.Type

Promote implements the DoltgresType interface.

func (Int32Type) SQL added in v0.5.0

func (b Int32Type) SQL(ctx *sql.Context, dest []byte, v any) (sqltypes.Value, error)

SQL implements the DoltgresType interface.

func (Int32Type) SerializeType added in v0.6.0

func (b Int32Type) SerializeType() ([]byte, error)

SerializeType implements the DoltgresType interface.

func (Int32Type) SerializeValue added in v0.5.0

func (b Int32Type) SerializeValue(val any) ([]byte, error)

SerializeValue implements the DoltgresType interface.

func (Int32Type) SerializedCompare added in v0.5.0

func (b Int32Type) SerializedCompare(v1 []byte, v2 []byte) (int, error)

SerializedCompare implements the DoltgresType interface.

func (Int32Type) String added in v0.5.0

func (b Int32Type) String() string

String implements the DoltgresType interface.

func (Int32Type) ToArrayType added in v0.6.0

func (b Int32Type) ToArrayType() DoltgresArrayType

ToArrayType implements the DoltgresType interface.

func (Int32Type) Type added in v0.5.0

func (b Int32Type) Type() query.Type

Type implements the DoltgresType interface.

func (Int32Type) ValueType added in v0.5.0

func (b Int32Type) ValueType() reflect.Type

ValueType implements the DoltgresType interface.

func (Int32Type) Zero added in v0.5.0

func (b Int32Type) Zero() any

Zero implements the DoltgresType interface.

type Int64Type added in v0.5.0

type Int64Type struct{}

Int64Type is the extended type implementation of the PostgreSQL bigint.

func (Int64Type) BaseID added in v0.5.0

func (b Int64Type) BaseID() DoltgresTypeBaseID

BaseID implements the DoltgresType interface.

func (Int64Type) CollationCoercibility added in v0.5.0

func (b Int64Type) CollationCoercibility(ctx *sql.Context) (collation sql.CollationID, coercibility byte)

CollationCoercibility implements the DoltgresType interface.

func (Int64Type) Compare added in v0.5.0

func (b Int64Type) Compare(v1 any, v2 any) (int, error)

Compare implements the DoltgresType interface.

func (Int64Type) Convert added in v0.5.0

func (b Int64Type) Convert(val any) (any, sql.ConvertInRange, error)

Convert implements the DoltgresType interface.

func (Int64Type) DeserializeValue added in v0.5.0

func (b Int64Type) DeserializeValue(val []byte) (any, error)

DeserializeValue implements the DoltgresType interface.

func (Int64Type) Equals added in v0.5.0

func (b Int64Type) Equals(otherType sql.Type) bool

Equals implements the DoltgresType interface.

func (Int64Type) FormatSerializedValue added in v0.5.0

func (b Int64Type) FormatSerializedValue(val []byte) (string, error)

FormatSerializedValue implements the DoltgresType interface.

func (Int64Type) FormatValue added in v0.5.0

func (b Int64Type) FormatValue(val any) (string, error)

FormatValue implements the DoltgresType interface.

func (Int64Type) GetSerializationID added in v0.6.0

func (b Int64Type) GetSerializationID() SerializationID

GetSerializationID implements the DoltgresType interface.

func (Int64Type) IsUnbounded added in v0.6.0

func (b Int64Type) IsUnbounded() bool

IsUnbounded implements the DoltgresType interface.

func (Int64Type) MaxSerializedWidth added in v0.5.0

func (b Int64Type) MaxSerializedWidth() types.ExtendedTypeSerializedWidth

MaxSerializedWidth implements the DoltgresType interface.

func (Int64Type) MaxTextResponseByteLength added in v0.5.0

func (b Int64Type) MaxTextResponseByteLength(ctx *sql.Context) uint32

MaxTextResponseByteLength implements the DoltgresType interface.

func (Int64Type) OID added in v0.5.0

func (b Int64Type) OID() uint32

OID implements the DoltgresType interface.

func (Int64Type) Promote added in v0.5.0

func (b Int64Type) Promote() sql.Type

Promote implements the DoltgresType interface.

func (Int64Type) SQL added in v0.5.0

func (b Int64Type) SQL(ctx *sql.Context, dest []byte, v any) (sqltypes.Value, error)

SQL implements the DoltgresType interface.

func (Int64Type) SerializeType added in v0.6.0

func (b Int64Type) SerializeType() ([]byte, error)

SerializeType implements the DoltgresType interface.

func (Int64Type) SerializeValue added in v0.5.0

func (b Int64Type) SerializeValue(val any) ([]byte, error)

SerializeValue implements the DoltgresType interface.

func (Int64Type) SerializedCompare added in v0.5.0

func (b Int64Type) SerializedCompare(v1 []byte, v2 []byte) (int, error)

SerializedCompare implements the DoltgresType interface.

func (Int64Type) String added in v0.5.0

func (b Int64Type) String() string

String implements the DoltgresType interface.

func (Int64Type) ToArrayType added in v0.6.0

func (b Int64Type) ToArrayType() DoltgresArrayType

ToArrayType implements the DoltgresType interface.

func (Int64Type) Type added in v0.5.0

func (b Int64Type) Type() query.Type

Type implements the DoltgresType interface.

func (Int64Type) ValueType added in v0.5.0

func (b Int64Type) ValueType() reflect.Type

ValueType implements the DoltgresType interface.

func (Int64Type) Zero added in v0.5.0

func (b Int64Type) Zero() any

Zero implements the DoltgresType interface.

type NullType added in v0.5.0

type NullType struct{}

NullType is the extended type implementation of the PostgreSQL null.

func (NullType) BaseID added in v0.5.0

func (b NullType) BaseID() DoltgresTypeBaseID

BaseID implements the DoltgresType interface.

func (NullType) CollationCoercibility added in v0.5.0

func (b NullType) CollationCoercibility(ctx *sql.Context) (collation sql.CollationID, coercibility byte)

CollationCoercibility implements the DoltgresType interface.

func (NullType) Compare added in v0.5.0

func (b NullType) Compare(v1 any, v2 any) (int, error)

Compare implements the DoltgresType interface.

func (NullType) Convert added in v0.5.0

func (b NullType) Convert(val any) (any, sql.ConvertInRange, error)

Convert implements the DoltgresType interface.

func (NullType) DeserializeValue added in v0.5.0

func (b NullType) DeserializeValue(val []byte) (any, error)

DeserializeValue implements the DoltgresType interface.

func (NullType) Equals added in v0.5.0

func (b NullType) Equals(otherType sql.Type) bool

Equals implements the DoltgresType interface.

func (NullType) FormatSerializedValue added in v0.5.0

func (b NullType) FormatSerializedValue(val []byte) (string, error)

FormatSerializedValue implements the DoltgresType interface.

func (NullType) FormatValue added in v0.5.0

func (b NullType) FormatValue(val any) (string, error)

FormatValue implements the DoltgresType interface.

func (NullType) GetSerializationID added in v0.6.0

func (b NullType) GetSerializationID() SerializationID

GetSerializationID implements the DoltgresType interface.

func (NullType) IsUnbounded added in v0.6.0

func (b NullType) IsUnbounded() bool

IsUnbounded implements the DoltgresType interface.

func (NullType) MaxSerializedWidth added in v0.5.0

func (b NullType) MaxSerializedWidth() types.ExtendedTypeSerializedWidth

MaxSerializedWidth implements the DoltgresType interface.

func (NullType) MaxTextResponseByteLength added in v0.5.0

func (b NullType) MaxTextResponseByteLength(ctx *sql.Context) uint32

MaxTextResponseByteLength implements the DoltgresType interface.

func (NullType) OID added in v0.5.0

func (b NullType) OID() uint32

OID implements the DoltgresType interface.

func (NullType) Promote added in v0.5.0

func (b NullType) Promote() sql.Type

Promote implements the DoltgresType interface.

func (NullType) SQL added in v0.5.0

func (b NullType) SQL(ctx *sql.Context, dest []byte, v any) (sqltypes.Value, error)

SQL implements the DoltgresType interface.

func (NullType) SerializeType added in v0.6.0

func (b NullType) SerializeType() ([]byte, error)

SerializeType implements the DoltgresType interface.

func (NullType) SerializeValue added in v0.5.0

func (b NullType) SerializeValue(val any) ([]byte, error)

SerializeValue implements the DoltgresType interface.

func (NullType) SerializedCompare added in v0.5.0

func (b NullType) SerializedCompare(v1 []byte, v2 []byte) (int, error)

SerializedCompare implements the DoltgresType interface.

func (NullType) String added in v0.5.0

func (b NullType) String() string

String implements the DoltgresType interface.

func (NullType) ToArrayType added in v0.6.0

func (b NullType) ToArrayType() DoltgresArrayType

ToArrayType implements the DoltgresType interface.

func (NullType) Type added in v0.5.0

func (b NullType) Type() query.Type

Type implements the DoltgresType interface.

func (NullType) ValueType added in v0.5.0

func (b NullType) ValueType() reflect.Type

ValueType implements the DoltgresType interface.

func (NullType) Zero added in v0.5.0

func (b NullType) Zero() any

Zero implements the DoltgresType interface.

type NumericType added in v0.5.0

type NumericType struct {
	// TODO: implement precision and scale
	Precision int32
	Scale     int32
}

NumericType is the extended type implementation of the PostgreSQL numeric.

func (NumericType) BaseID added in v0.5.0

func (b NumericType) BaseID() DoltgresTypeBaseID

BaseID implements the DoltgresType interface.

func (NumericType) CollationCoercibility added in v0.5.0

func (b NumericType) CollationCoercibility(ctx *sql.Context) (collation sql.CollationID, coercibility byte)

CollationCoercibility implements the DoltgresType interface.

func (NumericType) Compare added in v0.5.0

func (b NumericType) Compare(v1 any, v2 any) (int, error)

Compare implements the DoltgresType interface.

func (NumericType) Convert added in v0.5.0

func (b NumericType) Convert(val any) (any, sql.ConvertInRange, error)

Convert implements the DoltgresType interface.

func (NumericType) DeserializeValue added in v0.5.0

func (b NumericType) DeserializeValue(val []byte) (any, error)

DeserializeValue implements the DoltgresType interface.

func (NumericType) Equals added in v0.5.0

func (b NumericType) Equals(otherType sql.Type) bool

Equals implements the DoltgresType interface.

func (NumericType) FormatSerializedValue added in v0.5.0

func (b NumericType) FormatSerializedValue(val []byte) (string, error)

FormatSerializedValue implements the DoltgresType interface.

func (NumericType) FormatValue added in v0.5.0

func (b NumericType) FormatValue(val any) (string, error)

FormatValue implements the DoltgresType interface.

func (NumericType) GetSerializationID added in v0.6.0

func (b NumericType) GetSerializationID() SerializationID

GetSerializationID implements the DoltgresType interface.

func (NumericType) IsUnbounded added in v0.6.0

func (b NumericType) IsUnbounded() bool

IsUnbounded implements the DoltgresType interface.

func (NumericType) MaxSerializedWidth added in v0.5.0

func (b NumericType) MaxSerializedWidth() types.ExtendedTypeSerializedWidth

MaxSerializedWidth implements the DoltgresType interface.

func (NumericType) MaxTextResponseByteLength added in v0.5.0

func (b NumericType) MaxTextResponseByteLength(ctx *sql.Context) uint32

MaxTextResponseByteLength implements the DoltgresType interface.

func (NumericType) OID added in v0.5.0

func (b NumericType) OID() uint32

OID implements the DoltgresType interface.

func (NumericType) Promote added in v0.5.0

func (b NumericType) Promote() sql.Type

Promote implements the DoltgresType interface.

func (NumericType) SQL added in v0.5.0

func (b NumericType) SQL(ctx *sql.Context, dest []byte, v any) (sqltypes.Value, error)

SQL implements the DoltgresType interface.

func (NumericType) SerializeType added in v0.6.0

func (b NumericType) SerializeType() ([]byte, error)

SerializeType implements the DoltgresType interface.

func (NumericType) SerializeValue added in v0.5.0

func (b NumericType) SerializeValue(val any) ([]byte, error)

SerializeValue implements the DoltgresType interface.

func (NumericType) SerializedCompare added in v0.5.0

func (b NumericType) SerializedCompare(v1 []byte, v2 []byte) (int, error)

SerializedCompare implements the DoltgresType interface.

func (NumericType) String added in v0.5.0

func (b NumericType) String() string

String implements the DoltgresType interface.

func (NumericType) ToArrayType added in v0.6.0

func (b NumericType) ToArrayType() DoltgresArrayType

ToArrayType implements the DoltgresType interface.

func (NumericType) Type added in v0.5.0

func (b NumericType) Type() query.Type

Type implements the DoltgresType interface.

func (NumericType) ValueType added in v0.5.0

func (b NumericType) ValueType() reflect.Type

ValueType implements the DoltgresType interface.

func (NumericType) Zero added in v0.5.0

func (b NumericType) Zero() any

Zero implements the DoltgresType interface.

type SerializationID added in v0.5.0

type SerializationID uint16

SerializationID is an ID unique to Doltgres that can uniquely identify any type for the purposes of Serialization. These are different from OIDs, as they are unchanging and unique. If we need to add a new type that does not already have a pre-defined ID, then it must use a new number that has never been previously used.

const (
	SerializationID_Invalid               SerializationID = 0
	SerializationID_Bit                   SerializationID = 1
	SerializationID_BitArray              SerializationID = 2
	SerializationID_Bool                  SerializationID = 3
	SerializationID_BoolArray             SerializationID = 4
	SerializationID_Box                   SerializationID = 5
	SerializationID_BoxArray              SerializationID = 6
	SerializationID_Bytea                 SerializationID = 7
	SerializationID_ByteaArray            SerializationID = 8
	SerializationID_Char                  SerializationID = 9
	SerializationID_CharArray             SerializationID = 10
	SerializationID_Cidr                  SerializationID = 11
	SerializationID_CidrArray             SerializationID = 12
	SerializationID_Circle                SerializationID = 13
	SerializationID_CircleArray           SerializationID = 14
	SerializationID_Date                  SerializationID = 15
	SerializationID_DateArray             SerializationID = 16
	SerializationID_DateMultirange        SerializationID = 17
	SerializationID_DateRange             SerializationID = 18
	SerializationID_Enum                  SerializationID = 19
	SerializationID_EnumArray             SerializationID = 20
	SerializationID_Float32               SerializationID = 21
	SerializationID_Float32Array          SerializationID = 22
	SerializationID_Float64               SerializationID = 23
	SerializationID_Float64Array          SerializationID = 24
	SerializationID_Inet                  SerializationID = 25
	SerializationID_InetArray             SerializationID = 26
	SerializationID_Int16                 SerializationID = 27
	SerializationID_Int16Array            SerializationID = 28
	SerializationID_Int32                 SerializationID = 29
	SerializationID_Int32Array            SerializationID = 30
	SerializationID_Int32Multirange       SerializationID = 31
	SerializationID_Int32Range            SerializationID = 32
	SerializationID_Int64                 SerializationID = 33
	SerializationID_Int64Array            SerializationID = 34
	SerializationID_Int64Multirange       SerializationID = 35
	SerializationID_Int64Range            SerializationID = 36
	SerializationID_Interval              SerializationID = 37
	SerializationID_IntervalArray         SerializationID = 38
	SerializationID_Json                  SerializationID = 39
	SerializationID_JsonArray             SerializationID = 40
	SerializationID_JsonB                 SerializationID = 41
	SerializationID_JsonBArray            SerializationID = 42
	SerializationID_Line                  SerializationID = 43
	SerializationID_LineArray             SerializationID = 44
	SerializationID_LineSegment           SerializationID = 45
	SerializationID_LineSegmentArray      SerializationID = 46
	SerializationID_MacAddress            SerializationID = 47
	SerializationID_MacAddress8           SerializationID = 48
	SerializationID_MacAddress8Array      SerializationID = 49
	SerializationID_MacAddressArray       SerializationID = 50
	SerializationID_Money                 SerializationID = 51
	SerializationID_MoneyArray            SerializationID = 52
	SerializationID_Null                  SerializationID = 53
	SerializationID_Numeric               SerializationID = 54
	SerializationID_NumericArray          SerializationID = 55
	SerializationID_NumericMultirange     SerializationID = 56
	SerializationID_NumericRange          SerializationID = 57
	SerializationID_Path                  SerializationID = 58
	SerializationID_PathArray             SerializationID = 59
	SerializationID_Point                 SerializationID = 60
	SerializationID_PointArray            SerializationID = 61
	SerializationID_Polygon               SerializationID = 62
	SerializationID_PolygonArray          SerializationID = 63
	SerializationID_Text                  SerializationID = 64
	SerializationID_TextArray             SerializationID = 65
	SerializationID_Time                  SerializationID = 66
	SerializationID_TimeArray             SerializationID = 67
	SerializationID_TimeTZ                SerializationID = 68
	SerializationID_TimeTZArray           SerializationID = 69
	SerializationID_Timestamp             SerializationID = 70
	SerializationID_TimestampArray        SerializationID = 71
	SerializationID_TimestampMultirange   SerializationID = 72
	SerializationID_TimestampRange        SerializationID = 73
	SerializationID_TimestampTZ           SerializationID = 74
	SerializationID_TimestampTZArray      SerializationID = 75
	SerializationID_TimestampTZMultirange SerializationID = 76
	SerializationID_TimestampTZRange      SerializationID = 77
	SerializationID_TsQuery               SerializationID = 78
	SerializationID_TsQueryArray          SerializationID = 79
	SerializationID_TsVector              SerializationID = 80
	SerializationID_TsVectorArray         SerializationID = 81
	SerializationID_Uuid                  SerializationID = 82
	SerializationID_UuidArray             SerializationID = 83
	SerializationID_VarBit                SerializationID = 84
	SerializationID_VarBitArray           SerializationID = 85
	SerializationID_VarChar               SerializationID = 86
	SerializationID_VarCharArray          SerializationID = 87
	SerializationID_Xml                   SerializationID = 88
	SerializationID_XmlArray              SerializationID = 89
)

These are declared as constant numbers to signify their intent. Under no circumstances should we use iota, as that runs the risk of an accidental reordering potentially causing data loss. In addition, numbers for pre-existing IDs should never be changed.

func SerializationIDFromBytes added in v0.5.0

func SerializationIDFromBytes(b []byte) (SerializationID, uint16)

SerializationIDFromBytes reads a SerializationID and version from the given byte slice. The slice must have a length of at least 4 bytes. This function does not perform any validation, and is merely a convenience to ensure that the ID is read correctly.

func (SerializationID) ToByteSlice added in v0.5.0

func (id SerializationID) ToByteSlice(version uint16) []byte

ToByteSlice returns the ID as a byte slice.

type TextType added in v0.6.0

type TextType struct{}

TextType is the extended type implementation of the PostgreSQL text.

func (TextType) BaseID added in v0.6.0

func (b TextType) BaseID() DoltgresTypeBaseID

BaseID implements the DoltgresType interface.

func (TextType) CollationCoercibility added in v0.6.0

func (b TextType) CollationCoercibility(ctx *sql.Context) (collation sql.CollationID, coercibility byte)

CollationCoercibility implements the DoltgresType interface.

func (TextType) Compare added in v0.6.0

func (b TextType) Compare(v1 any, v2 any) (int, error)

Compare implements the DoltgresType interface.

func (TextType) Convert added in v0.6.0

func (b TextType) Convert(val any) (any, sql.ConvertInRange, error)

Convert implements the DoltgresType interface.

func (TextType) DeserializeValue added in v0.6.0

func (b TextType) DeserializeValue(val []byte) (any, error)

DeserializeValue implements the DoltgresType interface.

func (TextType) Equals added in v0.6.0

func (b TextType) Equals(otherType sql.Type) bool

Equals implements the DoltgresType interface.

func (TextType) FormatSerializedValue added in v0.6.0

func (b TextType) FormatSerializedValue(val []byte) (string, error)

FormatSerializedValue implements the DoltgresType interface.

func (TextType) FormatValue added in v0.6.0

func (b TextType) FormatValue(val any) (string, error)

FormatValue implements the DoltgresType interface.

func (TextType) GetSerializationID added in v0.6.0

func (b TextType) GetSerializationID() SerializationID

GetSerializationID implements the DoltgresType interface.

func (TextType) IsUnbounded added in v0.6.0

func (b TextType) IsUnbounded() bool

IsUnbounded implements the DoltgresType interface.

func (TextType) MaxSerializedWidth added in v0.6.0

func (b TextType) MaxSerializedWidth() types.ExtendedTypeSerializedWidth

MaxSerializedWidth implements the DoltgresType interface.

func (TextType) MaxTextResponseByteLength added in v0.6.0

func (b TextType) MaxTextResponseByteLength(ctx *sql.Context) uint32

MaxTextResponseByteLength implements the DoltgresType interface.

func (TextType) OID added in v0.6.0

func (b TextType) OID() uint32

OID implements the DoltgresType interface.

func (TextType) Promote added in v0.6.0

func (b TextType) Promote() sql.Type

Promote implements the DoltgresType interface.

func (TextType) SQL added in v0.6.0

func (b TextType) SQL(ctx *sql.Context, dest []byte, v any) (sqltypes.Value, error)

SQL implements the DoltgresType interface.

func (TextType) SerializeType added in v0.6.0

func (b TextType) SerializeType() ([]byte, error)

SerializeType implements the DoltgresType interface.

func (TextType) SerializeValue added in v0.6.0

func (b TextType) SerializeValue(val any) ([]byte, error)

SerializeValue implements the DoltgresType interface.

func (TextType) SerializedCompare added in v0.6.0

func (b TextType) SerializedCompare(v1 []byte, v2 []byte) (int, error)

SerializedCompare implements the DoltgresType interface.

func (TextType) String added in v0.6.0

func (b TextType) String() string

String implements the DoltgresType interface.

func (TextType) ToArrayType added in v0.6.0

func (b TextType) ToArrayType() DoltgresArrayType

ToArrayType implements the DoltgresType interface.

func (TextType) Type added in v0.6.0

func (b TextType) Type() query.Type

Type implements the DoltgresType interface.

func (TextType) ValueType added in v0.6.0

func (b TextType) ValueType() reflect.Type

ValueType implements the DoltgresType interface.

func (TextType) Zero added in v0.6.0

func (b TextType) Zero() any

Zero implements the DoltgresType interface.

type TimeTZType added in v0.6.0

type TimeTZType struct {
	// TODO: implement precision
	Precision int8
}

TimeTZType is the extended type implementation of the PostgreSQL time with time zone.

func (TimeTZType) BaseID added in v0.6.0

func (b TimeTZType) BaseID() DoltgresTypeBaseID

BaseID implements the DoltgresType interface.

func (TimeTZType) CollationCoercibility added in v0.6.0

func (b TimeTZType) CollationCoercibility(ctx *sql.Context) (collation sql.CollationID, coercibility byte)

CollationCoercibility implements the DoltgresType interface.

func (TimeTZType) Compare added in v0.6.0

func (b TimeTZType) Compare(v1 any, v2 any) (int, error)

Compare implements the DoltgresType interface.

func (TimeTZType) Convert added in v0.6.0

func (b TimeTZType) Convert(val any) (any, sql.ConvertInRange, error)

Convert implements the DoltgresType interface.

func (TimeTZType) DeserializeValue added in v0.6.0

func (b TimeTZType) DeserializeValue(val []byte) (any, error)

DeserializeValue implements the DoltgresType interface.

func (TimeTZType) Equals added in v0.6.0

func (b TimeTZType) Equals(otherType sql.Type) bool

Equals implements the DoltgresType interface.

func (TimeTZType) FormatSerializedValue added in v0.6.0

func (b TimeTZType) FormatSerializedValue(val []byte) (string, error)

FormatSerializedValue implements the DoltgresType interface.

func (TimeTZType) FormatValue added in v0.6.0

func (b TimeTZType) FormatValue(val any) (string, error)

FormatValue implements the DoltgresType interface.

func (TimeTZType) GetSerializationID added in v0.6.0

func (b TimeTZType) GetSerializationID() SerializationID

GetSerializationID implements the DoltgresType interface.

func (TimeTZType) IsUnbounded added in v0.6.0

func (b TimeTZType) IsUnbounded() bool

IsUnbounded implements the DoltgresType interface.

func (TimeTZType) MaxSerializedWidth added in v0.6.0

func (b TimeTZType) MaxSerializedWidth() types.ExtendedTypeSerializedWidth

MaxSerializedWidth implements the DoltgresType interface.

func (TimeTZType) MaxTextResponseByteLength added in v0.6.0

func (b TimeTZType) MaxTextResponseByteLength(ctx *sql.Context) uint32

MaxTextResponseByteLength implements the DoltgresType interface.

func (TimeTZType) OID added in v0.6.0

func (b TimeTZType) OID() uint32

OID implements the DoltgresType interface.

func (TimeTZType) Promote added in v0.6.0

func (b TimeTZType) Promote() sql.Type

Promote implements the DoltgresType interface.

func (TimeTZType) SQL added in v0.6.0

func (b TimeTZType) SQL(ctx *sql.Context, dest []byte, v any) (sqltypes.Value, error)

SQL implements the DoltgresType interface.

func (TimeTZType) SerializeType added in v0.6.0

func (b TimeTZType) SerializeType() ([]byte, error)

SerializeType implements the DoltgresType interface.

func (TimeTZType) SerializeValue added in v0.6.0

func (b TimeTZType) SerializeValue(val any) ([]byte, error)

SerializeValue implements the DoltgresType interface.

func (TimeTZType) SerializedCompare added in v0.6.0

func (b TimeTZType) SerializedCompare(v1 []byte, v2 []byte) (int, error)

SerializedCompare implements the DoltgresType interface.

func (TimeTZType) String added in v0.6.0

func (b TimeTZType) String() string

String implements the DoltgresType interface.

func (TimeTZType) ToArrayType added in v0.6.0

func (b TimeTZType) ToArrayType() DoltgresArrayType

ToArrayType implements the DoltgresType interface.

func (TimeTZType) Type added in v0.6.0

func (b TimeTZType) Type() query.Type

Type implements the DoltgresType interface.

func (TimeTZType) ValueType added in v0.6.0

func (b TimeTZType) ValueType() reflect.Type

ValueType implements the DoltgresType interface.

func (TimeTZType) Zero added in v0.6.0

func (b TimeTZType) Zero() any

Zero implements the DoltgresType interface.

type TimeType added in v0.6.0

type TimeType struct {
	// TODO: implement precision
	Precision int8
}

TimeType is the extended type implementation of the PostgreSQL time without time zone.

func (TimeType) BaseID added in v0.6.0

func (b TimeType) BaseID() DoltgresTypeBaseID

BaseID implements the DoltgresType interface.

func (TimeType) CollationCoercibility added in v0.6.0

func (b TimeType) CollationCoercibility(ctx *sql.Context) (collation sql.CollationID, coercibility byte)

CollationCoercibility implements the DoltgresType interface.

func (TimeType) Compare added in v0.6.0

func (b TimeType) Compare(v1 any, v2 any) (int, error)

Compare implements the DoltgresType interface.

func (TimeType) Convert added in v0.6.0

func (b TimeType) Convert(val any) (any, sql.ConvertInRange, error)

Convert implements the DoltgresType interface.

func (TimeType) DeserializeValue added in v0.6.0

func (b TimeType) DeserializeValue(val []byte) (any, error)

DeserializeValue implements the DoltgresType interface.

func (TimeType) Equals added in v0.6.0

func (b TimeType) Equals(otherType sql.Type) bool

Equals implements the DoltgresType interface.

func (TimeType) FormatSerializedValue added in v0.6.0

func (b TimeType) FormatSerializedValue(val []byte) (string, error)

FormatSerializedValue implements the DoltgresType interface.

func (TimeType) FormatValue added in v0.6.0

func (b TimeType) FormatValue(val any) (string, error)

FormatValue implements the DoltgresType interface.

func (TimeType) GetSerializationID added in v0.6.0

func (b TimeType) GetSerializationID() SerializationID

GetSerializationID implements the DoltgresType interface.

func (TimeType) IsUnbounded added in v0.6.0

func (b TimeType) IsUnbounded() bool

IsUnbounded implements the DoltgresType interface.

func (TimeType) MaxSerializedWidth added in v0.6.0

func (b TimeType) MaxSerializedWidth() types.ExtendedTypeSerializedWidth

MaxSerializedWidth implements the DoltgresType interface.

func (TimeType) MaxTextResponseByteLength added in v0.6.0

func (b TimeType) MaxTextResponseByteLength(ctx *sql.Context) uint32

MaxTextResponseByteLength implements the DoltgresType interface.

func (TimeType) OID added in v0.6.0

func (b TimeType) OID() uint32

OID implements the DoltgresType interface.

func (TimeType) Promote added in v0.6.0

func (b TimeType) Promote() sql.Type

Promote implements the DoltgresType interface.

func (TimeType) SQL added in v0.6.0

func (b TimeType) SQL(ctx *sql.Context, dest []byte, v any) (sqltypes.Value, error)

SQL implements the DoltgresType interface.

func (TimeType) SerializeType added in v0.6.0

func (b TimeType) SerializeType() ([]byte, error)

SerializeType implements the DoltgresType interface.

func (TimeType) SerializeValue added in v0.6.0

func (b TimeType) SerializeValue(val any) ([]byte, error)

SerializeValue implements the DoltgresType interface.

func (TimeType) SerializedCompare added in v0.6.0

func (b TimeType) SerializedCompare(v1 []byte, v2 []byte) (int, error)

SerializedCompare implements the DoltgresType interface.

func (TimeType) String added in v0.6.0

func (b TimeType) String() string

String implements the DoltgresType interface.

func (TimeType) ToArrayType added in v0.6.0

func (b TimeType) ToArrayType() DoltgresArrayType

ToArrayType implements the DoltgresType interface.

func (TimeType) Type added in v0.6.0

func (b TimeType) Type() query.Type

Type implements the DoltgresType interface.

func (TimeType) ValueType added in v0.6.0

func (b TimeType) ValueType() reflect.Type

ValueType implements the DoltgresType interface.

func (TimeType) Zero added in v0.6.0

func (b TimeType) Zero() any

Zero implements the DoltgresType interface.

type TimestampTZType added in v0.6.0

type TimestampTZType struct {
	// TODO: implement precision
	Precision int8
}

TimestampTZType is the extended type implementation of the PostgreSQL timestamp with time zone.

func (TimestampTZType) BaseID added in v0.6.0

BaseID implements the DoltgresType interface.

func (TimestampTZType) CollationCoercibility added in v0.6.0

func (b TimestampTZType) CollationCoercibility(ctx *sql.Context) (collation sql.CollationID, coercibility byte)

CollationCoercibility implements the DoltgresType interface.

func (TimestampTZType) Compare added in v0.6.0

func (b TimestampTZType) Compare(v1 any, v2 any) (int, error)

Compare implements the DoltgresType interface.

func (TimestampTZType) Convert added in v0.6.0

func (b TimestampTZType) Convert(val any) (any, sql.ConvertInRange, error)

Convert implements the DoltgresType interface.

func (TimestampTZType) DeserializeValue added in v0.6.0

func (b TimestampTZType) DeserializeValue(val []byte) (any, error)

DeserializeValue implements the DoltgresType interface.

func (TimestampTZType) Equals added in v0.6.0

func (b TimestampTZType) Equals(otherType sql.Type) bool

Equals implements the DoltgresType interface.

func (TimestampTZType) FormatSerializedValue added in v0.6.0

func (b TimestampTZType) FormatSerializedValue(val []byte) (string, error)

FormatSerializedValue implements the DoltgresType interface.

func (TimestampTZType) FormatValue added in v0.6.0

func (b TimestampTZType) FormatValue(val any) (string, error)

FormatValue implements the DoltgresType interface.

func (TimestampTZType) GetSerializationID added in v0.6.0

func (b TimestampTZType) GetSerializationID() SerializationID

GetSerializationID implements the DoltgresType interface.

func (TimestampTZType) IsUnbounded added in v0.6.0

func (b TimestampTZType) IsUnbounded() bool

IsUnbounded implements the DoltgresType interface.

func (TimestampTZType) MaxSerializedWidth added in v0.6.0

func (b TimestampTZType) MaxSerializedWidth() types.ExtendedTypeSerializedWidth

MaxSerializedWidth implements the DoltgresType interface.

func (TimestampTZType) MaxTextResponseByteLength added in v0.6.0

func (b TimestampTZType) MaxTextResponseByteLength(ctx *sql.Context) uint32

MaxTextResponseByteLength implements the DoltgresType interface.

func (TimestampTZType) OID added in v0.6.0

func (b TimestampTZType) OID() uint32

OID implements the DoltgresType interface.

func (TimestampTZType) Promote added in v0.6.0

func (b TimestampTZType) Promote() sql.Type

Promote implements the DoltgresType interface.

func (TimestampTZType) SQL added in v0.6.0

func (b TimestampTZType) SQL(ctx *sql.Context, dest []byte, v any) (sqltypes.Value, error)

SQL implements the DoltgresType interface.

func (TimestampTZType) SerializeType added in v0.6.0

func (b TimestampTZType) SerializeType() ([]byte, error)

SerializeType implements the DoltgresType interface.

func (TimestampTZType) SerializeValue added in v0.6.0

func (b TimestampTZType) SerializeValue(val any) ([]byte, error)

SerializeValue implements the DoltgresType interface.

func (TimestampTZType) SerializedCompare added in v0.6.0

func (b TimestampTZType) SerializedCompare(v1 []byte, v2 []byte) (int, error)

SerializedCompare implements the DoltgresType interface.

func (TimestampTZType) String added in v0.6.0

func (b TimestampTZType) String() string

String implements the DoltgresType interface.

func (TimestampTZType) ToArrayType added in v0.6.0

func (b TimestampTZType) ToArrayType() DoltgresArrayType

ToArrayType implements the DoltgresType interface.

func (TimestampTZType) Type added in v0.6.0

func (b TimestampTZType) Type() query.Type

Type implements the DoltgresType interface.

func (TimestampTZType) ValueType added in v0.6.0

func (b TimestampTZType) ValueType() reflect.Type

ValueType implements the DoltgresType interface.

func (TimestampTZType) Zero added in v0.6.0

func (b TimestampTZType) Zero() any

Zero implements the DoltgresType interface.

type TimestampType added in v0.6.0

type TimestampType struct {
	// TODO: implement precision
	Precision int8
}

TimestampType is the extended type implementation of the PostgreSQL timestamp without time zone.

func (TimestampType) BaseID added in v0.6.0

func (b TimestampType) BaseID() DoltgresTypeBaseID

BaseID implements the DoltgresType interface.

func (TimestampType) CollationCoercibility added in v0.6.0

func (b TimestampType) CollationCoercibility(ctx *sql.Context) (collation sql.CollationID, coercibility byte)

CollationCoercibility implements the DoltgresType interface.

func (TimestampType) Compare added in v0.6.0

func (b TimestampType) Compare(v1 any, v2 any) (int, error)

Compare implements the DoltgresType interface.

func (TimestampType) Convert added in v0.6.0

func (b TimestampType) Convert(val any) (any, sql.ConvertInRange, error)

Convert implements the DoltgresType interface.

func (TimestampType) DeserializeValue added in v0.6.0

func (b TimestampType) DeserializeValue(val []byte) (any, error)

DeserializeValue implements the DoltgresType interface.

func (TimestampType) Equals added in v0.6.0

func (b TimestampType) Equals(otherType sql.Type) bool

Equals implements the DoltgresType interface.

func (TimestampType) FormatSerializedValue added in v0.6.0

func (b TimestampType) FormatSerializedValue(val []byte) (string, error)

FormatSerializedValue implements the DoltgresType interface.

func (TimestampType) FormatValue added in v0.6.0

func (b TimestampType) FormatValue(val any) (string, error)

FormatValue implements the DoltgresType interface.

func (TimestampType) GetSerializationID added in v0.6.0

func (b TimestampType) GetSerializationID() SerializationID

GetSerializationID implements the DoltgresType interface.

func (TimestampType) IsUnbounded added in v0.6.0

func (b TimestampType) IsUnbounded() bool

IsUnbounded implements the DoltgresType interface.

func (TimestampType) MaxSerializedWidth added in v0.6.0

func (b TimestampType) MaxSerializedWidth() types.ExtendedTypeSerializedWidth

MaxSerializedWidth implements the DoltgresType interface.

func (TimestampType) MaxTextResponseByteLength added in v0.6.0

func (b TimestampType) MaxTextResponseByteLength(ctx *sql.Context) uint32

MaxTextResponseByteLength implements the DoltgresType interface.

func (TimestampType) OID added in v0.6.0

func (b TimestampType) OID() uint32

OID implements the DoltgresType interface.

func (TimestampType) Promote added in v0.6.0

func (b TimestampType) Promote() sql.Type

Promote implements the DoltgresType interface.

func (TimestampType) SQL added in v0.6.0

func (b TimestampType) SQL(ctx *sql.Context, dest []byte, v any) (sqltypes.Value, error)

SQL implements the DoltgresType interface.

func (TimestampType) SerializeType added in v0.6.0

func (b TimestampType) SerializeType() ([]byte, error)

SerializeType implements the DoltgresType interface.

func (TimestampType) SerializeValue added in v0.6.0

func (b TimestampType) SerializeValue(val any) ([]byte, error)

SerializeValue implements the DoltgresType interface.

func (TimestampType) SerializedCompare added in v0.6.0

func (b TimestampType) SerializedCompare(v1 []byte, v2 []byte) (int, error)

SerializedCompare implements the DoltgresType interface.

func (TimestampType) String added in v0.6.0

func (b TimestampType) String() string

String implements the DoltgresType interface.

func (TimestampType) ToArrayType added in v0.6.0

func (b TimestampType) ToArrayType() DoltgresArrayType

ToArrayType implements the DoltgresType interface.

func (TimestampType) Type added in v0.6.0

func (b TimestampType) Type() query.Type

Type implements the DoltgresType interface.

func (TimestampType) ValueType added in v0.6.0

func (b TimestampType) ValueType() reflect.Type

ValueType implements the DoltgresType interface.

func (TimestampType) Zero added in v0.6.0

func (b TimestampType) Zero() any

Zero implements the DoltgresType interface.

type UnknownType added in v0.6.0

type UnknownType struct{}

UnknownType is the extended type implementation of the PostgreSQL unknown type.

func (UnknownType) BaseID added in v0.6.0

func (u UnknownType) BaseID() DoltgresTypeBaseID

BaseID implements the DoltgresType interface.

func (UnknownType) BaseType added in v0.6.0

func (u UnknownType) BaseType() DoltgresType

BaseType implements the DoltgresArrayType interface.

func (UnknownType) CollationCoercibility added in v0.6.0

func (u UnknownType) CollationCoercibility(ctx *sql.Context) (collation sql.CollationID, coercibility byte)

CollationCoercibility implements the DoltgresType interface.

func (UnknownType) Compare added in v0.6.0

func (u UnknownType) Compare(v1 any, v2 any) (int, error)

Compare implements the DoltgresType interface.

func (UnknownType) Convert added in v0.6.0

func (u UnknownType) Convert(val any) (any, sql.ConvertInRange, error)

Convert implements the DoltgresType interface.

func (UnknownType) DeserializeValue added in v0.6.0

func (u UnknownType) DeserializeValue(val []byte) (any, error)

DeserializeValue implements the DoltgresType interface.

func (UnknownType) Equals added in v0.6.0

func (u UnknownType) Equals(otherType sql.Type) bool

Equals implements the DoltgresType interface.

func (UnknownType) FormatSerializedValue added in v0.6.0

func (u UnknownType) FormatSerializedValue(val []byte) (string, error)

FormatSerializedValue implements the DoltgresType interface.

func (UnknownType) FormatValue added in v0.6.0

func (u UnknownType) FormatValue(val any) (string, error)

FormatValue implements the DoltgresType interface.

func (UnknownType) GetSerializationID added in v0.6.0

func (u UnknownType) GetSerializationID() SerializationID

GetSerializationID implements the DoltgresType interface.

func (UnknownType) IsUnbounded added in v0.6.0

func (u UnknownType) IsUnbounded() bool

IsUnbounded implements the DoltgresType interface.

func (UnknownType) MaxSerializedWidth added in v0.6.0

func (u UnknownType) MaxSerializedWidth() types.ExtendedTypeSerializedWidth

MaxSerializedWidth implements the DoltgresType interface.

func (UnknownType) MaxTextResponseByteLength added in v0.6.0

func (u UnknownType) MaxTextResponseByteLength(ctx *sql.Context) uint32

MaxTextResponseByteLength implements the DoltgresType interface.

func (UnknownType) OID added in v0.6.0

func (u UnknownType) OID() uint32

OID implements the DoltgresType interface.

func (UnknownType) Promote added in v0.6.0

func (u UnknownType) Promote() sql.Type

Promote implements the DoltgresType interface.

func (UnknownType) SQL added in v0.6.0

func (u UnknownType) SQL(ctx *sql.Context, dest []byte, v any) (sqltypes.Value, error)

SQL implements the DoltgresType interface.

func (UnknownType) SerializeType added in v0.6.0

func (u UnknownType) SerializeType() ([]byte, error)

SerializeType implements the DoltgresType interface.

func (UnknownType) SerializeValue added in v0.6.0

func (u UnknownType) SerializeValue(val any) ([]byte, error)

SerializeValue implements the DoltgresType interface.

func (UnknownType) SerializedCompare added in v0.6.0

func (u UnknownType) SerializedCompare(v1 []byte, v2 []byte) (int, error)

SerializedCompare implements the DoltgresType interface.

func (UnknownType) String added in v0.6.0

func (u UnknownType) String() string

String implements the DoltgresType interface.

func (UnknownType) ToArrayType added in v0.6.0

func (u UnknownType) ToArrayType() DoltgresArrayType

ToArrayType implements the DoltgresType interface.

func (UnknownType) Type added in v0.6.0

func (u UnknownType) Type() query.Type

Type implements the DoltgresType interface.

func (UnknownType) ValueType added in v0.6.0

func (u UnknownType) ValueType() reflect.Type

ValueType implements the DoltgresType interface.

func (UnknownType) Zero added in v0.6.0

func (u UnknownType) Zero() any

Zero implements the DoltgresType interface.

type UuidType

type UuidType struct{}

UuidType is the extended type implementation of the PostgreSQL UUID.

func (UuidType) BaseID added in v0.5.0

func (b UuidType) BaseID() DoltgresTypeBaseID

BaseID implements the DoltgresType interface.

func (UuidType) CollationCoercibility

func (b UuidType) CollationCoercibility(ctx *sql.Context) (collation sql.CollationID, coercibility byte)

CollationCoercibility implements the DoltgresType interface.

func (UuidType) Compare

func (b UuidType) Compare(v1 any, v2 any) (int, error)

Compare implements the DoltgresType interface.

func (UuidType) Convert

func (b UuidType) Convert(val any) (any, sql.ConvertInRange, error)

Convert implements the DoltgresType interface.

func (UuidType) DeserializeValue

func (b UuidType) DeserializeValue(val []byte) (any, error)

DeserializeValue implements the DoltgresType interface.

func (UuidType) Equals

func (b UuidType) Equals(otherType sql.Type) bool

Equals implements the DoltgresType interface.

func (UuidType) FormatSerializedValue

func (b UuidType) FormatSerializedValue(val []byte) (string, error)

FormatSerializedValue implements the DoltgresType interface.

func (UuidType) FormatValue

func (b UuidType) FormatValue(val any) (string, error)

FormatValue implements the DoltgresType interface.

func (UuidType) GetSerializationID added in v0.6.0

func (b UuidType) GetSerializationID() SerializationID

GetSerializationID implements the DoltgresType interface.

func (UuidType) IsUnbounded added in v0.6.0

func (b UuidType) IsUnbounded() bool

IsUnbounded implements the DoltgresType interface.

func (UuidType) MaxSerializedWidth

func (b UuidType) MaxSerializedWidth() types.ExtendedTypeSerializedWidth

MaxSerializedWidth implements the DoltgresType interface.

func (UuidType) MaxTextResponseByteLength

func (b UuidType) MaxTextResponseByteLength(ctx *sql.Context) uint32

MaxTextResponseByteLength implements the DoltgresType interface.

func (UuidType) OID added in v0.5.0

func (b UuidType) OID() uint32

OID implements the DoltgresType interface.

func (UuidType) Promote

func (b UuidType) Promote() sql.Type

Promote implements the DoltgresType interface.

func (UuidType) SQL

func (b UuidType) SQL(ctx *sql.Context, dest []byte, v any) (sqltypes.Value, error)

SQL implements the DoltgresType interface.

func (UuidType) SerializeType added in v0.6.0

func (b UuidType) SerializeType() ([]byte, error)

SerializeType implements the DoltgresType interface.

func (UuidType) SerializeValue

func (b UuidType) SerializeValue(val any) ([]byte, error)

SerializeValue implements the DoltgresType interface.

func (UuidType) SerializedCompare

func (b UuidType) SerializedCompare(v1 []byte, v2 []byte) (int, error)

SerializedCompare implements the DoltgresType interface.

func (UuidType) String

func (b UuidType) String() string

String implements the DoltgresType interface.

func (UuidType) ToArrayType added in v0.6.0

func (b UuidType) ToArrayType() DoltgresArrayType

ToArrayType implements the DoltgresType interface.

func (UuidType) Type

func (b UuidType) Type() query.Type

Type implements the DoltgresType interface.

func (UuidType) ValueType

func (b UuidType) ValueType() reflect.Type

ValueType implements the DoltgresType interface.

func (UuidType) Zero

func (b UuidType) Zero() any

Zero implements the DoltgresType interface.

type VarCharType added in v0.5.0

type VarCharType struct {
	// Length represents the maximum number of characters that the type may hold.
	// When this is zero, we treat it as completely unbounded (which is still limited by the field size limit).
	Length uint32
}

VarCharType is the extended type implementation of the PostgreSQL varchar.

func (VarCharType) BaseID added in v0.5.0

func (b VarCharType) BaseID() DoltgresTypeBaseID

BaseID implements the DoltgresType interface.

func (VarCharType) CollationCoercibility added in v0.5.0

func (b VarCharType) CollationCoercibility(ctx *sql.Context) (collation sql.CollationID, coercibility byte)

CollationCoercibility implements the DoltgresType interface.

func (VarCharType) Compare added in v0.5.0

func (b VarCharType) Compare(v1 any, v2 any) (int, error)

Compare implements the DoltgresType interface.

func (VarCharType) Convert added in v0.5.0

func (b VarCharType) Convert(val any) (any, sql.ConvertInRange, error)

Convert implements the DoltgresType interface.

func (VarCharType) DeserializeValue added in v0.5.0

func (b VarCharType) DeserializeValue(val []byte) (any, error)

DeserializeValue implements the DoltgresType interface.

func (VarCharType) Equals added in v0.5.0

func (b VarCharType) Equals(otherType sql.Type) bool

Equals implements the DoltgresType interface.

func (VarCharType) FormatSerializedValue added in v0.5.0

func (b VarCharType) FormatSerializedValue(val []byte) (string, error)

FormatSerializedValue implements the DoltgresType interface.

func (VarCharType) FormatValue added in v0.5.0

func (b VarCharType) FormatValue(val any) (string, error)

FormatValue implements the DoltgresType interface.

func (VarCharType) GetSerializationID added in v0.6.0

func (b VarCharType) GetSerializationID() SerializationID

GetSerializationID implements the DoltgresType interface.

func (VarCharType) IsUnbounded added in v0.6.0

func (b VarCharType) IsUnbounded() bool

IsUnbounded implements the DoltgresType interface.

func (VarCharType) MaxSerializedWidth added in v0.5.0

func (b VarCharType) MaxSerializedWidth() types.ExtendedTypeSerializedWidth

MaxSerializedWidth implements the DoltgresType interface.

func (VarCharType) MaxTextResponseByteLength added in v0.5.0

func (b VarCharType) MaxTextResponseByteLength(ctx *sql.Context) uint32

MaxTextResponseByteLength implements the DoltgresType interface.

func (VarCharType) OID added in v0.5.0

func (b VarCharType) OID() uint32

OID implements the DoltgresType interface.

func (VarCharType) Promote added in v0.5.0

func (b VarCharType) Promote() sql.Type

Promote implements the DoltgresType interface.

func (VarCharType) SQL added in v0.5.0

func (b VarCharType) SQL(ctx *sql.Context, dest []byte, v any) (sqltypes.Value, error)

SQL implements the DoltgresType interface.

func (VarCharType) SerializeType added in v0.6.0

func (b VarCharType) SerializeType() ([]byte, error)

SerializeType implements the DoltgresType interface.

func (VarCharType) SerializeValue added in v0.5.0

func (b VarCharType) SerializeValue(val any) ([]byte, error)

SerializeValue implements the DoltgresType interface.

func (VarCharType) SerializedCompare added in v0.5.0

func (b VarCharType) SerializedCompare(v1 []byte, v2 []byte) (int, error)

SerializedCompare implements the DoltgresType interface.

func (VarCharType) String added in v0.5.0

func (b VarCharType) String() string

String implements the DoltgresType interface.

func (VarCharType) ToArrayType added in v0.6.0

func (b VarCharType) ToArrayType() DoltgresArrayType

ToArrayType implements the DoltgresType interface.

func (VarCharType) Type added in v0.5.0

func (b VarCharType) Type() query.Type

Type implements the DoltgresType interface.

func (VarCharType) ValueType added in v0.5.0

func (b VarCharType) ValueType() reflect.Type

ValueType implements the DoltgresType interface.

func (VarCharType) Zero added in v0.5.0

func (b VarCharType) Zero() any

Zero implements the DoltgresType interface.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL