protocol

package
v1.8.18 Latest Latest
Warning

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

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

Documentation

Overview

Package protocol implements the hdb command network protocol.

http://help.sap.com/hana/SAP_HANA_SQL_Command_Network_Protocol_Reference_en.pdf

Index

Constants

View Source
const (
	DfvLevel0 int = 0 // base data format
	DfvLevel1 int = 1 // eval types support all data types
	DfvLevel2 int = 2 // reserved, broken, do not use
	DfvLevel3 int = 3 // additional types Longdate, Secondate, Daydate, Secondtime supported for NGAP
	DfvLevel4 int = 4 // generic support for new date/time types
	DfvLevel5 int = 5 // spatial types in ODBC on request
	DfvLevel6 int = 6 // BINTEXT
	DfvLevel7 int = 7 // with boolean support
	DfvLevel8 int = 8 // with FIXED8/12/16 support
)

Data format version values.

View Source
const (
	HdbErrAuthenticationFailed = 10
	HdbErrWhileParsingProtocol = 1033
)

HANA Database errors.

View Source
const MaxNumArg = math.MaxInt32

MaxNumArg is the maximum number of arguments allowed to send in a part.

View Source
const (
	RaExecutionFailed = -3
)

rows affected.

View Source
const (

	// TcTableRows is the TypeCode for table rows.
	TcTableRows typeCode = 0x7f // 127
)

Variables

View Source
var ErrFloatOutOfRange = errors.New("float out of range error")

ErrFloatOutOfRange means that a float exceeds the size of the hdb float field.

View Source
var ErrIntegerOutOfRange = errors.New("integer out of range error")

ErrIntegerOutOfRange means that an integer exceeds the size of the hdb integer field.

View Source
var ErrRatConversion = errors.New("rat conversion error")

ErrRatConversion means that a conversion to big.Rat was not possible.

View Source
var ErrUint64OutOfRange = errors.New("uint64 values with high bit set are not supported")

ErrUint64OutOfRange means that a uint64 exceeds the size of a int64.

Functions

func IsSupportedDfv added in v0.107.0

func IsSupportedDfv(dfv int) bool

IsSupportedDfv returns true if the data format version dfv is supported by the driver, false otherwise.

func RegisterScanType

func RegisterScanType(dt DataType, scanType, scanNullType reflect.Type) bool

RegisterScanType registers driver owned datatype scantypes (e.g. Decimal, Lob).

func SupportedDfvs added in v0.107.0

func SupportedDfvs(defaultOnly bool) []int

SupportedDfvs returns a slice of data format versions supported by the driver. If parameter defaultOnly is set only the default dfv is returned, otherwise all supported dfv values are returned.

Types

type AuthFinalReply added in v0.107.3

type AuthFinalReply struct {
	// contains filtered or unexported fields
}

AuthFinalReply represents an authentication final reply.

func (*AuthFinalReply) String added in v0.107.3

func (r *AuthFinalReply) String() string

type AuthFinalRequest added in v0.107.3

type AuthFinalRequest struct {
	// contains filtered or unexported fields
}

AuthFinalRequest represents an authentication final request.

func (*AuthFinalRequest) String added in v0.107.3

func (r *AuthFinalRequest) String() string

type AuthHnd added in v0.112.3

type AuthHnd struct {
	// contains filtered or unexported fields
}

AuthHnd holds the client authentication methods dependent on the driver.Connector attributes and handles the authentication hdb protocol.

func NewAuthHnd added in v0.112.3

func NewAuthHnd(logonname string) *AuthHnd

NewAuthHnd creates a new AuthHnd instance.

func (*AuthHnd) AddBasic added in v0.112.3

func (a *AuthHnd) AddBasic(username, password string)

AddBasic adds basic authentication methods.

func (*AuthHnd) AddJWT added in v0.112.3

func (a *AuthHnd) AddJWT(token string)

