Skip to content

Commit b6eca4a

Browse files
committed
fix(command): trim command
1 parent fdca2a7 commit b6eca4a

File tree

5 files changed

+97
-2
lines changed

5 files changed

+97
-2
lines changed

.pre-commit-config.yaml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,13 @@ repos:
2424
language: golang
2525
entry: goimports
2626
files: \.go$
27+
additional_dependencies:
28+
- golang.org/x/tools/cmd/goimports@latest
2729
args:
2830
- -w
2931
require_serial: true
3032
- repo: https://github.com/golangci/golangci-lint
31-
rev: v1.59.1
33+
rev: v2.7.2
3234
hooks:
3335
- id: golangci-lint
3436
exclude: ^pkg/

.vscode/settings.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,6 @@
55
"go.lintTool": "golangci-lint",
66
"go.lintFlags": [
77
"--fast"
8-
]
8+
],
9+
"go.testTimeout": "600s"
910
}

chunk.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import (
2323
"io"
2424
"net"
2525
"strconv"
26+
"strings"
2627
"time"
2728

2829
"github.com/pierrec/lz4"
@@ -363,6 +364,8 @@ func (this *SQCloud) sendArray(command string, values []interface{}) (int, error
363364
}
364365
}
365366

367+
command = strings.Trim(command, " \t\r\n")
368+
366369
// convert values to buffers encoded with whe sqlitecloud protocol
367370
buffers := [][]byte{protocolBufferFromString(command, true)[0]}
368371
for _, v := range values {

test/compress_test.go

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,3 +127,24 @@ func TestCompress(t *testing.T) {
127127
t.Fatal(err.Error())
128128
}
129129
}
130+
131+
func TestRowsetChunkCompressed(t *testing.T) {
132+
var db *sqlitecloud.SQCloud
133+
var err error
134+
135+
connectionString, _ := os.LookupEnv("SQLITE_CONNECTION_STRING")
136+
apikey, _ := os.LookupEnv("SQLITE_API_KEY")
137+
if db, err = sqlitecloud.Connect(connectionString + "?apikey=" + apikey); err != nil {
138+
t.Fatal("CONNECT: ", err.Error())
139+
}
140+
defer db.Close()
141+
142+
switch res, err := db.Select("TEST ROWSET_CHUNK_COMPRESSED"); { // ROWSET
143+
case err != nil:
144+
t.Fatal("TEST ROWSET_CHUNK_COMPRESSED: ", err.Error())
145+
case res == nil:
146+
t.Fatal("TEST ROWSET_CHUNK_COMPRESSED: nil result")
147+
case !res.IsRowSet():
148+
t.Fatal("TEST ROWSET_CHUNK_COMPRESSED: invalid type")
149+
}
150+
}

test/selectarray_test.go

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,3 +141,71 @@ func TestSelectArrayTableNameWithQuotes(t *testing.T) {
141141
t.Fatal(err.Error())
142142
}
143143
}
144+
145+
func TestSelectArrayWithLeadingChars(t *testing.T) {
146+
// Server API test
147+
connectionString, _ := os.LookupEnv("SQLITE_CONNECTION_STRING")
148+
apikey, _ := os.LookupEnv("SQLITE_API_KEY")
149+
connectionString += "/" + os.Getenv("SQLITE_DB") + "?apikey=" + apikey
150+
151+
config, err1 := sqlitecloud.ParseConnectionString(connectionString)
152+
if err1 != nil {
153+
t.Fatal(err1.Error())
154+
}
155+
156+
db := sqlitecloud.New(*config)
157+
err := db.Connect()
158+
159+
if err != nil {
160+
t.Fatalf(err.Error())
161+
}
162+
163+
defer db.Close()
164+
165+
// test select with leading spaces
166+
result, err := db.SelectArray(" SELECT 1 AS value;", nil)
167+
if err != nil {
168+
t.Fatal(err.Error())
169+
}
170+
if result.GetNumberOfRows() != 1 {
171+
t.Fatalf("Expected 1 row, got %d rows", result.GetNumberOfRows())
172+
}
173+
174+
// test select with leading tabs
175+
result, err = db.SelectArray("\t\t\tSELECT 1 AS value;", nil)
176+
if err != nil {
177+
t.Fatal(err.Error())
178+
}
179+
if result.GetNumberOfRows() != 1 {
180+
t.Fatalf("Expected 1 row, got %d rows", result.GetNumberOfRows())
181+
}
182+
183+
// test select with leading new lines
184+
result, err = db.SelectArray("\n\n\nSELECT 1 AS value;", nil)
185+
if err != nil {
186+
t.Fatal(err.Error())
187+
}
188+
if result.GetNumberOfRows() != 1 {
189+
t.Fatalf("Expected 1 row, got %d rows", result.GetNumberOfRows())
190+
}
191+
192+
// test with leading carriage returns
193+
result, err = db.SelectArray("\r\r\rSELECT 1 AS value;", nil)
194+
if err != nil {
195+
t.Fatal(err.Error())
196+
}
197+
if result.GetNumberOfRows() != 1 {
198+
t.Fatalf("Expected 1 row, got %d rows", result.GetNumberOfRows())
199+
}
200+
201+
// test select with mixed leading characters
202+
result, err = db.SelectArray(`
203+
SELECT 1 AS value;
204+
`, nil)
205+
if err != nil {
206+
t.Fatal(err.Error())
207+
}
208+
if result.GetNumberOfRows() != 1 {
209+
t.Fatalf("Expected 1 row, got %d rows", result.GetNumberOfRows())
210+
}
211+
}

0 commit comments

Comments
 (0)