                                        :value (facts/factpath-to-string value)})
 
                :queryable-json
-               (if (string/includes? column-name "[")
+               (if (some #(= ::parse/indexed-field-part (:kind %)) path)
                  (map->JsonbPathBinaryExpression {:field column-name
                                                   :column-data cinfo
                                                   :value value

                     "Argument \"{0}\" is incompatible with numeric field \"{1}\"."
                     value (name field))))))

              [[(:or ">" ">=" "<" "<=")  (field :guard #(not (str/includes? %  "."))) _]]
              (let [col-type (get-in query-context [:projections field :type])]
                (when-not (or (vec? field)
                              (contains? #{:numeric :timestamp :jsonb-scalar}

                                        :value value}))

            [["=" column-name value]]
            ;; FIXME: pass parsed representation down
            (let [[top & path] (parse/parse-field column-name)
                  cinfo (get-in query-rec [:projections (:name top)])]
              (case (:type cinfo)
               :timestamp
               (map->BinaryExpression {:operator :=