AddJWT adds JWT authentication method.

func (*AuthHnd) AddSessionCookie added in v0.112.3

func (a *AuthHnd) AddSessionCookie(cookie []byte, logonname, clientID string)

AddSessionCookie adds session cookie authentication method.

func (*AuthHnd) AddX509 added in v0.112.3

func (a *AuthHnd) AddX509(certKey *auth.CertKey)

AddX509 adds X509 authentication method.

func (*AuthHnd) FinalReply added in v0.112.3

func (a *AuthHnd) FinalReply() (*AuthFinalReply, error)

FinalReply returns the final reply part.

func (*AuthHnd) FinalRequest added in v0.112.3

func (a *AuthHnd) FinalRequest() (*AuthFinalRequest, error)

FinalRequest returns the final request part.

func (*AuthHnd) InitReply added in v0.112.3

func (a *AuthHnd) InitReply() (*AuthInitReply, error)

InitReply returns the init reply part.

func (*AuthHnd) InitRequest added in v0.112.3

func (a *AuthHnd) InitRequest() (*AuthInitRequest, error)

InitRequest returns the init request part.

func (*AuthHnd) Selected added in v1.3.6

func (a *AuthHnd) Selected() auth.Method

Selected returns the selected authentication method.

func (*AuthHnd) String added in v0.112.3

func (a *AuthHnd) String() string

type AuthInitReply added in v0.107.3

type AuthInitReply struct {
	// contains filtered or unexported fields
}

AuthInitReply represents an authentication initial reply.

func (*AuthInitReply) String added in v0.107.3

func (r *AuthInitReply) String() string

type AuthInitRequest added in v0.107.3

type AuthInitRequest struct {
	// contains filtered or unexported fields
}

AuthInitRequest represents an authentication initial request.

func (*AuthInitRequest) String added in v0.107.3

func (r *AuthInitRequest) String() string

type Cdm added in v0.107.3

type Cdm byte

Cdm represents a ConnectOption ClientDistributionMode.

const (
	CdmOff                 Cdm = 0
	CdmConnection          Cdm = 1
	CdmStatement           Cdm = 2
	CdmConnectionStatement Cdm = 3
)

ConnectOption ClientDistributionMode constants.

func (Cdm) String added in v0.107.3

func (i Cdm) String() string

type ClientContext added in v1.7.2

type ClientContext struct {
	// contains filtered or unexported fields
}

ClientContext represents a client context part.

func (*ClientContext) SetApplicationProgram added in v1.7.2

func (cc *ClientContext) SetApplicationProgram(v string)

SetApplicationProgram sets the client application program option.

func (*ClientContext) SetType added in v1.7.2

func (cc *ClientContext) SetType(v string)

SetType sets the client type option.

func (*ClientContext) SetVersion added in v1.7.2

func (cc *ClientContext) SetVersion(v string)

SetVersion sets the client version option.

func (ClientContext) String added in v1.7.2

func (ops ClientContext) String() string

type ClientID added in v0.107.0

type ClientID []byte

ClientID represents a client id part.

func (ClientID) String added in v0.107.3

func (id ClientID) String() string

type Command added in v0.107.3

type Command []byte

Command represents a command part with cesu8 content.

func (Command) String added in v0.107.3

func (c Command) String() string

type ConnectOptions added in v1.7.2

type ConnectOptions struct {
	// contains filtered or unexported fields
}

ConnectOptions represents a connect options part.

func (*ConnectOptions) DataFormatVersion2OrZero added in v1.7.2

func (co *ConnectOptions) DataFormatVersion2OrZero() int

DataFormatVersion2OrZero returns the data format version2 option if available, the zero value otherwise.

func (*ConnectOptions) DatabaseNameOrZero added in v1.7.2

func (co *ConnectOptions) DatabaseNameOrZero() string

DatabaseNameOrZero returns the database name option if available, the zero value otherwise.

