Skip to content

Commit adb933d

Browse files
committed
v1.8.13
1 parent ec11d50 commit adb933d

24 files changed

+1448
-1477
lines changed

RELEASENOTES.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,10 @@ Release Notes
55

66
### Minor revisions
77

8+
#### v1.8.13
9+
- updated dependencies
10+
- source code cleanups
11+
812
#### v1.8.12
913
- updated dependencies
1014

driver/connection.go

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import (
2222
"github.com/SAP/go-hdb/driver/dial"
2323
p "github.com/SAP/go-hdb/driver/internal/protocol"
2424
"github.com/SAP/go-hdb/driver/internal/protocol/auth"
25+
"github.com/SAP/go-hdb/driver/internal/protocol/encoding"
2526
hdbreflect "github.com/SAP/go-hdb/driver/internal/reflect"
2627
"github.com/SAP/go-hdb/driver/unicode/cesu8"
2728
"golang.org/x/text/transform"
@@ -195,10 +196,10 @@ type conn struct {
195196

196197
serverOptions *p.ConnectOptions
197198
hdbVersion *Version
198-
fieldTypeCtx *p.FieldTypeCtx
199199

200-
pr *p.Reader
201-
pw *p.Writer
200+
dec *encoding.Decoder
201+
pr *p.Reader
202+
pw *p.Writer
202203
}
203204

204205
// isAuthError returns true in case of X509 certificate validation errrors or hdb authentication errors, else otherwise.
@@ -301,14 +302,18 @@ func newConn(ctx context.Context, host string, metrics *metrics, attrs *connAttr
301302

302303
protTrace := protTrace.Load()
303304

305+
enc := encoding.NewEncoder(rw.Writer, attrs._cesu8Encoder)
306+
dec := encoding.NewDecoder(rw.Reader, attrs._cesu8Decoder)
307+
304308
c := &conn{
305309
attrs: attrs,
306310
collector: collector,
307311
dbConn: dbConn,
308312
sqlTrace: sqlTrace.Load(),
309313
logger: logger,
310-
pw: p.NewWriter(rw.Writer, protTrace, logger, attrs._cesu8Encoder, attrs._sessionVariables), // write upstream
311-
pr: p.NewDBReader(rw.Reader, protTrace, logger, attrs._cesu8Decoder), // read downstream
314+
dec: dec,
315+
pw: p.NewWriter(rw.Writer, enc, protTrace, logger, attrs._cesu8Encoder, attrs._sessionVariables), // write upstream
316+
pr: p.NewDBReader(dec, protTrace, logger), // read downstream
312317
sessionID: defaultSessionID,
313318
}
314319

@@ -367,7 +372,8 @@ func (c *conn) initSession(ctx context.Context, attrs *connAttrs, authHnd *p.Aut
367372
}
368373

369374
c.hdbVersion = parseVersion(c.versionString())
370-
c.fieldTypeCtx = p.NewFieldTypeCtx(c.serverOptions.DataFormatVersion2OrZero(), attrs._emptyDateAsNull)
375+
c.dec.SetAlphanumDfv1(c.serverOptions.DataFormatVersion2OrZero() == p.DfvLevel1)
376+
c.dec.SetEmptyDateAsNull(attrs._emptyDateAsNull)
371377

372378
if attrs._defaultSchema != "" {
373379
if _, err := c.ExecContext(ctx, strings.Join([]string{setDefaultSchema, Identifier(attrs._defaultSchema).String()}, " "), nil); err != nil {
@@ -812,7 +818,7 @@ func (c *conn) queryDirect(ctx context.Context, query string, commit bool) (driv
812818
}
813819

814820
qr := &queryResult{conn: c}
815-
meta := &p.ResultMetadata{FieldTypeCtx: c.fieldTypeCtx}
821+
meta := &p.ResultMetadata{}
816822
resSet := &p.Resultset{}
817823

818824
if err := c.pr.IterateParts(ctx, func(kind p.PartKind, attrs p.PartAttributes, read func(part p.Part)) {
@@ -869,8 +875,8 @@ func (c *conn) prepare(ctx context.Context, query string) (*prepareResult, error
869875
}
870876

871877
pr := &prepareResult{}
872-
resMeta := &p.ResultMetadata{FieldTypeCtx: c.fieldTypeCtx}
873-
prmMeta := &p.ParameterMetadata{FieldTypeCtx: c.fieldTypeCtx}
878+
resMeta := &p.ResultMetadata{}
879+
prmMeta := &p.ParameterMetadata{}
874880

875881
if err := c.pr.IterateParts(ctx, func(kind p.PartKind, attrs p.PartAttributes, read func(part p.Part)) {
876882
switch kind {
@@ -986,7 +992,7 @@ func (c *conn) execCall(ctx context.Context, outputFields []*p.ParameterField) (
986992
rows := &p.RowsAffected{}
987993
var ids []p.LocatorID
988994
outPrms := &p.OutputParameters{}
989-
meta := &p.ResultMetadata{FieldTypeCtx: c.fieldTypeCtx}
995+
meta := &p.ResultMetadata{}
990996
resSet := &p.Resultset{}
991997
lobReply := &p.WriteLobReply{}
992998
var numRow int64

driver/datatype_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ func (dtt *dttNeg) insert(t *testing.T, db *sql.DB, tableName Identifier) {
5151
if _, err := stmt.Exec(in, i); err == nil { // error expected
5252
t.Fatalf("type: %s - %d - error expected", dtt._columnType.TypeName(), i)
5353
} else {
54-
t.Logf("type: %s - %d - %s - %T", dtt._columnType.TypeName(), i, err, err)
54+
t.Logf("type: %[1]s - %[2]d - %[3]T - %[3]s", dtt._columnType.TypeName(), i, err)
5555
}
5656
}
5757
}

driver/driver.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import (
1010
)
1111

1212
// DriverVersion is the version number of the hdb driver.
13-
const DriverVersion = "1.8.12"
13+
const DriverVersion = "1.8.13"
1414

1515
// DriverName is the driver name to use with sql.Open for hdb databases.
1616
const DriverName = "hdb"

driver/internal/protocol/auth/auth.go

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import (
99
"slices"
1010

1111
"github.com/SAP/go-hdb/driver/internal/protocol/encoding"
12-
"github.com/SAP/go-hdb/driver/unicode/cesu8"
1312
)
1413

1514
/*
@@ -175,10 +174,8 @@ func (p *Prms) Size() int {
175174
size := encoding.SmallintFieldSize // no of parameters (2 bytes)
176175
for _, e := range p.prms {
177176
switch e := e.(type) {
178-
case []byte:
179-
size += encoding.VarFieldSize(len(e))
180-
case string:
181-
size += encoding.VarFieldSize(cesu8.StringSize(e))
177+
case []byte, string:
178+
size += encoding.VarFieldSize(e)
182179
case *Prms:
183180
subSize := subPrmsSize(e.Size())
184181
size += (int(subSize) + subSize.fieldSize())

0 commit comments

Comments
 (0)