1
1
package postgres
2
2
3
3
import (
4
+ "encoding/json"
4
5
"fmt"
5
6
"strings"
6
7
@@ -237,7 +238,15 @@ func filterToCondition(column string, filter clerk.Filter) (sq.Sqlizer, error) {
237
238
if len (filter .Values ()) == 0 {
238
239
return sq .Expr ("1 = 2" ), nil
239
240
}
240
- selector := jsonKeyToSelector (column , filter .Key (), filter .Values (), false )
241
+ values := filter .Values ()
242
+ for i , value := range values {
243
+ valueAsJson , err := json .Marshal (value )
244
+ if err != nil {
245
+ return nil , err
246
+ }
247
+ values [i ] = string (valueAsJson )
248
+ }
249
+ selector := jsonKeyToSelector (column , filter .Key (), values , false )
241
250
variables := setOfVariables (len (filter .Values ()))
242
251
return sq .Expr (
243
252
fmt .Sprintf ("EXISTS( SELECT TRUE FROM jsonb_array_elements(%s) AS x(o) WHERE x.o IN %s )" , selector , variables ),
@@ -247,6 +256,14 @@ func filterToCondition(column string, filter clerk.Filter) (sq.Sqlizer, error) {
247
256
if len (filter .Values ()) == 0 {
248
257
return sq .Expr ("1 = 1" ), nil
249
258
}
259
+ values := filter .Values ()
260
+ for i , value := range values {
261
+ valueAsJson , err := json .Marshal (value )
262
+ if err != nil {
263
+ return nil , err
264
+ }
265
+ values [i ] = string (valueAsJson )
266
+ }
250
267
selector := jsonKeyToSelector (column , filter .Key (), filter .Values (), false )
251
268
variables := setOfVariables (len (filter .Values ()))
252
269
return sq .Expr (
0 commit comments