func (*ConnectOptions) FullVersionOrZero added in v1.7.2

func (co *ConnectOptions) FullVersionOrZero() string

FullVersionOrZero returns the full version option if available, the zero value otherwise.

func (*ConnectOptions) SetClientDistributionMode added in v1.7.2

func (co *ConnectOptions) SetClientDistributionMode(v Cdm)

SetClientDistributionMode sets the client distribution mode option.

func (*ConnectOptions) SetClientLocale added in v1.7.2

func (co *ConnectOptions) SetClientLocale(v string)

SetClientLocale sets the client locale option.

func (*ConnectOptions) SetDataFormatVersion2 added in v1.7.2

func (co *ConnectOptions) SetDataFormatVersion2(v int)

SetDataFormatVersion2 sets the data format version 2 option.

func (*ConnectOptions) SetSelectForUpdateSupported added in v1.7.2

func (co *ConnectOptions) SetSelectForUpdateSupported(v bool)

SetSelectForUpdateSupported sets the select for update supported option.

func (ConnectOptions) String added in v1.7.2

func (ops ConnectOptions) String() string

type ConvertError

type ConvertError struct {
	// contains filtered or unexported fields
}

A ConvertError is returned by conversion methods if a go datatype to hdb datatype conversion fails.

func (*ConvertError) Error

func (e *ConvertError) Error() string

func (*ConvertError) Unwrap

func (e *ConvertError) Unwrap() error

Unwrap returns the nested error.

type DBConnectInfo added in v1.7.2

type DBConnectInfo struct {
	// contains filtered or unexported fields
}

DBConnectInfo represents a database connect info part.

func (*DBConnectInfo) HostOrZero added in v1.7.2

func (ci *DBConnectInfo) HostOrZero() string

HostOrZero returns the host option, the zero value otherwise.

func (*DBConnectInfo) IsConnectedOrZero added in v1.7.2

func (ci *DBConnectInfo) IsConnectedOrZero() bool

IsConnectedOrZero returns this IsConnected option, the zero value otherwise.

func (*DBConnectInfo) PortOrZero added in v1.7.2

func (ci *DBConnectInfo) PortOrZero() int

PortOrZero returns the port option, the zero value otherwise.

func (*DBConnectInfo) SetDatabaseName added in v1.7.2

func (ci *DBConnectInfo) SetDatabaseName(v string)

SetDatabaseName sets the database name option.

func (DBConnectInfo) String added in v1.7.2

func (ops DBConnectInfo) String() string

type DataType

type DataType byte

DataType is the type definition for data types supported by this package.

const (
	DtUnknown DataType = iota // unknown data type
	DtBoolean
	DtTinyint
	DtSmallint
	DtInteger
	DtBigint
	DtReal
	DtDouble
	DtDecimal
	DtTime
	DtString
	DtBytes
	DtLob
	DtRows
)

Data type constants.

func (DataType) ScanType

func (dt DataType) ScanType(nullable bool) reflect.Type

ScanType return the scan type (reflect.Type) of the corresponding data type.

func (DataType) String

func (i DataType) String() string

type DecodeError added in v0.107.3

type DecodeError struct {
	// contains filtered or unexported fields
}

DecodeError represents a decoding error.

func (*DecodeError) Error added in v0.107.3

func (e *DecodeError) Error() string

type DecodeErrors added in v0.107.3

type DecodeErrors []*DecodeError

DecodeErrors represents a list of decoding errors.

func (DecodeErrors) RowError added in v0.107.3

func (errors DecodeErrors) RowError(row int) error

RowError returns an error if one is assigned to a row, nil otherwise.

type Fetchsize added in v0.107.3

type Fetchsize int32

Fetchsize represents a fetch size part.

func (Fetchsize) String added in v0.107.3

func (s Fetchsize) String() string

type FunctionCode added in v0.107.3

type FunctionCode int16

FunctionCode represents a function code.

