↑↓ select ↵ open ⌫ change scope Open full search

PG.CENTER connects PostgreSQL documentation, reference, and ecosystem knowledge. Maintained by Pigsty.

Wiki / Operators / JSON

@?(jsonb,jsonpath)

jsonpath exists

Reading PostgreSQL 18.6.

Description

jsonpath exists

Left operand
jsonb
Right operand
jsonpath
Result type
bool
Implementing function
jsonb_path_exists_opr(jsonb,jsonpath)
Operator kind
Binary
Hash join candidate
no
Merge join candidate
no

Usage

@?(jsonb,jsonpath) → bool

English manual definition

Does JSON path return any item for the specified JSON value? (This is useful only with SQL-standard JSON path expressions, not predicate check expressions , since those always return a value.)

'{"a":[1,2,3,4,5]}'::jsonb @? '$.a[*] ? (@ > 2)' → t

Catalog interpretation

The catalog pg_operator stores information about operators. See CREATE OPERATOR and Section 36.14 for more information.

Declared operator-family membership

Index AMFamilyStrategyPurposeOrdering family
GINjsonb_ops15search
GINjsonb_path_ops15search

Related entries

Documentation and source

Source build
Version
18.6
Build
https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2
Source fingerprint
555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f

Compare versions

PostgreSQL 11 → 12: added.

--- PostgreSQL 11
+++ PostgreSQL 12
@@ -1 +1,36 @@
-Not recorded in this version
+{
+  "memberships": [
+    {
+      "family": "jsonb_ops",
+      "left_type": "jsonb",
+      "method": "gin",
+      "operator": "@?(jsonb,jsonpath)",
+      "purpose": "search",
+      "right_type": "jsonpath",
+      "sort_family": "",
+      "strategy": "15"
+    },
+    {
+      "family": "jsonb_path_ops",
+      "left_type": "jsonb",
+      "method": "gin",
+      "operator": "@?(jsonb,jsonpath)",
+      "purpose": "search",
+      "right_type": "jsonpath",
+      "sort_family": "",
+      "strategy": "15"
+    }
+  ],
+  "operator": {
+    "commutator": "",
+    "function": "jsonb_path_exists_opr(jsonb,jsonpath)",
+    "hash_join": "f",
+    "kind": "b",
+    "left_type": "jsonb",
+    "merge_join": "f",
+    "negator": "",
+    "result_type": "bool",
+    "right_type": "jsonpath",
+    "symbol": "@?"
+  }
+}

Compares recorded interfaces and attributes. Source fingerprints and build metadata are excluded; an absent sample is not proof of the introduction or removal release.

Related entries

Export JSON · Back to Operators · Recorded in PostgreSQL 12 through 20; the first sample is not necessarily its introduction.