protocol

package
v1.4.3 Latest Latest
Warning

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

Go to latest
Published: Aug 16, 2023 License: Apache-2.0 Imports: 25 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 ErrDecimalOutOfRange = errors.New("decimal out of range error")

ErrDecimalOutOfRange means that a big.Rat exceeds the size of hdb decimal fields.

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 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

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

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

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

AuthFinalReply represents an authentication final reply.

func (*AuthFinalReply) String

func (r *AuthFinalReply) String() string

type AuthFinalRequest

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

AuthFinalRequest represents an authentication final request.

func (*AuthFinalRequest) String

func (r *AuthFinalRequest) String() string

type AuthHnd

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

func NewAuthHnd(logonname string) *AuthHnd

NewAuthHnd creates a new AuthHnd instance.

func (*AuthHnd) AddBasic

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

AddBasic adds basic authentication methods.

func (*AuthHnd) AddJWT

func (a *AuthHnd) AddJWT(token string)

AddJWT adds JWT authentication method.

func (*AuthHnd) AddSessionCookie

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

AddSessionCookie adds session cookie authentication method.

func (*AuthHnd) AddX509

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

AddX509 adds X509 authentication method.

func (*AuthHnd) FinalReply

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

FinalReply returns the final reply part.

func (*AuthHnd) FinalRequest

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

FinalRequest returns the final request part.

func (*AuthHnd) InitReply

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

InitReply returns the init reply part.

func (*AuthHnd) InitRequest

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

InitRequest returns the init request part.

func (*AuthHnd) Selected

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

Selected returns the selected authentication method.

func (*AuthHnd) String

func (a *AuthHnd) String() string

type AuthInitReply

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

AuthInitReply represents an authentication initial reply.

func (*AuthInitReply) String

func (r *AuthInitReply) String() string

type AuthInitRequest

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

AuthInitRequest represents an authentication initial request.

func (*AuthInitRequest) String

func (r *AuthInitRequest) String() string

type Cdm

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

func (i Cdm) String() string

type ClientContextOption

type ClientContextOption int8

ClientContextOption represents a client context option.

const (
	CcoClientVersion            ClientContextOption = 1
	CcoClientType               ClientContextOption = 2
	CcoClientApplicationProgram ClientContextOption = 3
)

ClientContextOption constants.

func (ClientContextOption) String

func (i ClientContextOption) String() string

type ClientID

type ClientID []byte

ClientID represents a client id part.

func (ClientID) String

func (id ClientID) String() string

type Command

type Command []byte

Command represents a command part with cesu8 content.

func (Command) String

func (c Command) String() string

type ConnectOption

type ConnectOption int8

ConnectOption represents a connect option.

const (
	CoCompleteArrayExecution ConnectOption = 2 //!< @deprecated Array execution semantics, always true.
	CoClientLocale           ConnectOption = 3 //!< Client locale information.

	CoSelectForUpdateSupported ConnectOption = 14 //!< SELECT FOR UPDATE function code understood by client
	CoClientDistributionMode   ConnectOption = 15 //!< client distribution mode

	CoDistributionProtocolVersion ConnectOption = 17 //!< version of distribution protocol handling (@see DistributionProtocolVersionEnum)
	CoSplitBatchCommands          ConnectOption = 18 //!< permit splitting of batch commands

	CoDataFormatVersion2 ConnectOption = 23 //!< Version of data format used in communication (as DataFormatVersion used wrongly in old servers)

	CoFullVersionString ConnectOption = 44 //!< Full version string of the client or server (the sender) (added to hana2sp0)
	CoDatabaseName      ConnectOption = 45 //!< Database name (string) that we connected to (sent by server) (added to hana2sp0)

)

ConnectOption constants.

func (ConnectOption) String

func (i ConnectOption) 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 DBConnectInfoType

type DBConnectInfoType int8

DBConnectInfoType represents a database connect info type.

const (
	CiDatabaseName DBConnectInfoType = 1 // string
	CiHost         DBConnectInfoType = 2 // string
	CiPort         DBConnectInfoType = 3 // int4
	CiIsConnected  DBConnectInfoType = 4 // bool
)

DBConnectInfoType constants.

func (DBConnectInfoType) String

func (i DBConnectInfoType) 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

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

DecodeError represents a decoding error.

func (*DecodeError) Error

func (e *DecodeError) Error() string

type DecodeErrors

type DecodeErrors []*DecodeError

DecodeErrors represents a list of decoding errors.

func (DecodeErrors) RowError

func (errors DecodeErrors) RowError(row int) error

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

type Fetchsize

type Fetchsize int32

Fetchsize represents a fetch size part.

func (Fetchsize) String

func (s Fetchsize) String() string

type FieldTypeCtx

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

FieldTypeCtx represents a field type context for creating field types.