const (
	FcDDL FunctionCode = 1
)

FunctionCode constants.

func (FunctionCode) IsProcedureCall added in v0.107.3

func (fc FunctionCode) IsProcedureCall() bool

IsProcedureCall returns true if the function code is a procedure call, false otherwise.

func (FunctionCode) String added in v0.107.3

func (i FunctionCode) String() string

type HdbError added in v1.0.1

type HdbError struct {
	// contains filtered or unexported fields
}

HdbError represents a single error returned by the server.

func (*HdbError) Code added in v1.0.1

func (e *HdbError) Code() int

Code implements the driver.DBError interface.

func (*HdbError) Error added in v1.0.1

func (e *HdbError) Error() string

func (*HdbError) IsError added in v1.0.1

func (e *HdbError) IsError() bool

IsError implements the driver.DBError interface.

func (*HdbError) IsFatal added in v1.0.1

func (e *HdbError) IsFatal() bool

IsFatal implements the driver.DBError interface.

func (*HdbError) IsWarning added in v1.0.1

func (e *HdbError) IsWarning() bool

IsWarning implements the driver.DBError interface.

func (*HdbError) Level added in v1.0.1

func (e *HdbError) Level() int

Level implements the driver.DBError interface.

func (*HdbError) Position added in v1.0.1

func (e *HdbError) Position() int

Position implements the driver.DBError interface.

func (*HdbError) StmtNo added in v1.0.1

func (e *HdbError) StmtNo() int

StmtNo implements the driver.DBError interface.

func (*HdbError) String added in v1.0.1

func (e *HdbError) String() string

func (*HdbError) Text added in v1.0.1

func (e *HdbError) Text() string

Text implements the driver.DBError interface.

type HdbErrors added in v0.107.3

type HdbErrors struct {
	*HdbError
	// contains filtered or unexported fields
}

HdbErrors represent the collection of errors return by the server.

func (*HdbErrors) Error added in v0.107.3

func (e *HdbErrors) Error() string

func (*HdbErrors) NumError added in v0.107.3

func (e *HdbErrors) NumError() int

NumError implements the driver.Error interface. NumErrors returns the number of all errors, including warnings.

func (*HdbErrors) SetIdx added in v0.107.3

func (e *HdbErrors) SetIdx(idx int)

SetIdx implements the driver.Error interface.

func (*HdbErrors) String added in v0.107.3

func (e *HdbErrors) String() string

func (*HdbErrors) Unwrap added in v1.0.1

func (e *HdbErrors) Unwrap() []error

type InputParameters added in v0.107.3

type InputParameters struct {
	InputFields []*ParameterField
	// contains filtered or unexported fields
}

InputParameters represents the set of input parameters.

func NewInputParameters added in v0.107.3

func NewInputParameters(inputFields []*ParameterField, nvargs []driver.NamedValue) (*InputParameters, error)

NewInputParameters returns a InputParameters instance.

func (*InputParameters) String added in v0.107.3

func (p *InputParameters) String() string

type LobDecoderSetter added in v0.111.2

type LobDecoderSetter interface {
	SetDecoder(fn func(descr *LobOutDescr, wr io.Writer) error)
}

LobDecoderSetter is the interface wrapping the setDecoder method for Lob reading.

type LobInDescr added in v0.107.3

type LobInDescr struct {
	Opt LobOptions
	// contains filtered or unexported fields
}

LobInDescr represents a lob input descriptor.

func (*LobInDescr) FetchNext added in v0.107.3

func (d *LobInDescr) FetchNext(chunkSize int) error

FetchNext fetches the next lob chunk.

func (*LobInDescr) String added in v0.107.3

func (d *LobInDescr) String() string

type LobOptions added in v0.107.3

type LobOptions int8

LobOptions represents a lob option set.

func (LobOptions) IsLastData added in v0.107.3

func (o LobOptions) IsLastData() bool

