@@ -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 \t SELECT 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 \n SELECT 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 \r SELECT 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