func NewFieldTypeCtx

func NewFieldTypeCtx(dfv int, emptyDateAsNull bool) *FieldTypeCtx

NewFieldTypeCtx returns a new field type context instance.

type FunctionCode

type FunctionCode int16

FunctionCode represents a function code.

const (
	FcDDL FunctionCode = 1
)

FunctionCode constants.

func (FunctionCode) IsProcedureCall

func (fc FunctionCode) IsProcedureCall() bool

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

func (FunctionCode) String

func (i FunctionCode) String() string

type HdbError

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

HdbError represents a single error returned by the server.

func (*HdbError) Code

func (e *HdbError) Code() int

Code implements the driver.DBError interface.

func (*HdbError) Error

func (e *HdbError) Error() string

func (*HdbError) IsError

func (e *HdbError) IsError() bool

IsError implements the driver.DBError interface.

func (*HdbError) IsFatal

func (e *HdbError) IsFatal() bool

IsFatal implements the driver.DBError interface.

func (*HdbError) IsWarning

func (e *HdbError) IsWarning() bool

IsWarning implements the driver.DBError interface.

func (*HdbError) Level

func (e *HdbError) Level() int

Level implements the driver.DBError interface.

func (*HdbError) Position

func (e *HdbError) Position() int

Position implements the driver.DBError interface.

func (*HdbError) StmtNo

func (e *HdbError) StmtNo() int

StmtNo implements the driver.DBError interface.

func (*HdbError) String

func (e *HdbError) String() string

func (*HdbError) Text

func (e *HdbError) Text() string

Text implements the driver.DBError interface.

type HdbErrors

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

HdbErrors represent the collection of errors return by the server.

func (*HdbErrors) Code

func (e *HdbErrors) Code() int

Code implements the driver.Error interface.

func (*HdbErrors) Error

func (e *HdbErrors) Error() string

func (*HdbErrors) ErrorsFunc

func (e *HdbErrors) ErrorsFunc(fn func(err error))

ErrorsFunc executes fn on all hdb errors.

func (*HdbErrors) HasOnlyWarnings

func (e *HdbErrors) HasOnlyWarnings() bool

HasOnlyWarnings returns true if the error collection contains warnings, false otherwise.

func (*HdbErrors) IsError

func (e *HdbErrors) IsError() bool

IsError implements the driver.Error interface.

func (*HdbErrors) IsFatal

func (e *HdbErrors) IsFatal() bool

IsFatal implements the driver.Error interface.

func (*HdbErrors) IsWarning

func (e *HdbErrors) IsWarning() bool

IsWarning implements the driver.Error interface.

func (*HdbErrors) Level

func (e *HdbErrors) Level() int

Level implements the driver.Error interface.

func (*HdbErrors) NumError

func (e *HdbErrors) NumError() int

NumError implements the driver.Error interface.

func (*HdbErrors) Position

func (e *HdbErrors) Position() int

Position implements the driver.Error interface.

func (*HdbErrors) SetIdx

func (e *HdbErrors) SetIdx(idx int)

SetIdx implements the driver.Error interface.

func (*HdbErrors) StmtNo

func (e *HdbErrors) StmtNo() int

StmtNo implements the driver.Error interface.

func (*HdbErrors) String

func (e *HdbErrors) String() string

func (*HdbErrors) Text

func (e *HdbErrors) Text() string

Text implements the driver.Error interface.

func (*HdbErrors) Unwrap

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

type InputParameters

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

InputParameters represents the set of input parameters.

func NewInputParameters

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

NewInputParameters returns a InputParameters instance.

func (*InputParameters) String

func (p *InputParameters) String() string

type LobDecoderSetter

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

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

LobInDescr represents a lob input descriptor.

func (*LobInDescr) FetchNext

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

FetchNext fetches the next lob chunk.

func (*LobInDescr) String

func (d *LobInDescr) String() string

type LobOptions

type LobOptions int8

LobOptions represents a lob option set.

func (LobOptions) IsLastData

func (o LobOptions) IsLastData() bool

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

func (LobOptions) String

func (o LobOptions) String() string

type LobOutDescr

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

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

Scan implements the LobScanner interface.

func (*LobOutDescr) SetDecoder

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

SetDecoder implements the LobDecoderSetter interface.

func (*LobOutDescr) String

func (d *LobOutDescr) String() string

type LobScanner

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

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

type LocatorID

type LocatorID uint64 // byte[locatorIdSize]

LocatorID represents a locotor id.

type MessageType

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

func (mt MessageType) ClientInfoSupported() bool

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

func (MessageType) String

func (i MessageType) String() string

type Options

type Options[K ~int8] map[K]any

Options represents a generic option part.

func (Options[K]) String

func (ops Options[K]) String() string

type OutputParameters

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