IsLastData return true if the last data package was read, false otherwise.

func (LobOptions) String added in v0.107.3

func (o LobOptions) String() string

type LobOutDescr added in v0.107.3

type LobOutDescr struct {
	IsCharBased bool

	Opt     LobOptions
	NumChar int64

	ID LocatorID
	B  []byte
	// contains filtered or unexported fields
}

LobOutDescr represents a lob output descriptor.

func (*LobOutDescr) Scan added in v0.111.2

func (d *LobOutDescr) Scan(wr io.Writer) error

Scan implements the LobScanner interface.

func (*LobOutDescr) SetDecoder added in v0.111.2

func (d *LobOutDescr) SetDecoder(decoder func(descr *LobOutDescr, wr io.Writer) error)

SetDecoder implements the LobDecoderSetter interface.

func (*LobOutDescr) String added in v0.107.3

func (d *LobOutDescr) String() string

type LobScanner added in v0.111.2

type LobScanner interface {
	Scan(w io.Writer) error
}

LobScanner is the interface wrapping the Scan method for Lob reading.

type LocatorID added in v0.107.3

type LocatorID uint64 // byte[locatorIdSize]

LocatorID represents a locotor id.

type MessageType added in v0.107.3

type MessageType int8

MessageType represents the message type.

const (
	MtExecuteDirect MessageType = 2
	MtPrepare       MessageType = 3

	MtExecute  MessageType = 13
	MtWriteLob MessageType = 16
	MtReadLob  MessageType = 17

	MtAuthenticate    MessageType = 65
	MtConnect         MessageType = 66
	MtCommit          MessageType = 67
	MtRollback        MessageType = 68
	MtCloseResultset  MessageType = 69
	MtDropStatementID MessageType = 70
	MtFetchNext       MessageType = 71

	MtDisconnect MessageType = 77

	MtDBConnectInfo MessageType = 82
)

MessageType constants.

func (MessageType) ClientInfoSupported added in v0.107.3

func (mt MessageType) ClientInfoSupported() bool

ClientInfoSupported returns true if message does support client info, false otherwise.

func (MessageType) String added in v0.107.3

func (i MessageType) String() string

type OutputParameters added in v0.107.3

type OutputParameters struct {
	OutputFields []*ParameterField
	FieldValues  []driver.Value
	DecodeErrors DecodeErrors
}

OutputParameters represents the set of output parameters.

func (*OutputParameters) String added in v0.107.3

func (p *OutputParameters) String() string

type ParameterField

type ParameterField struct {
	// contains filtered or unexported fields
}

ParameterField contains database field attributes for parameters.

func NewTableRowsParameterField added in v0.107.4

func NewTableRowsParameterField(idx int) *ParameterField

NewTableRowsParameterField returns a ParameterField representing table rows.

func (*ParameterField) Convert

func (f *ParameterField) Convert(t transform.Transformer, v any) (any, error)

Convert returns the result of the fieldType conversion.

func (*ParameterField) In

func (f *ParameterField) In() bool

In returns true if the parameter field is an input field.

func (*ParameterField) InOut added in v0.109.0

func (f *ParameterField) InOut() bool

InOut returns true if the parameter field is an in,- output field.

func (*ParameterField) IsLob added in v0.107.4

func (f *ParameterField) IsLob() bool

IsLob returns true if the ParameterField is of type lob, false otherwise.

func (*ParameterField) Name added in v0.107.3

func (f *ParameterField) Name() string

Name returns the parameter field name.

func (*ParameterField) Nullable added in v0.107.3

func (f *ParameterField) Nullable() bool

Nullable returns true if the field may be null, false otherwise. see https://golang.org/pkg/database/sql/driver/#RowsColumnTypeNullable

func (*ParameterField) Out

func (f *ParameterField) Out() bool

Out returns true if the parameter field is an output field.

func (*ParameterField) ScanType added in v0.107.3

