@@ -3,8 +3,6 @@ package dbsql
33import (
44 "context"
55 "database/sql/driver"
6- "fmt"
7- "strconv"
86 "time"
97
108 "github.com/databricks/databricks-sql-go/driverctx"
@@ -288,7 +286,7 @@ func (c *conn) executeStatement(ctx context.Context, query string, args []driver
288286 MaxRows : int64 (c .cfg .MaxRows ),
289287 },
290288 CanDecompressLZ4Result_ : & c .cfg .UseLz4Compression ,
291- Parameters : namedValuesToTSparkParams (args ),
289+ Parameters : convertNamedValuesToSparkParams (args ),
292290 }
293291
294292 if c .cfg .UseArrowBatches {
@@ -342,97 +340,6 @@ func (c *conn) executeStatement(ctx context.Context, query string, args []driver
342340 return resp , err
343341}
344342
345- type dbSqlParam struct {
346- Ordinal * int32
347- Name * string
348- Type * string
349- Value * string
350- }
351-
352- func namedValuesToTSparkParams (args []driver.NamedValue ) []* cli_service.TSparkParameter {
353- var ts []string = []string {"STRING" , "DOUBLE" , "BOOLEAN" , "TIMESTAMP" , "FLOAT" , "INTEGER" , "TINYINT" , "SMALLINT" , "BIGINT" }
354- var params []* cli_service.TSparkParameter
355- for i := range args {
356- arg := args [i ]
357- param := cli_service.TSparkParameter {Value : & cli_service.TSparkParameterValue {}}
358- if arg .Name != "" {
359- param .Name = & arg .Name
360- } else {
361- i := int32 (arg .Ordinal )
362- param .Ordinal = & i
363- }
364-
365- switch t := arg .Value .(type ) {
366- case bool :
367- b := arg .Value .(bool )
368- param .Value .BooleanValue = & b
369- param .Type = & ts [2 ]
370- case string :
371- s := arg .Value .(string )
372- param .Value .StringValue = & s
373- param .Type = & ts [0 ]
374- case int :
375- f := float64 (t )
376- param .Value .DoubleValue = & f
377- param .Type = & ts [5 ]
378- case uint :
379- f := float64 (t )
380- param .Value .DoubleValue = & f
381- param .Type = & ts [5 ]
382- case int8 :
383- f := float64 (t )
384- param .Value .DoubleValue = & f
385- param .Type = & ts [6 ]
386- case uint8 :
387- f := float64 (t )
388- param .Value .DoubleValue = & f
389- param .Type = & ts [6 ]
390- case int16 :
391- f := float64 (t )
392- param .Value .DoubleValue = & f
393- param .Type = & ts [7 ]
394- case uint16 :
395- f := float64 (t )
396- param .Value .DoubleValue = & f
397- param .Type = & ts [7 ]
398- case int32 :
399- f := float64 (t )
400- param .Value .DoubleValue = & f
401- param .Type = & ts [5 ]
402- case uint32 :
403- f := float64 (t )
404- param .Value .DoubleValue = & f
405- param .Type = & ts [5 ]
406- case int64 :
407- s := strconv .FormatInt (t , 10 )
408- param .Value .StringValue = & s
409- param .Type = & ts [8 ]
410- case uint64 :
411- s := strconv .FormatUint (t , 10 )
412- param .Value .StringValue = & s
413- param .Type = & ts [8 ]
414- case float32 :
415- f := float64 (t )
416- param .Value .DoubleValue = & f
417- param .Type = & ts [4 ]
418- case time.Time :
419- s := t .String ()
420- param .Value .StringValue = & s
421- param .Type = & ts [3 ]
422- case dbSqlParam :
423- param .Value .StringValue = t .Value
424- param .Type = t .Type
425- default :
426- s := fmt .Sprintf ("%s" , arg .Value )
427- param .Value .StringValue = & s
428- param .Type = & ts [0 ]
429- }
430-
431- params = append (params , & param )
432- }
433- return params
434- }
435-
436343func (c * conn ) pollOperation (ctx context.Context , opHandle * cli_service.TOperationHandle ) (* cli_service.TGetOperationStatusResp , error ) {
437344 corrId := driverctx .CorrelationIdFromContext (ctx )
438345 log := logger .WithContext (c .id , corrId , client .SprintGuid (opHandle .OperationId .GUID ))
0 commit comments