OutputParameters represents the set of output parameters.

func (*OutputParameters) String

func (p *OutputParameters) String() string

type ParameterField

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

ParameterField contains database field attributes for parameters.

func NewTableRowsParameterField

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

func (f *ParameterField) InOut() bool

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

func (*ParameterField) IsLob

func (f *ParameterField) IsLob() bool

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

func (*ParameterField) Name

func (f *ParameterField) Name() string

Name returns the parameter field name.

func (*ParameterField) Nullable

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

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

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

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

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

type ParameterMetadata struct {
	FieldTypeCtx    *FieldTypeCtx
	ParameterFields []*ParameterField
}

ParameterMetadata represents the metadata of a parameter.

func (*ParameterMetadata) String

func (m *ParameterMetadata) String() string

type ParameterMode

type ParameterMode int8

ParameterMode represents the parameter mode set.

const (
	PmIn ParameterMode = 0x01

	PmOut ParameterMode = 0x04
)

ParameterMode constants.

func (ParameterMode) String

func (k ParameterMode) String() string

type PartAttributes

type PartAttributes int8

PartAttributes represents the part attributes.

func (PartAttributes) LastPacket

func (k PartAttributes) LastPacket() bool

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

func (PartAttributes) ResultsetClosed

func (k PartAttributes) ResultsetClosed() bool

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

func (PartAttributes) String

func (k PartAttributes) String() string

type PartHeader

type PartHeader struct {
	PartKind       PartKind
	PartAttributes PartAttributes
	// contains filtered or unexported fields
}

PartHeader represents the part header.

func (*PartHeader) String

func (h *PartHeader) String() string

type PartKind

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

func (i PartKind) String() string

type ReadLobReply

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

ReadLobReply represents a lob read reply part.

func (*ReadLobReply) String

func (r *ReadLobReply) String() string

type ReadLobRequest

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

func (r *ReadLobRequest) String() string

type ReadProvider

type ReadProvider interface {
	Reader() io.Reader
}

ReadProvider is the interface wrapping the Reader which provides an io.Reader.

type Reader

type Reader interface {
	ReadProlog(ctx context.Context) error
	IterateParts(ctx context.Context, partFn func(ph *PartHeader)) error
	Read(ctx context.Context, part partReader) error
	ReadSkip(ctx context.Context) error
	SessionID() int64
	FunctionCode() FunctionCode
}

Reader is the protocol reader interface.

func NewClientReader

func NewClientReader(rd io.Reader, protTrace bool, logger *slog.Logger, decoder func() transform.Transformer) Reader

NewClientReader returns an instance of a client protocol reader.

func NewDBReader

func NewDBReader(rd io.Reader, protTrace bool, logger *slog.Logger, decoder func() transform.Transformer) Reader

NewDBReader returns an instance of a database protocol reader.

type ResultField

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

ResultField represents a database result field.

func (*ResultField) Name

func (f *ResultField) Name() string

Name returns the result field name.

func (*ResultField) Nullable

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

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

func (f *ResultField) String() string

String implements the Stringer interface.

func (*ResultField) TypeLength

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

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

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

type ResultMetadata struct {
	FieldTypeCtx *FieldTypeCtx
	ResultFields []*ResultField
}

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

func (*ResultMetadata) String

func (r *ResultMetadata) String() string

type Resultset

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

Resultset represents a database result set.

func (*Resultset) String

func (r *Resultset) String() string

type ResultsetID

type ResultsetID uint64

ResultsetID represents a resultset id.

func (ResultsetID) String

func (id ResultsetID) String() string

type RowsAffected

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

RowsAffected represents a rows affected part.

func (RowsAffected) String

func (r RowsAffected) String() string

func (RowsAffected) Total

func (r RowsAffected) Total() int64

Total return the total number of all affected rows.

type StatementID

type StatementID uint64

StatementID represents the statement id part type.

func (StatementID) String

func (id StatementID) String() string

type WriteLobDescr

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

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

FetchNext fetches the next lob chunk.

func (WriteLobDescr) String

func (d WriteLobDescr) String() string

type WriteLobReply

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

func (r *WriteLobReply) String() string

type WriteLobRequest

type WriteLobRequest struct {
	Descrs []*WriteLobDescr
}

WriteLobRequest represents a lob write request part.

func (*WriteLobRequest) String

func (r *WriteLobRequest) String() string

type Writer

type Writer interface {
	WriteProlog(ctx context.Context) error
	Write(ctx context.Context, sessionID int64, messageType MessageType, commit bool, writers ...partWriter) error
}

Writer is the protocol writer interface.

func NewWriter

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

NewWriter returns an instance of a protocol writer.

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.
Package x509 provides X509 certificate methods.
Package x509 provides X509 certificate methods.

Jump to

Keyboard shortcuts

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