func (f *ParameterField) ScanType() reflect.Type

ScanType returns the scan type of the field. see https://golang.org/pkg/database/sql/driver/#RowsColumnTypeScanType

func (*ParameterField) String

func (f *ParameterField) String() string

func (*ParameterField) TypeLength added in v0.107.3

func (f *ParameterField) TypeLength() (int64, bool)

TypeLength returns the type length of the field. see https://golang.org/pkg/database/sql/driver/#RowsColumnTypeLength

func (*ParameterField) TypeName added in v0.107.3

func (f *ParameterField) TypeName() string

TypeName returns the type name of the field. see https://golang.org/pkg/database/sql/driver/#RowsColumnTypeDatabaseTypeName

func (*ParameterField) TypePrecisionScale added in v0.107.3

func (f *ParameterField) TypePrecisionScale() (int64, int64, bool)

TypePrecisionScale returns the type precision and scale (decimal types) of the field. see https://golang.org/pkg/database/sql/driver/#RowsColumnTypePrecisionScale

type ParameterMetadata added in v0.107.3

type ParameterMetadata struct {
	ParameterFields []*ParameterField
}

ParameterMetadata represents the metadata of a parameter.

func (*ParameterMetadata) String added in v0.107.3

func (m *ParameterMetadata) String() string

type ParameterMode added in v0.107.3

type ParameterMode int8

ParameterMode represents the parameter mode set.

func (ParameterMode) String added in v0.107.3

func (k ParameterMode) String() string

type Part added in v1.6.8

type Part interface {
	String() string // should support Stringer interface
	// contains filtered or unexported methods
}

Part represents a protocol part.

type PartAttributes added in v0.107.3

type PartAttributes int8

PartAttributes represents the part attributes.

func (PartAttributes) LastPacket added in v0.107.3

func (k PartAttributes) LastPacket() bool

LastPacket returns true if the last packet is sent, false otherwise.

func (PartAttributes) ResultsetClosed added in v0.107.3

func (k PartAttributes) ResultsetClosed() bool

ResultsetClosed returns true if the result set is closed, false otherwise.

func (PartAttributes) String added in v0.107.3

func (k PartAttributes) String() string

type PartKind added in v0.107.3

type PartKind int8

PartKind represents the part kind.

const (
	PkCommand     PartKind = 3
	PkResultset   PartKind = 5
	PkError       PartKind = 6
	PkStatementID PartKind = 10

	PkRowsAffected        PartKind = 12
	PkResultsetID         PartKind = 13
	PkTopologyInformation PartKind = 15

	PkReadLobRequest PartKind = 17
	PkReadLobReply   PartKind = 18

	PkWriteLobRequest PartKind = 28
	PkClientContext   PartKind = 29
	PkWriteLobReply   PartKind = 30
	PkParameters      PartKind = 32
	PkAuthentication  PartKind = 33

	PkClientID PartKind = 35

	PkStatementContext PartKind = 39

	PkOutputParameters PartKind = 41
	PkConnectOptions   PartKind = 42

	PkFetchSize         PartKind = 45
	PkParameterMetadata PartKind = 47
	PkResultMetadata    PartKind = 48

	PkClientInfo PartKind = 57

	PkTransactionFlags PartKind = 64

	PkDBConnectInfo PartKind = 67
)

PartKind constants.

func (PartKind) String added in v0.107.3

func (i PartKind) String() string

type ReadLobReply added in v0.107.3

type ReadLobReply struct {
	ID  LocatorID
	Opt LobOptions
	B   []byte
}

ReadLobReply represents a lob read reply part.

func (*ReadLobReply) String added in v0.107.3

func (r *ReadLobReply) String() string

type ReadLobRequest added in v0.107.3

