@@ -123,95 +123,95 @@ type connectionNative struct {
123123func (c * connectionNative ) Query (params * rdbms_utils.QueryParams ) (* rdbms_utils.QueryResult , error ) {
124124 resultChan := make (chan * rdbms_utils.QueryResult , 1 )
125125
126- finalErr := c .driver .Query ().Do (
127- params .Ctx ,
128- func (ctx context.Context , session ydb_sdk_query.Session ) (err error ) {
129- // modify query with args
130- queryRewritten , err := c .rewriteQuery (params )
131- if err != nil {
132- return fmt .Errorf ("rewrite query: %w" , err )
133- }
126+ // modify query with args
127+ queryRewritten , err := c .rewriteQuery (params )
128+ if err != nil {
129+ return nil , fmt .Errorf ("rewrite query: %w" , err )
130+ }
134131
135- // prepare parameter list
136- paramsBuilder := ydb_sdk .ParamsBuilder ()
137-
138- for i , arg := range params .QueryArgs .Values () {
139- placeholder := c .formatter .GetPlaceholder (i )
140-
141- switch t := arg .(type ) {
142- case bool :
143- paramsBuilder = paramsBuilder .Param (placeholder ).Bool (t )
144- case * bool :
145- paramsBuilder = paramsBuilder .Param (placeholder ).BeginOptional ().Bool (t ).EndOptional ()
146- case int8 :
147- paramsBuilder = paramsBuilder .Param (placeholder ).Int8 (t )
148- case * int8 :
149- paramsBuilder = paramsBuilder .Param (placeholder ).BeginOptional ().Int8 (t ).EndOptional ()
150- case int16 :
151- paramsBuilder = paramsBuilder .Param (placeholder ).Int16 (t )
152- case * int16 :
153- paramsBuilder = paramsBuilder .Param (placeholder ).BeginOptional ().Int16 (t ).EndOptional ()
154- case int32 :
155- paramsBuilder = paramsBuilder .Param (placeholder ).Int32 (t )
156- case * int32 :
157- paramsBuilder = paramsBuilder .Param (placeholder ).BeginOptional ().Int32 (t ).EndOptional ()
158- case int64 :
159- paramsBuilder = paramsBuilder .Param (placeholder ).Int64 (t )
160- case * int64 :
161- paramsBuilder = paramsBuilder .Param (placeholder ).BeginOptional ().Int64 (t ).EndOptional ()
162- case uint8 :
163- paramsBuilder = paramsBuilder .Param (placeholder ).Uint8 (t )
164- case * uint8 :
165- paramsBuilder = paramsBuilder .Param (placeholder ).BeginOptional ().Uint8 (t ).EndOptional ()
166- case uint16 :
167- paramsBuilder = paramsBuilder .Param (placeholder ).Uint16 (t )
168- case * uint16 :
169- paramsBuilder = paramsBuilder .Param (placeholder ).BeginOptional ().Uint16 (t ).EndOptional ()
170- case uint32 :
171- paramsBuilder = paramsBuilder .Param (placeholder ).Uint32 (t )
172- case * uint32 :
173- paramsBuilder = paramsBuilder .Param (placeholder ).BeginOptional ().Uint32 (t ).EndOptional ()
174- case uint64 :
175- paramsBuilder = paramsBuilder .Param (placeholder ).Uint64 (t )
176- case * uint64 :
177- paramsBuilder = paramsBuilder .Param (placeholder ).BeginOptional ().Uint64 (t ).EndOptional ()
178- case float32 :
179- paramsBuilder = paramsBuilder .Param (placeholder ).Float (t )
180- case * float32 :
181- paramsBuilder = paramsBuilder .Param (placeholder ).BeginOptional ().Float (t ).EndOptional ()
182- case float64 :
183- paramsBuilder = paramsBuilder .Param (placeholder ).Double (t )
184- case * float64 :
185- paramsBuilder = paramsBuilder .Param (placeholder ).BeginOptional ().Double (t ).EndOptional ()
186- case string :
187- paramsBuilder = paramsBuilder .Param (placeholder ).Text (t )
188- case * string :
189- paramsBuilder = paramsBuilder .Param (placeholder ).BeginOptional ().Text (t ).EndOptional ()
190- case []byte :
191- paramsBuilder = paramsBuilder .Param (placeholder ).Bytes (t )
192- case * []byte :
193- paramsBuilder = paramsBuilder .Param (placeholder ).BeginOptional ().Bytes (t ).EndOptional ()
194- case time.Time :
195- switch params .QueryArgs .Get (i ).YdbType .GetTypeId () {
196- case Ydb .Type_TIMESTAMP :
197- paramsBuilder = paramsBuilder .Param (placeholder ).Timestamp (t )
198- default :
199- return fmt .Errorf ("unsupported type: %v (%T): %w" , arg , arg , common .ErrUnimplementedPredicateType )
200- }
201- case * time.Time :
202- switch params .QueryArgs .Get (i ).YdbType .GetOptionalType ().GetItem ().GetTypeId () {
203- case Ydb .Type_TIMESTAMP :
204- paramsBuilder = paramsBuilder .Param (placeholder ).BeginOptional ().Timestamp (t ).EndOptional ()
205- default :
206- return fmt .Errorf ("unsupported type: %v (%T): %w" , arg , arg , common .ErrUnimplementedPredicateType )
207- }
208- default :
209- return fmt .Errorf ("unsupported type: %v (%T): %w" , arg , arg , common .ErrUnimplementedPredicateType )
210- }
132+ // prepare parameter list
133+ paramsBuilder := ydb_sdk .ParamsBuilder ()
134+
135+ for i , arg := range params .QueryArgs .Values () {
136+ placeholder := c .formatter .GetPlaceholder (i )
137+
138+ switch t := arg .(type ) {
139+ case bool :
140+ paramsBuilder = paramsBuilder .Param (placeholder ).Bool (t )
141+ case * bool :
142+ paramsBuilder = paramsBuilder .Param (placeholder ).BeginOptional ().Bool (t ).EndOptional ()
143+ case int8 :
144+ paramsBuilder = paramsBuilder .Param (placeholder ).Int8 (t )
145+ case * int8 :
146+ paramsBuilder = paramsBuilder .Param (placeholder ).BeginOptional ().Int8 (t ).EndOptional ()
147+ case int16 :
148+ paramsBuilder = paramsBuilder .Param (placeholder ).Int16 (t )
149+ case * int16 :
150+ paramsBuilder = paramsBuilder .Param (placeholder ).BeginOptional ().Int16 (t ).EndOptional ()
151+ case int32 :
152+ paramsBuilder = paramsBuilder .Param (placeholder ).Int32 (t )
153+ case * int32 :
154+ paramsBuilder = paramsBuilder .Param (placeholder ).BeginOptional ().Int32 (t ).EndOptional ()
155+ case int64 :
156+ paramsBuilder = paramsBuilder .Param (placeholder ).Int64 (t )
157+ case * int64 :
158+ paramsBuilder = paramsBuilder .Param (placeholder ).BeginOptional ().Int64 (t ).EndOptional ()
159+ case uint8 :
160+ paramsBuilder = paramsBuilder .Param (placeholder ).Uint8 (t )
161+ case * uint8 :
162+ paramsBuilder = paramsBuilder .Param (placeholder ).BeginOptional ().Uint8 (t ).EndOptional ()
163+ case uint16 :
164+ paramsBuilder = paramsBuilder .Param (placeholder ).Uint16 (t )
165+ case * uint16 :
166+ paramsBuilder = paramsBuilder .Param (placeholder ).BeginOptional ().Uint16 (t ).EndOptional ()
167+ case uint32 :
168+ paramsBuilder = paramsBuilder .Param (placeholder ).Uint32 (t )
169+ case * uint32 :
170+ paramsBuilder = paramsBuilder .Param (placeholder ).BeginOptional ().Uint32 (t ).EndOptional ()
171+ case uint64 :
172+ paramsBuilder = paramsBuilder .Param (placeholder ).Uint64 (t )
173+ case * uint64 :
174+ paramsBuilder = paramsBuilder .Param (placeholder ).BeginOptional ().Uint64 (t ).EndOptional ()
175+ case float32 :
176+ paramsBuilder = paramsBuilder .Param (placeholder ).Float (t )
177+ case * float32 :
178+ paramsBuilder = paramsBuilder .Param (placeholder ).BeginOptional ().Float (t ).EndOptional ()
179+ case float64 :
180+ paramsBuilder = paramsBuilder .Param (placeholder ).Double (t )
181+ case * float64 :
182+ paramsBuilder = paramsBuilder .Param (placeholder ).BeginOptional ().Double (t ).EndOptional ()
183+ case string :
184+ paramsBuilder = paramsBuilder .Param (placeholder ).Text (t )
185+ case * string :
186+ paramsBuilder = paramsBuilder .Param (placeholder ).BeginOptional ().Text (t ).EndOptional ()
187+ case []byte :
188+ paramsBuilder = paramsBuilder .Param (placeholder ).Bytes (t )
189+ case * []byte :
190+ paramsBuilder = paramsBuilder .Param (placeholder ).BeginOptional ().Bytes (t ).EndOptional ()
191+ case time.Time :
192+ switch params .QueryArgs .Get (i ).YdbType .GetTypeId () {
193+ case Ydb .Type_TIMESTAMP :
194+ paramsBuilder = paramsBuilder .Param (placeholder ).Timestamp (t )
195+ default :
196+ return nil , fmt .Errorf ("unsupported type: %v (%T): %w" , arg , arg , common .ErrUnimplementedPredicateType )
197+ }
198+ case * time.Time :
199+ switch params .QueryArgs .Get (i ).YdbType .GetOptionalType ().GetItem ().GetTypeId () {
200+ case Ydb .Type_TIMESTAMP :
201+ paramsBuilder = paramsBuilder .Param (placeholder ).BeginOptional ().Timestamp (t ).EndOptional ()
202+ default :
203+ return nil , fmt .Errorf ("unsupported type: %v (%T): %w" , arg , arg , common .ErrUnimplementedPredicateType )
211204 }
205+ default :
206+ return nil , fmt .Errorf ("unsupported type: %v (%T): %w" , arg , arg , common .ErrUnimplementedPredicateType )
207+ }
208+ }
212209
213- c .queryLogger .Dump (queryRewritten , params .QueryArgs .Values ()... )
210+ c .queryLogger .Dump (queryRewritten , params .QueryArgs .Values ()... )
214211
212+ finalErr := c .driver .Query ().Do (
213+ params .Ctx ,
214+ func (ctx context.Context , session ydb_sdk_query.Session ) (err error ) {
215215 // execute query
216216 streamResult , err := session .Query (
217217 ctx ,
0 commit comments