Register all the PostgreSQL JSON/JSONB operators and provide convenient Clojure names for those ops. In addition, provide names for the PostgreSQL regex operators as well.
For the eleven that cannot be written directly as symbols, use mnemonic names: hash for #, at for @, and tilde for ~.
For the six of those that cannot be written as
keywords, invoke the keyword
function instead.
Those latter eight (at>
, <at
, at?
, atat
,
tilde
, tilde*
, !tilde
, and !tilde*
) are
the only ones that should really be needed in the
DSL. The other names are provided for completeness.
regex
and iregex
are provided as aliases for the
regex operators tilde
and tilde*
respectively.
!regex
and !iregex
are provided as aliases for the
regex operators !tilde
and !tilde*
respectively.
Register all the PostgreSQL JSON/JSONB operators and provide convenient Clojure names for those ops. In addition, provide names for the PostgreSQL regex operators as well. For the eleven that cannot be written directly as symbols, use mnemonic names: hash for #, at for @, and tilde for ~. For the six of those that cannot be written as keywords, invoke the `keyword` function instead. Those latter eight (`at>`, `<at`, `at?`, `atat`, `tilde`, `tilde*`, `!tilde`, and `!tilde*`) are the only ones that should really be needed in the DSL. The other names are provided for completeness. `regex` and `iregex` are provided as aliases for the regex operators `tilde` and `tilde*` respectively. `!regex` and `!iregex` are provided as aliases for the regex operators `!tilde` and `!tilde*` respectively.
The case-sensitive regex unmatch operator.
The case-sensitive regex unmatch operator.
The case-insensitive regex unmatch operator.
The case-insensitive regex unmatch operator.
The - operator:
The - operator: - text value: deletes a key (and its value) from a JSON object, or matching string value(s) from a JSON array - text[] array value: as above, but for all the provided keys - int value: deletes the array element with specified index (negative integers count from the end)
The -> operator for accessing nested JSON(B) values as JSON(B). Ex.:
(sql/format {:select [[[:->> [:-> :my_column "kids" [:inline 0]] "name"]]]})
; => ["SELECT (my_column -> ? -> 0) ->> ?" "kids" "name"]
Notice we need to wrap the keys/indices with :inline if we don't want them to become parameters.
The -> operator for accessing nested JSON(B) values as JSON(B). Ex.: ```clojure (sql/format {:select [[[:->> [:-> :my_column "kids" [:inline 0]] "name"]]]}) ; => ["SELECT (my_column -> ? -> 0) ->> ?" "kids" "name"] ``` Notice we need to wrap the keys/indices with :inline if we don't want them to become parameters.
The ->> operator - like -> but returns the value as text instead of a JSON object.
The ->> operator - like -> but returns the value as text instead of a JSON object.
The <@ operator - is the first JSON value contained in the second?
The <@ operator - is the first JSON value contained in the second?
The ? operator - does the text string exist as a top-level key or array element within the JSON value?
The ? operator - does the text string exist as a top-level key or array element within the JSON value?
The ?& operator - do all of the strings in the text array exist as top-level keys or array elements?
The ?& operator - do all of the strings in the text array exist as top-level keys or array elements?
The ?| operator - do any of the strings in the text array exist as top-level keys or array elements?
The ?| operator - do any of the strings in the text array exist as top-level keys or array elements?
The @> operator - does the first JSON value contain the second?
The @> operator - does the first JSON value contain the second?
The @? operator - does JSON path return any item for the specified JSON value?
The @? operator - does JSON path return any item for the specified JSON value?
The @@ operator:
The @@ operator: - returns the result of a JSON path predicate check for the specified JSON value. Only the first item of the result is taken into account. If the result is not Boolean, then NULL is returned. - checks if a text search vector (or a text value implicitly converted to a text search vector) matches a text search query. Returns a Boolean.
The #- operator - deletes the field or array element at the specified path, where path elements can be either field keys or array indexes.
The #- operator - deletes the field or array element at the specified path, where path elements can be either field keys or array indexes.
The #> operator extracts JSON sub-object at the specified path.
The #> operator extracts JSON sub-object at the specified path.
The #>> operator - like hash> but returns the value as text instead of JSON object.
The #>> operator - like hash> but returns the value as text instead of JSON object.
The case-sensitive regex match operator.
The case-sensitive regex match operator.
The case-insensitive regex match operator.
The case-insensitive regex match operator.
The || operator - concatenates two jsonb values (arrays or objects; anything else treated as 1-element array).
The || operator - concatenates two jsonb values (arrays or objects; anything else treated as 1-element array).
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close