Skip to content

Commit c6e0eea

Browse files
Merge pull request #7 from goark/refactoring-and-debug
Fix Rows.GetString function
2 parents 6908522 + 511b384 commit c6e0eea

File tree

3 files changed

+25
-15
lines changed

3 files changed

+25
-15
lines changed

go.mod

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,7 @@ require (
1414
github.com/richardlehane/msoleps v1.0.3 // indirect
1515
github.com/xuri/efp v0.0.0-20220603152613-6918739fd470 // indirect
1616
github.com/xuri/nfp v0.0.0-20220409054826-5e722a1d9e22 // indirect
17-
golang.org/x/crypto v0.0.0-20220817201139-bc19a97f63c8 // indirect
18-
golang.org/x/net v0.0.0-20220812174116-3211cb980234 // indirect
19-
golang.org/x/text v0.3.7 // indirect
20-
gopkg.in/yaml.v3 v3.0.1 // indirect
17+
golang.org/x/crypto v0.1.0 // indirect
18+
golang.org/x/net v0.2.0 // indirect
19+
golang.org/x/text v0.4.0 // indirect
2120
)

go.sum

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,25 +23,27 @@ github.com/xuri/excelize/v2 v2.6.1 h1:ICBdtw803rmhLN3zfvyEGH3cwSmZv+kde7LhTDT659
2323
github.com/xuri/excelize/v2 v2.6.1/go.mod h1:tL+0m6DNwSXj/sILHbQTYsLi9IF4TW59H2EF3Yrx1AU=
2424
github.com/xuri/nfp v0.0.0-20220409054826-5e722a1d9e22 h1:OAmKAfT06//esDdpi/DZ8Qsdt4+M5+ltca05dA5bG2M=
2525
github.com/xuri/nfp v0.0.0-20220409054826-5e722a1d9e22/go.mod h1:WwHg+CVyzlv/TX9xqBFXEZAuxOPxn2k1GNHwG41IIUQ=
26-
golang.org/x/crypto v0.0.0-20220817201139-bc19a97f63c8 h1:GIAS/yBem/gq2MUqgNIzUHW7cJMmx3TGZOrnyYaNQ6c=
2726
golang.org/x/crypto v0.0.0-20220817201139-bc19a97f63c8/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
27+
golang.org/x/crypto v0.1.0 h1:MDRAIl0xIo9Io2xV565hzXHw3zVseKrJKodhohM5CjU=
28+
golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw=
2829
golang.org/x/image v0.0.0-20220413100746-70e8d0d3baa9 h1:LRtI4W37N+KFebI/qV0OFiLUv4GLOWeEW5hn/KEJvxE=
2930
golang.org/x/image v0.0.0-20220413100746-70e8d0d3baa9/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM=
3031
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
31-
golang.org/x/net v0.0.0-20220812174116-3211cb980234 h1:RDqmgfe7SvlMWoqC3xwQ2blLO3fcWcxMa3eBLRdRW7E=
3232
golang.org/x/net v0.0.0-20220812174116-3211cb980234/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk=
33+
golang.org/x/net v0.2.0 h1:sZfSu1wtKLGlWI4ZZayP0ck9Y73K1ynO6gqzTdBVdPU=
34+
golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY=
3335
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3436
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3537
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
3638
golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
3739
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
3840
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
3941
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
40-
golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk=
4142
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
43+
golang.org/x/text v0.4.0 h1:BrVqGRd7+k1DiOgtnFvAkoQEWQvBc25ouMJM6429SFg=
44+
golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
4245
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
4346
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
4447
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
48+
gopkg.in/yaml.v3 v3.0.0 h1:hjy8E9ON/egN1tAYqKb61G10WtihqetD4sz2H+8nIeA=
4549
gopkg.in/yaml.v3 v3.0.0/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
46-
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
47-
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=

rows.go

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -87,10 +87,19 @@ func (r *Rows) GetString(i int) (string, error) {
8787
if r == nil {
8888
return "", errs.Wrap(ErrNullValue)
8989
}
90-
if i < 0 || i >= len(r.rowdata) {
90+
if i < 0 {
9191
return "", errs.Wrap(ErrOutOfIndex, errs.WithContext("index", i))
9292
}
93-
s := r.rowdata[i]
93+
var s string
94+
if i >= len(r.rowdata) {
95+
if len(r.headerStrings) == 0 {
96+
return "", errs.Wrap(ErrOutOfIndex, errs.WithContext("index", i))
97+
} else if i >= len(r.headerStrings) {
98+
return "", errs.Wrap(ErrOutOfIndex, errs.WithContext("index", i))
99+
}
100+
} else {
101+
s = r.rowdata[i]
102+
}
94103
if r.TrimSpace() {
95104
s = strings.TrimSpace(s)
96105
}
@@ -139,13 +148,13 @@ func (r *Rows) ColumnString(s string) (string, error) {
139148
return "", nil
140149
}
141150

142-
// GetString method returns string data in current row.
151+
// Get method returns string data in current row.
143152
func (r Rows) Get(i int) string {
144153
s, _ := r.GetString(i)
145154
return s
146155
}
147156

148-
// GetString method returns string data in current row.
157+
// Column method returns string data in current row.
149158
func (r *Rows) Column(s string) string {
150159
cs, _ := r.ColumnString(s)
151160
return cs
@@ -424,12 +433,12 @@ func (r *Rows) Close() error {
424433

425434
func (r *Rows) indexOf(s string) (int, error) {
426435
if r == nil {
427-
return 0, errs.Wrap(ErrNullPointer)
436+
return 0, errs.Wrap(ErrNullPointer, errs.WithContext("column", s))
428437
}
429438
if i, ok := r.headerMap[strings.TrimSpace(s)]; ok {
430439
return i, nil
431440
}
432-
return 0, errs.Wrap(ErrOutOfIndex)
441+
return 0, errs.Wrap(ErrOutOfIndex, errs.WithContext("column", s))
433442
}
434443

435444
/* Copyright 2021-2022 Spiegel

0 commit comments

Comments
 (0)