type ReadLobRequest struct {
	/*
	   read lobs:
	   - read lob field from database in chunks
	   - loop:
	     - readLobRequest
	     - readLobReply

	   - read lob reply
	     seems like readLobreply returns only a result for one lob - even if more then one is requested
	     --> read single lobs
	*/
	ID        LocatorID
	Ofs       int64
	ChunkSize int32
}

ReadLobRequest represents a lob read request part.

func (*ReadLobRequest) String added in v0.107.3

func (r *ReadLobRequest) String() string

type Reader added in v0.107.3

type Reader struct {
	// ReadProlog reads the protocol prolog.
	ReadProlog func(ctx context.Context) error
	// contains filtered or unexported fields
}

Reader represents a protocol reader.

func NewClientReader added in v1.2.0

func NewClientReader(dec *encoding.Decoder, protTrace bool, logger *slog.Logger) *Reader

NewClientReader returns an instance of a client protocol reader.

func NewDBReader added in v1.2.0

func NewDBReader(dec *encoding.Decoder, protTrace bool, logger *slog.Logger) *Reader

NewDBReader returns an instance of a database protocol reader.

func (*Reader) FunctionCode added in v0.107.3

func (r *Reader) FunctionCode() FunctionCode

FunctionCode returns the function code of the protocol.

func (*Reader) IterateParts added in v0.107.3

func (r *Reader) IterateParts(ctx context.Context, fn func(kind PartKind, attrs PartAttributes, read func(part Part))) error

IterateParts iterates through all protocol parts.

func (*Reader) SessionID added in v0.107.3

func (r *Reader) SessionID() int64

SessionID returns the session ID.

func (*Reader) SkipParts added in v1.6.8

func (r *Reader) SkipParts(ctx context.Context) error

SkipParts reads and discards all protocol parts.

type ResultField added in v0.107.3

type ResultField struct {
	// contains filtered or unexported fields
}

ResultField represents a database result field.

func (*ResultField) Name added in v0.107.3

func (f *ResultField) Name() string

Name returns the result field name.

func (*ResultField) Nullable added in v0.107.3

func (f *ResultField) Nullable() bool

Nullable returns true if the field may be null, false otherwise. see https://golang.org/pkg/database/sql/driver/#RowsColumnTypeNullable

func (*ResultField) ScanType added in v0.107.3

func (f *ResultField) ScanType() reflect.Type

ScanType returns the scan type of the field. see https://golang.org/pkg/database/sql/driver/#RowsColumnTypeScanType

func (*ResultField) String added in v0.107.3

func (f *ResultField) String() string

String implements the Stringer interface.

func (*ResultField) TypeLength added in v0.107.3

func (f *ResultField) TypeLength() (int64, bool)

TypeLength returns the type length of the field. see https://golang.org/pkg/database/sql/driver/#RowsColumnTypeLength

func (*ResultField) TypeName added in v0.107.3

func (f *ResultField) TypeName() string

TypeName returns the type name of the field. see https://golang.org/pkg/database/sql/driver/#RowsColumnTypeDatabaseTypeName

func (*ResultField) TypePrecisionScale added in v0.107.3

func (f *ResultField) TypePrecisionScale() (int64, int64, bool)

TypePrecisionScale returns the type precision and scale (decimal types) of the field. see https://golang.org/pkg/database/sql/driver/#RowsColumnTypePrecisionScale

type ResultMetadata added in v0.107.3

type ResultMetadata struct {
	ResultFields []*ResultField
}

ResultMetadata represents the metadata of a set of database result fields.

func (*ResultMetadata) String added in v0.107.3

func (r *ResultMetadata) String() string

type Resultset added in v0.107.3

type Resultset struct {
	ResultFields []*ResultField
	FieldValues  []driver.Value
	DecodeErrors DecodeErrors
}

Resultset represents a database result set.

func (*Resultset) String added in v0.107.3

func (r *Resultset) String() string

type ResultsetID added in v0.107.3

type ResultsetID uint64

ResultsetID represents a resultset id.

func (ResultsetID) String added in v0.107.3

func (id ResultsetID) String() string

type RowsAffected added in v0.107.3

type RowsAffected struct {
	Ofs int
	// contains filtered or unexported fields
}

RowsAffected represents a rows affected part.

func (RowsAffected) String added in v0.107.3

func (r RowsAffected) String() string

func (RowsAffected) Total added in v0.107.3

func (r RowsAffected) Total() int64

Total return the total number of all affected rows.

type ServiceType added in v1.7.2

type ServiceType int32

ServiceType represents a service type.

const (
	StOther            ServiceType = 0
	StNameServer       ServiceType = 1
	StPreprocessor     ServiceType = 2
	StIndexServer      ServiceType = 3
	StStatisticsServer ServiceType = 4
	StXSEngine         ServiceType = 5
	StReserved6        ServiceType = 6
	StCompileServer    ServiceType = 7
	StDPServer         ServiceType = 8
	StDIServer         ServiceType = 9
	StComputeServer    ServiceType = 10
	StScriptServer     ServiceType = 11
)

Service type constants.

func (ServiceType) String added in v1.7.2

func (i ServiceType) String() string

type StatementID added in v0.107.3

type StatementID uint64

StatementID represents the statement id part type.

func (StatementID) String added in v0.107.3

func (id StatementID) String() string

type TopologyInformation added in v1.7.2

type TopologyInformation struct {
	// contains filtered or unexported fields
}

TopologyInformation represents a topology information part.

func (TopologyInformation) String added in v1.7.2

func (ti TopologyInformation) String() string

type WriteLobDescr added in v0.107.3

type WriteLobDescr struct {
	LobInDescr *LobInDescr
	ID         LocatorID
	Opt        LobOptions
	// contains filtered or unexported fields
}

WriteLobDescr represents a lob descriptor for writes (lob -> db).

func (*WriteLobDescr) FetchNext added in v0.107.3

func (d *WriteLobDescr) FetchNext(chunkSize int) error

FetchNext fetches the next lob chunk.

func (WriteLobDescr) String added in v0.107.3

func (d WriteLobDescr) String() string

type WriteLobReply added in v0.107.3

type WriteLobReply struct {
	// write lob fields to db (reply)
	// - returns ids which have not been written completely
	IDs []LocatorID
}

WriteLobReply represents a lob write reply part.

func (*WriteLobReply) String added in v0.107.3

func (r *WriteLobReply) String() string

type WriteLobRequest added in v0.107.3

type WriteLobRequest struct {
	Descrs []*WriteLobDescr
}

WriteLobRequest represents a lob write request part.

func (*WriteLobRequest) String added in v0.107.3

func (r *WriteLobRequest) String() string

type Writer added in v0.107.3

type Writer struct {
	// contains filtered or unexported fields
}

Writer represents a protocol writer.

func NewWriter added in v0.107.3

func NewWriter(wr *bufio.Writer, enc *encoding.Encoder, protTrace bool, logger *slog.Logger, encoder func() transform.Transformer, sv map[string]string) *Writer

NewWriter returns an instance of a protocol writer.

func (*Writer) Write added in v0.107.3

func (w *Writer) Write(ctx context.Context, sessionID int64, messageType MessageType, commit bool, parts ...writablePart) error

func (*Writer) WriteProlog added in v0.107.3

func (w *Writer) WriteProlog(ctx context.Context) error

WriteProlog writes the protocol prolog.

Directories

Path Synopsis
Package auth provides authentication methods.
Package auth provides authentication methods.
Package encoding implements hdb field type en,- and decodings.
Package encoding implements hdb field type en,- and decodings.
Package julian provided julian time conversion functions.
Package julian provided julian time conversion functions.
Package levenshtein includes the levenshtein distance algorithm plus additional helper functions.
Package levenshtein includes the levenshtein distance algorithm plus additional helper functions.

Jump to

Keyboard shortcuts

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