From ded8b43324ab29139bb366a1b8f16ab698ea80f1 Mon Sep 17 00:00:00 2001 From: Toby Hede Date: Wed, 17 Jun 2026 08:30:26 +1000 Subject: [PATCH 01/21] feat(prisma-next): vendor eql_v3 SQL bundle + integrity tests --- packages/prisma-next/.gitattributes | 1 + .../fixtures/cipherstash-encrypt-v3.sql | 16193 +++++++++++++++ packages/prisma-next/package.json | 1 + .../prisma-next/scripts/REFRESH_EQL_V3.md | 44 + .../scripts/vendor-eql-v3-install.ts | 33 + .../src/migration/eql-v3-bundle.ts | 17 + .../src/migration/eql-v3-install.generated.ts | 16202 ++++++++++++++++ packages/prisma-next/test/v3/bundle.test.ts | 29 + pnpm-lock.yaml | 3 + 9 files changed, 32523 insertions(+) create mode 100644 packages/prisma-next/.gitattributes create mode 100644 packages/prisma-next/__tests__/fixtures/cipherstash-encrypt-v3.sql create mode 100644 packages/prisma-next/scripts/REFRESH_EQL_V3.md create mode 100644 packages/prisma-next/scripts/vendor-eql-v3-install.ts create mode 100644 packages/prisma-next/src/migration/eql-v3-bundle.ts create mode 100644 packages/prisma-next/src/migration/eql-v3-install.generated.ts create mode 100644 packages/prisma-next/test/v3/bundle.test.ts diff --git a/packages/prisma-next/.gitattributes b/packages/prisma-next/.gitattributes new file mode 100644 index 00000000..1693ee5b --- /dev/null +++ b/packages/prisma-next/.gitattributes @@ -0,0 +1 @@ +__tests__/fixtures/cipherstash-encrypt-v3.sql linguist-vendored diff --git a/packages/prisma-next/__tests__/fixtures/cipherstash-encrypt-v3.sql b/packages/prisma-next/__tests__/fixtures/cipherstash-encrypt-v3.sql new file mode 100644 index 00000000..446aff02 --- /dev/null +++ b/packages/prisma-next/__tests__/fixtures/cipherstash-encrypt-v3.sql @@ -0,0 +1,16193 @@ +--! @file v3/schema.sql +--! @brief EQL v3 schema creation +--! +--! Creates the eql_v3 schema, which houses the self-contained encrypted-domain +--! type families (eql_v3.int4, eql_v3.int8, and future scalar domains): their +--! jsonb-backed domains, the searchable-encrypted-metadata (SEM) index-term +--! types they use (eql_v3.hmac_256, eql_v3.ore_block_u64_8_256), the index-term +--! extractors, comparison wrappers, blockers, and aggregates. The v3 surface is +--! self-contained — it owns every type it needs and has no runtime dependency +--! on another EQL schema. +--! +--! Drops existing schema if present to support clean reinstallation. +--! +--! @warning DROP SCHEMA CASCADE will remove all objects in the schema +--! @note eql_v3 is a new, additional schema for the encrypted-domain families. + +--! @brief Drop existing EQL v3 schema +--! @warning CASCADE will drop all dependent objects +DROP SCHEMA IF EXISTS eql_v3 CASCADE; + +--! @brief Create EQL v3 schema +--! @note Houses the encrypted-domain type families +CREATE SCHEMA eql_v3; + +--! @file v3/sem/ore_block_u64_8_256/types.sql +--! @brief ORE block index-term types (eql_v3 SEM). +--! +--! Self-contained eql_v3 copies of the Order-Revealing Encryption block types +--! (design D1/D3). The eql_v2 originals are unchanged. + +--! @brief ORE block term type for Order-Revealing Encryption +--! +--! Composite type representing a single ORE block term. Stores encrypted data +--! as bytea that enables range comparisons without decryption. +CREATE TYPE eql_v3.ore_block_u64_8_256_term AS ( + bytes bytea +); + + +--! @brief ORE block index term type for range queries +--! +--! Composite type containing an array of ORE block terms. The array is stored +--! in the 'ob' field of encrypted data payloads. +--! +--! @note Transient type used only during query execution. +CREATE TYPE eql_v3.ore_block_u64_8_256 AS ( + terms eql_v3.ore_block_u64_8_256_term[] +); + +--! @file v3/crypto.sql +--! @brief PostgreSQL pgcrypto extension enablement (eql_v3 fork) +--! +--! Forked from src/crypto.sql (design D8) so the entire eql_v3 dependency +--! closure lives under src/v3/. Enables the pgcrypto extension which provides +--! cryptographic functions used by the eql_v3 ORE comparison path. +--! +--! Installs pgcrypto into the `extensions` schema (Supabase convention) to +--! avoid the `extension_in_public` lint. Every EQL function that uses pgcrypto +--! has `pg_catalog, extensions, public` on its `search_path`, so a pre-existing +--! install in `public` keeps working — and a pre-existing install anywhere else +--! will be rejected at install time. The body is idempotent +--! (`CREATE SCHEMA IF NOT EXISTS`, `pg_extension` guard), so running it +--! alongside the eql_v2 copy in a combined install is safe. +--! +--! @note pgcrypto provides functions like digest(), hmac(), gen_random_bytes() + +--! @brief Create extensions schema (Supabase convention) +CREATE SCHEMA IF NOT EXISTS extensions; + +--! @brief Enable pgcrypto extension and validate its schema +DO $$ +DECLARE + pgcrypto_schema name; +BEGIN + IF NOT EXISTS (SELECT 1 FROM pg_extension WHERE extname = 'pgcrypto') THEN + CREATE EXTENSION pgcrypto WITH SCHEMA extensions; + END IF; + + SELECT n.nspname INTO pgcrypto_schema + FROM pg_extension e + JOIN pg_namespace n ON n.oid = e.extnamespace + WHERE e.extname = 'pgcrypto'; + + IF pgcrypto_schema = 'extensions' THEN + -- expected location, nothing to say + NULL; + ELSIF pgcrypto_schema = 'public' THEN + RAISE NOTICE + 'pgcrypto is installed in the `public` schema. EQL works against this layout, ' + 'but Supabase splinter will flag it as `extension_in_public`. Move it with: ' + 'ALTER EXTENSION pgcrypto SET SCHEMA extensions'; + ELSE + RAISE EXCEPTION + 'pgcrypto is installed in schema `%`, which is not on the EQL function search_path ' + '(pg_catalog, extensions, public). EQL cryptographic operations would fail at ' + 'runtime. Relocate the extension before installing EQL: ' + 'ALTER EXTENSION pgcrypto SET SCHEMA extensions', + pgcrypto_schema; + END IF; +END $$; + +--! @file v3/common.sql +--! @brief Common utility functions for the self-contained eql_v3 surface. +--! +--! Forked from src/common.sql (design D7) so the eql_v3 ORE constructor owns the +--! one transitive helper it needs without reaching into another schema. The +--! eql_v2 original is unchanged. + +--! @brief Convert JSONB hex array to bytea array +--! @internal +--! +--! Converts a JSONB array of hex-encoded strings into a PostgreSQL bytea array. +--! Used for deserializing binary data (like ORE terms) from JSONB storage. +--! +--! @param val jsonb JSONB array of hex-encoded strings +--! @return bytea[] Array of decoded binary values +--! +--! @note Returns NULL if input is JSON null +--! @note Each array element is hex-decoded to bytea +--! @note Inlinable `LANGUAGE sql` IMMUTABLE form (no `SET search_path`) so the +--! planner can fold this per-encrypted-value helper into the calling query. +--! This deliberately diverges from the v2 plpgsql equivalent (intentionally +--! left unchanged): the `CASE WHEN jsonb_typeof(val) = 'array'` guard only +--! evaluates the set-returning `jsonb_array_elements_text` for an array, so a +--! non-array JSON scalar returns NULL here instead of raising "cannot extract +--! elements from a scalar". Both callers only ever pass an array or JSON null +--! (`val->'ob'`), so the divergence is unreachable in practice; JSON null and +--! empty array still return NULL exactly as before. +CREATE FUNCTION eql_v3.jsonb_array_to_bytea_array(val jsonb) +RETURNS bytea[] + IMMUTABLE +AS $$ + SELECT CASE WHEN jsonb_typeof(val) = 'array' + THEN ( + SELECT array_agg(decode(value::text, 'hex')::bytea) + FROM jsonb_array_elements_text(val) AS value + ) + ELSE NULL + END; +$$ LANGUAGE sql; + +--! @internal Mark this hand-written helper inline-critical so the post-install +--! pin_search_path pass leaves it unpinned (no `SET search_path`), preserving +--! SQL-function inlining. It takes a bare `jsonb` arg (not a jsonb-backed +--! encrypted DOMAIN), so the structural skip in tasks/pin_search_path.sql does +--! not recognise it; this marker is the documented manual opt-in. +COMMENT ON FUNCTION eql_v3.jsonb_array_to_bytea_array(jsonb) IS + 'eql-inline-critical: per-encrypted-value ORE helper; must stay inlinable (unpinned search_path)'; + +--! @file v3/sem/hmac_256/types.sql +--! @brief HMAC-SHA256 index term type (eql_v3 SEM) +--! +--! Domain type representing HMAC-SHA256 hash values. Used for exact-match +--! encrypted searches. The hash is stored in the 'hm' field of encrypted data +--! payloads. Self-contained eql_v3 copy (design D1/D3); the eql_v2 original is +--! unchanged. +--! +--! @note Transient type used only during query execution. +CREATE DOMAIN eql_v3.hmac_256 AS text; + +--! @file v3/sem/bloom_filter/types.sql +--! @brief Self-contained eql_v3 Bloom-filter SEM index-term type. + +--! @brief Bloom-filter index term: a bit array stored as smallint[]. +--! +--! Backs the `match` capability (`@>` / `<@`) on `eql_v3.text_match`. The +--! filter is read from the `bf` field of an encrypted jsonb payload. Native +--! `smallint[]` array-containment (`@>`/`<@`) is inherited through the domain, +--! so this type needs no custom operators. +--! +--! @note Self-contained: references no eql_v2 symbol. +CREATE DOMAIN eql_v3.bloom_filter AS smallint[]; + +--! @file v3/scalars/functions.sql +--! @brief Shared blocker helper for the eql_v3 encrypted-domain families. +--! +--! Per-domain wrapper functions live in src/v3/scalars//. +--! Blockers in those files delegate to encrypted_domain_unsupported_bool +--! so every domain raises a uniform domain-specific error rather than +--! letting an unsupported operator fall through to native jsonb +--! behaviour. + +--! @brief Shared blocker helper. Raises 'operator X is not supported +--! for TYPE' so unsupported domain operators surface a clear +--! error rather than fall through to native jsonb behaviour. +--! @param type_name Domain type name (eql_v3.*) +--! @param operator_name Operator symbol (=, <, @>, ->, etc.) +--! @return boolean (never returns; always raises) +CREATE FUNCTION eql_v3.encrypted_domain_unsupported_bool(type_name text, operator_name text) +RETURNS boolean +IMMUTABLE PARALLEL SAFE +SET search_path = pg_catalog, extensions, public +AS $$ +BEGIN + RAISE EXCEPTION 'operator % is not supported for %', operator_name, type_name; +END; +$$ LANGUAGE plpgsql; + +--! @file v3/sem/ore_block_u64_8_256/functions.sql +--! @brief ORE block construction, extraction, and comparison (eql_v3 SEM). +--! +--! jsonb-only subset of src/ore_block_u64_8_256/functions.sql. The +--! encrypted-column overloads are omitted; the helper jsonb_array_to_bytea_array +--! and pgcrypto encrypt() are reached via the forked src/v3/common.sql and +--! src/v3/crypto.sql so the whole closure stays under src/v3. (Doc comments +--! deliberately avoid naming eql_v2 symbols so the self-containment grep stays +--! clean.) + +--! @brief Convert JSONB array to ORE block composite type +--! @internal +--! @param val jsonb Array of hex-encoded ORE block terms +--! @return eql_v3.ore_block_u64_8_256 ORE block composite, or NULL if input is null +--! @note Inlinable `LANGUAGE sql` IMMUTABLE form (no `SET search_path`) so the +--! planner can fold this per-encrypted-value helper into the calling query. +--! This deliberately diverges from the v2 plpgsql equivalent (intentionally +--! left unchanged): the `CASE WHEN jsonb_typeof(val) = 'array'` guard only +--! evaluates the array path for an array, so a non-array JSON scalar returns +--! NULL here instead of raising. The sole caller passes `val->'ob'`, always an +--! array or JSON null, so the divergence is unreachable in practice; JSON null +--! and empty array still return NULL exactly as before. +CREATE FUNCTION eql_v3.jsonb_array_to_ore_block_u64_8_256(val jsonb) +RETURNS eql_v3.ore_block_u64_8_256 + IMMUTABLE +AS $$ + SELECT CASE WHEN jsonb_typeof(val) = 'array' + THEN ROW(( + SELECT array_agg(ROW(b)::eql_v3.ore_block_u64_8_256_term) + FROM unnest(eql_v3.jsonb_array_to_bytea_array(val)) AS b + ))::eql_v3.ore_block_u64_8_256 + ELSE NULL + END; +$$ LANGUAGE sql; + +--! @internal Mark this hand-written helper inline-critical so the post-install +--! pin_search_path pass leaves it unpinned (no `SET search_path`), preserving +--! SQL-function inlining. It takes a bare `jsonb` arg (not a jsonb-backed +--! encrypted DOMAIN), so the structural skip in tasks/pin_search_path.sql does +--! not recognise it; this marker is the documented manual opt-in. +COMMENT ON FUNCTION eql_v3.jsonb_array_to_ore_block_u64_8_256(jsonb) IS + 'eql-inline-critical: per-encrypted-value ORE helper; must stay inlinable (unpinned search_path)'; + + +--! @brief Extract ORE block index term from JSONB payload +--! @param val jsonb containing encrypted EQL payload +--! @return eql_v3.ore_block_u64_8_256 ORE block index term +--! @throws Exception if 'ob' field is missing +CREATE FUNCTION eql_v3.ore_block_u64_8_256(val jsonb) + RETURNS eql_v3.ore_block_u64_8_256 + IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public +AS $$ + BEGIN + -- Declared STRICT: PostgreSQL returns NULL for a NULL argument without + -- entering the body, so no explicit `val IS NULL` guard is needed. + IF eql_v3.has_ore_block_u64_8_256(val) THEN + RETURN eql_v3.jsonb_array_to_ore_block_u64_8_256(val->'ob'); + END IF; + RAISE 'Expected an ore index (ob) value in json: %', val; + END; +$$ LANGUAGE plpgsql; + + +--! @brief Check if JSONB payload contains ORE block index term +--! @param val jsonb containing encrypted EQL payload +--! @return boolean True if 'ob' field is present and non-null +CREATE FUNCTION eql_v3.has_ore_block_u64_8_256(val jsonb) + RETURNS boolean + IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public +AS $$ + BEGIN + RETURN val ->> 'ob' IS NOT NULL; + END; +$$ LANGUAGE plpgsql; + + +--! @brief Compare two ORE block terms using cryptographic comparison +--! @internal +--! @param a eql_v3.ore_block_u64_8_256_term First ORE term +--! @param b eql_v3.ore_block_u64_8_256_term Second ORE term +--! @return integer -1 if a < b, 0 if a = b, 1 if a > b +--! @throws Exception if ciphertexts are different lengths +--! @note Marked `IMMUTABLE` (the three `compare_ore_block_u64_8_256_term(s)` +--! overloads all are). This deliberately diverges from the v2 originals, +--! which carry no volatility marker and so default to `VOLATILE`. The +--! comparison is deterministic — its only crypto call, pgcrypto `encrypt()`, +--! is itself `IMMUTABLE STRICT PARALLEL SAFE` — so `IMMUTABLE` lets the +--! planner fold/cache these in ordering and index contexts. NOT `STRICT`: +--! the NULL-handling branches below are load-bearing for the array overload. +CREATE FUNCTION eql_v3.compare_ore_block_u64_8_256_term(a eql_v3.ore_block_u64_8_256_term, b eql_v3.ore_block_u64_8_256_term) + RETURNS integer + IMMUTABLE + SET search_path = pg_catalog, extensions, public +AS $$ + DECLARE + eq boolean := true; + unequal_block smallint := 0; + hash_key bytea; + data_block bytea; + encrypt_block bytea; + target_block bytea; + + left_block_size CONSTANT smallint := 16; + right_block_size CONSTANT smallint := 32; + right_offset CONSTANT smallint := 136; -- 8 * 17 + + indicator smallint := 0; + BEGIN + IF a IS NULL AND b IS NULL THEN + RETURN 0; + END IF; + + IF a IS NULL THEN + RETURN -1; + END IF; + + IF b IS NULL THEN + RETURN 1; + END IF; + + IF bit_length(a.bytes) != bit_length(b.bytes) THEN + RAISE EXCEPTION 'Ciphertexts are different lengths'; + END IF; + + FOR block IN 0..7 LOOP + IF + substr(a.bytes, 1 + block, 1) != substr(b.bytes, 1 + block, 1) + OR substr(a.bytes, 9 + left_block_size * block, left_block_size) != substr(b.bytes, 9 + left_block_size * BLOCK, left_block_size) + THEN + IF eq THEN + unequal_block := block; + END IF; + eq = false; + END IF; + END LOOP; + + IF eq THEN + RETURN 0::integer; + END IF; + + hash_key := substr(b.bytes, right_offset + 1, 16); + + target_block := substr(b.bytes, right_offset + 17 + (unequal_block * right_block_size), right_block_size); + + data_block := substr(a.bytes, 9 + (left_block_size * unequal_block), left_block_size); + + encrypt_block := encrypt(data_block::bytea, hash_key::bytea, 'aes-ecb'); + + indicator := ( + get_bit( + encrypt_block, + 0 + ) + get_bit(target_block, get_byte(a.bytes, unequal_block))) % 2; + + IF indicator = 1 THEN + RETURN 1::integer; + ELSE + RETURN -1::integer; + END IF; + END; +$$ LANGUAGE plpgsql; + + +--! @brief Compare arrays of ORE block terms recursively +--! @internal +--! @param a eql_v3.ore_block_u64_8_256_term[] First array +--! @param b eql_v3.ore_block_u64_8_256_term[] Second array +--! @return integer -1/0/1, or NULL if either array is NULL +CREATE FUNCTION eql_v3.compare_ore_block_u64_8_256_terms(a eql_v3.ore_block_u64_8_256_term[], b eql_v3.ore_block_u64_8_256_term[]) +RETURNS integer + IMMUTABLE + SET search_path = pg_catalog, extensions, public +AS $$ + DECLARE + cmp_result integer; + BEGIN + IF a IS NULL OR b IS NULL THEN + RETURN NULL; + END IF; + + IF cardinality(a) = 0 AND cardinality(b) = 0 THEN + RETURN 0; + END IF; + + IF (cardinality(a) = 0) AND cardinality(b) > 0 THEN + RETURN -1; + END IF; + + IF cardinality(a) > 0 AND (cardinality(b) = 0) THEN + RETURN 1; + END IF; + + cmp_result := eql_v3.compare_ore_block_u64_8_256_term(a[1], b[1]); + + IF cmp_result = 0 THEN + RETURN eql_v3.compare_ore_block_u64_8_256_terms(a[2:array_length(a,1)], b[2:array_length(b,1)]); + END IF; + + RETURN cmp_result; + END +$$ LANGUAGE plpgsql; + + +--! @brief Compare ORE block composite types +--! @internal +--! @param a eql_v3.ore_block_u64_8_256 First ORE block +--! @param b eql_v3.ore_block_u64_8_256 Second ORE block +--! @return integer -1/0/1 +CREATE FUNCTION eql_v3.compare_ore_block_u64_8_256_terms(a eql_v3.ore_block_u64_8_256, b eql_v3.ore_block_u64_8_256) +RETURNS integer + IMMUTABLE + SET search_path = pg_catalog, extensions, public +AS $$ + BEGIN + RETURN eql_v3.compare_ore_block_u64_8_256_terms(a.terms, b.terms); + END +$$ LANGUAGE plpgsql; + +--! @file v3/sem/ore_block_u64_8_256/operators.sql +--! @brief Comparison operators on eql_v3.ore_block_u64_8_256. +--! +--! The six backing functions are inlinable single-statement SQL so the planner +--! can fold the eql_v3 comparison wrappers through to functional-index matching. + +--! @brief Equality backing function for ORE block types +--! @internal +--! +--! @param a eql_v3.ore_block_u64_8_256 Left operand +--! @param b eql_v3.ore_block_u64_8_256 Right operand +--! @return boolean True if the ORE blocks are equal +--! +--! @see eql_v3.compare_ore_block_u64_8_256_terms +CREATE FUNCTION eql_v3.ore_block_u64_8_256_eq(a eql_v3.ore_block_u64_8_256, b eql_v3.ore_block_u64_8_256) +RETURNS boolean + LANGUAGE sql + IMMUTABLE STRICT PARALLEL SAFE +AS $$ + SELECT eql_v3.compare_ore_block_u64_8_256_terms(a, b) = 0 +$$; + +--! @brief Not-equal backing function for ORE block types +--! @internal +--! +--! @param a eql_v3.ore_block_u64_8_256 Left operand +--! @param b eql_v3.ore_block_u64_8_256 Right operand +--! @return boolean True if the ORE blocks are not equal +--! +--! @see eql_v3.compare_ore_block_u64_8_256_terms +CREATE FUNCTION eql_v3.ore_block_u64_8_256_neq(a eql_v3.ore_block_u64_8_256, b eql_v3.ore_block_u64_8_256) +RETURNS boolean + LANGUAGE sql + IMMUTABLE STRICT PARALLEL SAFE +AS $$ + SELECT eql_v3.compare_ore_block_u64_8_256_terms(a, b) <> 0 +$$; + +--! @brief Less-than backing function for ORE block types +--! @internal +--! +--! @param a eql_v3.ore_block_u64_8_256 Left operand +--! @param b eql_v3.ore_block_u64_8_256 Right operand +--! @return boolean True if the left operand is less than the right operand +--! +--! @see eql_v3.compare_ore_block_u64_8_256_terms +CREATE FUNCTION eql_v3.ore_block_u64_8_256_lt(a eql_v3.ore_block_u64_8_256, b eql_v3.ore_block_u64_8_256) +RETURNS boolean + LANGUAGE sql + IMMUTABLE STRICT PARALLEL SAFE +AS $$ + SELECT eql_v3.compare_ore_block_u64_8_256_terms(a, b) = -1 +$$; + +--! @brief Less-than-or-equal backing function for ORE block types +--! @internal +--! +--! @param a eql_v3.ore_block_u64_8_256 Left operand +--! @param b eql_v3.ore_block_u64_8_256 Right operand +--! @return boolean True if the left operand is less than or equal to the right operand +--! +--! @see eql_v3.compare_ore_block_u64_8_256_terms +CREATE FUNCTION eql_v3.ore_block_u64_8_256_lte(a eql_v3.ore_block_u64_8_256, b eql_v3.ore_block_u64_8_256) +RETURNS boolean + LANGUAGE sql + IMMUTABLE STRICT PARALLEL SAFE +AS $$ + SELECT eql_v3.compare_ore_block_u64_8_256_terms(a, b) != 1 +$$; + +--! @brief Greater-than backing function for ORE block types +--! @internal +--! +--! @param a eql_v3.ore_block_u64_8_256 Left operand +--! @param b eql_v3.ore_block_u64_8_256 Right operand +--! @return boolean True if the left operand is greater than the right operand +--! +--! @see eql_v3.compare_ore_block_u64_8_256_terms +CREATE FUNCTION eql_v3.ore_block_u64_8_256_gt(a eql_v3.ore_block_u64_8_256, b eql_v3.ore_block_u64_8_256) +RETURNS boolean + LANGUAGE sql + IMMUTABLE STRICT PARALLEL SAFE +AS $$ + SELECT eql_v3.compare_ore_block_u64_8_256_terms(a, b) = 1 +$$; + +--! @brief Greater-than-or-equal backing function for ORE block types +--! @internal +--! +--! @param a eql_v3.ore_block_u64_8_256 Left operand +--! @param b eql_v3.ore_block_u64_8_256 Right operand +--! @return boolean True if the left operand is greater than or equal to the right operand +--! +--! @see eql_v3.compare_ore_block_u64_8_256_terms +CREATE FUNCTION eql_v3.ore_block_u64_8_256_gte(a eql_v3.ore_block_u64_8_256, b eql_v3.ore_block_u64_8_256) +RETURNS boolean + LANGUAGE sql + IMMUTABLE STRICT PARALLEL SAFE +AS $$ + SELECT eql_v3.compare_ore_block_u64_8_256_terms(a, b) != -1 +$$; + + +--! @brief = operator for ORE block types +--! +--! COMMUTATOR is the operator itself: equality is symmetric. Required for the +--! MERGES flag — without it the planner raises "could not find commutator" the +--! first time an ore_block equality is used as a join qual (e.g. via the inlined +--! eql_v3._ord_ore equality wrappers). +CREATE OPERATOR = ( + FUNCTION=eql_v3.ore_block_u64_8_256_eq, + LEFTARG=eql_v3.ore_block_u64_8_256, + RIGHTARG=eql_v3.ore_block_u64_8_256, + COMMUTATOR = =, + NEGATOR = <>, + RESTRICT = eqsel, + JOIN = eqjoinsel, + HASHES, + MERGES +); + +--! @brief <> operator for ORE block types +CREATE OPERATOR <> ( + FUNCTION=eql_v3.ore_block_u64_8_256_neq, + LEFTARG=eql_v3.ore_block_u64_8_256, + RIGHTARG=eql_v3.ore_block_u64_8_256, + COMMUTATOR = <>, + NEGATOR = =, + RESTRICT = eqsel, + JOIN = eqjoinsel, + HASHES, + MERGES +); + +--! @brief > operator for ORE block types +CREATE OPERATOR > ( + FUNCTION=eql_v3.ore_block_u64_8_256_gt, + LEFTARG=eql_v3.ore_block_u64_8_256, + RIGHTARG=eql_v3.ore_block_u64_8_256, + COMMUTATOR = <, + NEGATOR = <=, + RESTRICT = scalargtsel, + JOIN = scalargtjoinsel +); + +--! @brief < operator for ORE block types +CREATE OPERATOR < ( + FUNCTION=eql_v3.ore_block_u64_8_256_lt, + LEFTARG=eql_v3.ore_block_u64_8_256, + RIGHTARG=eql_v3.ore_block_u64_8_256, + COMMUTATOR = >, + NEGATOR = >=, + RESTRICT = scalarltsel, + JOIN = scalarltjoinsel +); + +--! @brief <= operator for ORE block types +CREATE OPERATOR <= ( + FUNCTION=eql_v3.ore_block_u64_8_256_lte, + LEFTARG=eql_v3.ore_block_u64_8_256, + RIGHTARG=eql_v3.ore_block_u64_8_256, + COMMUTATOR = >=, + NEGATOR = >, + RESTRICT = scalarlesel, + JOIN = scalarlejoinsel +); + +--! @brief >= operator for ORE block types +CREATE OPERATOR >= ( + FUNCTION=eql_v3.ore_block_u64_8_256_gte, + LEFTARG=eql_v3.ore_block_u64_8_256, + RIGHTARG=eql_v3.ore_block_u64_8_256, + COMMUTATOR = <=, + NEGATOR = <, + RESTRICT = scalargesel, + JOIN = scalargejoinsel +); + +--! @file v3/sem/hmac_256/functions.sql +--! @brief HMAC-SHA256 index-term extraction from a jsonb payload (eql_v3 SEM). +--! +--! jsonb-only subset of src/hmac_256/functions.sql. The encrypted-column and +--! ste_vec-entry overloads are intentionally omitted — the eql_v3 scalar +--! domains extract from the jsonb payload directly via a cast to the domain. +--! (Doc comments deliberately avoid naming eql_v2 symbols so the +--! self-containment grep stays clean.) + +--! @brief Extract HMAC-SHA256 index term from JSONB payload +--! +--! Inlinable single-statement SQL — the planner can fold this into the calling +--! query so functional hash/btree indexes built on `eql_v3.eq_term(col)` +--! (which calls this) engage structurally. +--! +--! @param val jsonb containing encrypted EQL payload +--! @return eql_v3.hmac_256 HMAC-SHA256 hash value, or NULL when `hm` is absent +CREATE FUNCTION eql_v3.hmac_256(val jsonb) + RETURNS eql_v3.hmac_256 + LANGUAGE sql + IMMUTABLE STRICT PARALLEL SAFE +AS $$ + SELECT (val ->> 'hm')::eql_v3.hmac_256 +$$; + + +--! @brief Check if JSONB payload contains HMAC-SHA256 index term +--! +--! @param val jsonb containing encrypted EQL payload +--! @return boolean True if 'hm' field is present and non-null +CREATE FUNCTION eql_v3.has_hmac_256(val jsonb) + RETURNS boolean + IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public +AS $$ + BEGIN + RETURN val ->> 'hm' IS NOT NULL; + END; +$$ LANGUAGE plpgsql; + +--! @file v3/sem/bloom_filter/functions.sql +--! @brief Extractor for the eql_v3 Bloom-filter SEM index term. +--! +--! jsonb-only subset of src/bloom_filter/functions.sql. The encrypted-column +--! overloads are intentionally omitted — the eql_v3 scalar domains extract from +--! the jsonb payload directly via a cast to the domain. (Doc comments +--! deliberately avoid naming eql_v2 symbols so the self-containment grep stays +--! clean.) + +--! @brief Test whether a jsonb payload carries a Bloom-filter (`bf`) term. +--! +--! @param val jsonb The encrypted payload. +--! @return boolean True when the `bf` key is present and non-null. +--! +--! @internal Defined for parity with the eql_v3 SEM index-term predicates +--! (`has_hmac_256` / `has_ore_block_u64_8_256`); it is not currently called by +--! the extractor below, which gates on value-shape inline, nor by the generated +--! domain CHECK, which tests `bf` presence via the envelope-key skeleton. Kept +--! as the canonical presence test for callers that need one. +CREATE FUNCTION eql_v3.has_bloom_filter(val jsonb) + RETURNS boolean + IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public +AS $$ + BEGIN + RETURN val ? 'bf' AND val ->> 'bf' IS NOT NULL; + END; +$$ LANGUAGE plpgsql; + +--! @brief Extract the Bloom-filter index term from a jsonb payload. +--! +--! Inlinable single-statement SQL — the planner can fold this into the calling +--! query so the functional GIN index built on `eql_v3.match_term(col)` (which +--! calls this) engages structurally. Mirrors `eql_v3.hmac_256(jsonb)`: no RAISE +--! and no pinned `search_path`. Returns NULL when `bf` is absent or present but +--! not a json array, rather than raising. The `text_match` domain CHECK +--! guarantees the `bf` *key* is present but not that it is an array, so a +--! non-array `bf` (e.g. `{"bf": null}`) can reach here even on a typed value; +--! gating on `jsonb_typeof(...) = 'array'` returns NULL for that case — and for +--! raw jsonb outside the domain — instead of erroring inside +--! `jsonb_array_elements`. NULL, like the HMAC extractor, is the right answer. An +--! empty `bf` array yields an empty filter (contains nothing, contained by +--! everything), matching set-containment semantics. +--! +--! @param val jsonb The encrypted payload. +--! @return eql_v3.bloom_filter The `bf` array as a smallint[] domain value, or +--! NULL when `bf` is absent or not a json array. +CREATE FUNCTION eql_v3.bloom_filter(val jsonb) + RETURNS eql_v3.bloom_filter + LANGUAGE sql + IMMUTABLE STRICT PARALLEL SAFE +AS $$ + SELECT CASE WHEN jsonb_typeof(val -> 'bf') = 'array' + THEN ARRAY(SELECT jsonb_array_elements(val -> 'bf'))::eql_v3.bloom_filter + END +$$; +-- AUTOMATICALLY GENERATED FILE. + +--! @file v3/scalars/int4/int4_types.sql +--! @brief Encrypted-domain types for int4. + +DO $$ +BEGIN + --! @brief Encrypted domain eql_v3.int4. + IF NOT EXISTS ( + SELECT 1 FROM pg_type + WHERE typname = 'int4' AND typnamespace = 'eql_v3'::regnamespace + ) THEN + CREATE DOMAIN eql_v3.int4 AS jsonb + CHECK ( + jsonb_typeof(VALUE) = 'object' + AND VALUE ? 'v' + AND VALUE ? 'i' + AND VALUE ? 'c' + AND VALUE->>'v' = '2' + ); + END IF; + + --! @brief Encrypted domain eql_v3.int4_eq. + IF NOT EXISTS ( + SELECT 1 FROM pg_type + WHERE typname = 'int4_eq' AND typnamespace = 'eql_v3'::regnamespace + ) THEN + CREATE DOMAIN eql_v3.int4_eq AS jsonb + CHECK ( + jsonb_typeof(VALUE) = 'object' + AND VALUE ? 'v' + AND VALUE ? 'i' + AND VALUE ? 'c' + AND VALUE ? 'hm' + AND VALUE->>'v' = '2' + ); + END IF; + + --! @brief Encrypted domain eql_v3.int4_ord_ore. + IF NOT EXISTS ( + SELECT 1 FROM pg_type + WHERE typname = 'int4_ord_ore' AND typnamespace = 'eql_v3'::regnamespace + ) THEN + CREATE DOMAIN eql_v3.int4_ord_ore AS jsonb + CHECK ( + jsonb_typeof(VALUE) = 'object' + AND VALUE ? 'v' + AND VALUE ? 'i' + AND VALUE ? 'c' + AND VALUE ? 'ob' + AND VALUE->>'v' = '2' + ); + END IF; + + --! @brief Encrypted domain eql_v3.int4_ord. + IF NOT EXISTS ( + SELECT 1 FROM pg_type + WHERE typname = 'int4_ord' AND typnamespace = 'eql_v3'::regnamespace + ) THEN + CREATE DOMAIN eql_v3.int4_ord AS jsonb + CHECK ( + jsonb_typeof(VALUE) = 'object' + AND VALUE ? 'v' + AND VALUE ? 'i' + AND VALUE ? 'c' + AND VALUE ? 'ob' + AND VALUE->>'v' = '2' + ); + END IF; +END +$$; +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/int4/int4_ord_functions.sql +--! @brief Functions for eql_v3.int4_ord. + +--! @brief Index extractor for eql_v3.int4_ord. +--! @param a eql_v3.int4_ord +--! @return eql_v3.ore_block_u64_8_256 +CREATE FUNCTION eql_v3.ord_term(a eql_v3.int4_ord) +RETURNS eql_v3.ore_block_u64_8_256 +LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ore_block_u64_8_256(a::jsonb) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord. +--! @param a eql_v3.int4_ord +--! @param b eql_v3.int4_ord +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.int4_ord, b eql_v3.int4_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord. +--! @param a eql_v3.int4_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.int4_ord, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b::eql_v3.int4_ord) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord. +--! @param a jsonb +--! @param b eql_v3.int4_ord +--! @return boolean +CREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.int4_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int4_ord) = eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord. +--! @param a eql_v3.int4_ord +--! @param b eql_v3.int4_ord +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.int4_ord, b eql_v3.int4_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord. +--! @param a eql_v3.int4_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.int4_ord, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b::eql_v3.int4_ord) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord. +--! @param a jsonb +--! @param b eql_v3.int4_ord +--! @return boolean +CREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.int4_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int4_ord) <> eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord. +--! @param a eql_v3.int4_ord +--! @param b eql_v3.int4_ord +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.int4_ord, b eql_v3.int4_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord. +--! @param a eql_v3.int4_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.int4_ord, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b::eql_v3.int4_ord) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord. +--! @param a jsonb +--! @param b eql_v3.int4_ord +--! @return boolean +CREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.int4_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int4_ord) < eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord. +--! @param a eql_v3.int4_ord +--! @param b eql_v3.int4_ord +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.int4_ord, b eql_v3.int4_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord. +--! @param a eql_v3.int4_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.int4_ord, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b::eql_v3.int4_ord) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord. +--! @param a jsonb +--! @param b eql_v3.int4_ord +--! @return boolean +CREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.int4_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int4_ord) <= eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord. +--! @param a eql_v3.int4_ord +--! @param b eql_v3.int4_ord +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.int4_ord, b eql_v3.int4_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord. +--! @param a eql_v3.int4_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.int4_ord, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b::eql_v3.int4_ord) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord. +--! @param a jsonb +--! @param b eql_v3.int4_ord +--! @return boolean +CREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.int4_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int4_ord) > eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord. +--! @param a eql_v3.int4_ord +--! @param b eql_v3.int4_ord +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.int4_ord, b eql_v3.int4_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord. +--! @param a eql_v3.int4_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.int4_ord, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b::eql_v3.int4_ord) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord. +--! @param a jsonb +--! @param b eql_v3.int4_ord +--! @return boolean +CREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.int4_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int4_ord) >= eql_v3.ord_term(b) $$; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord. +--! @param a eql_v3.int4_ord +--! @param b eql_v3.int4_ord +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.int4_ord, b eql_v3.int4_ord) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int4_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord. +--! @param a eql_v3.int4_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.int4_ord, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int4_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord. +--! @param a jsonb +--! @param b eql_v3.int4_ord +--! @return boolean +CREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.int4_ord) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int4_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord. +--! @param a eql_v3.int4_ord +--! @param b eql_v3.int4_ord +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.int4_ord, b eql_v3.int4_ord) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int4_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord. +--! @param a eql_v3.int4_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.int4_ord, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int4_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord. +--! @param a jsonb +--! @param b eql_v3.int4_ord +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.int4_ord) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int4_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord. +--! @param a eql_v3.int4_ord +--! @param selector text +--! @return eql_v3.int4_ord +CREATE FUNCTION eql_v3."->"(a eql_v3.int4_ord, selector text) +RETURNS eql_v3.int4_ord IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int4_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord. +--! @param a eql_v3.int4_ord +--! @param selector integer +--! @return eql_v3.int4_ord +CREATE FUNCTION eql_v3."->"(a eql_v3.int4_ord, selector integer) +RETURNS eql_v3.int4_ord IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int4_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord. +--! @param a jsonb +--! @param selector eql_v3.int4_ord +--! @return eql_v3.int4_ord +CREATE FUNCTION eql_v3."->"(a jsonb, selector eql_v3.int4_ord) +RETURNS eql_v3.int4_ord IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int4_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord. +--! @param a eql_v3.int4_ord +--! @param selector text +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.int4_ord, selector text) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int4_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord. +--! @param a eql_v3.int4_ord +--! @param selector integer +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.int4_ord, selector integer) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int4_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord. +--! @param a jsonb +--! @param selector eql_v3.int4_ord +--! @return text +CREATE FUNCTION eql_v3."->>"(a jsonb, selector eql_v3.int4_ord) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int4_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord. +--! @param a eql_v3.int4_ord +--! @param b text +--! @return boolean +CREATE FUNCTION eql_v3."?"(a eql_v3.int4_ord, b text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.int4_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord. +--! @param a eql_v3.int4_ord +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?|"(a eql_v3.int4_ord, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.int4_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord. +--! @param a eql_v3.int4_ord +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?&"(a eql_v3.int4_ord, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.int4_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord. +--! @param a eql_v3.int4_ord +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@?"(a eql_v3.int4_ord, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.int4_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord. +--! @param a eql_v3.int4_ord +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@@"(a eql_v3.int4_ord, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.int4_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord. +--! @param a eql_v3.int4_ord +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#>"(a eql_v3.int4_ord, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.int4_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord. +--! @param a eql_v3.int4_ord +--! @param b text[] +--! @return text +CREATE FUNCTION eql_v3."#>>"(a eql_v3.int4_ord, b text[]) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.int4_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord. +--! @param a eql_v3.int4_ord +--! @param b text +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int4_ord, b text) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int4_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord. +--! @param a eql_v3.int4_ord +--! @param b integer +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int4_ord, b integer) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int4_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord. +--! @param a eql_v3.int4_ord +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int4_ord, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int4_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord. +--! @param a eql_v3.int4_ord +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#-"(a eql_v3.int4_ord, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.int4_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord. +--! @param a eql_v3.int4_ord +--! @param b eql_v3.int4_ord +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.int4_ord, b eql_v3.int4_ord) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int4_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord. +--! @param a eql_v3.int4_ord +--! @param b jsonb +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.int4_ord, b jsonb) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int4_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord. +--! @param a jsonb +--! @param b eql_v3.int4_ord +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a jsonb, b eql_v3.int4_ord) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int4_ord'; END; $$ +LANGUAGE plpgsql; +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/int4/int4_ord_operators.sql +--! @brief Operators for eql_v3.int4_ord. + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.int4_ord, RIGHTARG = eql_v3.int4_ord, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.int4_ord, RIGHTARG = jsonb, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.int4_ord, RIGHTARG = eql_v3.int4_ord, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.int4_ord, RIGHTARG = jsonb, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.int4_ord, RIGHTARG = eql_v3.int4_ord, + COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.int4_ord, RIGHTARG = jsonb, + COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord, + COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.int4_ord, RIGHTARG = eql_v3.int4_ord, + COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.int4_ord, RIGHTARG = jsonb, + COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord, + COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.int4_ord, RIGHTARG = eql_v3.int4_ord, + COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.int4_ord, RIGHTARG = jsonb, + COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord, + COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.int4_ord, RIGHTARG = eql_v3.int4_ord, + COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.int4_ord, RIGHTARG = jsonb, + COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord, + COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.int4_ord, RIGHTARG = eql_v3.int4_ord +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.int4_ord, RIGHTARG = jsonb +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.int4_ord, RIGHTARG = eql_v3.int4_ord +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.int4_ord, RIGHTARG = jsonb +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.int4_ord, RIGHTARG = text +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.int4_ord, RIGHTARG = integer +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.int4_ord, RIGHTARG = text +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.int4_ord, RIGHTARG = integer +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord +); + +CREATE OPERATOR ? ( + FUNCTION = eql_v3."?", + LEFTARG = eql_v3.int4_ord, RIGHTARG = text +); + +CREATE OPERATOR ?| ( + FUNCTION = eql_v3."?|", + LEFTARG = eql_v3.int4_ord, RIGHTARG = text[] +); + +CREATE OPERATOR ?& ( + FUNCTION = eql_v3."?&", + LEFTARG = eql_v3.int4_ord, RIGHTARG = text[] +); + +CREATE OPERATOR @? ( + FUNCTION = eql_v3."@?", + LEFTARG = eql_v3.int4_ord, RIGHTARG = jsonpath +); + +CREATE OPERATOR @@ ( + FUNCTION = eql_v3."@@", + LEFTARG = eql_v3.int4_ord, RIGHTARG = jsonpath +); + +CREATE OPERATOR #> ( + FUNCTION = eql_v3."#>", + LEFTARG = eql_v3.int4_ord, RIGHTARG = text[] +); + +CREATE OPERATOR #>> ( + FUNCTION = eql_v3."#>>", + LEFTARG = eql_v3.int4_ord, RIGHTARG = text[] +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int4_ord, RIGHTARG = text +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int4_ord, RIGHTARG = integer +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int4_ord, RIGHTARG = text[] +); + +CREATE OPERATOR #- ( + FUNCTION = eql_v3."#-", + LEFTARG = eql_v3.int4_ord, RIGHTARG = text[] +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.int4_ord, RIGHTARG = eql_v3.int4_ord +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.int4_ord, RIGHTARG = jsonb +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord +); +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/int4/int4_eq_functions.sql +--! @brief Functions for eql_v3.int4_eq. + +--! @brief Index extractor for eql_v3.int4_eq. +--! @param a eql_v3.int4_eq +--! @return eql_v3.hmac_256 +CREATE FUNCTION eql_v3.eq_term(a eql_v3.int4_eq) +RETURNS eql_v3.hmac_256 +LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.hmac_256(a::jsonb) $$; + +--! @brief Operator wrapper for eql_v3.int4_eq. +--! @param a eql_v3.int4_eq +--! @param b eql_v3.int4_eq +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.int4_eq, b eql_v3.int4_eq) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a) = eql_v3.eq_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int4_eq. +--! @param a eql_v3.int4_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.int4_eq, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a) = eql_v3.eq_term(b::eql_v3.int4_eq) $$; + +--! @brief Operator wrapper for eql_v3.int4_eq. +--! @param a jsonb +--! @param b eql_v3.int4_eq +--! @return boolean +CREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.int4_eq) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a::eql_v3.int4_eq) = eql_v3.eq_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int4_eq. +--! @param a eql_v3.int4_eq +--! @param b eql_v3.int4_eq +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.int4_eq, b eql_v3.int4_eq) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a) <> eql_v3.eq_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int4_eq. +--! @param a eql_v3.int4_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.int4_eq, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a) <> eql_v3.eq_term(b::eql_v3.int4_eq) $$; + +--! @brief Operator wrapper for eql_v3.int4_eq. +--! @param a jsonb +--! @param b eql_v3.int4_eq +--! @return boolean +CREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.int4_eq) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a::eql_v3.int4_eq) <> eql_v3.eq_term(b) $$; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a eql_v3.int4_eq +--! @param b eql_v3.int4_eq +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.int4_eq, b eql_v3.int4_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a eql_v3.int4_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.int4_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a jsonb +--! @param b eql_v3.int4_eq +--! @return boolean +CREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.int4_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a eql_v3.int4_eq +--! @param b eql_v3.int4_eq +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.int4_eq, b eql_v3.int4_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a eql_v3.int4_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.int4_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a jsonb +--! @param b eql_v3.int4_eq +--! @return boolean +CREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.int4_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a eql_v3.int4_eq +--! @param b eql_v3.int4_eq +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.int4_eq, b eql_v3.int4_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a eql_v3.int4_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.int4_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a jsonb +--! @param b eql_v3.int4_eq +--! @return boolean +CREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.int4_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a eql_v3.int4_eq +--! @param b eql_v3.int4_eq +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.int4_eq, b eql_v3.int4_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a eql_v3.int4_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.int4_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a jsonb +--! @param b eql_v3.int4_eq +--! @return boolean +CREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.int4_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a eql_v3.int4_eq +--! @param b eql_v3.int4_eq +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.int4_eq, b eql_v3.int4_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a eql_v3.int4_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.int4_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a jsonb +--! @param b eql_v3.int4_eq +--! @return boolean +CREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.int4_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a eql_v3.int4_eq +--! @param b eql_v3.int4_eq +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.int4_eq, b eql_v3.int4_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a eql_v3.int4_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.int4_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a jsonb +--! @param b eql_v3.int4_eq +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.int4_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a eql_v3.int4_eq +--! @param selector text +--! @return eql_v3.int4_eq +CREATE FUNCTION eql_v3."->"(a eql_v3.int4_eq, selector text) +RETURNS eql_v3.int4_eq IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a eql_v3.int4_eq +--! @param selector integer +--! @return eql_v3.int4_eq +CREATE FUNCTION eql_v3."->"(a eql_v3.int4_eq, selector integer) +RETURNS eql_v3.int4_eq IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a jsonb +--! @param selector eql_v3.int4_eq +--! @return eql_v3.int4_eq +CREATE FUNCTION eql_v3."->"(a jsonb, selector eql_v3.int4_eq) +RETURNS eql_v3.int4_eq IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a eql_v3.int4_eq +--! @param selector text +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.int4_eq, selector text) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a eql_v3.int4_eq +--! @param selector integer +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.int4_eq, selector integer) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a jsonb +--! @param selector eql_v3.int4_eq +--! @return text +CREATE FUNCTION eql_v3."->>"(a jsonb, selector eql_v3.int4_eq) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a eql_v3.int4_eq +--! @param b text +--! @return boolean +CREATE FUNCTION eql_v3."?"(a eql_v3.int4_eq, b text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a eql_v3.int4_eq +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?|"(a eql_v3.int4_eq, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a eql_v3.int4_eq +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?&"(a eql_v3.int4_eq, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a eql_v3.int4_eq +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@?"(a eql_v3.int4_eq, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a eql_v3.int4_eq +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@@"(a eql_v3.int4_eq, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a eql_v3.int4_eq +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#>"(a eql_v3.int4_eq, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a eql_v3.int4_eq +--! @param b text[] +--! @return text +CREATE FUNCTION eql_v3."#>>"(a eql_v3.int4_eq, b text[]) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a eql_v3.int4_eq +--! @param b text +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int4_eq, b text) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a eql_v3.int4_eq +--! @param b integer +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int4_eq, b integer) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a eql_v3.int4_eq +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int4_eq, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a eql_v3.int4_eq +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#-"(a eql_v3.int4_eq, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a eql_v3.int4_eq +--! @param b eql_v3.int4_eq +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.int4_eq, b eql_v3.int4_eq) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a eql_v3.int4_eq +--! @param b jsonb +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.int4_eq, b jsonb) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a jsonb +--! @param b eql_v3.int4_eq +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a jsonb, b eql_v3.int4_eq) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; +-- AUTOMATICALLY GENERATED FILE. + +--! @file v3/scalars/timestamptz/timestamptz_types.sql +--! @brief Encrypted-domain types for timestamptz. + +DO $$ +BEGIN + --! @brief Encrypted domain eql_v3.timestamptz. + IF NOT EXISTS ( + SELECT 1 FROM pg_type + WHERE typname = 'timestamptz' AND typnamespace = 'eql_v3'::regnamespace + ) THEN + CREATE DOMAIN eql_v3.timestamptz AS jsonb + CHECK ( + jsonb_typeof(VALUE) = 'object' + AND VALUE ? 'v' + AND VALUE ? 'i' + AND VALUE ? 'c' + AND VALUE->>'v' = '2' + ); + END IF; + + --! @brief Encrypted domain eql_v3.timestamptz_eq. + IF NOT EXISTS ( + SELECT 1 FROM pg_type + WHERE typname = 'timestamptz_eq' AND typnamespace = 'eql_v3'::regnamespace + ) THEN + CREATE DOMAIN eql_v3.timestamptz_eq AS jsonb + CHECK ( + jsonb_typeof(VALUE) = 'object' + AND VALUE ? 'v' + AND VALUE ? 'i' + AND VALUE ? 'c' + AND VALUE ? 'hm' + AND VALUE->>'v' = '2' + ); + END IF; +END +$$; +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/timestamptz/timestamptz_eq_functions.sql +--! @brief Functions for eql_v3.timestamptz_eq. + +--! @brief Index extractor for eql_v3.timestamptz_eq. +--! @param a eql_v3.timestamptz_eq +--! @return eql_v3.hmac_256 +CREATE FUNCTION eql_v3.eq_term(a eql_v3.timestamptz_eq) +RETURNS eql_v3.hmac_256 +LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.hmac_256(a::jsonb) $$; + +--! @brief Operator wrapper for eql_v3.timestamptz_eq. +--! @param a eql_v3.timestamptz_eq +--! @param b eql_v3.timestamptz_eq +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.timestamptz_eq, b eql_v3.timestamptz_eq) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a) = eql_v3.eq_term(b) $$; + +--! @brief Operator wrapper for eql_v3.timestamptz_eq. +--! @param a eql_v3.timestamptz_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.timestamptz_eq, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a) = eql_v3.eq_term(b::eql_v3.timestamptz_eq) $$; + +--! @brief Operator wrapper for eql_v3.timestamptz_eq. +--! @param a jsonb +--! @param b eql_v3.timestamptz_eq +--! @return boolean +CREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.timestamptz_eq) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a::eql_v3.timestamptz_eq) = eql_v3.eq_term(b) $$; + +--! @brief Operator wrapper for eql_v3.timestamptz_eq. +--! @param a eql_v3.timestamptz_eq +--! @param b eql_v3.timestamptz_eq +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.timestamptz_eq, b eql_v3.timestamptz_eq) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a) <> eql_v3.eq_term(b) $$; + +--! @brief Operator wrapper for eql_v3.timestamptz_eq. +--! @param a eql_v3.timestamptz_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.timestamptz_eq, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a) <> eql_v3.eq_term(b::eql_v3.timestamptz_eq) $$; + +--! @brief Operator wrapper for eql_v3.timestamptz_eq. +--! @param a jsonb +--! @param b eql_v3.timestamptz_eq +--! @return boolean +CREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.timestamptz_eq) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a::eql_v3.timestamptz_eq) <> eql_v3.eq_term(b) $$; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a eql_v3.timestamptz_eq +--! @param b eql_v3.timestamptz_eq +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.timestamptz_eq, b eql_v3.timestamptz_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a eql_v3.timestamptz_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.timestamptz_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a jsonb +--! @param b eql_v3.timestamptz_eq +--! @return boolean +CREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.timestamptz_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a eql_v3.timestamptz_eq +--! @param b eql_v3.timestamptz_eq +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.timestamptz_eq, b eql_v3.timestamptz_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a eql_v3.timestamptz_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.timestamptz_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a jsonb +--! @param b eql_v3.timestamptz_eq +--! @return boolean +CREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.timestamptz_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a eql_v3.timestamptz_eq +--! @param b eql_v3.timestamptz_eq +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.timestamptz_eq, b eql_v3.timestamptz_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a eql_v3.timestamptz_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.timestamptz_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a jsonb +--! @param b eql_v3.timestamptz_eq +--! @return boolean +CREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.timestamptz_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a eql_v3.timestamptz_eq +--! @param b eql_v3.timestamptz_eq +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.timestamptz_eq, b eql_v3.timestamptz_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a eql_v3.timestamptz_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.timestamptz_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a jsonb +--! @param b eql_v3.timestamptz_eq +--! @return boolean +CREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.timestamptz_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a eql_v3.timestamptz_eq +--! @param b eql_v3.timestamptz_eq +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.timestamptz_eq, b eql_v3.timestamptz_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a eql_v3.timestamptz_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.timestamptz_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a jsonb +--! @param b eql_v3.timestamptz_eq +--! @return boolean +CREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.timestamptz_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a eql_v3.timestamptz_eq +--! @param b eql_v3.timestamptz_eq +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.timestamptz_eq, b eql_v3.timestamptz_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a eql_v3.timestamptz_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.timestamptz_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a jsonb +--! @param b eql_v3.timestamptz_eq +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.timestamptz_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a eql_v3.timestamptz_eq +--! @param selector text +--! @return eql_v3.timestamptz_eq +CREATE FUNCTION eql_v3."->"(a eql_v3.timestamptz_eq, selector text) +RETURNS eql_v3.timestamptz_eq IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a eql_v3.timestamptz_eq +--! @param selector integer +--! @return eql_v3.timestamptz_eq +CREATE FUNCTION eql_v3."->"(a eql_v3.timestamptz_eq, selector integer) +RETURNS eql_v3.timestamptz_eq IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a jsonb +--! @param selector eql_v3.timestamptz_eq +--! @return eql_v3.timestamptz_eq +CREATE FUNCTION eql_v3."->"(a jsonb, selector eql_v3.timestamptz_eq) +RETURNS eql_v3.timestamptz_eq IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a eql_v3.timestamptz_eq +--! @param selector text +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.timestamptz_eq, selector text) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a eql_v3.timestamptz_eq +--! @param selector integer +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.timestamptz_eq, selector integer) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a jsonb +--! @param selector eql_v3.timestamptz_eq +--! @return text +CREATE FUNCTION eql_v3."->>"(a jsonb, selector eql_v3.timestamptz_eq) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a eql_v3.timestamptz_eq +--! @param b text +--! @return boolean +CREATE FUNCTION eql_v3."?"(a eql_v3.timestamptz_eq, b text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a eql_v3.timestamptz_eq +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?|"(a eql_v3.timestamptz_eq, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a eql_v3.timestamptz_eq +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?&"(a eql_v3.timestamptz_eq, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a eql_v3.timestamptz_eq +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@?"(a eql_v3.timestamptz_eq, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a eql_v3.timestamptz_eq +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@@"(a eql_v3.timestamptz_eq, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a eql_v3.timestamptz_eq +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#>"(a eql_v3.timestamptz_eq, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a eql_v3.timestamptz_eq +--! @param b text[] +--! @return text +CREATE FUNCTION eql_v3."#>>"(a eql_v3.timestamptz_eq, b text[]) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a eql_v3.timestamptz_eq +--! @param b text +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.timestamptz_eq, b text) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a eql_v3.timestamptz_eq +--! @param b integer +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.timestamptz_eq, b integer) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a eql_v3.timestamptz_eq +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.timestamptz_eq, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a eql_v3.timestamptz_eq +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#-"(a eql_v3.timestamptz_eq, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a eql_v3.timestamptz_eq +--! @param b eql_v3.timestamptz_eq +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.timestamptz_eq, b eql_v3.timestamptz_eq) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a eql_v3.timestamptz_eq +--! @param b jsonb +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.timestamptz_eq, b jsonb) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a jsonb +--! @param b eql_v3.timestamptz_eq +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a jsonb, b eql_v3.timestamptz_eq) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; +-- AUTOMATICALLY GENERATED FILE. + +--! @file v3/scalars/int2/int2_types.sql +--! @brief Encrypted-domain types for int2. + +DO $$ +BEGIN + --! @brief Encrypted domain eql_v3.int2. + IF NOT EXISTS ( + SELECT 1 FROM pg_type + WHERE typname = 'int2' AND typnamespace = 'eql_v3'::regnamespace + ) THEN + CREATE DOMAIN eql_v3.int2 AS jsonb + CHECK ( + jsonb_typeof(VALUE) = 'object' + AND VALUE ? 'v' + AND VALUE ? 'i' + AND VALUE ? 'c' + AND VALUE->>'v' = '2' + ); + END IF; + + --! @brief Encrypted domain eql_v3.int2_eq. + IF NOT EXISTS ( + SELECT 1 FROM pg_type + WHERE typname = 'int2_eq' AND typnamespace = 'eql_v3'::regnamespace + ) THEN + CREATE DOMAIN eql_v3.int2_eq AS jsonb + CHECK ( + jsonb_typeof(VALUE) = 'object' + AND VALUE ? 'v' + AND VALUE ? 'i' + AND VALUE ? 'c' + AND VALUE ? 'hm' + AND VALUE->>'v' = '2' + ); + END IF; + + --! @brief Encrypted domain eql_v3.int2_ord_ore. + IF NOT EXISTS ( + SELECT 1 FROM pg_type + WHERE typname = 'int2_ord_ore' AND typnamespace = 'eql_v3'::regnamespace + ) THEN + CREATE DOMAIN eql_v3.int2_ord_ore AS jsonb + CHECK ( + jsonb_typeof(VALUE) = 'object' + AND VALUE ? 'v' + AND VALUE ? 'i' + AND VALUE ? 'c' + AND VALUE ? 'ob' + AND VALUE->>'v' = '2' + ); + END IF; + + --! @brief Encrypted domain eql_v3.int2_ord. + IF NOT EXISTS ( + SELECT 1 FROM pg_type + WHERE typname = 'int2_ord' AND typnamespace = 'eql_v3'::regnamespace + ) THEN + CREATE DOMAIN eql_v3.int2_ord AS jsonb + CHECK ( + jsonb_typeof(VALUE) = 'object' + AND VALUE ? 'v' + AND VALUE ? 'i' + AND VALUE ? 'c' + AND VALUE ? 'ob' + AND VALUE->>'v' = '2' + ); + END IF; +END +$$; +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/int2/int2_ord_ore_functions.sql +--! @brief Functions for eql_v3.int2_ord_ore. + +--! @brief Index extractor for eql_v3.int2_ord_ore. +--! @param a eql_v3.int2_ord_ore +--! @return eql_v3.ore_block_u64_8_256 +CREATE FUNCTION eql_v3.ord_term(a eql_v3.int2_ord_ore) +RETURNS eql_v3.ore_block_u64_8_256 +LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ore_block_u64_8_256(a::jsonb) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord_ore. +--! @param a eql_v3.int2_ord_ore +--! @param b eql_v3.int2_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.int2_ord_ore, b eql_v3.int2_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord_ore. +--! @param a eql_v3.int2_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.int2_ord_ore, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b::eql_v3.int2_ord_ore) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord_ore. +--! @param a jsonb +--! @param b eql_v3.int2_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.int2_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int2_ord_ore) = eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord_ore. +--! @param a eql_v3.int2_ord_ore +--! @param b eql_v3.int2_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.int2_ord_ore, b eql_v3.int2_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord_ore. +--! @param a eql_v3.int2_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.int2_ord_ore, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b::eql_v3.int2_ord_ore) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord_ore. +--! @param a jsonb +--! @param b eql_v3.int2_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.int2_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int2_ord_ore) <> eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord_ore. +--! @param a eql_v3.int2_ord_ore +--! @param b eql_v3.int2_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.int2_ord_ore, b eql_v3.int2_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord_ore. +--! @param a eql_v3.int2_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.int2_ord_ore, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b::eql_v3.int2_ord_ore) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord_ore. +--! @param a jsonb +--! @param b eql_v3.int2_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.int2_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int2_ord_ore) < eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord_ore. +--! @param a eql_v3.int2_ord_ore +--! @param b eql_v3.int2_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.int2_ord_ore, b eql_v3.int2_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord_ore. +--! @param a eql_v3.int2_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.int2_ord_ore, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b::eql_v3.int2_ord_ore) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord_ore. +--! @param a jsonb +--! @param b eql_v3.int2_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.int2_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int2_ord_ore) <= eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord_ore. +--! @param a eql_v3.int2_ord_ore +--! @param b eql_v3.int2_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.int2_ord_ore, b eql_v3.int2_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord_ore. +--! @param a eql_v3.int2_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.int2_ord_ore, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b::eql_v3.int2_ord_ore) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord_ore. +--! @param a jsonb +--! @param b eql_v3.int2_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.int2_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int2_ord_ore) > eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord_ore. +--! @param a eql_v3.int2_ord_ore +--! @param b eql_v3.int2_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.int2_ord_ore, b eql_v3.int2_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord_ore. +--! @param a eql_v3.int2_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.int2_ord_ore, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b::eql_v3.int2_ord_ore) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord_ore. +--! @param a jsonb +--! @param b eql_v3.int2_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.int2_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int2_ord_ore) >= eql_v3.ord_term(b) $$; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore. +--! @param a eql_v3.int2_ord_ore +--! @param b eql_v3.int2_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.int2_ord_ore, b eql_v3.int2_ord_ore) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int2_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore. +--! @param a eql_v3.int2_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.int2_ord_ore, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int2_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore. +--! @param a jsonb +--! @param b eql_v3.int2_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.int2_ord_ore) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int2_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore. +--! @param a eql_v3.int2_ord_ore +--! @param b eql_v3.int2_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.int2_ord_ore, b eql_v3.int2_ord_ore) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int2_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore. +--! @param a eql_v3.int2_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.int2_ord_ore, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int2_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore. +--! @param a jsonb +--! @param b eql_v3.int2_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.int2_ord_ore) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int2_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore. +--! @param a eql_v3.int2_ord_ore +--! @param selector text +--! @return eql_v3.int2_ord_ore +CREATE FUNCTION eql_v3."->"(a eql_v3.int2_ord_ore, selector text) +RETURNS eql_v3.int2_ord_ore IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int2_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore. +--! @param a eql_v3.int2_ord_ore +--! @param selector integer +--! @return eql_v3.int2_ord_ore +CREATE FUNCTION eql_v3."->"(a eql_v3.int2_ord_ore, selector integer) +RETURNS eql_v3.int2_ord_ore IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int2_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore. +--! @param a jsonb +--! @param selector eql_v3.int2_ord_ore +--! @return eql_v3.int2_ord_ore +CREATE FUNCTION eql_v3."->"(a jsonb, selector eql_v3.int2_ord_ore) +RETURNS eql_v3.int2_ord_ore IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int2_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore. +--! @param a eql_v3.int2_ord_ore +--! @param selector text +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.int2_ord_ore, selector text) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int2_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore. +--! @param a eql_v3.int2_ord_ore +--! @param selector integer +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.int2_ord_ore, selector integer) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int2_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore. +--! @param a jsonb +--! @param selector eql_v3.int2_ord_ore +--! @return text +CREATE FUNCTION eql_v3."->>"(a jsonb, selector eql_v3.int2_ord_ore) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int2_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore. +--! @param a eql_v3.int2_ord_ore +--! @param b text +--! @return boolean +CREATE FUNCTION eql_v3."?"(a eql_v3.int2_ord_ore, b text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.int2_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore. +--! @param a eql_v3.int2_ord_ore +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?|"(a eql_v3.int2_ord_ore, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.int2_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore. +--! @param a eql_v3.int2_ord_ore +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?&"(a eql_v3.int2_ord_ore, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.int2_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore. +--! @param a eql_v3.int2_ord_ore +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@?"(a eql_v3.int2_ord_ore, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.int2_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore. +--! @param a eql_v3.int2_ord_ore +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@@"(a eql_v3.int2_ord_ore, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.int2_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore. +--! @param a eql_v3.int2_ord_ore +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#>"(a eql_v3.int2_ord_ore, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.int2_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore. +--! @param a eql_v3.int2_ord_ore +--! @param b text[] +--! @return text +CREATE FUNCTION eql_v3."#>>"(a eql_v3.int2_ord_ore, b text[]) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.int2_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore. +--! @param a eql_v3.int2_ord_ore +--! @param b text +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int2_ord_ore, b text) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int2_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore. +--! @param a eql_v3.int2_ord_ore +--! @param b integer +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int2_ord_ore, b integer) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int2_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore. +--! @param a eql_v3.int2_ord_ore +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int2_ord_ore, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int2_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore. +--! @param a eql_v3.int2_ord_ore +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#-"(a eql_v3.int2_ord_ore, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.int2_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore. +--! @param a eql_v3.int2_ord_ore +--! @param b eql_v3.int2_ord_ore +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.int2_ord_ore, b eql_v3.int2_ord_ore) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int2_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore. +--! @param a eql_v3.int2_ord_ore +--! @param b jsonb +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.int2_ord_ore, b jsonb) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int2_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore. +--! @param a jsonb +--! @param b eql_v3.int2_ord_ore +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a jsonb, b eql_v3.int2_ord_ore) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int2_ord_ore'; END; $$ +LANGUAGE plpgsql; +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/int2/int2_ord_functions.sql +--! @brief Functions for eql_v3.int2_ord. + +--! @brief Index extractor for eql_v3.int2_ord. +--! @param a eql_v3.int2_ord +--! @return eql_v3.ore_block_u64_8_256 +CREATE FUNCTION eql_v3.ord_term(a eql_v3.int2_ord) +RETURNS eql_v3.ore_block_u64_8_256 +LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ore_block_u64_8_256(a::jsonb) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord. +--! @param a eql_v3.int2_ord +--! @param b eql_v3.int2_ord +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.int2_ord, b eql_v3.int2_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord. +--! @param a eql_v3.int2_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.int2_ord, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b::eql_v3.int2_ord) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord. +--! @param a jsonb +--! @param b eql_v3.int2_ord +--! @return boolean +CREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.int2_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int2_ord) = eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord. +--! @param a eql_v3.int2_ord +--! @param b eql_v3.int2_ord +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.int2_ord, b eql_v3.int2_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord. +--! @param a eql_v3.int2_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.int2_ord, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b::eql_v3.int2_ord) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord. +--! @param a jsonb +--! @param b eql_v3.int2_ord +--! @return boolean +CREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.int2_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int2_ord) <> eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord. +--! @param a eql_v3.int2_ord +--! @param b eql_v3.int2_ord +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.int2_ord, b eql_v3.int2_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord. +--! @param a eql_v3.int2_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.int2_ord, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b::eql_v3.int2_ord) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord. +--! @param a jsonb +--! @param b eql_v3.int2_ord +--! @return boolean +CREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.int2_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int2_ord) < eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord. +--! @param a eql_v3.int2_ord +--! @param b eql_v3.int2_ord +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.int2_ord, b eql_v3.int2_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord. +--! @param a eql_v3.int2_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.int2_ord, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b::eql_v3.int2_ord) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord. +--! @param a jsonb +--! @param b eql_v3.int2_ord +--! @return boolean +CREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.int2_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int2_ord) <= eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord. +--! @param a eql_v3.int2_ord +--! @param b eql_v3.int2_ord +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.int2_ord, b eql_v3.int2_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord. +--! @param a eql_v3.int2_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.int2_ord, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b::eql_v3.int2_ord) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord. +--! @param a jsonb +--! @param b eql_v3.int2_ord +--! @return boolean +CREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.int2_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int2_ord) > eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord. +--! @param a eql_v3.int2_ord +--! @param b eql_v3.int2_ord +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.int2_ord, b eql_v3.int2_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord. +--! @param a eql_v3.int2_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.int2_ord, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b::eql_v3.int2_ord) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord. +--! @param a jsonb +--! @param b eql_v3.int2_ord +--! @return boolean +CREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.int2_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int2_ord) >= eql_v3.ord_term(b) $$; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord. +--! @param a eql_v3.int2_ord +--! @param b eql_v3.int2_ord +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.int2_ord, b eql_v3.int2_ord) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int2_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord. +--! @param a eql_v3.int2_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.int2_ord, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int2_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord. +--! @param a jsonb +--! @param b eql_v3.int2_ord +--! @return boolean +CREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.int2_ord) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int2_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord. +--! @param a eql_v3.int2_ord +--! @param b eql_v3.int2_ord +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.int2_ord, b eql_v3.int2_ord) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int2_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord. +--! @param a eql_v3.int2_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.int2_ord, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int2_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord. +--! @param a jsonb +--! @param b eql_v3.int2_ord +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.int2_ord) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int2_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord. +--! @param a eql_v3.int2_ord +--! @param selector text +--! @return eql_v3.int2_ord +CREATE FUNCTION eql_v3."->"(a eql_v3.int2_ord, selector text) +RETURNS eql_v3.int2_ord IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int2_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord. +--! @param a eql_v3.int2_ord +--! @param selector integer +--! @return eql_v3.int2_ord +CREATE FUNCTION eql_v3."->"(a eql_v3.int2_ord, selector integer) +RETURNS eql_v3.int2_ord IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int2_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord. +--! @param a jsonb +--! @param selector eql_v3.int2_ord +--! @return eql_v3.int2_ord +CREATE FUNCTION eql_v3."->"(a jsonb, selector eql_v3.int2_ord) +RETURNS eql_v3.int2_ord IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int2_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord. +--! @param a eql_v3.int2_ord +--! @param selector text +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.int2_ord, selector text) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int2_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord. +--! @param a eql_v3.int2_ord +--! @param selector integer +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.int2_ord, selector integer) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int2_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord. +--! @param a jsonb +--! @param selector eql_v3.int2_ord +--! @return text +CREATE FUNCTION eql_v3."->>"(a jsonb, selector eql_v3.int2_ord) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int2_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord. +--! @param a eql_v3.int2_ord +--! @param b text +--! @return boolean +CREATE FUNCTION eql_v3."?"(a eql_v3.int2_ord, b text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.int2_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord. +--! @param a eql_v3.int2_ord +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?|"(a eql_v3.int2_ord, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.int2_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord. +--! @param a eql_v3.int2_ord +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?&"(a eql_v3.int2_ord, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.int2_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord. +--! @param a eql_v3.int2_ord +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@?"(a eql_v3.int2_ord, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.int2_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord. +--! @param a eql_v3.int2_ord +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@@"(a eql_v3.int2_ord, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.int2_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord. +--! @param a eql_v3.int2_ord +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#>"(a eql_v3.int2_ord, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.int2_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord. +--! @param a eql_v3.int2_ord +--! @param b text[] +--! @return text +CREATE FUNCTION eql_v3."#>>"(a eql_v3.int2_ord, b text[]) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.int2_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord. +--! @param a eql_v3.int2_ord +--! @param b text +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int2_ord, b text) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int2_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord. +--! @param a eql_v3.int2_ord +--! @param b integer +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int2_ord, b integer) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int2_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord. +--! @param a eql_v3.int2_ord +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int2_ord, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int2_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord. +--! @param a eql_v3.int2_ord +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#-"(a eql_v3.int2_ord, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.int2_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord. +--! @param a eql_v3.int2_ord +--! @param b eql_v3.int2_ord +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.int2_ord, b eql_v3.int2_ord) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int2_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord. +--! @param a eql_v3.int2_ord +--! @param b jsonb +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.int2_ord, b jsonb) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int2_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord. +--! @param a jsonb +--! @param b eql_v3.int2_ord +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a jsonb, b eql_v3.int2_ord) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int2_ord'; END; $$ +LANGUAGE plpgsql; +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/int2/int2_ord_operators.sql +--! @brief Operators for eql_v3.int2_ord. + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.int2_ord, RIGHTARG = eql_v3.int2_ord, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.int2_ord, RIGHTARG = jsonb, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.int2_ord, RIGHTARG = eql_v3.int2_ord, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.int2_ord, RIGHTARG = jsonb, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.int2_ord, RIGHTARG = eql_v3.int2_ord, + COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.int2_ord, RIGHTARG = jsonb, + COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord, + COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.int2_ord, RIGHTARG = eql_v3.int2_ord, + COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.int2_ord, RIGHTARG = jsonb, + COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord, + COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.int2_ord, RIGHTARG = eql_v3.int2_ord, + COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.int2_ord, RIGHTARG = jsonb, + COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord, + COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.int2_ord, RIGHTARG = eql_v3.int2_ord, + COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.int2_ord, RIGHTARG = jsonb, + COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord, + COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.int2_ord, RIGHTARG = eql_v3.int2_ord +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.int2_ord, RIGHTARG = jsonb +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.int2_ord, RIGHTARG = eql_v3.int2_ord +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.int2_ord, RIGHTARG = jsonb +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.int2_ord, RIGHTARG = text +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.int2_ord, RIGHTARG = integer +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.int2_ord, RIGHTARG = text +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.int2_ord, RIGHTARG = integer +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord +); + +CREATE OPERATOR ? ( + FUNCTION = eql_v3."?", + LEFTARG = eql_v3.int2_ord, RIGHTARG = text +); + +CREATE OPERATOR ?| ( + FUNCTION = eql_v3."?|", + LEFTARG = eql_v3.int2_ord, RIGHTARG = text[] +); + +CREATE OPERATOR ?& ( + FUNCTION = eql_v3."?&", + LEFTARG = eql_v3.int2_ord, RIGHTARG = text[] +); + +CREATE OPERATOR @? ( + FUNCTION = eql_v3."@?", + LEFTARG = eql_v3.int2_ord, RIGHTARG = jsonpath +); + +CREATE OPERATOR @@ ( + FUNCTION = eql_v3."@@", + LEFTARG = eql_v3.int2_ord, RIGHTARG = jsonpath +); + +CREATE OPERATOR #> ( + FUNCTION = eql_v3."#>", + LEFTARG = eql_v3.int2_ord, RIGHTARG = text[] +); + +CREATE OPERATOR #>> ( + FUNCTION = eql_v3."#>>", + LEFTARG = eql_v3.int2_ord, RIGHTARG = text[] +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int2_ord, RIGHTARG = text +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int2_ord, RIGHTARG = integer +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int2_ord, RIGHTARG = text[] +); + +CREATE OPERATOR #- ( + FUNCTION = eql_v3."#-", + LEFTARG = eql_v3.int2_ord, RIGHTARG = text[] +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.int2_ord, RIGHTARG = eql_v3.int2_ord +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.int2_ord, RIGHTARG = jsonb +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord +); +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/int2/int2_functions.sql +--! @brief Functions for eql_v3.int2. + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a eql_v3.int2 +--! @param b eql_v3.int2 +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.int2, b eql_v3.int2) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a eql_v3.int2 +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.int2, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a jsonb +--! @param b eql_v3.int2 +--! @return boolean +CREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.int2) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a eql_v3.int2 +--! @param b eql_v3.int2 +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.int2, b eql_v3.int2) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a eql_v3.int2 +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.int2, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a jsonb +--! @param b eql_v3.int2 +--! @return boolean +CREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.int2) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a eql_v3.int2 +--! @param b eql_v3.int2 +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.int2, b eql_v3.int2) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a eql_v3.int2 +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.int2, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a jsonb +--! @param b eql_v3.int2 +--! @return boolean +CREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.int2) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a eql_v3.int2 +--! @param b eql_v3.int2 +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.int2, b eql_v3.int2) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a eql_v3.int2 +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.int2, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a jsonb +--! @param b eql_v3.int2 +--! @return boolean +CREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.int2) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a eql_v3.int2 +--! @param b eql_v3.int2 +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.int2, b eql_v3.int2) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a eql_v3.int2 +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.int2, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a jsonb +--! @param b eql_v3.int2 +--! @return boolean +CREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.int2) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a eql_v3.int2 +--! @param b eql_v3.int2 +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.int2, b eql_v3.int2) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a eql_v3.int2 +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.int2, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a jsonb +--! @param b eql_v3.int2 +--! @return boolean +CREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.int2) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a eql_v3.int2 +--! @param b eql_v3.int2 +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.int2, b eql_v3.int2) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a eql_v3.int2 +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.int2, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a jsonb +--! @param b eql_v3.int2 +--! @return boolean +CREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.int2) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a eql_v3.int2 +--! @param b eql_v3.int2 +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.int2, b eql_v3.int2) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a eql_v3.int2 +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.int2, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a jsonb +--! @param b eql_v3.int2 +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.int2) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a eql_v3.int2 +--! @param selector text +--! @return eql_v3.int2 +CREATE FUNCTION eql_v3."->"(a eql_v3.int2, selector text) +RETURNS eql_v3.int2 IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a eql_v3.int2 +--! @param selector integer +--! @return eql_v3.int2 +CREATE FUNCTION eql_v3."->"(a eql_v3.int2, selector integer) +RETURNS eql_v3.int2 IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a jsonb +--! @param selector eql_v3.int2 +--! @return eql_v3.int2 +CREATE FUNCTION eql_v3."->"(a jsonb, selector eql_v3.int2) +RETURNS eql_v3.int2 IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a eql_v3.int2 +--! @param selector text +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.int2, selector text) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a eql_v3.int2 +--! @param selector integer +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.int2, selector integer) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a jsonb +--! @param selector eql_v3.int2 +--! @return text +CREATE FUNCTION eql_v3."->>"(a jsonb, selector eql_v3.int2) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a eql_v3.int2 +--! @param b text +--! @return boolean +CREATE FUNCTION eql_v3."?"(a eql_v3.int2, b text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a eql_v3.int2 +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?|"(a eql_v3.int2, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a eql_v3.int2 +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?&"(a eql_v3.int2, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a eql_v3.int2 +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@?"(a eql_v3.int2, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a eql_v3.int2 +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@@"(a eql_v3.int2, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a eql_v3.int2 +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#>"(a eql_v3.int2, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a eql_v3.int2 +--! @param b text[] +--! @return text +CREATE FUNCTION eql_v3."#>>"(a eql_v3.int2, b text[]) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a eql_v3.int2 +--! @param b text +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int2, b text) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a eql_v3.int2 +--! @param b integer +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int2, b integer) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a eql_v3.int2 +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int2, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a eql_v3.int2 +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#-"(a eql_v3.int2, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a eql_v3.int2 +--! @param b eql_v3.int2 +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.int2, b eql_v3.int2) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a eql_v3.int2 +--! @param b jsonb +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.int2, b jsonb) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a jsonb +--! @param b eql_v3.int2 +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a jsonb, b eql_v3.int2) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/int2/int2_ord_ore_operators.sql +--! @brief Operators for eql_v3.int2_ord_ore. + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = eql_v3.int2_ord_ore, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = jsonb, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord_ore, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = eql_v3.int2_ord_ore, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = jsonb, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord_ore, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = eql_v3.int2_ord_ore, + COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = jsonb, + COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord_ore, + COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = eql_v3.int2_ord_ore, + COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = jsonb, + COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord_ore, + COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = eql_v3.int2_ord_ore, + COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = jsonb, + COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord_ore, + COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = eql_v3.int2_ord_ore, + COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = jsonb, + COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord_ore, + COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = eql_v3.int2_ord_ore +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = jsonb +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord_ore +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = eql_v3.int2_ord_ore +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = jsonb +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord_ore +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = text +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = integer +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord_ore +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = text +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = integer +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord_ore +); + +CREATE OPERATOR ? ( + FUNCTION = eql_v3."?", + LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = text +); + +CREATE OPERATOR ?| ( + FUNCTION = eql_v3."?|", + LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = text[] +); + +CREATE OPERATOR ?& ( + FUNCTION = eql_v3."?&", + LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = text[] +); + +CREATE OPERATOR @? ( + FUNCTION = eql_v3."@?", + LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = jsonpath +); + +CREATE OPERATOR @@ ( + FUNCTION = eql_v3."@@", + LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = jsonpath +); + +CREATE OPERATOR #> ( + FUNCTION = eql_v3."#>", + LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = text[] +); + +CREATE OPERATOR #>> ( + FUNCTION = eql_v3."#>>", + LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = text[] +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = text +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = integer +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = text[] +); + +CREATE OPERATOR #- ( + FUNCTION = eql_v3."#-", + LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = text[] +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = eql_v3.int2_ord_ore +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = jsonb +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord_ore +); +-- AUTOMATICALLY GENERATED FILE. + +--! @file v3/scalars/date/date_types.sql +--! @brief Encrypted-domain types for date. + +DO $$ +BEGIN + --! @brief Encrypted domain eql_v3.date. + IF NOT EXISTS ( + SELECT 1 FROM pg_type + WHERE typname = 'date' AND typnamespace = 'eql_v3'::regnamespace + ) THEN + CREATE DOMAIN eql_v3.date AS jsonb + CHECK ( + jsonb_typeof(VALUE) = 'object' + AND VALUE ? 'v' + AND VALUE ? 'i' + AND VALUE ? 'c' + AND VALUE->>'v' = '2' + ); + END IF; + + --! @brief Encrypted domain eql_v3.date_eq. + IF NOT EXISTS ( + SELECT 1 FROM pg_type + WHERE typname = 'date_eq' AND typnamespace = 'eql_v3'::regnamespace + ) THEN + CREATE DOMAIN eql_v3.date_eq AS jsonb + CHECK ( + jsonb_typeof(VALUE) = 'object' + AND VALUE ? 'v' + AND VALUE ? 'i' + AND VALUE ? 'c' + AND VALUE ? 'hm' + AND VALUE->>'v' = '2' + ); + END IF; + + --! @brief Encrypted domain eql_v3.date_ord_ore. + IF NOT EXISTS ( + SELECT 1 FROM pg_type + WHERE typname = 'date_ord_ore' AND typnamespace = 'eql_v3'::regnamespace + ) THEN + CREATE DOMAIN eql_v3.date_ord_ore AS jsonb + CHECK ( + jsonb_typeof(VALUE) = 'object' + AND VALUE ? 'v' + AND VALUE ? 'i' + AND VALUE ? 'c' + AND VALUE ? 'ob' + AND VALUE->>'v' = '2' + ); + END IF; + + --! @brief Encrypted domain eql_v3.date_ord. + IF NOT EXISTS ( + SELECT 1 FROM pg_type + WHERE typname = 'date_ord' AND typnamespace = 'eql_v3'::regnamespace + ) THEN + CREATE DOMAIN eql_v3.date_ord AS jsonb + CHECK ( + jsonb_typeof(VALUE) = 'object' + AND VALUE ? 'v' + AND VALUE ? 'i' + AND VALUE ? 'c' + AND VALUE ? 'ob' + AND VALUE->>'v' = '2' + ); + END IF; +END +$$; +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/date/date_ord_ore_functions.sql +--! @brief Functions for eql_v3.date_ord_ore. + +--! @brief Index extractor for eql_v3.date_ord_ore. +--! @param a eql_v3.date_ord_ore +--! @return eql_v3.ore_block_u64_8_256 +CREATE FUNCTION eql_v3.ord_term(a eql_v3.date_ord_ore) +RETURNS eql_v3.ore_block_u64_8_256 +LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ore_block_u64_8_256(a::jsonb) $$; + +--! @brief Operator wrapper for eql_v3.date_ord_ore. +--! @param a eql_v3.date_ord_ore +--! @param b eql_v3.date_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.date_ord_ore, b eql_v3.date_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.date_ord_ore. +--! @param a eql_v3.date_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.date_ord_ore, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b::eql_v3.date_ord_ore) $$; + +--! @brief Operator wrapper for eql_v3.date_ord_ore. +--! @param a jsonb +--! @param b eql_v3.date_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.date_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.date_ord_ore) = eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.date_ord_ore. +--! @param a eql_v3.date_ord_ore +--! @param b eql_v3.date_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.date_ord_ore, b eql_v3.date_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.date_ord_ore. +--! @param a eql_v3.date_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.date_ord_ore, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b::eql_v3.date_ord_ore) $$; + +--! @brief Operator wrapper for eql_v3.date_ord_ore. +--! @param a jsonb +--! @param b eql_v3.date_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.date_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.date_ord_ore) <> eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.date_ord_ore. +--! @param a eql_v3.date_ord_ore +--! @param b eql_v3.date_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.date_ord_ore, b eql_v3.date_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.date_ord_ore. +--! @param a eql_v3.date_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.date_ord_ore, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b::eql_v3.date_ord_ore) $$; + +--! @brief Operator wrapper for eql_v3.date_ord_ore. +--! @param a jsonb +--! @param b eql_v3.date_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.date_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.date_ord_ore) < eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.date_ord_ore. +--! @param a eql_v3.date_ord_ore +--! @param b eql_v3.date_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.date_ord_ore, b eql_v3.date_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.date_ord_ore. +--! @param a eql_v3.date_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.date_ord_ore, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b::eql_v3.date_ord_ore) $$; + +--! @brief Operator wrapper for eql_v3.date_ord_ore. +--! @param a jsonb +--! @param b eql_v3.date_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.date_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.date_ord_ore) <= eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.date_ord_ore. +--! @param a eql_v3.date_ord_ore +--! @param b eql_v3.date_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.date_ord_ore, b eql_v3.date_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.date_ord_ore. +--! @param a eql_v3.date_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.date_ord_ore, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b::eql_v3.date_ord_ore) $$; + +--! @brief Operator wrapper for eql_v3.date_ord_ore. +--! @param a jsonb +--! @param b eql_v3.date_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.date_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.date_ord_ore) > eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.date_ord_ore. +--! @param a eql_v3.date_ord_ore +--! @param b eql_v3.date_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.date_ord_ore, b eql_v3.date_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.date_ord_ore. +--! @param a eql_v3.date_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.date_ord_ore, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b::eql_v3.date_ord_ore) $$; + +--! @brief Operator wrapper for eql_v3.date_ord_ore. +--! @param a jsonb +--! @param b eql_v3.date_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.date_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.date_ord_ore) >= eql_v3.ord_term(b) $$; + +--! @brief Unsupported operator blocker for eql_v3.date_ord_ore. +--! @param a eql_v3.date_ord_ore +--! @param b eql_v3.date_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.date_ord_ore, b eql_v3.date_ord_ore) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.date_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord_ore. +--! @param a eql_v3.date_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.date_ord_ore, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.date_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord_ore. +--! @param a jsonb +--! @param b eql_v3.date_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.date_ord_ore) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.date_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord_ore. +--! @param a eql_v3.date_ord_ore +--! @param b eql_v3.date_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.date_ord_ore, b eql_v3.date_ord_ore) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.date_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord_ore. +--! @param a eql_v3.date_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.date_ord_ore, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.date_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord_ore. +--! @param a jsonb +--! @param b eql_v3.date_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.date_ord_ore) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.date_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord_ore. +--! @param a eql_v3.date_ord_ore +--! @param selector text +--! @return eql_v3.date_ord_ore +CREATE FUNCTION eql_v3."->"(a eql_v3.date_ord_ore, selector text) +RETURNS eql_v3.date_ord_ore IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.date_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord_ore. +--! @param a eql_v3.date_ord_ore +--! @param selector integer +--! @return eql_v3.date_ord_ore +CREATE FUNCTION eql_v3."->"(a eql_v3.date_ord_ore, selector integer) +RETURNS eql_v3.date_ord_ore IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.date_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord_ore. +--! @param a jsonb +--! @param selector eql_v3.date_ord_ore +--! @return eql_v3.date_ord_ore +CREATE FUNCTION eql_v3."->"(a jsonb, selector eql_v3.date_ord_ore) +RETURNS eql_v3.date_ord_ore IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.date_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord_ore. +--! @param a eql_v3.date_ord_ore +--! @param selector text +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.date_ord_ore, selector text) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.date_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord_ore. +--! @param a eql_v3.date_ord_ore +--! @param selector integer +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.date_ord_ore, selector integer) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.date_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord_ore. +--! @param a jsonb +--! @param selector eql_v3.date_ord_ore +--! @return text +CREATE FUNCTION eql_v3."->>"(a jsonb, selector eql_v3.date_ord_ore) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.date_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord_ore. +--! @param a eql_v3.date_ord_ore +--! @param b text +--! @return boolean +CREATE FUNCTION eql_v3."?"(a eql_v3.date_ord_ore, b text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.date_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord_ore. +--! @param a eql_v3.date_ord_ore +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?|"(a eql_v3.date_ord_ore, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.date_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord_ore. +--! @param a eql_v3.date_ord_ore +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?&"(a eql_v3.date_ord_ore, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.date_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord_ore. +--! @param a eql_v3.date_ord_ore +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@?"(a eql_v3.date_ord_ore, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.date_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord_ore. +--! @param a eql_v3.date_ord_ore +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@@"(a eql_v3.date_ord_ore, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.date_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord_ore. +--! @param a eql_v3.date_ord_ore +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#>"(a eql_v3.date_ord_ore, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.date_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord_ore. +--! @param a eql_v3.date_ord_ore +--! @param b text[] +--! @return text +CREATE FUNCTION eql_v3."#>>"(a eql_v3.date_ord_ore, b text[]) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.date_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord_ore. +--! @param a eql_v3.date_ord_ore +--! @param b text +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.date_ord_ore, b text) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.date_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord_ore. +--! @param a eql_v3.date_ord_ore +--! @param b integer +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.date_ord_ore, b integer) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.date_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord_ore. +--! @param a eql_v3.date_ord_ore +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.date_ord_ore, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.date_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord_ore. +--! @param a eql_v3.date_ord_ore +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#-"(a eql_v3.date_ord_ore, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.date_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord_ore. +--! @param a eql_v3.date_ord_ore +--! @param b eql_v3.date_ord_ore +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.date_ord_ore, b eql_v3.date_ord_ore) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.date_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord_ore. +--! @param a eql_v3.date_ord_ore +--! @param b jsonb +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.date_ord_ore, b jsonb) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.date_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord_ore. +--! @param a jsonb +--! @param b eql_v3.date_ord_ore +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a jsonb, b eql_v3.date_ord_ore) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.date_ord_ore'; END; $$ +LANGUAGE plpgsql; +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/date/date_eq_functions.sql +--! @brief Functions for eql_v3.date_eq. + +--! @brief Index extractor for eql_v3.date_eq. +--! @param a eql_v3.date_eq +--! @return eql_v3.hmac_256 +CREATE FUNCTION eql_v3.eq_term(a eql_v3.date_eq) +RETURNS eql_v3.hmac_256 +LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.hmac_256(a::jsonb) $$; + +--! @brief Operator wrapper for eql_v3.date_eq. +--! @param a eql_v3.date_eq +--! @param b eql_v3.date_eq +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.date_eq, b eql_v3.date_eq) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a) = eql_v3.eq_term(b) $$; + +--! @brief Operator wrapper for eql_v3.date_eq. +--! @param a eql_v3.date_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.date_eq, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a) = eql_v3.eq_term(b::eql_v3.date_eq) $$; + +--! @brief Operator wrapper for eql_v3.date_eq. +--! @param a jsonb +--! @param b eql_v3.date_eq +--! @return boolean +CREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.date_eq) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a::eql_v3.date_eq) = eql_v3.eq_term(b) $$; + +--! @brief Operator wrapper for eql_v3.date_eq. +--! @param a eql_v3.date_eq +--! @param b eql_v3.date_eq +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.date_eq, b eql_v3.date_eq) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a) <> eql_v3.eq_term(b) $$; + +--! @brief Operator wrapper for eql_v3.date_eq. +--! @param a eql_v3.date_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.date_eq, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a) <> eql_v3.eq_term(b::eql_v3.date_eq) $$; + +--! @brief Operator wrapper for eql_v3.date_eq. +--! @param a jsonb +--! @param b eql_v3.date_eq +--! @return boolean +CREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.date_eq) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a::eql_v3.date_eq) <> eql_v3.eq_term(b) $$; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a eql_v3.date_eq +--! @param b eql_v3.date_eq +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.date_eq, b eql_v3.date_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a eql_v3.date_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.date_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a jsonb +--! @param b eql_v3.date_eq +--! @return boolean +CREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.date_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a eql_v3.date_eq +--! @param b eql_v3.date_eq +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.date_eq, b eql_v3.date_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a eql_v3.date_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.date_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a jsonb +--! @param b eql_v3.date_eq +--! @return boolean +CREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.date_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a eql_v3.date_eq +--! @param b eql_v3.date_eq +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.date_eq, b eql_v3.date_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a eql_v3.date_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.date_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a jsonb +--! @param b eql_v3.date_eq +--! @return boolean +CREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.date_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a eql_v3.date_eq +--! @param b eql_v3.date_eq +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.date_eq, b eql_v3.date_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a eql_v3.date_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.date_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a jsonb +--! @param b eql_v3.date_eq +--! @return boolean +CREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.date_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a eql_v3.date_eq +--! @param b eql_v3.date_eq +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.date_eq, b eql_v3.date_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a eql_v3.date_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.date_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a jsonb +--! @param b eql_v3.date_eq +--! @return boolean +CREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.date_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a eql_v3.date_eq +--! @param b eql_v3.date_eq +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.date_eq, b eql_v3.date_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a eql_v3.date_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.date_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a jsonb +--! @param b eql_v3.date_eq +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.date_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a eql_v3.date_eq +--! @param selector text +--! @return eql_v3.date_eq +CREATE FUNCTION eql_v3."->"(a eql_v3.date_eq, selector text) +RETURNS eql_v3.date_eq IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a eql_v3.date_eq +--! @param selector integer +--! @return eql_v3.date_eq +CREATE FUNCTION eql_v3."->"(a eql_v3.date_eq, selector integer) +RETURNS eql_v3.date_eq IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a jsonb +--! @param selector eql_v3.date_eq +--! @return eql_v3.date_eq +CREATE FUNCTION eql_v3."->"(a jsonb, selector eql_v3.date_eq) +RETURNS eql_v3.date_eq IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a eql_v3.date_eq +--! @param selector text +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.date_eq, selector text) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a eql_v3.date_eq +--! @param selector integer +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.date_eq, selector integer) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a jsonb +--! @param selector eql_v3.date_eq +--! @return text +CREATE FUNCTION eql_v3."->>"(a jsonb, selector eql_v3.date_eq) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a eql_v3.date_eq +--! @param b text +--! @return boolean +CREATE FUNCTION eql_v3."?"(a eql_v3.date_eq, b text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a eql_v3.date_eq +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?|"(a eql_v3.date_eq, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a eql_v3.date_eq +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?&"(a eql_v3.date_eq, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a eql_v3.date_eq +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@?"(a eql_v3.date_eq, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a eql_v3.date_eq +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@@"(a eql_v3.date_eq, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a eql_v3.date_eq +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#>"(a eql_v3.date_eq, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a eql_v3.date_eq +--! @param b text[] +--! @return text +CREATE FUNCTION eql_v3."#>>"(a eql_v3.date_eq, b text[]) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a eql_v3.date_eq +--! @param b text +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.date_eq, b text) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a eql_v3.date_eq +--! @param b integer +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.date_eq, b integer) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a eql_v3.date_eq +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.date_eq, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a eql_v3.date_eq +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#-"(a eql_v3.date_eq, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a eql_v3.date_eq +--! @param b eql_v3.date_eq +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.date_eq, b eql_v3.date_eq) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a eql_v3.date_eq +--! @param b jsonb +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.date_eq, b jsonb) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a jsonb +--! @param b eql_v3.date_eq +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a jsonb, b eql_v3.date_eq) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/date/date_functions.sql +--! @brief Functions for eql_v3.date. + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a eql_v3.date +--! @param b eql_v3.date +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.date, b eql_v3.date) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a eql_v3.date +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.date, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a jsonb +--! @param b eql_v3.date +--! @return boolean +CREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.date) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a eql_v3.date +--! @param b eql_v3.date +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.date, b eql_v3.date) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a eql_v3.date +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.date, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a jsonb +--! @param b eql_v3.date +--! @return boolean +CREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.date) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a eql_v3.date +--! @param b eql_v3.date +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.date, b eql_v3.date) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a eql_v3.date +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.date, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a jsonb +--! @param b eql_v3.date +--! @return boolean +CREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.date) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a eql_v3.date +--! @param b eql_v3.date +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.date, b eql_v3.date) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a eql_v3.date +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.date, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a jsonb +--! @param b eql_v3.date +--! @return boolean +CREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.date) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a eql_v3.date +--! @param b eql_v3.date +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.date, b eql_v3.date) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a eql_v3.date +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.date, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a jsonb +--! @param b eql_v3.date +--! @return boolean +CREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.date) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a eql_v3.date +--! @param b eql_v3.date +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.date, b eql_v3.date) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a eql_v3.date +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.date, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a jsonb +--! @param b eql_v3.date +--! @return boolean +CREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.date) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a eql_v3.date +--! @param b eql_v3.date +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.date, b eql_v3.date) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a eql_v3.date +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.date, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a jsonb +--! @param b eql_v3.date +--! @return boolean +CREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.date) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a eql_v3.date +--! @param b eql_v3.date +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.date, b eql_v3.date) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a eql_v3.date +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.date, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a jsonb +--! @param b eql_v3.date +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.date) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a eql_v3.date +--! @param selector text +--! @return eql_v3.date +CREATE FUNCTION eql_v3."->"(a eql_v3.date, selector text) +RETURNS eql_v3.date IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a eql_v3.date +--! @param selector integer +--! @return eql_v3.date +CREATE FUNCTION eql_v3."->"(a eql_v3.date, selector integer) +RETURNS eql_v3.date IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a jsonb +--! @param selector eql_v3.date +--! @return eql_v3.date +CREATE FUNCTION eql_v3."->"(a jsonb, selector eql_v3.date) +RETURNS eql_v3.date IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a eql_v3.date +--! @param selector text +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.date, selector text) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a eql_v3.date +--! @param selector integer +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.date, selector integer) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a jsonb +--! @param selector eql_v3.date +--! @return text +CREATE FUNCTION eql_v3."->>"(a jsonb, selector eql_v3.date) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a eql_v3.date +--! @param b text +--! @return boolean +CREATE FUNCTION eql_v3."?"(a eql_v3.date, b text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a eql_v3.date +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?|"(a eql_v3.date, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a eql_v3.date +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?&"(a eql_v3.date, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a eql_v3.date +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@?"(a eql_v3.date, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a eql_v3.date +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@@"(a eql_v3.date, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a eql_v3.date +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#>"(a eql_v3.date, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a eql_v3.date +--! @param b text[] +--! @return text +CREATE FUNCTION eql_v3."#>>"(a eql_v3.date, b text[]) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a eql_v3.date +--! @param b text +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.date, b text) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a eql_v3.date +--! @param b integer +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.date, b integer) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a eql_v3.date +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.date, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a eql_v3.date +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#-"(a eql_v3.date, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a eql_v3.date +--! @param b eql_v3.date +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.date, b eql_v3.date) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a eql_v3.date +--! @param b jsonb +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.date, b jsonb) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a jsonb +--! @param b eql_v3.date +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a jsonb, b eql_v3.date) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/date/date_ord_ore_operators.sql +--! @brief Operators for eql_v3.date_ord_ore. + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.date_ord_ore, RIGHTARG = eql_v3.date_ord_ore, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.date_ord_ore, RIGHTARG = jsonb, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord_ore, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.date_ord_ore, RIGHTARG = eql_v3.date_ord_ore, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.date_ord_ore, RIGHTARG = jsonb, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord_ore, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.date_ord_ore, RIGHTARG = eql_v3.date_ord_ore, + COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.date_ord_ore, RIGHTARG = jsonb, + COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord_ore, + COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.date_ord_ore, RIGHTARG = eql_v3.date_ord_ore, + COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.date_ord_ore, RIGHTARG = jsonb, + COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord_ore, + COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.date_ord_ore, RIGHTARG = eql_v3.date_ord_ore, + COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.date_ord_ore, RIGHTARG = jsonb, + COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord_ore, + COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.date_ord_ore, RIGHTARG = eql_v3.date_ord_ore, + COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.date_ord_ore, RIGHTARG = jsonb, + COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord_ore, + COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.date_ord_ore, RIGHTARG = eql_v3.date_ord_ore +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.date_ord_ore, RIGHTARG = jsonb +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord_ore +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.date_ord_ore, RIGHTARG = eql_v3.date_ord_ore +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.date_ord_ore, RIGHTARG = jsonb +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord_ore +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.date_ord_ore, RIGHTARG = text +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.date_ord_ore, RIGHTARG = integer +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord_ore +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.date_ord_ore, RIGHTARG = text +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.date_ord_ore, RIGHTARG = integer +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord_ore +); + +CREATE OPERATOR ? ( + FUNCTION = eql_v3."?", + LEFTARG = eql_v3.date_ord_ore, RIGHTARG = text +); + +CREATE OPERATOR ?| ( + FUNCTION = eql_v3."?|", + LEFTARG = eql_v3.date_ord_ore, RIGHTARG = text[] +); + +CREATE OPERATOR ?& ( + FUNCTION = eql_v3."?&", + LEFTARG = eql_v3.date_ord_ore, RIGHTARG = text[] +); + +CREATE OPERATOR @? ( + FUNCTION = eql_v3."@?", + LEFTARG = eql_v3.date_ord_ore, RIGHTARG = jsonpath +); + +CREATE OPERATOR @@ ( + FUNCTION = eql_v3."@@", + LEFTARG = eql_v3.date_ord_ore, RIGHTARG = jsonpath +); + +CREATE OPERATOR #> ( + FUNCTION = eql_v3."#>", + LEFTARG = eql_v3.date_ord_ore, RIGHTARG = text[] +); + +CREATE OPERATOR #>> ( + FUNCTION = eql_v3."#>>", + LEFTARG = eql_v3.date_ord_ore, RIGHTARG = text[] +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.date_ord_ore, RIGHTARG = text +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.date_ord_ore, RIGHTARG = integer +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.date_ord_ore, RIGHTARG = text[] +); + +CREATE OPERATOR #- ( + FUNCTION = eql_v3."#-", + LEFTARG = eql_v3.date_ord_ore, RIGHTARG = text[] +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.date_ord_ore, RIGHTARG = eql_v3.date_ord_ore +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.date_ord_ore, RIGHTARG = jsonb +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord_ore +); +-- AUTOMATICALLY GENERATED FILE. + +--! @file v3/scalars/int8/int8_types.sql +--! @brief Encrypted-domain types for int8. + +DO $$ +BEGIN + --! @brief Encrypted domain eql_v3.int8. + IF NOT EXISTS ( + SELECT 1 FROM pg_type + WHERE typname = 'int8' AND typnamespace = 'eql_v3'::regnamespace + ) THEN + CREATE DOMAIN eql_v3.int8 AS jsonb + CHECK ( + jsonb_typeof(VALUE) = 'object' + AND VALUE ? 'v' + AND VALUE ? 'i' + AND VALUE ? 'c' + AND VALUE->>'v' = '2' + ); + END IF; + + --! @brief Encrypted domain eql_v3.int8_eq. + IF NOT EXISTS ( + SELECT 1 FROM pg_type + WHERE typname = 'int8_eq' AND typnamespace = 'eql_v3'::regnamespace + ) THEN + CREATE DOMAIN eql_v3.int8_eq AS jsonb + CHECK ( + jsonb_typeof(VALUE) = 'object' + AND VALUE ? 'v' + AND VALUE ? 'i' + AND VALUE ? 'c' + AND VALUE ? 'hm' + AND VALUE->>'v' = '2' + ); + END IF; + + --! @brief Encrypted domain eql_v3.int8_ord_ore. + IF NOT EXISTS ( + SELECT 1 FROM pg_type + WHERE typname = 'int8_ord_ore' AND typnamespace = 'eql_v3'::regnamespace + ) THEN + CREATE DOMAIN eql_v3.int8_ord_ore AS jsonb + CHECK ( + jsonb_typeof(VALUE) = 'object' + AND VALUE ? 'v' + AND VALUE ? 'i' + AND VALUE ? 'c' + AND VALUE ? 'ob' + AND VALUE->>'v' = '2' + ); + END IF; + + --! @brief Encrypted domain eql_v3.int8_ord. + IF NOT EXISTS ( + SELECT 1 FROM pg_type + WHERE typname = 'int8_ord' AND typnamespace = 'eql_v3'::regnamespace + ) THEN + CREATE DOMAIN eql_v3.int8_ord AS jsonb + CHECK ( + jsonb_typeof(VALUE) = 'object' + AND VALUE ? 'v' + AND VALUE ? 'i' + AND VALUE ? 'c' + AND VALUE ? 'ob' + AND VALUE->>'v' = '2' + ); + END IF; +END +$$; +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/int8/int8_functions.sql +--! @brief Functions for eql_v3.int8. + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a eql_v3.int8 +--! @param b eql_v3.int8 +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.int8, b eql_v3.int8) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a eql_v3.int8 +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.int8, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a jsonb +--! @param b eql_v3.int8 +--! @return boolean +CREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.int8) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a eql_v3.int8 +--! @param b eql_v3.int8 +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.int8, b eql_v3.int8) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a eql_v3.int8 +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.int8, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a jsonb +--! @param b eql_v3.int8 +--! @return boolean +CREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.int8) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a eql_v3.int8 +--! @param b eql_v3.int8 +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.int8, b eql_v3.int8) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a eql_v3.int8 +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.int8, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a jsonb +--! @param b eql_v3.int8 +--! @return boolean +CREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.int8) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a eql_v3.int8 +--! @param b eql_v3.int8 +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.int8, b eql_v3.int8) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a eql_v3.int8 +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.int8, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a jsonb +--! @param b eql_v3.int8 +--! @return boolean +CREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.int8) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a eql_v3.int8 +--! @param b eql_v3.int8 +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.int8, b eql_v3.int8) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a eql_v3.int8 +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.int8, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a jsonb +--! @param b eql_v3.int8 +--! @return boolean +CREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.int8) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a eql_v3.int8 +--! @param b eql_v3.int8 +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.int8, b eql_v3.int8) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a eql_v3.int8 +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.int8, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a jsonb +--! @param b eql_v3.int8 +--! @return boolean +CREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.int8) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a eql_v3.int8 +--! @param b eql_v3.int8 +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.int8, b eql_v3.int8) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a eql_v3.int8 +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.int8, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a jsonb +--! @param b eql_v3.int8 +--! @return boolean +CREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.int8) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a eql_v3.int8 +--! @param b eql_v3.int8 +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.int8, b eql_v3.int8) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a eql_v3.int8 +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.int8, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a jsonb +--! @param b eql_v3.int8 +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.int8) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a eql_v3.int8 +--! @param selector text +--! @return eql_v3.int8 +CREATE FUNCTION eql_v3."->"(a eql_v3.int8, selector text) +RETURNS eql_v3.int8 IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a eql_v3.int8 +--! @param selector integer +--! @return eql_v3.int8 +CREATE FUNCTION eql_v3."->"(a eql_v3.int8, selector integer) +RETURNS eql_v3.int8 IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a jsonb +--! @param selector eql_v3.int8 +--! @return eql_v3.int8 +CREATE FUNCTION eql_v3."->"(a jsonb, selector eql_v3.int8) +RETURNS eql_v3.int8 IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a eql_v3.int8 +--! @param selector text +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.int8, selector text) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a eql_v3.int8 +--! @param selector integer +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.int8, selector integer) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a jsonb +--! @param selector eql_v3.int8 +--! @return text +CREATE FUNCTION eql_v3."->>"(a jsonb, selector eql_v3.int8) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a eql_v3.int8 +--! @param b text +--! @return boolean +CREATE FUNCTION eql_v3."?"(a eql_v3.int8, b text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a eql_v3.int8 +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?|"(a eql_v3.int8, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a eql_v3.int8 +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?&"(a eql_v3.int8, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a eql_v3.int8 +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@?"(a eql_v3.int8, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a eql_v3.int8 +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@@"(a eql_v3.int8, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a eql_v3.int8 +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#>"(a eql_v3.int8, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a eql_v3.int8 +--! @param b text[] +--! @return text +CREATE FUNCTION eql_v3."#>>"(a eql_v3.int8, b text[]) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a eql_v3.int8 +--! @param b text +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int8, b text) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a eql_v3.int8 +--! @param b integer +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int8, b integer) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a eql_v3.int8 +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int8, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a eql_v3.int8 +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#-"(a eql_v3.int8, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a eql_v3.int8 +--! @param b eql_v3.int8 +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.int8, b eql_v3.int8) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a eql_v3.int8 +--! @param b jsonb +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.int8, b jsonb) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a jsonb +--! @param b eql_v3.int8 +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a jsonb, b eql_v3.int8) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/int8/int8_ord_functions.sql +--! @brief Functions for eql_v3.int8_ord. + +--! @brief Index extractor for eql_v3.int8_ord. +--! @param a eql_v3.int8_ord +--! @return eql_v3.ore_block_u64_8_256 +CREATE FUNCTION eql_v3.ord_term(a eql_v3.int8_ord) +RETURNS eql_v3.ore_block_u64_8_256 +LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ore_block_u64_8_256(a::jsonb) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord. +--! @param a eql_v3.int8_ord +--! @param b eql_v3.int8_ord +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.int8_ord, b eql_v3.int8_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord. +--! @param a eql_v3.int8_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.int8_ord, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b::eql_v3.int8_ord) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord. +--! @param a jsonb +--! @param b eql_v3.int8_ord +--! @return boolean +CREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.int8_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int8_ord) = eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord. +--! @param a eql_v3.int8_ord +--! @param b eql_v3.int8_ord +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.int8_ord, b eql_v3.int8_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord. +--! @param a eql_v3.int8_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.int8_ord, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b::eql_v3.int8_ord) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord. +--! @param a jsonb +--! @param b eql_v3.int8_ord +--! @return boolean +CREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.int8_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int8_ord) <> eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord. +--! @param a eql_v3.int8_ord +--! @param b eql_v3.int8_ord +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.int8_ord, b eql_v3.int8_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord. +--! @param a eql_v3.int8_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.int8_ord, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b::eql_v3.int8_ord) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord. +--! @param a jsonb +--! @param b eql_v3.int8_ord +--! @return boolean +CREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.int8_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int8_ord) < eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord. +--! @param a eql_v3.int8_ord +--! @param b eql_v3.int8_ord +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.int8_ord, b eql_v3.int8_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord. +--! @param a eql_v3.int8_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.int8_ord, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b::eql_v3.int8_ord) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord. +--! @param a jsonb +--! @param b eql_v3.int8_ord +--! @return boolean +CREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.int8_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int8_ord) <= eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord. +--! @param a eql_v3.int8_ord +--! @param b eql_v3.int8_ord +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.int8_ord, b eql_v3.int8_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord. +--! @param a eql_v3.int8_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.int8_ord, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b::eql_v3.int8_ord) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord. +--! @param a jsonb +--! @param b eql_v3.int8_ord +--! @return boolean +CREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.int8_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int8_ord) > eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord. +--! @param a eql_v3.int8_ord +--! @param b eql_v3.int8_ord +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.int8_ord, b eql_v3.int8_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord. +--! @param a eql_v3.int8_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.int8_ord, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b::eql_v3.int8_ord) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord. +--! @param a jsonb +--! @param b eql_v3.int8_ord +--! @return boolean +CREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.int8_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int8_ord) >= eql_v3.ord_term(b) $$; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord. +--! @param a eql_v3.int8_ord +--! @param b eql_v3.int8_ord +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.int8_ord, b eql_v3.int8_ord) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int8_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord. +--! @param a eql_v3.int8_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.int8_ord, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int8_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord. +--! @param a jsonb +--! @param b eql_v3.int8_ord +--! @return boolean +CREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.int8_ord) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int8_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord. +--! @param a eql_v3.int8_ord +--! @param b eql_v3.int8_ord +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.int8_ord, b eql_v3.int8_ord) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int8_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord. +--! @param a eql_v3.int8_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.int8_ord, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int8_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord. +--! @param a jsonb +--! @param b eql_v3.int8_ord +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.int8_ord) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int8_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord. +--! @param a eql_v3.int8_ord +--! @param selector text +--! @return eql_v3.int8_ord +CREATE FUNCTION eql_v3."->"(a eql_v3.int8_ord, selector text) +RETURNS eql_v3.int8_ord IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int8_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord. +--! @param a eql_v3.int8_ord +--! @param selector integer +--! @return eql_v3.int8_ord +CREATE FUNCTION eql_v3."->"(a eql_v3.int8_ord, selector integer) +RETURNS eql_v3.int8_ord IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int8_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord. +--! @param a jsonb +--! @param selector eql_v3.int8_ord +--! @return eql_v3.int8_ord +CREATE FUNCTION eql_v3."->"(a jsonb, selector eql_v3.int8_ord) +RETURNS eql_v3.int8_ord IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int8_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord. +--! @param a eql_v3.int8_ord +--! @param selector text +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.int8_ord, selector text) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int8_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord. +--! @param a eql_v3.int8_ord +--! @param selector integer +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.int8_ord, selector integer) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int8_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord. +--! @param a jsonb +--! @param selector eql_v3.int8_ord +--! @return text +CREATE FUNCTION eql_v3."->>"(a jsonb, selector eql_v3.int8_ord) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int8_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord. +--! @param a eql_v3.int8_ord +--! @param b text +--! @return boolean +CREATE FUNCTION eql_v3."?"(a eql_v3.int8_ord, b text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.int8_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord. +--! @param a eql_v3.int8_ord +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?|"(a eql_v3.int8_ord, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.int8_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord. +--! @param a eql_v3.int8_ord +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?&"(a eql_v3.int8_ord, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.int8_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord. +--! @param a eql_v3.int8_ord +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@?"(a eql_v3.int8_ord, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.int8_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord. +--! @param a eql_v3.int8_ord +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@@"(a eql_v3.int8_ord, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.int8_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord. +--! @param a eql_v3.int8_ord +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#>"(a eql_v3.int8_ord, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.int8_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord. +--! @param a eql_v3.int8_ord +--! @param b text[] +--! @return text +CREATE FUNCTION eql_v3."#>>"(a eql_v3.int8_ord, b text[]) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.int8_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord. +--! @param a eql_v3.int8_ord +--! @param b text +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int8_ord, b text) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int8_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord. +--! @param a eql_v3.int8_ord +--! @param b integer +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int8_ord, b integer) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int8_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord. +--! @param a eql_v3.int8_ord +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int8_ord, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int8_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord. +--! @param a eql_v3.int8_ord +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#-"(a eql_v3.int8_ord, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.int8_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord. +--! @param a eql_v3.int8_ord +--! @param b eql_v3.int8_ord +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.int8_ord, b eql_v3.int8_ord) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int8_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord. +--! @param a eql_v3.int8_ord +--! @param b jsonb +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.int8_ord, b jsonb) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int8_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord. +--! @param a jsonb +--! @param b eql_v3.int8_ord +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a jsonb, b eql_v3.int8_ord) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int8_ord'; END; $$ +LANGUAGE plpgsql; +-- AUTOMATICALLY GENERATED FILE. + +--! @file v3/scalars/text/text_types.sql +--! @brief Encrypted-domain types for text. + +DO $$ +BEGIN + --! @brief Encrypted domain eql_v3.text. + IF NOT EXISTS ( + SELECT 1 FROM pg_type + WHERE typname = 'text' AND typnamespace = 'eql_v3'::regnamespace + ) THEN + CREATE DOMAIN eql_v3.text AS jsonb + CHECK ( + jsonb_typeof(VALUE) = 'object' + AND VALUE ? 'v' + AND VALUE ? 'i' + AND VALUE ? 'c' + AND VALUE->>'v' = '2' + ); + END IF; + + --! @brief Encrypted domain eql_v3.text_eq. + IF NOT EXISTS ( + SELECT 1 FROM pg_type + WHERE typname = 'text_eq' AND typnamespace = 'eql_v3'::regnamespace + ) THEN + CREATE DOMAIN eql_v3.text_eq AS jsonb + CHECK ( + jsonb_typeof(VALUE) = 'object' + AND VALUE ? 'v' + AND VALUE ? 'i' + AND VALUE ? 'c' + AND VALUE ? 'hm' + AND VALUE->>'v' = '2' + ); + END IF; + + --! @brief Encrypted domain eql_v3.text_match. + IF NOT EXISTS ( + SELECT 1 FROM pg_type + WHERE typname = 'text_match' AND typnamespace = 'eql_v3'::regnamespace + ) THEN + CREATE DOMAIN eql_v3.text_match AS jsonb + CHECK ( + jsonb_typeof(VALUE) = 'object' + AND VALUE ? 'v' + AND VALUE ? 'i' + AND VALUE ? 'c' + AND VALUE ? 'bf' + AND VALUE->>'v' = '2' + ); + END IF; + + --! @brief Encrypted domain eql_v3.text_ord_ore. + IF NOT EXISTS ( + SELECT 1 FROM pg_type + WHERE typname = 'text_ord_ore' AND typnamespace = 'eql_v3'::regnamespace + ) THEN + CREATE DOMAIN eql_v3.text_ord_ore AS jsonb + CHECK ( + jsonb_typeof(VALUE) = 'object' + AND VALUE ? 'v' + AND VALUE ? 'i' + AND VALUE ? 'c' + AND VALUE ? 'ob' + AND VALUE->>'v' = '2' + ); + END IF; + + --! @brief Encrypted domain eql_v3.text_ord. + IF NOT EXISTS ( + SELECT 1 FROM pg_type + WHERE typname = 'text_ord' AND typnamespace = 'eql_v3'::regnamespace + ) THEN + CREATE DOMAIN eql_v3.text_ord AS jsonb + CHECK ( + jsonb_typeof(VALUE) = 'object' + AND VALUE ? 'v' + AND VALUE ? 'i' + AND VALUE ? 'c' + AND VALUE ? 'ob' + AND VALUE->>'v' = '2' + ); + END IF; +END +$$; +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/text/text_ord_functions.sql +--! @brief Functions for eql_v3.text_ord. + +--! @brief Index extractor for eql_v3.text_ord. +--! @param a eql_v3.text_ord +--! @return eql_v3.ore_block_u64_8_256 +CREATE FUNCTION eql_v3.ord_term(a eql_v3.text_ord) +RETURNS eql_v3.ore_block_u64_8_256 +LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ore_block_u64_8_256(a::jsonb) $$; + +--! @brief Operator wrapper for eql_v3.text_ord. +--! @param a eql_v3.text_ord +--! @param b eql_v3.text_ord +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.text_ord, b eql_v3.text_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.text_ord. +--! @param a eql_v3.text_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.text_ord, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b::eql_v3.text_ord) $$; + +--! @brief Operator wrapper for eql_v3.text_ord. +--! @param a jsonb +--! @param b eql_v3.text_ord +--! @return boolean +CREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.text_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.text_ord) = eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.text_ord. +--! @param a eql_v3.text_ord +--! @param b eql_v3.text_ord +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.text_ord, b eql_v3.text_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.text_ord. +--! @param a eql_v3.text_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.text_ord, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b::eql_v3.text_ord) $$; + +--! @brief Operator wrapper for eql_v3.text_ord. +--! @param a jsonb +--! @param b eql_v3.text_ord +--! @return boolean +CREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.text_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.text_ord) <> eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.text_ord. +--! @param a eql_v3.text_ord +--! @param b eql_v3.text_ord +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.text_ord, b eql_v3.text_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.text_ord. +--! @param a eql_v3.text_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.text_ord, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b::eql_v3.text_ord) $$; + +--! @brief Operator wrapper for eql_v3.text_ord. +--! @param a jsonb +--! @param b eql_v3.text_ord +--! @return boolean +CREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.text_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.text_ord) < eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.text_ord. +--! @param a eql_v3.text_ord +--! @param b eql_v3.text_ord +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.text_ord, b eql_v3.text_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.text_ord. +--! @param a eql_v3.text_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.text_ord, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b::eql_v3.text_ord) $$; + +--! @brief Operator wrapper for eql_v3.text_ord. +--! @param a jsonb +--! @param b eql_v3.text_ord +--! @return boolean +CREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.text_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.text_ord) <= eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.text_ord. +--! @param a eql_v3.text_ord +--! @param b eql_v3.text_ord +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.text_ord, b eql_v3.text_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.text_ord. +--! @param a eql_v3.text_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.text_ord, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b::eql_v3.text_ord) $$; + +--! @brief Operator wrapper for eql_v3.text_ord. +--! @param a jsonb +--! @param b eql_v3.text_ord +--! @return boolean +CREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.text_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.text_ord) > eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.text_ord. +--! @param a eql_v3.text_ord +--! @param b eql_v3.text_ord +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.text_ord, b eql_v3.text_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.text_ord. +--! @param a eql_v3.text_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.text_ord, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b::eql_v3.text_ord) $$; + +--! @brief Operator wrapper for eql_v3.text_ord. +--! @param a jsonb +--! @param b eql_v3.text_ord +--! @return boolean +CREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.text_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.text_ord) >= eql_v3.ord_term(b) $$; + +--! @brief Unsupported operator blocker for eql_v3.text_ord. +--! @param a eql_v3.text_ord +--! @param b eql_v3.text_ord +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.text_ord, b eql_v3.text_ord) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.text_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord. +--! @param a eql_v3.text_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.text_ord, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.text_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord. +--! @param a jsonb +--! @param b eql_v3.text_ord +--! @return boolean +CREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.text_ord) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.text_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord. +--! @param a eql_v3.text_ord +--! @param b eql_v3.text_ord +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.text_ord, b eql_v3.text_ord) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.text_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord. +--! @param a eql_v3.text_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.text_ord, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.text_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord. +--! @param a jsonb +--! @param b eql_v3.text_ord +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.text_ord) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.text_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord. +--! @param a eql_v3.text_ord +--! @param selector text +--! @return eql_v3.text_ord +CREATE FUNCTION eql_v3."->"(a eql_v3.text_ord, selector text) +RETURNS eql_v3.text_ord IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.text_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord. +--! @param a eql_v3.text_ord +--! @param selector integer +--! @return eql_v3.text_ord +CREATE FUNCTION eql_v3."->"(a eql_v3.text_ord, selector integer) +RETURNS eql_v3.text_ord IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.text_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord. +--! @param a jsonb +--! @param selector eql_v3.text_ord +--! @return eql_v3.text_ord +CREATE FUNCTION eql_v3."->"(a jsonb, selector eql_v3.text_ord) +RETURNS eql_v3.text_ord IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.text_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord. +--! @param a eql_v3.text_ord +--! @param selector text +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.text_ord, selector text) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.text_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord. +--! @param a eql_v3.text_ord +--! @param selector integer +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.text_ord, selector integer) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.text_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord. +--! @param a jsonb +--! @param selector eql_v3.text_ord +--! @return text +CREATE FUNCTION eql_v3."->>"(a jsonb, selector eql_v3.text_ord) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.text_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord. +--! @param a eql_v3.text_ord +--! @param b text +--! @return boolean +CREATE FUNCTION eql_v3."?"(a eql_v3.text_ord, b text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.text_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord. +--! @param a eql_v3.text_ord +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?|"(a eql_v3.text_ord, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.text_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord. +--! @param a eql_v3.text_ord +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?&"(a eql_v3.text_ord, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.text_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord. +--! @param a eql_v3.text_ord +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@?"(a eql_v3.text_ord, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.text_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord. +--! @param a eql_v3.text_ord +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@@"(a eql_v3.text_ord, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.text_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord. +--! @param a eql_v3.text_ord +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#>"(a eql_v3.text_ord, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.text_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord. +--! @param a eql_v3.text_ord +--! @param b text[] +--! @return text +CREATE FUNCTION eql_v3."#>>"(a eql_v3.text_ord, b text[]) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.text_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord. +--! @param a eql_v3.text_ord +--! @param b text +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.text_ord, b text) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.text_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord. +--! @param a eql_v3.text_ord +--! @param b integer +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.text_ord, b integer) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.text_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord. +--! @param a eql_v3.text_ord +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.text_ord, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.text_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord. +--! @param a eql_v3.text_ord +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#-"(a eql_v3.text_ord, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.text_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord. +--! @param a eql_v3.text_ord +--! @param b eql_v3.text_ord +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.text_ord, b eql_v3.text_ord) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.text_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord. +--! @param a eql_v3.text_ord +--! @param b jsonb +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.text_ord, b jsonb) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.text_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord. +--! @param a jsonb +--! @param b eql_v3.text_ord +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a jsonb, b eql_v3.text_ord) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.text_ord'; END; $$ +LANGUAGE plpgsql; +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/text/text_ord_ore_functions.sql +--! @brief Functions for eql_v3.text_ord_ore. + +--! @brief Index extractor for eql_v3.text_ord_ore. +--! @param a eql_v3.text_ord_ore +--! @return eql_v3.ore_block_u64_8_256 +CREATE FUNCTION eql_v3.ord_term(a eql_v3.text_ord_ore) +RETURNS eql_v3.ore_block_u64_8_256 +LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ore_block_u64_8_256(a::jsonb) $$; + +--! @brief Operator wrapper for eql_v3.text_ord_ore. +--! @param a eql_v3.text_ord_ore +--! @param b eql_v3.text_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.text_ord_ore, b eql_v3.text_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.text_ord_ore. +--! @param a eql_v3.text_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.text_ord_ore, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b::eql_v3.text_ord_ore) $$; + +--! @brief Operator wrapper for eql_v3.text_ord_ore. +--! @param a jsonb +--! @param b eql_v3.text_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.text_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.text_ord_ore) = eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.text_ord_ore. +--! @param a eql_v3.text_ord_ore +--! @param b eql_v3.text_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.text_ord_ore, b eql_v3.text_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.text_ord_ore. +--! @param a eql_v3.text_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.text_ord_ore, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b::eql_v3.text_ord_ore) $$; + +--! @brief Operator wrapper for eql_v3.text_ord_ore. +--! @param a jsonb +--! @param b eql_v3.text_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.text_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.text_ord_ore) <> eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.text_ord_ore. +--! @param a eql_v3.text_ord_ore +--! @param b eql_v3.text_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.text_ord_ore, b eql_v3.text_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.text_ord_ore. +--! @param a eql_v3.text_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.text_ord_ore, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b::eql_v3.text_ord_ore) $$; + +--! @brief Operator wrapper for eql_v3.text_ord_ore. +--! @param a jsonb +--! @param b eql_v3.text_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.text_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.text_ord_ore) < eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.text_ord_ore. +--! @param a eql_v3.text_ord_ore +--! @param b eql_v3.text_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.text_ord_ore, b eql_v3.text_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.text_ord_ore. +--! @param a eql_v3.text_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.text_ord_ore, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b::eql_v3.text_ord_ore) $$; + +--! @brief Operator wrapper for eql_v3.text_ord_ore. +--! @param a jsonb +--! @param b eql_v3.text_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.text_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.text_ord_ore) <= eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.text_ord_ore. +--! @param a eql_v3.text_ord_ore +--! @param b eql_v3.text_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.text_ord_ore, b eql_v3.text_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.text_ord_ore. +--! @param a eql_v3.text_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.text_ord_ore, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b::eql_v3.text_ord_ore) $$; + +--! @brief Operator wrapper for eql_v3.text_ord_ore. +--! @param a jsonb +--! @param b eql_v3.text_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.text_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.text_ord_ore) > eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.text_ord_ore. +--! @param a eql_v3.text_ord_ore +--! @param b eql_v3.text_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.text_ord_ore, b eql_v3.text_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.text_ord_ore. +--! @param a eql_v3.text_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.text_ord_ore, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b::eql_v3.text_ord_ore) $$; + +--! @brief Operator wrapper for eql_v3.text_ord_ore. +--! @param a jsonb +--! @param b eql_v3.text_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.text_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.text_ord_ore) >= eql_v3.ord_term(b) $$; + +--! @brief Unsupported operator blocker for eql_v3.text_ord_ore. +--! @param a eql_v3.text_ord_ore +--! @param b eql_v3.text_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.text_ord_ore, b eql_v3.text_ord_ore) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.text_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord_ore. +--! @param a eql_v3.text_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.text_ord_ore, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.text_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord_ore. +--! @param a jsonb +--! @param b eql_v3.text_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.text_ord_ore) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.text_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord_ore. +--! @param a eql_v3.text_ord_ore +--! @param b eql_v3.text_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.text_ord_ore, b eql_v3.text_ord_ore) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.text_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord_ore. +--! @param a eql_v3.text_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.text_ord_ore, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.text_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord_ore. +--! @param a jsonb +--! @param b eql_v3.text_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.text_ord_ore) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.text_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord_ore. +--! @param a eql_v3.text_ord_ore +--! @param selector text +--! @return eql_v3.text_ord_ore +CREATE FUNCTION eql_v3."->"(a eql_v3.text_ord_ore, selector text) +RETURNS eql_v3.text_ord_ore IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.text_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord_ore. +--! @param a eql_v3.text_ord_ore +--! @param selector integer +--! @return eql_v3.text_ord_ore +CREATE FUNCTION eql_v3."->"(a eql_v3.text_ord_ore, selector integer) +RETURNS eql_v3.text_ord_ore IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.text_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord_ore. +--! @param a jsonb +--! @param selector eql_v3.text_ord_ore +--! @return eql_v3.text_ord_ore +CREATE FUNCTION eql_v3."->"(a jsonb, selector eql_v3.text_ord_ore) +RETURNS eql_v3.text_ord_ore IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.text_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord_ore. +--! @param a eql_v3.text_ord_ore +--! @param selector text +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.text_ord_ore, selector text) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.text_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord_ore. +--! @param a eql_v3.text_ord_ore +--! @param selector integer +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.text_ord_ore, selector integer) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.text_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord_ore. +--! @param a jsonb +--! @param selector eql_v3.text_ord_ore +--! @return text +CREATE FUNCTION eql_v3."->>"(a jsonb, selector eql_v3.text_ord_ore) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.text_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord_ore. +--! @param a eql_v3.text_ord_ore +--! @param b text +--! @return boolean +CREATE FUNCTION eql_v3."?"(a eql_v3.text_ord_ore, b text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.text_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord_ore. +--! @param a eql_v3.text_ord_ore +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?|"(a eql_v3.text_ord_ore, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.text_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord_ore. +--! @param a eql_v3.text_ord_ore +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?&"(a eql_v3.text_ord_ore, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.text_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord_ore. +--! @param a eql_v3.text_ord_ore +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@?"(a eql_v3.text_ord_ore, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.text_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord_ore. +--! @param a eql_v3.text_ord_ore +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@@"(a eql_v3.text_ord_ore, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.text_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord_ore. +--! @param a eql_v3.text_ord_ore +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#>"(a eql_v3.text_ord_ore, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.text_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord_ore. +--! @param a eql_v3.text_ord_ore +--! @param b text[] +--! @return text +CREATE FUNCTION eql_v3."#>>"(a eql_v3.text_ord_ore, b text[]) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.text_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord_ore. +--! @param a eql_v3.text_ord_ore +--! @param b text +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.text_ord_ore, b text) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.text_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord_ore. +--! @param a eql_v3.text_ord_ore +--! @param b integer +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.text_ord_ore, b integer) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.text_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord_ore. +--! @param a eql_v3.text_ord_ore +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.text_ord_ore, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.text_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord_ore. +--! @param a eql_v3.text_ord_ore +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#-"(a eql_v3.text_ord_ore, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.text_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord_ore. +--! @param a eql_v3.text_ord_ore +--! @param b eql_v3.text_ord_ore +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.text_ord_ore, b eql_v3.text_ord_ore) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.text_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord_ore. +--! @param a eql_v3.text_ord_ore +--! @param b jsonb +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.text_ord_ore, b jsonb) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.text_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord_ore. +--! @param a jsonb +--! @param b eql_v3.text_ord_ore +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a jsonb, b eql_v3.text_ord_ore) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.text_ord_ore'; END; $$ +LANGUAGE plpgsql; +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/text/text_match_functions.sql +--! @brief Functions for eql_v3.text_match. + +--! @brief Index extractor for eql_v3.text_match. +--! @param a eql_v3.text_match +--! @return eql_v3.bloom_filter +CREATE FUNCTION eql_v3.match_term(a eql_v3.text_match) +RETURNS eql_v3.bloom_filter +LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.bloom_filter(a::jsonb) $$; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a eql_v3.text_match +--! @param b eql_v3.text_match +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.text_match, b eql_v3.text_match) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a eql_v3.text_match +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.text_match, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a jsonb +--! @param b eql_v3.text_match +--! @return boolean +CREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.text_match) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a eql_v3.text_match +--! @param b eql_v3.text_match +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.text_match, b eql_v3.text_match) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a eql_v3.text_match +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.text_match, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a jsonb +--! @param b eql_v3.text_match +--! @return boolean +CREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.text_match) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a eql_v3.text_match +--! @param b eql_v3.text_match +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.text_match, b eql_v3.text_match) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a eql_v3.text_match +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.text_match, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a jsonb +--! @param b eql_v3.text_match +--! @return boolean +CREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.text_match) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a eql_v3.text_match +--! @param b eql_v3.text_match +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.text_match, b eql_v3.text_match) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a eql_v3.text_match +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.text_match, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a jsonb +--! @param b eql_v3.text_match +--! @return boolean +CREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.text_match) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a eql_v3.text_match +--! @param b eql_v3.text_match +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.text_match, b eql_v3.text_match) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a eql_v3.text_match +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.text_match, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a jsonb +--! @param b eql_v3.text_match +--! @return boolean +CREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.text_match) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a eql_v3.text_match +--! @param b eql_v3.text_match +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.text_match, b eql_v3.text_match) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a eql_v3.text_match +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.text_match, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a jsonb +--! @param b eql_v3.text_match +--! @return boolean +CREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.text_match) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Operator wrapper for eql_v3.text_match. +--! @param a eql_v3.text_match +--! @param b eql_v3.text_match +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.text_match, b eql_v3.text_match) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.match_term(a) @> eql_v3.match_term(b) $$; + +--! @brief Operator wrapper for eql_v3.text_match. +--! @param a eql_v3.text_match +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.text_match, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.match_term(a) @> eql_v3.match_term(b::eql_v3.text_match) $$; + +--! @brief Operator wrapper for eql_v3.text_match. +--! @param a jsonb +--! @param b eql_v3.text_match +--! @return boolean +CREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.text_match) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.match_term(a::eql_v3.text_match) @> eql_v3.match_term(b) $$; + +--! @brief Operator wrapper for eql_v3.text_match. +--! @param a eql_v3.text_match +--! @param b eql_v3.text_match +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.text_match, b eql_v3.text_match) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.match_term(a) <@ eql_v3.match_term(b) $$; + +--! @brief Operator wrapper for eql_v3.text_match. +--! @param a eql_v3.text_match +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.text_match, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.match_term(a) <@ eql_v3.match_term(b::eql_v3.text_match) $$; + +--! @brief Operator wrapper for eql_v3.text_match. +--! @param a jsonb +--! @param b eql_v3.text_match +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.text_match) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.match_term(a::eql_v3.text_match) <@ eql_v3.match_term(b) $$; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a eql_v3.text_match +--! @param selector text +--! @return eql_v3.text_match +CREATE FUNCTION eql_v3."->"(a eql_v3.text_match, selector text) +RETURNS eql_v3.text_match IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a eql_v3.text_match +--! @param selector integer +--! @return eql_v3.text_match +CREATE FUNCTION eql_v3."->"(a eql_v3.text_match, selector integer) +RETURNS eql_v3.text_match IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a jsonb +--! @param selector eql_v3.text_match +--! @return eql_v3.text_match +CREATE FUNCTION eql_v3."->"(a jsonb, selector eql_v3.text_match) +RETURNS eql_v3.text_match IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a eql_v3.text_match +--! @param selector text +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.text_match, selector text) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a eql_v3.text_match +--! @param selector integer +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.text_match, selector integer) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a jsonb +--! @param selector eql_v3.text_match +--! @return text +CREATE FUNCTION eql_v3."->>"(a jsonb, selector eql_v3.text_match) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a eql_v3.text_match +--! @param b text +--! @return boolean +CREATE FUNCTION eql_v3."?"(a eql_v3.text_match, b text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a eql_v3.text_match +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?|"(a eql_v3.text_match, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a eql_v3.text_match +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?&"(a eql_v3.text_match, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a eql_v3.text_match +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@?"(a eql_v3.text_match, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a eql_v3.text_match +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@@"(a eql_v3.text_match, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a eql_v3.text_match +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#>"(a eql_v3.text_match, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a eql_v3.text_match +--! @param b text[] +--! @return text +CREATE FUNCTION eql_v3."#>>"(a eql_v3.text_match, b text[]) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a eql_v3.text_match +--! @param b text +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.text_match, b text) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a eql_v3.text_match +--! @param b integer +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.text_match, b integer) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a eql_v3.text_match +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.text_match, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a eql_v3.text_match +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#-"(a eql_v3.text_match, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a eql_v3.text_match +--! @param b eql_v3.text_match +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.text_match, b eql_v3.text_match) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a eql_v3.text_match +--! @param b jsonb +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.text_match, b jsonb) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a jsonb +--! @param b eql_v3.text_match +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a jsonb, b eql_v3.text_match) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/text/text_eq_functions.sql +--! @brief Functions for eql_v3.text_eq. + +--! @brief Index extractor for eql_v3.text_eq. +--! @param a eql_v3.text_eq +--! @return eql_v3.hmac_256 +CREATE FUNCTION eql_v3.eq_term(a eql_v3.text_eq) +RETURNS eql_v3.hmac_256 +LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.hmac_256(a::jsonb) $$; + +--! @brief Operator wrapper for eql_v3.text_eq. +--! @param a eql_v3.text_eq +--! @param b eql_v3.text_eq +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.text_eq, b eql_v3.text_eq) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a) = eql_v3.eq_term(b) $$; + +--! @brief Operator wrapper for eql_v3.text_eq. +--! @param a eql_v3.text_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.text_eq, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a) = eql_v3.eq_term(b::eql_v3.text_eq) $$; + +--! @brief Operator wrapper for eql_v3.text_eq. +--! @param a jsonb +--! @param b eql_v3.text_eq +--! @return boolean +CREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.text_eq) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a::eql_v3.text_eq) = eql_v3.eq_term(b) $$; + +--! @brief Operator wrapper for eql_v3.text_eq. +--! @param a eql_v3.text_eq +--! @param b eql_v3.text_eq +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.text_eq, b eql_v3.text_eq) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a) <> eql_v3.eq_term(b) $$; + +--! @brief Operator wrapper for eql_v3.text_eq. +--! @param a eql_v3.text_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.text_eq, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a) <> eql_v3.eq_term(b::eql_v3.text_eq) $$; + +--! @brief Operator wrapper for eql_v3.text_eq. +--! @param a jsonb +--! @param b eql_v3.text_eq +--! @return boolean +CREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.text_eq) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a::eql_v3.text_eq) <> eql_v3.eq_term(b) $$; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a eql_v3.text_eq +--! @param b eql_v3.text_eq +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.text_eq, b eql_v3.text_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a eql_v3.text_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.text_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a jsonb +--! @param b eql_v3.text_eq +--! @return boolean +CREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.text_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a eql_v3.text_eq +--! @param b eql_v3.text_eq +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.text_eq, b eql_v3.text_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a eql_v3.text_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.text_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a jsonb +--! @param b eql_v3.text_eq +--! @return boolean +CREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.text_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a eql_v3.text_eq +--! @param b eql_v3.text_eq +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.text_eq, b eql_v3.text_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a eql_v3.text_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.text_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a jsonb +--! @param b eql_v3.text_eq +--! @return boolean +CREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.text_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a eql_v3.text_eq +--! @param b eql_v3.text_eq +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.text_eq, b eql_v3.text_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a eql_v3.text_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.text_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a jsonb +--! @param b eql_v3.text_eq +--! @return boolean +CREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.text_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a eql_v3.text_eq +--! @param b eql_v3.text_eq +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.text_eq, b eql_v3.text_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a eql_v3.text_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.text_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a jsonb +--! @param b eql_v3.text_eq +--! @return boolean +CREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.text_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a eql_v3.text_eq +--! @param b eql_v3.text_eq +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.text_eq, b eql_v3.text_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a eql_v3.text_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.text_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a jsonb +--! @param b eql_v3.text_eq +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.text_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a eql_v3.text_eq +--! @param selector text +--! @return eql_v3.text_eq +CREATE FUNCTION eql_v3."->"(a eql_v3.text_eq, selector text) +RETURNS eql_v3.text_eq IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a eql_v3.text_eq +--! @param selector integer +--! @return eql_v3.text_eq +CREATE FUNCTION eql_v3."->"(a eql_v3.text_eq, selector integer) +RETURNS eql_v3.text_eq IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a jsonb +--! @param selector eql_v3.text_eq +--! @return eql_v3.text_eq +CREATE FUNCTION eql_v3."->"(a jsonb, selector eql_v3.text_eq) +RETURNS eql_v3.text_eq IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a eql_v3.text_eq +--! @param selector text +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.text_eq, selector text) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a eql_v3.text_eq +--! @param selector integer +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.text_eq, selector integer) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a jsonb +--! @param selector eql_v3.text_eq +--! @return text +CREATE FUNCTION eql_v3."->>"(a jsonb, selector eql_v3.text_eq) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a eql_v3.text_eq +--! @param b text +--! @return boolean +CREATE FUNCTION eql_v3."?"(a eql_v3.text_eq, b text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a eql_v3.text_eq +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?|"(a eql_v3.text_eq, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a eql_v3.text_eq +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?&"(a eql_v3.text_eq, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a eql_v3.text_eq +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@?"(a eql_v3.text_eq, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a eql_v3.text_eq +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@@"(a eql_v3.text_eq, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a eql_v3.text_eq +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#>"(a eql_v3.text_eq, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a eql_v3.text_eq +--! @param b text[] +--! @return text +CREATE FUNCTION eql_v3."#>>"(a eql_v3.text_eq, b text[]) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a eql_v3.text_eq +--! @param b text +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.text_eq, b text) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a eql_v3.text_eq +--! @param b integer +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.text_eq, b integer) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a eql_v3.text_eq +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.text_eq, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a eql_v3.text_eq +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#-"(a eql_v3.text_eq, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a eql_v3.text_eq +--! @param b eql_v3.text_eq +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.text_eq, b eql_v3.text_eq) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a eql_v3.text_eq +--! @param b jsonb +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.text_eq, b jsonb) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a jsonb +--! @param b eql_v3.text_eq +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a jsonb, b eql_v3.text_eq) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/text/text_ord_ore_operators.sql +--! @brief Operators for eql_v3.text_ord_ore. + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.text_ord_ore, RIGHTARG = eql_v3.text_ord_ore, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.text_ord_ore, RIGHTARG = jsonb, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord_ore, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.text_ord_ore, RIGHTARG = eql_v3.text_ord_ore, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.text_ord_ore, RIGHTARG = jsonb, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord_ore, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.text_ord_ore, RIGHTARG = eql_v3.text_ord_ore, + COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.text_ord_ore, RIGHTARG = jsonb, + COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord_ore, + COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.text_ord_ore, RIGHTARG = eql_v3.text_ord_ore, + COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.text_ord_ore, RIGHTARG = jsonb, + COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord_ore, + COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.text_ord_ore, RIGHTARG = eql_v3.text_ord_ore, + COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.text_ord_ore, RIGHTARG = jsonb, + COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord_ore, + COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.text_ord_ore, RIGHTARG = eql_v3.text_ord_ore, + COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.text_ord_ore, RIGHTARG = jsonb, + COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord_ore, + COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.text_ord_ore, RIGHTARG = eql_v3.text_ord_ore +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.text_ord_ore, RIGHTARG = jsonb +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord_ore +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.text_ord_ore, RIGHTARG = eql_v3.text_ord_ore +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.text_ord_ore, RIGHTARG = jsonb +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord_ore +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.text_ord_ore, RIGHTARG = text +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.text_ord_ore, RIGHTARG = integer +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord_ore +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.text_ord_ore, RIGHTARG = text +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.text_ord_ore, RIGHTARG = integer +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord_ore +); + +CREATE OPERATOR ? ( + FUNCTION = eql_v3."?", + LEFTARG = eql_v3.text_ord_ore, RIGHTARG = text +); + +CREATE OPERATOR ?| ( + FUNCTION = eql_v3."?|", + LEFTARG = eql_v3.text_ord_ore, RIGHTARG = text[] +); + +CREATE OPERATOR ?& ( + FUNCTION = eql_v3."?&", + LEFTARG = eql_v3.text_ord_ore, RIGHTARG = text[] +); + +CREATE OPERATOR @? ( + FUNCTION = eql_v3."@?", + LEFTARG = eql_v3.text_ord_ore, RIGHTARG = jsonpath +); + +CREATE OPERATOR @@ ( + FUNCTION = eql_v3."@@", + LEFTARG = eql_v3.text_ord_ore, RIGHTARG = jsonpath +); + +CREATE OPERATOR #> ( + FUNCTION = eql_v3."#>", + LEFTARG = eql_v3.text_ord_ore, RIGHTARG = text[] +); + +CREATE OPERATOR #>> ( + FUNCTION = eql_v3."#>>", + LEFTARG = eql_v3.text_ord_ore, RIGHTARG = text[] +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.text_ord_ore, RIGHTARG = text +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.text_ord_ore, RIGHTARG = integer +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.text_ord_ore, RIGHTARG = text[] +); + +CREATE OPERATOR #- ( + FUNCTION = eql_v3."#-", + LEFTARG = eql_v3.text_ord_ore, RIGHTARG = text[] +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.text_ord_ore, RIGHTARG = eql_v3.text_ord_ore +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.text_ord_ore, RIGHTARG = jsonb +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord_ore +); +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/text/text_ord_operators.sql +--! @brief Operators for eql_v3.text_ord. + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.text_ord, RIGHTARG = eql_v3.text_ord, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.text_ord, RIGHTARG = jsonb, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.text_ord, RIGHTARG = eql_v3.text_ord, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.text_ord, RIGHTARG = jsonb, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.text_ord, RIGHTARG = eql_v3.text_ord, + COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.text_ord, RIGHTARG = jsonb, + COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord, + COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.text_ord, RIGHTARG = eql_v3.text_ord, + COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.text_ord, RIGHTARG = jsonb, + COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord, + COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.text_ord, RIGHTARG = eql_v3.text_ord, + COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.text_ord, RIGHTARG = jsonb, + COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord, + COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.text_ord, RIGHTARG = eql_v3.text_ord, + COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.text_ord, RIGHTARG = jsonb, + COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord, + COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.text_ord, RIGHTARG = eql_v3.text_ord +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.text_ord, RIGHTARG = jsonb +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.text_ord, RIGHTARG = eql_v3.text_ord +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.text_ord, RIGHTARG = jsonb +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.text_ord, RIGHTARG = text +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.text_ord, RIGHTARG = integer +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.text_ord, RIGHTARG = text +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.text_ord, RIGHTARG = integer +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord +); + +CREATE OPERATOR ? ( + FUNCTION = eql_v3."?", + LEFTARG = eql_v3.text_ord, RIGHTARG = text +); + +CREATE OPERATOR ?| ( + FUNCTION = eql_v3."?|", + LEFTARG = eql_v3.text_ord, RIGHTARG = text[] +); + +CREATE OPERATOR ?& ( + FUNCTION = eql_v3."?&", + LEFTARG = eql_v3.text_ord, RIGHTARG = text[] +); + +CREATE OPERATOR @? ( + FUNCTION = eql_v3."@?", + LEFTARG = eql_v3.text_ord, RIGHTARG = jsonpath +); + +CREATE OPERATOR @@ ( + FUNCTION = eql_v3."@@", + LEFTARG = eql_v3.text_ord, RIGHTARG = jsonpath +); + +CREATE OPERATOR #> ( + FUNCTION = eql_v3."#>", + LEFTARG = eql_v3.text_ord, RIGHTARG = text[] +); + +CREATE OPERATOR #>> ( + FUNCTION = eql_v3."#>>", + LEFTARG = eql_v3.text_ord, RIGHTARG = text[] +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.text_ord, RIGHTARG = text +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.text_ord, RIGHTARG = integer +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.text_ord, RIGHTARG = text[] +); + +CREATE OPERATOR #- ( + FUNCTION = eql_v3."#-", + LEFTARG = eql_v3.text_ord, RIGHTARG = text[] +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.text_ord, RIGHTARG = eql_v3.text_ord +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.text_ord, RIGHTARG = jsonb +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord +); +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/int4/int4_ord_aggregates.sql +--! @brief Aggregates for eql_v3.int4_ord. + +--! @brief State function for min on eql_v3.int4_ord. +--! @param state eql_v3.int4_ord +--! @param value eql_v3.int4_ord +--! @return eql_v3.int4_ord +CREATE FUNCTION eql_v3.min_sfunc(state eql_v3.int4_ord, value eql_v3.int4_ord) +RETURNS eql_v3.int4_ord +LANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE +SET search_path = pg_catalog, extensions, public +AS $$ +BEGIN + IF value < state THEN + RETURN value; + END IF; + RETURN state; +END; +$$; + +--! @brief min aggregate for eql_v3.int4_ord. +--! @param input eql_v3.int4_ord +--! @return eql_v3.int4_ord +CREATE AGGREGATE eql_v3.min(eql_v3.int4_ord) ( + sfunc = eql_v3.min_sfunc, + stype = eql_v3.int4_ord, + combinefunc = eql_v3.min_sfunc, + parallel = safe +); + +--! @brief State function for max on eql_v3.int4_ord. +--! @param state eql_v3.int4_ord +--! @param value eql_v3.int4_ord +--! @return eql_v3.int4_ord +CREATE FUNCTION eql_v3.max_sfunc(state eql_v3.int4_ord, value eql_v3.int4_ord) +RETURNS eql_v3.int4_ord +LANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE +SET search_path = pg_catalog, extensions, public +AS $$ +BEGIN + IF value > state THEN + RETURN value; + END IF; + RETURN state; +END; +$$; + +--! @brief max aggregate for eql_v3.int4_ord. +--! @param input eql_v3.int4_ord +--! @return eql_v3.int4_ord +CREATE AGGREGATE eql_v3.max(eql_v3.int4_ord) ( + sfunc = eql_v3.max_sfunc, + stype = eql_v3.int4_ord, + combinefunc = eql_v3.max_sfunc, + parallel = safe +); +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/int4/int4_functions.sql +--! @brief Functions for eql_v3.int4. + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a eql_v3.int4 +--! @param b eql_v3.int4 +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.int4, b eql_v3.int4) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a eql_v3.int4 +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.int4, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a jsonb +--! @param b eql_v3.int4 +--! @return boolean +CREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.int4) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a eql_v3.int4 +--! @param b eql_v3.int4 +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.int4, b eql_v3.int4) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a eql_v3.int4 +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.int4, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a jsonb +--! @param b eql_v3.int4 +--! @return boolean +CREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.int4) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a eql_v3.int4 +--! @param b eql_v3.int4 +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.int4, b eql_v3.int4) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a eql_v3.int4 +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.int4, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a jsonb +--! @param b eql_v3.int4 +--! @return boolean +CREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.int4) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a eql_v3.int4 +--! @param b eql_v3.int4 +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.int4, b eql_v3.int4) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a eql_v3.int4 +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.int4, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a jsonb +--! @param b eql_v3.int4 +--! @return boolean +CREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.int4) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a eql_v3.int4 +--! @param b eql_v3.int4 +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.int4, b eql_v3.int4) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a eql_v3.int4 +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.int4, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a jsonb +--! @param b eql_v3.int4 +--! @return boolean +CREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.int4) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a eql_v3.int4 +--! @param b eql_v3.int4 +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.int4, b eql_v3.int4) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a eql_v3.int4 +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.int4, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a jsonb +--! @param b eql_v3.int4 +--! @return boolean +CREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.int4) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a eql_v3.int4 +--! @param b eql_v3.int4 +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.int4, b eql_v3.int4) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a eql_v3.int4 +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.int4, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a jsonb +--! @param b eql_v3.int4 +--! @return boolean +CREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.int4) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a eql_v3.int4 +--! @param b eql_v3.int4 +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.int4, b eql_v3.int4) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a eql_v3.int4 +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.int4, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a jsonb +--! @param b eql_v3.int4 +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.int4) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a eql_v3.int4 +--! @param selector text +--! @return eql_v3.int4 +CREATE FUNCTION eql_v3."->"(a eql_v3.int4, selector text) +RETURNS eql_v3.int4 IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a eql_v3.int4 +--! @param selector integer +--! @return eql_v3.int4 +CREATE FUNCTION eql_v3."->"(a eql_v3.int4, selector integer) +RETURNS eql_v3.int4 IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a jsonb +--! @param selector eql_v3.int4 +--! @return eql_v3.int4 +CREATE FUNCTION eql_v3."->"(a jsonb, selector eql_v3.int4) +RETURNS eql_v3.int4 IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a eql_v3.int4 +--! @param selector text +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.int4, selector text) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a eql_v3.int4 +--! @param selector integer +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.int4, selector integer) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a jsonb +--! @param selector eql_v3.int4 +--! @return text +CREATE FUNCTION eql_v3."->>"(a jsonb, selector eql_v3.int4) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a eql_v3.int4 +--! @param b text +--! @return boolean +CREATE FUNCTION eql_v3."?"(a eql_v3.int4, b text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a eql_v3.int4 +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?|"(a eql_v3.int4, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a eql_v3.int4 +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?&"(a eql_v3.int4, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a eql_v3.int4 +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@?"(a eql_v3.int4, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a eql_v3.int4 +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@@"(a eql_v3.int4, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a eql_v3.int4 +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#>"(a eql_v3.int4, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a eql_v3.int4 +--! @param b text[] +--! @return text +CREATE FUNCTION eql_v3."#>>"(a eql_v3.int4, b text[]) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a eql_v3.int4 +--! @param b text +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int4, b text) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a eql_v3.int4 +--! @param b integer +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int4, b integer) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a eql_v3.int4 +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int4, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a eql_v3.int4 +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#-"(a eql_v3.int4, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a eql_v3.int4 +--! @param b eql_v3.int4 +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.int4, b eql_v3.int4) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a eql_v3.int4 +--! @param b jsonb +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.int4, b jsonb) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a jsonb +--! @param b eql_v3.int4 +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a jsonb, b eql_v3.int4) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/int4/int4_eq_operators.sql +--! @brief Operators for eql_v3.int4_eq. + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.int4_eq, RIGHTARG = eql_v3.int4_eq, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.int4_eq, RIGHTARG = jsonb, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = jsonb, RIGHTARG = eql_v3.int4_eq, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.int4_eq, RIGHTARG = eql_v3.int4_eq, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.int4_eq, RIGHTARG = jsonb, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = jsonb, RIGHTARG = eql_v3.int4_eq, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.int4_eq, RIGHTARG = eql_v3.int4_eq +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.int4_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = jsonb, RIGHTARG = eql_v3.int4_eq +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.int4_eq, RIGHTARG = eql_v3.int4_eq +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.int4_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = jsonb, RIGHTARG = eql_v3.int4_eq +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.int4_eq, RIGHTARG = eql_v3.int4_eq +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.int4_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = jsonb, RIGHTARG = eql_v3.int4_eq +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.int4_eq, RIGHTARG = eql_v3.int4_eq +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.int4_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = jsonb, RIGHTARG = eql_v3.int4_eq +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.int4_eq, RIGHTARG = eql_v3.int4_eq +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.int4_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = jsonb, RIGHTARG = eql_v3.int4_eq +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.int4_eq, RIGHTARG = eql_v3.int4_eq +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.int4_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = jsonb, RIGHTARG = eql_v3.int4_eq +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.int4_eq, RIGHTARG = text +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.int4_eq, RIGHTARG = integer +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = jsonb, RIGHTARG = eql_v3.int4_eq +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.int4_eq, RIGHTARG = text +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.int4_eq, RIGHTARG = integer +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = jsonb, RIGHTARG = eql_v3.int4_eq +); + +CREATE OPERATOR ? ( + FUNCTION = eql_v3."?", + LEFTARG = eql_v3.int4_eq, RIGHTARG = text +); + +CREATE OPERATOR ?| ( + FUNCTION = eql_v3."?|", + LEFTARG = eql_v3.int4_eq, RIGHTARG = text[] +); + +CREATE OPERATOR ?& ( + FUNCTION = eql_v3."?&", + LEFTARG = eql_v3.int4_eq, RIGHTARG = text[] +); + +CREATE OPERATOR @? ( + FUNCTION = eql_v3."@?", + LEFTARG = eql_v3.int4_eq, RIGHTARG = jsonpath +); + +CREATE OPERATOR @@ ( + FUNCTION = eql_v3."@@", + LEFTARG = eql_v3.int4_eq, RIGHTARG = jsonpath +); + +CREATE OPERATOR #> ( + FUNCTION = eql_v3."#>", + LEFTARG = eql_v3.int4_eq, RIGHTARG = text[] +); + +CREATE OPERATOR #>> ( + FUNCTION = eql_v3."#>>", + LEFTARG = eql_v3.int4_eq, RIGHTARG = text[] +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int4_eq, RIGHTARG = text +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int4_eq, RIGHTARG = integer +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int4_eq, RIGHTARG = text[] +); + +CREATE OPERATOR #- ( + FUNCTION = eql_v3."#-", + LEFTARG = eql_v3.int4_eq, RIGHTARG = text[] +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.int4_eq, RIGHTARG = eql_v3.int4_eq +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.int4_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = jsonb, RIGHTARG = eql_v3.int4_eq +); +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/int4/int4_ord_ore_functions.sql +--! @brief Functions for eql_v3.int4_ord_ore. + +--! @brief Index extractor for eql_v3.int4_ord_ore. +--! @param a eql_v3.int4_ord_ore +--! @return eql_v3.ore_block_u64_8_256 +CREATE FUNCTION eql_v3.ord_term(a eql_v3.int4_ord_ore) +RETURNS eql_v3.ore_block_u64_8_256 +LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ore_block_u64_8_256(a::jsonb) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord_ore. +--! @param a eql_v3.int4_ord_ore +--! @param b eql_v3.int4_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.int4_ord_ore, b eql_v3.int4_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord_ore. +--! @param a eql_v3.int4_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.int4_ord_ore, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b::eql_v3.int4_ord_ore) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord_ore. +--! @param a jsonb +--! @param b eql_v3.int4_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.int4_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int4_ord_ore) = eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord_ore. +--! @param a eql_v3.int4_ord_ore +--! @param b eql_v3.int4_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.int4_ord_ore, b eql_v3.int4_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord_ore. +--! @param a eql_v3.int4_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.int4_ord_ore, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b::eql_v3.int4_ord_ore) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord_ore. +--! @param a jsonb +--! @param b eql_v3.int4_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.int4_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int4_ord_ore) <> eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord_ore. +--! @param a eql_v3.int4_ord_ore +--! @param b eql_v3.int4_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.int4_ord_ore, b eql_v3.int4_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord_ore. +--! @param a eql_v3.int4_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.int4_ord_ore, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b::eql_v3.int4_ord_ore) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord_ore. +--! @param a jsonb +--! @param b eql_v3.int4_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.int4_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int4_ord_ore) < eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord_ore. +--! @param a eql_v3.int4_ord_ore +--! @param b eql_v3.int4_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.int4_ord_ore, b eql_v3.int4_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord_ore. +--! @param a eql_v3.int4_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.int4_ord_ore, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b::eql_v3.int4_ord_ore) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord_ore. +--! @param a jsonb +--! @param b eql_v3.int4_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.int4_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int4_ord_ore) <= eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord_ore. +--! @param a eql_v3.int4_ord_ore +--! @param b eql_v3.int4_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.int4_ord_ore, b eql_v3.int4_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord_ore. +--! @param a eql_v3.int4_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.int4_ord_ore, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b::eql_v3.int4_ord_ore) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord_ore. +--! @param a jsonb +--! @param b eql_v3.int4_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.int4_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int4_ord_ore) > eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord_ore. +--! @param a eql_v3.int4_ord_ore +--! @param b eql_v3.int4_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.int4_ord_ore, b eql_v3.int4_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord_ore. +--! @param a eql_v3.int4_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.int4_ord_ore, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b::eql_v3.int4_ord_ore) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord_ore. +--! @param a jsonb +--! @param b eql_v3.int4_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.int4_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int4_ord_ore) >= eql_v3.ord_term(b) $$; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore. +--! @param a eql_v3.int4_ord_ore +--! @param b eql_v3.int4_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.int4_ord_ore, b eql_v3.int4_ord_ore) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int4_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore. +--! @param a eql_v3.int4_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.int4_ord_ore, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int4_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore. +--! @param a jsonb +--! @param b eql_v3.int4_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.int4_ord_ore) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int4_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore. +--! @param a eql_v3.int4_ord_ore +--! @param b eql_v3.int4_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.int4_ord_ore, b eql_v3.int4_ord_ore) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int4_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore. +--! @param a eql_v3.int4_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.int4_ord_ore, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int4_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore. +--! @param a jsonb +--! @param b eql_v3.int4_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.int4_ord_ore) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int4_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore. +--! @param a eql_v3.int4_ord_ore +--! @param selector text +--! @return eql_v3.int4_ord_ore +CREATE FUNCTION eql_v3."->"(a eql_v3.int4_ord_ore, selector text) +RETURNS eql_v3.int4_ord_ore IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int4_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore. +--! @param a eql_v3.int4_ord_ore +--! @param selector integer +--! @return eql_v3.int4_ord_ore +CREATE FUNCTION eql_v3."->"(a eql_v3.int4_ord_ore, selector integer) +RETURNS eql_v3.int4_ord_ore IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int4_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore. +--! @param a jsonb +--! @param selector eql_v3.int4_ord_ore +--! @return eql_v3.int4_ord_ore +CREATE FUNCTION eql_v3."->"(a jsonb, selector eql_v3.int4_ord_ore) +RETURNS eql_v3.int4_ord_ore IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int4_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore. +--! @param a eql_v3.int4_ord_ore +--! @param selector text +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.int4_ord_ore, selector text) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int4_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore. +--! @param a eql_v3.int4_ord_ore +--! @param selector integer +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.int4_ord_ore, selector integer) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int4_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore. +--! @param a jsonb +--! @param selector eql_v3.int4_ord_ore +--! @return text +CREATE FUNCTION eql_v3."->>"(a jsonb, selector eql_v3.int4_ord_ore) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int4_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore. +--! @param a eql_v3.int4_ord_ore +--! @param b text +--! @return boolean +CREATE FUNCTION eql_v3."?"(a eql_v3.int4_ord_ore, b text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.int4_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore. +--! @param a eql_v3.int4_ord_ore +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?|"(a eql_v3.int4_ord_ore, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.int4_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore. +--! @param a eql_v3.int4_ord_ore +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?&"(a eql_v3.int4_ord_ore, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.int4_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore. +--! @param a eql_v3.int4_ord_ore +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@?"(a eql_v3.int4_ord_ore, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.int4_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore. +--! @param a eql_v3.int4_ord_ore +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@@"(a eql_v3.int4_ord_ore, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.int4_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore. +--! @param a eql_v3.int4_ord_ore +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#>"(a eql_v3.int4_ord_ore, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.int4_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore. +--! @param a eql_v3.int4_ord_ore +--! @param b text[] +--! @return text +CREATE FUNCTION eql_v3."#>>"(a eql_v3.int4_ord_ore, b text[]) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.int4_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore. +--! @param a eql_v3.int4_ord_ore +--! @param b text +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int4_ord_ore, b text) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int4_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore. +--! @param a eql_v3.int4_ord_ore +--! @param b integer +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int4_ord_ore, b integer) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int4_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore. +--! @param a eql_v3.int4_ord_ore +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int4_ord_ore, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int4_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore. +--! @param a eql_v3.int4_ord_ore +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#-"(a eql_v3.int4_ord_ore, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.int4_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore. +--! @param a eql_v3.int4_ord_ore +--! @param b eql_v3.int4_ord_ore +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.int4_ord_ore, b eql_v3.int4_ord_ore) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int4_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore. +--! @param a eql_v3.int4_ord_ore +--! @param b jsonb +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.int4_ord_ore, b jsonb) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int4_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore. +--! @param a jsonb +--! @param b eql_v3.int4_ord_ore +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a jsonb, b eql_v3.int4_ord_ore) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int4_ord_ore'; END; $$ +LANGUAGE plpgsql; +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/int4/int4_ord_ore_operators.sql +--! @brief Operators for eql_v3.int4_ord_ore. + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = eql_v3.int4_ord_ore, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = jsonb, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord_ore, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = eql_v3.int4_ord_ore, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = jsonb, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord_ore, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = eql_v3.int4_ord_ore, + COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = jsonb, + COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord_ore, + COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = eql_v3.int4_ord_ore, + COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = jsonb, + COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord_ore, + COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = eql_v3.int4_ord_ore, + COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = jsonb, + COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord_ore, + COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = eql_v3.int4_ord_ore, + COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = jsonb, + COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord_ore, + COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = eql_v3.int4_ord_ore +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = jsonb +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord_ore +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = eql_v3.int4_ord_ore +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = jsonb +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord_ore +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = text +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = integer +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord_ore +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = text +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = integer +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord_ore +); + +CREATE OPERATOR ? ( + FUNCTION = eql_v3."?", + LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = text +); + +CREATE OPERATOR ?| ( + FUNCTION = eql_v3."?|", + LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = text[] +); + +CREATE OPERATOR ?& ( + FUNCTION = eql_v3."?&", + LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = text[] +); + +CREATE OPERATOR @? ( + FUNCTION = eql_v3."@?", + LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = jsonpath +); + +CREATE OPERATOR @@ ( + FUNCTION = eql_v3."@@", + LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = jsonpath +); + +CREATE OPERATOR #> ( + FUNCTION = eql_v3."#>", + LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = text[] +); + +CREATE OPERATOR #>> ( + FUNCTION = eql_v3."#>>", + LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = text[] +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = text +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = integer +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = text[] +); + +CREATE OPERATOR #- ( + FUNCTION = eql_v3."#-", + LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = text[] +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = eql_v3.int4_ord_ore +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = jsonb +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord_ore +); +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/int4/int4_operators.sql +--! @brief Operators for eql_v3.int4. + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.int4, RIGHTARG = eql_v3.int4 +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.int4, RIGHTARG = jsonb +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = jsonb, RIGHTARG = eql_v3.int4 +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.int4, RIGHTARG = eql_v3.int4 +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.int4, RIGHTARG = jsonb +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = jsonb, RIGHTARG = eql_v3.int4 +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.int4, RIGHTARG = eql_v3.int4 +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.int4, RIGHTARG = jsonb +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = jsonb, RIGHTARG = eql_v3.int4 +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.int4, RIGHTARG = eql_v3.int4 +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.int4, RIGHTARG = jsonb +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = jsonb, RIGHTARG = eql_v3.int4 +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.int4, RIGHTARG = eql_v3.int4 +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.int4, RIGHTARG = jsonb +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = jsonb, RIGHTARG = eql_v3.int4 +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.int4, RIGHTARG = eql_v3.int4 +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.int4, RIGHTARG = jsonb +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = jsonb, RIGHTARG = eql_v3.int4 +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.int4, RIGHTARG = eql_v3.int4 +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.int4, RIGHTARG = jsonb +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = jsonb, RIGHTARG = eql_v3.int4 +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.int4, RIGHTARG = eql_v3.int4 +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.int4, RIGHTARG = jsonb +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = jsonb, RIGHTARG = eql_v3.int4 +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.int4, RIGHTARG = text +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.int4, RIGHTARG = integer +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = jsonb, RIGHTARG = eql_v3.int4 +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.int4, RIGHTARG = text +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.int4, RIGHTARG = integer +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = jsonb, RIGHTARG = eql_v3.int4 +); + +CREATE OPERATOR ? ( + FUNCTION = eql_v3."?", + LEFTARG = eql_v3.int4, RIGHTARG = text +); + +CREATE OPERATOR ?| ( + FUNCTION = eql_v3."?|", + LEFTARG = eql_v3.int4, RIGHTARG = text[] +); + +CREATE OPERATOR ?& ( + FUNCTION = eql_v3."?&", + LEFTARG = eql_v3.int4, RIGHTARG = text[] +); + +CREATE OPERATOR @? ( + FUNCTION = eql_v3."@?", + LEFTARG = eql_v3.int4, RIGHTARG = jsonpath +); + +CREATE OPERATOR @@ ( + FUNCTION = eql_v3."@@", + LEFTARG = eql_v3.int4, RIGHTARG = jsonpath +); + +CREATE OPERATOR #> ( + FUNCTION = eql_v3."#>", + LEFTARG = eql_v3.int4, RIGHTARG = text[] +); + +CREATE OPERATOR #>> ( + FUNCTION = eql_v3."#>>", + LEFTARG = eql_v3.int4, RIGHTARG = text[] +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int4, RIGHTARG = text +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int4, RIGHTARG = integer +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int4, RIGHTARG = text[] +); + +CREATE OPERATOR #- ( + FUNCTION = eql_v3."#-", + LEFTARG = eql_v3.int4, RIGHTARG = text[] +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.int4, RIGHTARG = eql_v3.int4 +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.int4, RIGHTARG = jsonb +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = jsonb, RIGHTARG = eql_v3.int4 +); +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/int4/int4_ord_ore_aggregates.sql +--! @brief Aggregates for eql_v3.int4_ord_ore. + +--! @brief State function for min on eql_v3.int4_ord_ore. +--! @param state eql_v3.int4_ord_ore +--! @param value eql_v3.int4_ord_ore +--! @return eql_v3.int4_ord_ore +CREATE FUNCTION eql_v3.min_sfunc(state eql_v3.int4_ord_ore, value eql_v3.int4_ord_ore) +RETURNS eql_v3.int4_ord_ore +LANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE +SET search_path = pg_catalog, extensions, public +AS $$ +BEGIN + IF value < state THEN + RETURN value; + END IF; + RETURN state; +END; +$$; + +--! @brief min aggregate for eql_v3.int4_ord_ore. +--! @param input eql_v3.int4_ord_ore +--! @return eql_v3.int4_ord_ore +CREATE AGGREGATE eql_v3.min(eql_v3.int4_ord_ore) ( + sfunc = eql_v3.min_sfunc, + stype = eql_v3.int4_ord_ore, + combinefunc = eql_v3.min_sfunc, + parallel = safe +); + +--! @brief State function for max on eql_v3.int4_ord_ore. +--! @param state eql_v3.int4_ord_ore +--! @param value eql_v3.int4_ord_ore +--! @return eql_v3.int4_ord_ore +CREATE FUNCTION eql_v3.max_sfunc(state eql_v3.int4_ord_ore, value eql_v3.int4_ord_ore) +RETURNS eql_v3.int4_ord_ore +LANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE +SET search_path = pg_catalog, extensions, public +AS $$ +BEGIN + IF value > state THEN + RETURN value; + END IF; + RETURN state; +END; +$$; + +--! @brief max aggregate for eql_v3.int4_ord_ore. +--! @param input eql_v3.int4_ord_ore +--! @return eql_v3.int4_ord_ore +CREATE AGGREGATE eql_v3.max(eql_v3.int4_ord_ore) ( + sfunc = eql_v3.max_sfunc, + stype = eql_v3.int4_ord_ore, + combinefunc = eql_v3.max_sfunc, + parallel = safe +); +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/timestamptz/timestamptz_functions.sql +--! @brief Functions for eql_v3.timestamptz. + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a eql_v3.timestamptz +--! @param b eql_v3.timestamptz +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.timestamptz, b eql_v3.timestamptz) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a eql_v3.timestamptz +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.timestamptz, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a jsonb +--! @param b eql_v3.timestamptz +--! @return boolean +CREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.timestamptz) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a eql_v3.timestamptz +--! @param b eql_v3.timestamptz +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.timestamptz, b eql_v3.timestamptz) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a eql_v3.timestamptz +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.timestamptz, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a jsonb +--! @param b eql_v3.timestamptz +--! @return boolean +CREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.timestamptz) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a eql_v3.timestamptz +--! @param b eql_v3.timestamptz +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.timestamptz, b eql_v3.timestamptz) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a eql_v3.timestamptz +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.timestamptz, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a jsonb +--! @param b eql_v3.timestamptz +--! @return boolean +CREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.timestamptz) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a eql_v3.timestamptz +--! @param b eql_v3.timestamptz +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.timestamptz, b eql_v3.timestamptz) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a eql_v3.timestamptz +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.timestamptz, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a jsonb +--! @param b eql_v3.timestamptz +--! @return boolean +CREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.timestamptz) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a eql_v3.timestamptz +--! @param b eql_v3.timestamptz +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.timestamptz, b eql_v3.timestamptz) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a eql_v3.timestamptz +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.timestamptz, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a jsonb +--! @param b eql_v3.timestamptz +--! @return boolean +CREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.timestamptz) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a eql_v3.timestamptz +--! @param b eql_v3.timestamptz +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.timestamptz, b eql_v3.timestamptz) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a eql_v3.timestamptz +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.timestamptz, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a jsonb +--! @param b eql_v3.timestamptz +--! @return boolean +CREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.timestamptz) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a eql_v3.timestamptz +--! @param b eql_v3.timestamptz +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.timestamptz, b eql_v3.timestamptz) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a eql_v3.timestamptz +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.timestamptz, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a jsonb +--! @param b eql_v3.timestamptz +--! @return boolean +CREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.timestamptz) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a eql_v3.timestamptz +--! @param b eql_v3.timestamptz +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.timestamptz, b eql_v3.timestamptz) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a eql_v3.timestamptz +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.timestamptz, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a jsonb +--! @param b eql_v3.timestamptz +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.timestamptz) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a eql_v3.timestamptz +--! @param selector text +--! @return eql_v3.timestamptz +CREATE FUNCTION eql_v3."->"(a eql_v3.timestamptz, selector text) +RETURNS eql_v3.timestamptz IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a eql_v3.timestamptz +--! @param selector integer +--! @return eql_v3.timestamptz +CREATE FUNCTION eql_v3."->"(a eql_v3.timestamptz, selector integer) +RETURNS eql_v3.timestamptz IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a jsonb +--! @param selector eql_v3.timestamptz +--! @return eql_v3.timestamptz +CREATE FUNCTION eql_v3."->"(a jsonb, selector eql_v3.timestamptz) +RETURNS eql_v3.timestamptz IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a eql_v3.timestamptz +--! @param selector text +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.timestamptz, selector text) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a eql_v3.timestamptz +--! @param selector integer +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.timestamptz, selector integer) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a jsonb +--! @param selector eql_v3.timestamptz +--! @return text +CREATE FUNCTION eql_v3."->>"(a jsonb, selector eql_v3.timestamptz) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a eql_v3.timestamptz +--! @param b text +--! @return boolean +CREATE FUNCTION eql_v3."?"(a eql_v3.timestamptz, b text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a eql_v3.timestamptz +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?|"(a eql_v3.timestamptz, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a eql_v3.timestamptz +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?&"(a eql_v3.timestamptz, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a eql_v3.timestamptz +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@?"(a eql_v3.timestamptz, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a eql_v3.timestamptz +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@@"(a eql_v3.timestamptz, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a eql_v3.timestamptz +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#>"(a eql_v3.timestamptz, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a eql_v3.timestamptz +--! @param b text[] +--! @return text +CREATE FUNCTION eql_v3."#>>"(a eql_v3.timestamptz, b text[]) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a eql_v3.timestamptz +--! @param b text +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.timestamptz, b text) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a eql_v3.timestamptz +--! @param b integer +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.timestamptz, b integer) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a eql_v3.timestamptz +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.timestamptz, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a eql_v3.timestamptz +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#-"(a eql_v3.timestamptz, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a eql_v3.timestamptz +--! @param b eql_v3.timestamptz +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.timestamptz, b eql_v3.timestamptz) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a eql_v3.timestamptz +--! @param b jsonb +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.timestamptz, b jsonb) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a jsonb +--! @param b eql_v3.timestamptz +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a jsonb, b eql_v3.timestamptz) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/timestamptz/timestamptz_eq_operators.sql +--! @brief Operators for eql_v3.timestamptz_eq. + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = eql_v3.timestamptz_eq, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = jsonb, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz_eq, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = eql_v3.timestamptz_eq, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = jsonb, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz_eq, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = eql_v3.timestamptz_eq +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz_eq +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = eql_v3.timestamptz_eq +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz_eq +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = eql_v3.timestamptz_eq +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz_eq +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = eql_v3.timestamptz_eq +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz_eq +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = eql_v3.timestamptz_eq +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz_eq +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = eql_v3.timestamptz_eq +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz_eq +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = text +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = integer +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz_eq +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = text +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = integer +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz_eq +); + +CREATE OPERATOR ? ( + FUNCTION = eql_v3."?", + LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = text +); + +CREATE OPERATOR ?| ( + FUNCTION = eql_v3."?|", + LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = text[] +); + +CREATE OPERATOR ?& ( + FUNCTION = eql_v3."?&", + LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = text[] +); + +CREATE OPERATOR @? ( + FUNCTION = eql_v3."@?", + LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = jsonpath +); + +CREATE OPERATOR @@ ( + FUNCTION = eql_v3."@@", + LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = jsonpath +); + +CREATE OPERATOR #> ( + FUNCTION = eql_v3."#>", + LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = text[] +); + +CREATE OPERATOR #>> ( + FUNCTION = eql_v3."#>>", + LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = text[] +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = text +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = integer +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = text[] +); + +CREATE OPERATOR #- ( + FUNCTION = eql_v3."#-", + LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = text[] +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = eql_v3.timestamptz_eq +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz_eq +); +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/timestamptz/timestamptz_operators.sql +--! @brief Operators for eql_v3.timestamptz. + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.timestamptz, RIGHTARG = eql_v3.timestamptz +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.timestamptz, RIGHTARG = jsonb +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.timestamptz, RIGHTARG = eql_v3.timestamptz +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.timestamptz, RIGHTARG = jsonb +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.timestamptz, RIGHTARG = eql_v3.timestamptz +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.timestamptz, RIGHTARG = jsonb +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.timestamptz, RIGHTARG = eql_v3.timestamptz +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.timestamptz, RIGHTARG = jsonb +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.timestamptz, RIGHTARG = eql_v3.timestamptz +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.timestamptz, RIGHTARG = jsonb +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.timestamptz, RIGHTARG = eql_v3.timestamptz +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.timestamptz, RIGHTARG = jsonb +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.timestamptz, RIGHTARG = eql_v3.timestamptz +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.timestamptz, RIGHTARG = jsonb +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.timestamptz, RIGHTARG = eql_v3.timestamptz +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.timestamptz, RIGHTARG = jsonb +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.timestamptz, RIGHTARG = text +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.timestamptz, RIGHTARG = integer +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.timestamptz, RIGHTARG = text +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.timestamptz, RIGHTARG = integer +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz +); + +CREATE OPERATOR ? ( + FUNCTION = eql_v3."?", + LEFTARG = eql_v3.timestamptz, RIGHTARG = text +); + +CREATE OPERATOR ?| ( + FUNCTION = eql_v3."?|", + LEFTARG = eql_v3.timestamptz, RIGHTARG = text[] +); + +CREATE OPERATOR ?& ( + FUNCTION = eql_v3."?&", + LEFTARG = eql_v3.timestamptz, RIGHTARG = text[] +); + +CREATE OPERATOR @? ( + FUNCTION = eql_v3."@?", + LEFTARG = eql_v3.timestamptz, RIGHTARG = jsonpath +); + +CREATE OPERATOR @@ ( + FUNCTION = eql_v3."@@", + LEFTARG = eql_v3.timestamptz, RIGHTARG = jsonpath +); + +CREATE OPERATOR #> ( + FUNCTION = eql_v3."#>", + LEFTARG = eql_v3.timestamptz, RIGHTARG = text[] +); + +CREATE OPERATOR #>> ( + FUNCTION = eql_v3."#>>", + LEFTARG = eql_v3.timestamptz, RIGHTARG = text[] +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.timestamptz, RIGHTARG = text +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.timestamptz, RIGHTARG = integer +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.timestamptz, RIGHTARG = text[] +); + +CREATE OPERATOR #- ( + FUNCTION = eql_v3."#-", + LEFTARG = eql_v3.timestamptz, RIGHTARG = text[] +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.timestamptz, RIGHTARG = eql_v3.timestamptz +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.timestamptz, RIGHTARG = jsonb +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz +); +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/int2/int2_eq_functions.sql +--! @brief Functions for eql_v3.int2_eq. + +--! @brief Index extractor for eql_v3.int2_eq. +--! @param a eql_v3.int2_eq +--! @return eql_v3.hmac_256 +CREATE FUNCTION eql_v3.eq_term(a eql_v3.int2_eq) +RETURNS eql_v3.hmac_256 +LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.hmac_256(a::jsonb) $$; + +--! @brief Operator wrapper for eql_v3.int2_eq. +--! @param a eql_v3.int2_eq +--! @param b eql_v3.int2_eq +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.int2_eq, b eql_v3.int2_eq) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a) = eql_v3.eq_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int2_eq. +--! @param a eql_v3.int2_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.int2_eq, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a) = eql_v3.eq_term(b::eql_v3.int2_eq) $$; + +--! @brief Operator wrapper for eql_v3.int2_eq. +--! @param a jsonb +--! @param b eql_v3.int2_eq +--! @return boolean +CREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.int2_eq) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a::eql_v3.int2_eq) = eql_v3.eq_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int2_eq. +--! @param a eql_v3.int2_eq +--! @param b eql_v3.int2_eq +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.int2_eq, b eql_v3.int2_eq) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a) <> eql_v3.eq_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int2_eq. +--! @param a eql_v3.int2_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.int2_eq, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a) <> eql_v3.eq_term(b::eql_v3.int2_eq) $$; + +--! @brief Operator wrapper for eql_v3.int2_eq. +--! @param a jsonb +--! @param b eql_v3.int2_eq +--! @return boolean +CREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.int2_eq) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a::eql_v3.int2_eq) <> eql_v3.eq_term(b) $$; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a eql_v3.int2_eq +--! @param b eql_v3.int2_eq +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.int2_eq, b eql_v3.int2_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a eql_v3.int2_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.int2_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a jsonb +--! @param b eql_v3.int2_eq +--! @return boolean +CREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.int2_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a eql_v3.int2_eq +--! @param b eql_v3.int2_eq +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.int2_eq, b eql_v3.int2_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a eql_v3.int2_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.int2_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a jsonb +--! @param b eql_v3.int2_eq +--! @return boolean +CREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.int2_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a eql_v3.int2_eq +--! @param b eql_v3.int2_eq +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.int2_eq, b eql_v3.int2_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a eql_v3.int2_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.int2_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a jsonb +--! @param b eql_v3.int2_eq +--! @return boolean +CREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.int2_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a eql_v3.int2_eq +--! @param b eql_v3.int2_eq +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.int2_eq, b eql_v3.int2_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a eql_v3.int2_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.int2_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a jsonb +--! @param b eql_v3.int2_eq +--! @return boolean +CREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.int2_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a eql_v3.int2_eq +--! @param b eql_v3.int2_eq +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.int2_eq, b eql_v3.int2_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a eql_v3.int2_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.int2_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a jsonb +--! @param b eql_v3.int2_eq +--! @return boolean +CREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.int2_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a eql_v3.int2_eq +--! @param b eql_v3.int2_eq +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.int2_eq, b eql_v3.int2_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a eql_v3.int2_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.int2_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a jsonb +--! @param b eql_v3.int2_eq +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.int2_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a eql_v3.int2_eq +--! @param selector text +--! @return eql_v3.int2_eq +CREATE FUNCTION eql_v3."->"(a eql_v3.int2_eq, selector text) +RETURNS eql_v3.int2_eq IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a eql_v3.int2_eq +--! @param selector integer +--! @return eql_v3.int2_eq +CREATE FUNCTION eql_v3."->"(a eql_v3.int2_eq, selector integer) +RETURNS eql_v3.int2_eq IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a jsonb +--! @param selector eql_v3.int2_eq +--! @return eql_v3.int2_eq +CREATE FUNCTION eql_v3."->"(a jsonb, selector eql_v3.int2_eq) +RETURNS eql_v3.int2_eq IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a eql_v3.int2_eq +--! @param selector text +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.int2_eq, selector text) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a eql_v3.int2_eq +--! @param selector integer +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.int2_eq, selector integer) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a jsonb +--! @param selector eql_v3.int2_eq +--! @return text +CREATE FUNCTION eql_v3."->>"(a jsonb, selector eql_v3.int2_eq) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a eql_v3.int2_eq +--! @param b text +--! @return boolean +CREATE FUNCTION eql_v3."?"(a eql_v3.int2_eq, b text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a eql_v3.int2_eq +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?|"(a eql_v3.int2_eq, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a eql_v3.int2_eq +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?&"(a eql_v3.int2_eq, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a eql_v3.int2_eq +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@?"(a eql_v3.int2_eq, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a eql_v3.int2_eq +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@@"(a eql_v3.int2_eq, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a eql_v3.int2_eq +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#>"(a eql_v3.int2_eq, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a eql_v3.int2_eq +--! @param b text[] +--! @return text +CREATE FUNCTION eql_v3."#>>"(a eql_v3.int2_eq, b text[]) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a eql_v3.int2_eq +--! @param b text +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int2_eq, b text) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a eql_v3.int2_eq +--! @param b integer +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int2_eq, b integer) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a eql_v3.int2_eq +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int2_eq, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a eql_v3.int2_eq +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#-"(a eql_v3.int2_eq, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a eql_v3.int2_eq +--! @param b eql_v3.int2_eq +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.int2_eq, b eql_v3.int2_eq) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a eql_v3.int2_eq +--! @param b jsonb +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.int2_eq, b jsonb) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a jsonb +--! @param b eql_v3.int2_eq +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a jsonb, b eql_v3.int2_eq) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/int2/int2_ord_aggregates.sql +--! @brief Aggregates for eql_v3.int2_ord. + +--! @brief State function for min on eql_v3.int2_ord. +--! @param state eql_v3.int2_ord +--! @param value eql_v3.int2_ord +--! @return eql_v3.int2_ord +CREATE FUNCTION eql_v3.min_sfunc(state eql_v3.int2_ord, value eql_v3.int2_ord) +RETURNS eql_v3.int2_ord +LANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE +SET search_path = pg_catalog, extensions, public +AS $$ +BEGIN + IF value < state THEN + RETURN value; + END IF; + RETURN state; +END; +$$; + +--! @brief min aggregate for eql_v3.int2_ord. +--! @param input eql_v3.int2_ord +--! @return eql_v3.int2_ord +CREATE AGGREGATE eql_v3.min(eql_v3.int2_ord) ( + sfunc = eql_v3.min_sfunc, + stype = eql_v3.int2_ord, + combinefunc = eql_v3.min_sfunc, + parallel = safe +); + +--! @brief State function for max on eql_v3.int2_ord. +--! @param state eql_v3.int2_ord +--! @param value eql_v3.int2_ord +--! @return eql_v3.int2_ord +CREATE FUNCTION eql_v3.max_sfunc(state eql_v3.int2_ord, value eql_v3.int2_ord) +RETURNS eql_v3.int2_ord +LANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE +SET search_path = pg_catalog, extensions, public +AS $$ +BEGIN + IF value > state THEN + RETURN value; + END IF; + RETURN state; +END; +$$; + +--! @brief max aggregate for eql_v3.int2_ord. +--! @param input eql_v3.int2_ord +--! @return eql_v3.int2_ord +CREATE AGGREGATE eql_v3.max(eql_v3.int2_ord) ( + sfunc = eql_v3.max_sfunc, + stype = eql_v3.int2_ord, + combinefunc = eql_v3.max_sfunc, + parallel = safe +); +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/int2/int2_operators.sql +--! @brief Operators for eql_v3.int2. + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.int2, RIGHTARG = eql_v3.int2 +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.int2, RIGHTARG = jsonb +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = jsonb, RIGHTARG = eql_v3.int2 +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.int2, RIGHTARG = eql_v3.int2 +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.int2, RIGHTARG = jsonb +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = jsonb, RIGHTARG = eql_v3.int2 +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.int2, RIGHTARG = eql_v3.int2 +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.int2, RIGHTARG = jsonb +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = jsonb, RIGHTARG = eql_v3.int2 +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.int2, RIGHTARG = eql_v3.int2 +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.int2, RIGHTARG = jsonb +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = jsonb, RIGHTARG = eql_v3.int2 +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.int2, RIGHTARG = eql_v3.int2 +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.int2, RIGHTARG = jsonb +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = jsonb, RIGHTARG = eql_v3.int2 +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.int2, RIGHTARG = eql_v3.int2 +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.int2, RIGHTARG = jsonb +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = jsonb, RIGHTARG = eql_v3.int2 +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.int2, RIGHTARG = eql_v3.int2 +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.int2, RIGHTARG = jsonb +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = jsonb, RIGHTARG = eql_v3.int2 +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.int2, RIGHTARG = eql_v3.int2 +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.int2, RIGHTARG = jsonb +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = jsonb, RIGHTARG = eql_v3.int2 +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.int2, RIGHTARG = text +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.int2, RIGHTARG = integer +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = jsonb, RIGHTARG = eql_v3.int2 +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.int2, RIGHTARG = text +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.int2, RIGHTARG = integer +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = jsonb, RIGHTARG = eql_v3.int2 +); + +CREATE OPERATOR ? ( + FUNCTION = eql_v3."?", + LEFTARG = eql_v3.int2, RIGHTARG = text +); + +CREATE OPERATOR ?| ( + FUNCTION = eql_v3."?|", + LEFTARG = eql_v3.int2, RIGHTARG = text[] +); + +CREATE OPERATOR ?& ( + FUNCTION = eql_v3."?&", + LEFTARG = eql_v3.int2, RIGHTARG = text[] +); + +CREATE OPERATOR @? ( + FUNCTION = eql_v3."@?", + LEFTARG = eql_v3.int2, RIGHTARG = jsonpath +); + +CREATE OPERATOR @@ ( + FUNCTION = eql_v3."@@", + LEFTARG = eql_v3.int2, RIGHTARG = jsonpath +); + +CREATE OPERATOR #> ( + FUNCTION = eql_v3."#>", + LEFTARG = eql_v3.int2, RIGHTARG = text[] +); + +CREATE OPERATOR #>> ( + FUNCTION = eql_v3."#>>", + LEFTARG = eql_v3.int2, RIGHTARG = text[] +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int2, RIGHTARG = text +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int2, RIGHTARG = integer +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int2, RIGHTARG = text[] +); + +CREATE OPERATOR #- ( + FUNCTION = eql_v3."#-", + LEFTARG = eql_v3.int2, RIGHTARG = text[] +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.int2, RIGHTARG = eql_v3.int2 +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.int2, RIGHTARG = jsonb +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = jsonb, RIGHTARG = eql_v3.int2 +); +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/int2/int2_eq_operators.sql +--! @brief Operators for eql_v3.int2_eq. + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.int2_eq, RIGHTARG = eql_v3.int2_eq, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.int2_eq, RIGHTARG = jsonb, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = jsonb, RIGHTARG = eql_v3.int2_eq, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.int2_eq, RIGHTARG = eql_v3.int2_eq, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.int2_eq, RIGHTARG = jsonb, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = jsonb, RIGHTARG = eql_v3.int2_eq, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.int2_eq, RIGHTARG = eql_v3.int2_eq +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.int2_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = jsonb, RIGHTARG = eql_v3.int2_eq +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.int2_eq, RIGHTARG = eql_v3.int2_eq +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.int2_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = jsonb, RIGHTARG = eql_v3.int2_eq +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.int2_eq, RIGHTARG = eql_v3.int2_eq +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.int2_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = jsonb, RIGHTARG = eql_v3.int2_eq +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.int2_eq, RIGHTARG = eql_v3.int2_eq +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.int2_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = jsonb, RIGHTARG = eql_v3.int2_eq +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.int2_eq, RIGHTARG = eql_v3.int2_eq +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.int2_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = jsonb, RIGHTARG = eql_v3.int2_eq +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.int2_eq, RIGHTARG = eql_v3.int2_eq +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.int2_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = jsonb, RIGHTARG = eql_v3.int2_eq +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.int2_eq, RIGHTARG = text +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.int2_eq, RIGHTARG = integer +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = jsonb, RIGHTARG = eql_v3.int2_eq +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.int2_eq, RIGHTARG = text +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.int2_eq, RIGHTARG = integer +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = jsonb, RIGHTARG = eql_v3.int2_eq +); + +CREATE OPERATOR ? ( + FUNCTION = eql_v3."?", + LEFTARG = eql_v3.int2_eq, RIGHTARG = text +); + +CREATE OPERATOR ?| ( + FUNCTION = eql_v3."?|", + LEFTARG = eql_v3.int2_eq, RIGHTARG = text[] +); + +CREATE OPERATOR ?& ( + FUNCTION = eql_v3."?&", + LEFTARG = eql_v3.int2_eq, RIGHTARG = text[] +); + +CREATE OPERATOR @? ( + FUNCTION = eql_v3."@?", + LEFTARG = eql_v3.int2_eq, RIGHTARG = jsonpath +); + +CREATE OPERATOR @@ ( + FUNCTION = eql_v3."@@", + LEFTARG = eql_v3.int2_eq, RIGHTARG = jsonpath +); + +CREATE OPERATOR #> ( + FUNCTION = eql_v3."#>", + LEFTARG = eql_v3.int2_eq, RIGHTARG = text[] +); + +CREATE OPERATOR #>> ( + FUNCTION = eql_v3."#>>", + LEFTARG = eql_v3.int2_eq, RIGHTARG = text[] +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int2_eq, RIGHTARG = text +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int2_eq, RIGHTARG = integer +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int2_eq, RIGHTARG = text[] +); + +CREATE OPERATOR #- ( + FUNCTION = eql_v3."#-", + LEFTARG = eql_v3.int2_eq, RIGHTARG = text[] +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.int2_eq, RIGHTARG = eql_v3.int2_eq +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.int2_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = jsonb, RIGHTARG = eql_v3.int2_eq +); +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/int2/int2_ord_ore_aggregates.sql +--! @brief Aggregates for eql_v3.int2_ord_ore. + +--! @brief State function for min on eql_v3.int2_ord_ore. +--! @param state eql_v3.int2_ord_ore +--! @param value eql_v3.int2_ord_ore +--! @return eql_v3.int2_ord_ore +CREATE FUNCTION eql_v3.min_sfunc(state eql_v3.int2_ord_ore, value eql_v3.int2_ord_ore) +RETURNS eql_v3.int2_ord_ore +LANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE +SET search_path = pg_catalog, extensions, public +AS $$ +BEGIN + IF value < state THEN + RETURN value; + END IF; + RETURN state; +END; +$$; + +--! @brief min aggregate for eql_v3.int2_ord_ore. +--! @param input eql_v3.int2_ord_ore +--! @return eql_v3.int2_ord_ore +CREATE AGGREGATE eql_v3.min(eql_v3.int2_ord_ore) ( + sfunc = eql_v3.min_sfunc, + stype = eql_v3.int2_ord_ore, + combinefunc = eql_v3.min_sfunc, + parallel = safe +); + +--! @brief State function for max on eql_v3.int2_ord_ore. +--! @param state eql_v3.int2_ord_ore +--! @param value eql_v3.int2_ord_ore +--! @return eql_v3.int2_ord_ore +CREATE FUNCTION eql_v3.max_sfunc(state eql_v3.int2_ord_ore, value eql_v3.int2_ord_ore) +RETURNS eql_v3.int2_ord_ore +LANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE +SET search_path = pg_catalog, extensions, public +AS $$ +BEGIN + IF value > state THEN + RETURN value; + END IF; + RETURN state; +END; +$$; + +--! @brief max aggregate for eql_v3.int2_ord_ore. +--! @param input eql_v3.int2_ord_ore +--! @return eql_v3.int2_ord_ore +CREATE AGGREGATE eql_v3.max(eql_v3.int2_ord_ore) ( + sfunc = eql_v3.max_sfunc, + stype = eql_v3.int2_ord_ore, + combinefunc = eql_v3.max_sfunc, + parallel = safe +); +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/date/date_ord_functions.sql +--! @brief Functions for eql_v3.date_ord. + +--! @brief Index extractor for eql_v3.date_ord. +--! @param a eql_v3.date_ord +--! @return eql_v3.ore_block_u64_8_256 +CREATE FUNCTION eql_v3.ord_term(a eql_v3.date_ord) +RETURNS eql_v3.ore_block_u64_8_256 +LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ore_block_u64_8_256(a::jsonb) $$; + +--! @brief Operator wrapper for eql_v3.date_ord. +--! @param a eql_v3.date_ord +--! @param b eql_v3.date_ord +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.date_ord, b eql_v3.date_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.date_ord. +--! @param a eql_v3.date_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.date_ord, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b::eql_v3.date_ord) $$; + +--! @brief Operator wrapper for eql_v3.date_ord. +--! @param a jsonb +--! @param b eql_v3.date_ord +--! @return boolean +CREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.date_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.date_ord) = eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.date_ord. +--! @param a eql_v3.date_ord +--! @param b eql_v3.date_ord +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.date_ord, b eql_v3.date_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.date_ord. +--! @param a eql_v3.date_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.date_ord, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b::eql_v3.date_ord) $$; + +--! @brief Operator wrapper for eql_v3.date_ord. +--! @param a jsonb +--! @param b eql_v3.date_ord +--! @return boolean +CREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.date_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.date_ord) <> eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.date_ord. +--! @param a eql_v3.date_ord +--! @param b eql_v3.date_ord +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.date_ord, b eql_v3.date_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.date_ord. +--! @param a eql_v3.date_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.date_ord, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b::eql_v3.date_ord) $$; + +--! @brief Operator wrapper for eql_v3.date_ord. +--! @param a jsonb +--! @param b eql_v3.date_ord +--! @return boolean +CREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.date_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.date_ord) < eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.date_ord. +--! @param a eql_v3.date_ord +--! @param b eql_v3.date_ord +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.date_ord, b eql_v3.date_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.date_ord. +--! @param a eql_v3.date_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.date_ord, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b::eql_v3.date_ord) $$; + +--! @brief Operator wrapper for eql_v3.date_ord. +--! @param a jsonb +--! @param b eql_v3.date_ord +--! @return boolean +CREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.date_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.date_ord) <= eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.date_ord. +--! @param a eql_v3.date_ord +--! @param b eql_v3.date_ord +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.date_ord, b eql_v3.date_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.date_ord. +--! @param a eql_v3.date_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.date_ord, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b::eql_v3.date_ord) $$; + +--! @brief Operator wrapper for eql_v3.date_ord. +--! @param a jsonb +--! @param b eql_v3.date_ord +--! @return boolean +CREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.date_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.date_ord) > eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.date_ord. +--! @param a eql_v3.date_ord +--! @param b eql_v3.date_ord +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.date_ord, b eql_v3.date_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.date_ord. +--! @param a eql_v3.date_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.date_ord, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b::eql_v3.date_ord) $$; + +--! @brief Operator wrapper for eql_v3.date_ord. +--! @param a jsonb +--! @param b eql_v3.date_ord +--! @return boolean +CREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.date_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.date_ord) >= eql_v3.ord_term(b) $$; + +--! @brief Unsupported operator blocker for eql_v3.date_ord. +--! @param a eql_v3.date_ord +--! @param b eql_v3.date_ord +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.date_ord, b eql_v3.date_ord) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.date_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord. +--! @param a eql_v3.date_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.date_ord, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.date_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord. +--! @param a jsonb +--! @param b eql_v3.date_ord +--! @return boolean +CREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.date_ord) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.date_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord. +--! @param a eql_v3.date_ord +--! @param b eql_v3.date_ord +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.date_ord, b eql_v3.date_ord) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.date_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord. +--! @param a eql_v3.date_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.date_ord, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.date_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord. +--! @param a jsonb +--! @param b eql_v3.date_ord +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.date_ord) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.date_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord. +--! @param a eql_v3.date_ord +--! @param selector text +--! @return eql_v3.date_ord +CREATE FUNCTION eql_v3."->"(a eql_v3.date_ord, selector text) +RETURNS eql_v3.date_ord IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.date_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord. +--! @param a eql_v3.date_ord +--! @param selector integer +--! @return eql_v3.date_ord +CREATE FUNCTION eql_v3."->"(a eql_v3.date_ord, selector integer) +RETURNS eql_v3.date_ord IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.date_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord. +--! @param a jsonb +--! @param selector eql_v3.date_ord +--! @return eql_v3.date_ord +CREATE FUNCTION eql_v3."->"(a jsonb, selector eql_v3.date_ord) +RETURNS eql_v3.date_ord IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.date_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord. +--! @param a eql_v3.date_ord +--! @param selector text +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.date_ord, selector text) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.date_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord. +--! @param a eql_v3.date_ord +--! @param selector integer +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.date_ord, selector integer) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.date_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord. +--! @param a jsonb +--! @param selector eql_v3.date_ord +--! @return text +CREATE FUNCTION eql_v3."->>"(a jsonb, selector eql_v3.date_ord) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.date_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord. +--! @param a eql_v3.date_ord +--! @param b text +--! @return boolean +CREATE FUNCTION eql_v3."?"(a eql_v3.date_ord, b text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.date_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord. +--! @param a eql_v3.date_ord +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?|"(a eql_v3.date_ord, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.date_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord. +--! @param a eql_v3.date_ord +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?&"(a eql_v3.date_ord, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.date_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord. +--! @param a eql_v3.date_ord +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@?"(a eql_v3.date_ord, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.date_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord. +--! @param a eql_v3.date_ord +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@@"(a eql_v3.date_ord, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.date_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord. +--! @param a eql_v3.date_ord +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#>"(a eql_v3.date_ord, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.date_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord. +--! @param a eql_v3.date_ord +--! @param b text[] +--! @return text +CREATE FUNCTION eql_v3."#>>"(a eql_v3.date_ord, b text[]) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.date_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord. +--! @param a eql_v3.date_ord +--! @param b text +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.date_ord, b text) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.date_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord. +--! @param a eql_v3.date_ord +--! @param b integer +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.date_ord, b integer) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.date_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord. +--! @param a eql_v3.date_ord +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.date_ord, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.date_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord. +--! @param a eql_v3.date_ord +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#-"(a eql_v3.date_ord, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.date_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord. +--! @param a eql_v3.date_ord +--! @param b eql_v3.date_ord +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.date_ord, b eql_v3.date_ord) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.date_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord. +--! @param a eql_v3.date_ord +--! @param b jsonb +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.date_ord, b jsonb) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.date_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord. +--! @param a jsonb +--! @param b eql_v3.date_ord +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a jsonb, b eql_v3.date_ord) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.date_ord'; END; $$ +LANGUAGE plpgsql; +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/date/date_eq_operators.sql +--! @brief Operators for eql_v3.date_eq. + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.date_eq, RIGHTARG = eql_v3.date_eq, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.date_eq, RIGHTARG = jsonb, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = jsonb, RIGHTARG = eql_v3.date_eq, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.date_eq, RIGHTARG = eql_v3.date_eq, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.date_eq, RIGHTARG = jsonb, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = jsonb, RIGHTARG = eql_v3.date_eq, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.date_eq, RIGHTARG = eql_v3.date_eq +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.date_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = jsonb, RIGHTARG = eql_v3.date_eq +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.date_eq, RIGHTARG = eql_v3.date_eq +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.date_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = jsonb, RIGHTARG = eql_v3.date_eq +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.date_eq, RIGHTARG = eql_v3.date_eq +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.date_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = jsonb, RIGHTARG = eql_v3.date_eq +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.date_eq, RIGHTARG = eql_v3.date_eq +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.date_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = jsonb, RIGHTARG = eql_v3.date_eq +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.date_eq, RIGHTARG = eql_v3.date_eq +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.date_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = jsonb, RIGHTARG = eql_v3.date_eq +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.date_eq, RIGHTARG = eql_v3.date_eq +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.date_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = jsonb, RIGHTARG = eql_v3.date_eq +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.date_eq, RIGHTARG = text +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.date_eq, RIGHTARG = integer +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = jsonb, RIGHTARG = eql_v3.date_eq +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.date_eq, RIGHTARG = text +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.date_eq, RIGHTARG = integer +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = jsonb, RIGHTARG = eql_v3.date_eq +); + +CREATE OPERATOR ? ( + FUNCTION = eql_v3."?", + LEFTARG = eql_v3.date_eq, RIGHTARG = text +); + +CREATE OPERATOR ?| ( + FUNCTION = eql_v3."?|", + LEFTARG = eql_v3.date_eq, RIGHTARG = text[] +); + +CREATE OPERATOR ?& ( + FUNCTION = eql_v3."?&", + LEFTARG = eql_v3.date_eq, RIGHTARG = text[] +); + +CREATE OPERATOR @? ( + FUNCTION = eql_v3."@?", + LEFTARG = eql_v3.date_eq, RIGHTARG = jsonpath +); + +CREATE OPERATOR @@ ( + FUNCTION = eql_v3."@@", + LEFTARG = eql_v3.date_eq, RIGHTARG = jsonpath +); + +CREATE OPERATOR #> ( + FUNCTION = eql_v3."#>", + LEFTARG = eql_v3.date_eq, RIGHTARG = text[] +); + +CREATE OPERATOR #>> ( + FUNCTION = eql_v3."#>>", + LEFTARG = eql_v3.date_eq, RIGHTARG = text[] +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.date_eq, RIGHTARG = text +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.date_eq, RIGHTARG = integer +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.date_eq, RIGHTARG = text[] +); + +CREATE OPERATOR #- ( + FUNCTION = eql_v3."#-", + LEFTARG = eql_v3.date_eq, RIGHTARG = text[] +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.date_eq, RIGHTARG = eql_v3.date_eq +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.date_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = jsonb, RIGHTARG = eql_v3.date_eq +); +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/date/date_operators.sql +--! @brief Operators for eql_v3.date. + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.date, RIGHTARG = eql_v3.date +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.date, RIGHTARG = jsonb +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = jsonb, RIGHTARG = eql_v3.date +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.date, RIGHTARG = eql_v3.date +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.date, RIGHTARG = jsonb +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = jsonb, RIGHTARG = eql_v3.date +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.date, RIGHTARG = eql_v3.date +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.date, RIGHTARG = jsonb +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = jsonb, RIGHTARG = eql_v3.date +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.date, RIGHTARG = eql_v3.date +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.date, RIGHTARG = jsonb +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = jsonb, RIGHTARG = eql_v3.date +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.date, RIGHTARG = eql_v3.date +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.date, RIGHTARG = jsonb +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = jsonb, RIGHTARG = eql_v3.date +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.date, RIGHTARG = eql_v3.date +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.date, RIGHTARG = jsonb +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = jsonb, RIGHTARG = eql_v3.date +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.date, RIGHTARG = eql_v3.date +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.date, RIGHTARG = jsonb +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = jsonb, RIGHTARG = eql_v3.date +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.date, RIGHTARG = eql_v3.date +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.date, RIGHTARG = jsonb +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = jsonb, RIGHTARG = eql_v3.date +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.date, RIGHTARG = text +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.date, RIGHTARG = integer +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = jsonb, RIGHTARG = eql_v3.date +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.date, RIGHTARG = text +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.date, RIGHTARG = integer +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = jsonb, RIGHTARG = eql_v3.date +); + +CREATE OPERATOR ? ( + FUNCTION = eql_v3."?", + LEFTARG = eql_v3.date, RIGHTARG = text +); + +CREATE OPERATOR ?| ( + FUNCTION = eql_v3."?|", + LEFTARG = eql_v3.date, RIGHTARG = text[] +); + +CREATE OPERATOR ?& ( + FUNCTION = eql_v3."?&", + LEFTARG = eql_v3.date, RIGHTARG = text[] +); + +CREATE OPERATOR @? ( + FUNCTION = eql_v3."@?", + LEFTARG = eql_v3.date, RIGHTARG = jsonpath +); + +CREATE OPERATOR @@ ( + FUNCTION = eql_v3."@@", + LEFTARG = eql_v3.date, RIGHTARG = jsonpath +); + +CREATE OPERATOR #> ( + FUNCTION = eql_v3."#>", + LEFTARG = eql_v3.date, RIGHTARG = text[] +); + +CREATE OPERATOR #>> ( + FUNCTION = eql_v3."#>>", + LEFTARG = eql_v3.date, RIGHTARG = text[] +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.date, RIGHTARG = text +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.date, RIGHTARG = integer +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.date, RIGHTARG = text[] +); + +CREATE OPERATOR #- ( + FUNCTION = eql_v3."#-", + LEFTARG = eql_v3.date, RIGHTARG = text[] +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.date, RIGHTARG = eql_v3.date +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.date, RIGHTARG = jsonb +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = jsonb, RIGHTARG = eql_v3.date +); +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/date/date_ord_ore_aggregates.sql +--! @brief Aggregates for eql_v3.date_ord_ore. + +--! @brief State function for min on eql_v3.date_ord_ore. +--! @param state eql_v3.date_ord_ore +--! @param value eql_v3.date_ord_ore +--! @return eql_v3.date_ord_ore +CREATE FUNCTION eql_v3.min_sfunc(state eql_v3.date_ord_ore, value eql_v3.date_ord_ore) +RETURNS eql_v3.date_ord_ore +LANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE +SET search_path = pg_catalog, extensions, public +AS $$ +BEGIN + IF value < state THEN + RETURN value; + END IF; + RETURN state; +END; +$$; + +--! @brief min aggregate for eql_v3.date_ord_ore. +--! @param input eql_v3.date_ord_ore +--! @return eql_v3.date_ord_ore +CREATE AGGREGATE eql_v3.min(eql_v3.date_ord_ore) ( + sfunc = eql_v3.min_sfunc, + stype = eql_v3.date_ord_ore, + combinefunc = eql_v3.min_sfunc, + parallel = safe +); + +--! @brief State function for max on eql_v3.date_ord_ore. +--! @param state eql_v3.date_ord_ore +--! @param value eql_v3.date_ord_ore +--! @return eql_v3.date_ord_ore +CREATE FUNCTION eql_v3.max_sfunc(state eql_v3.date_ord_ore, value eql_v3.date_ord_ore) +RETURNS eql_v3.date_ord_ore +LANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE +SET search_path = pg_catalog, extensions, public +AS $$ +BEGIN + IF value > state THEN + RETURN value; + END IF; + RETURN state; +END; +$$; + +--! @brief max aggregate for eql_v3.date_ord_ore. +--! @param input eql_v3.date_ord_ore +--! @return eql_v3.date_ord_ore +CREATE AGGREGATE eql_v3.max(eql_v3.date_ord_ore) ( + sfunc = eql_v3.max_sfunc, + stype = eql_v3.date_ord_ore, + combinefunc = eql_v3.max_sfunc, + parallel = safe +); +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/date/date_ord_operators.sql +--! @brief Operators for eql_v3.date_ord. + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.date_ord, RIGHTARG = eql_v3.date_ord, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.date_ord, RIGHTARG = jsonb, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.date_ord, RIGHTARG = eql_v3.date_ord, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.date_ord, RIGHTARG = jsonb, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.date_ord, RIGHTARG = eql_v3.date_ord, + COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.date_ord, RIGHTARG = jsonb, + COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord, + COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.date_ord, RIGHTARG = eql_v3.date_ord, + COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.date_ord, RIGHTARG = jsonb, + COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord, + COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.date_ord, RIGHTARG = eql_v3.date_ord, + COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.date_ord, RIGHTARG = jsonb, + COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord, + COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.date_ord, RIGHTARG = eql_v3.date_ord, + COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.date_ord, RIGHTARG = jsonb, + COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord, + COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.date_ord, RIGHTARG = eql_v3.date_ord +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.date_ord, RIGHTARG = jsonb +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.date_ord, RIGHTARG = eql_v3.date_ord +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.date_ord, RIGHTARG = jsonb +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.date_ord, RIGHTARG = text +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.date_ord, RIGHTARG = integer +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.date_ord, RIGHTARG = text +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.date_ord, RIGHTARG = integer +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord +); + +CREATE OPERATOR ? ( + FUNCTION = eql_v3."?", + LEFTARG = eql_v3.date_ord, RIGHTARG = text +); + +CREATE OPERATOR ?| ( + FUNCTION = eql_v3."?|", + LEFTARG = eql_v3.date_ord, RIGHTARG = text[] +); + +CREATE OPERATOR ?& ( + FUNCTION = eql_v3."?&", + LEFTARG = eql_v3.date_ord, RIGHTARG = text[] +); + +CREATE OPERATOR @? ( + FUNCTION = eql_v3."@?", + LEFTARG = eql_v3.date_ord, RIGHTARG = jsonpath +); + +CREATE OPERATOR @@ ( + FUNCTION = eql_v3."@@", + LEFTARG = eql_v3.date_ord, RIGHTARG = jsonpath +); + +CREATE OPERATOR #> ( + FUNCTION = eql_v3."#>", + LEFTARG = eql_v3.date_ord, RIGHTARG = text[] +); + +CREATE OPERATOR #>> ( + FUNCTION = eql_v3."#>>", + LEFTARG = eql_v3.date_ord, RIGHTARG = text[] +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.date_ord, RIGHTARG = text +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.date_ord, RIGHTARG = integer +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.date_ord, RIGHTARG = text[] +); + +CREATE OPERATOR #- ( + FUNCTION = eql_v3."#-", + LEFTARG = eql_v3.date_ord, RIGHTARG = text[] +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.date_ord, RIGHTARG = eql_v3.date_ord +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.date_ord, RIGHTARG = jsonb +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord +); +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/date/date_ord_aggregates.sql +--! @brief Aggregates for eql_v3.date_ord. + +--! @brief State function for min on eql_v3.date_ord. +--! @param state eql_v3.date_ord +--! @param value eql_v3.date_ord +--! @return eql_v3.date_ord +CREATE FUNCTION eql_v3.min_sfunc(state eql_v3.date_ord, value eql_v3.date_ord) +RETURNS eql_v3.date_ord +LANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE +SET search_path = pg_catalog, extensions, public +AS $$ +BEGIN + IF value < state THEN + RETURN value; + END IF; + RETURN state; +END; +$$; + +--! @brief min aggregate for eql_v3.date_ord. +--! @param input eql_v3.date_ord +--! @return eql_v3.date_ord +CREATE AGGREGATE eql_v3.min(eql_v3.date_ord) ( + sfunc = eql_v3.min_sfunc, + stype = eql_v3.date_ord, + combinefunc = eql_v3.min_sfunc, + parallel = safe +); + +--! @brief State function for max on eql_v3.date_ord. +--! @param state eql_v3.date_ord +--! @param value eql_v3.date_ord +--! @return eql_v3.date_ord +CREATE FUNCTION eql_v3.max_sfunc(state eql_v3.date_ord, value eql_v3.date_ord) +RETURNS eql_v3.date_ord +LANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE +SET search_path = pg_catalog, extensions, public +AS $$ +BEGIN + IF value > state THEN + RETURN value; + END IF; + RETURN state; +END; +$$; + +--! @brief max aggregate for eql_v3.date_ord. +--! @param input eql_v3.date_ord +--! @return eql_v3.date_ord +CREATE AGGREGATE eql_v3.max(eql_v3.date_ord) ( + sfunc = eql_v3.max_sfunc, + stype = eql_v3.date_ord, + combinefunc = eql_v3.max_sfunc, + parallel = safe +); +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/int8/int8_operators.sql +--! @brief Operators for eql_v3.int8. + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.int8, RIGHTARG = eql_v3.int8 +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.int8, RIGHTARG = jsonb +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = jsonb, RIGHTARG = eql_v3.int8 +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.int8, RIGHTARG = eql_v3.int8 +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.int8, RIGHTARG = jsonb +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = jsonb, RIGHTARG = eql_v3.int8 +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.int8, RIGHTARG = eql_v3.int8 +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.int8, RIGHTARG = jsonb +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = jsonb, RIGHTARG = eql_v3.int8 +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.int8, RIGHTARG = eql_v3.int8 +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.int8, RIGHTARG = jsonb +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = jsonb, RIGHTARG = eql_v3.int8 +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.int8, RIGHTARG = eql_v3.int8 +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.int8, RIGHTARG = jsonb +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = jsonb, RIGHTARG = eql_v3.int8 +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.int8, RIGHTARG = eql_v3.int8 +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.int8, RIGHTARG = jsonb +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = jsonb, RIGHTARG = eql_v3.int8 +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.int8, RIGHTARG = eql_v3.int8 +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.int8, RIGHTARG = jsonb +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = jsonb, RIGHTARG = eql_v3.int8 +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.int8, RIGHTARG = eql_v3.int8 +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.int8, RIGHTARG = jsonb +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = jsonb, RIGHTARG = eql_v3.int8 +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.int8, RIGHTARG = text +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.int8, RIGHTARG = integer +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = jsonb, RIGHTARG = eql_v3.int8 +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.int8, RIGHTARG = text +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.int8, RIGHTARG = integer +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = jsonb, RIGHTARG = eql_v3.int8 +); + +CREATE OPERATOR ? ( + FUNCTION = eql_v3."?", + LEFTARG = eql_v3.int8, RIGHTARG = text +); + +CREATE OPERATOR ?| ( + FUNCTION = eql_v3."?|", + LEFTARG = eql_v3.int8, RIGHTARG = text[] +); + +CREATE OPERATOR ?& ( + FUNCTION = eql_v3."?&", + LEFTARG = eql_v3.int8, RIGHTARG = text[] +); + +CREATE OPERATOR @? ( + FUNCTION = eql_v3."@?", + LEFTARG = eql_v3.int8, RIGHTARG = jsonpath +); + +CREATE OPERATOR @@ ( + FUNCTION = eql_v3."@@", + LEFTARG = eql_v3.int8, RIGHTARG = jsonpath +); + +CREATE OPERATOR #> ( + FUNCTION = eql_v3."#>", + LEFTARG = eql_v3.int8, RIGHTARG = text[] +); + +CREATE OPERATOR #>> ( + FUNCTION = eql_v3."#>>", + LEFTARG = eql_v3.int8, RIGHTARG = text[] +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int8, RIGHTARG = text +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int8, RIGHTARG = integer +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int8, RIGHTARG = text[] +); + +CREATE OPERATOR #- ( + FUNCTION = eql_v3."#-", + LEFTARG = eql_v3.int8, RIGHTARG = text[] +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.int8, RIGHTARG = eql_v3.int8 +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.int8, RIGHTARG = jsonb +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = jsonb, RIGHTARG = eql_v3.int8 +); +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/int8/int8_eq_functions.sql +--! @brief Functions for eql_v3.int8_eq. + +--! @brief Index extractor for eql_v3.int8_eq. +--! @param a eql_v3.int8_eq +--! @return eql_v3.hmac_256 +CREATE FUNCTION eql_v3.eq_term(a eql_v3.int8_eq) +RETURNS eql_v3.hmac_256 +LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.hmac_256(a::jsonb) $$; + +--! @brief Operator wrapper for eql_v3.int8_eq. +--! @param a eql_v3.int8_eq +--! @param b eql_v3.int8_eq +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.int8_eq, b eql_v3.int8_eq) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a) = eql_v3.eq_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int8_eq. +--! @param a eql_v3.int8_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.int8_eq, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a) = eql_v3.eq_term(b::eql_v3.int8_eq) $$; + +--! @brief Operator wrapper for eql_v3.int8_eq. +--! @param a jsonb +--! @param b eql_v3.int8_eq +--! @return boolean +CREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.int8_eq) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a::eql_v3.int8_eq) = eql_v3.eq_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int8_eq. +--! @param a eql_v3.int8_eq +--! @param b eql_v3.int8_eq +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.int8_eq, b eql_v3.int8_eq) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a) <> eql_v3.eq_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int8_eq. +--! @param a eql_v3.int8_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.int8_eq, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a) <> eql_v3.eq_term(b::eql_v3.int8_eq) $$; + +--! @brief Operator wrapper for eql_v3.int8_eq. +--! @param a jsonb +--! @param b eql_v3.int8_eq +--! @return boolean +CREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.int8_eq) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a::eql_v3.int8_eq) <> eql_v3.eq_term(b) $$; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a eql_v3.int8_eq +--! @param b eql_v3.int8_eq +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.int8_eq, b eql_v3.int8_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a eql_v3.int8_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.int8_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a jsonb +--! @param b eql_v3.int8_eq +--! @return boolean +CREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.int8_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a eql_v3.int8_eq +--! @param b eql_v3.int8_eq +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.int8_eq, b eql_v3.int8_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a eql_v3.int8_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.int8_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a jsonb +--! @param b eql_v3.int8_eq +--! @return boolean +CREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.int8_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a eql_v3.int8_eq +--! @param b eql_v3.int8_eq +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.int8_eq, b eql_v3.int8_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a eql_v3.int8_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.int8_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a jsonb +--! @param b eql_v3.int8_eq +--! @return boolean +CREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.int8_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a eql_v3.int8_eq +--! @param b eql_v3.int8_eq +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.int8_eq, b eql_v3.int8_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a eql_v3.int8_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.int8_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a jsonb +--! @param b eql_v3.int8_eq +--! @return boolean +CREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.int8_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a eql_v3.int8_eq +--! @param b eql_v3.int8_eq +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.int8_eq, b eql_v3.int8_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a eql_v3.int8_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.int8_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a jsonb +--! @param b eql_v3.int8_eq +--! @return boolean +CREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.int8_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a eql_v3.int8_eq +--! @param b eql_v3.int8_eq +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.int8_eq, b eql_v3.int8_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a eql_v3.int8_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.int8_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a jsonb +--! @param b eql_v3.int8_eq +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.int8_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a eql_v3.int8_eq +--! @param selector text +--! @return eql_v3.int8_eq +CREATE FUNCTION eql_v3."->"(a eql_v3.int8_eq, selector text) +RETURNS eql_v3.int8_eq IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a eql_v3.int8_eq +--! @param selector integer +--! @return eql_v3.int8_eq +CREATE FUNCTION eql_v3."->"(a eql_v3.int8_eq, selector integer) +RETURNS eql_v3.int8_eq IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a jsonb +--! @param selector eql_v3.int8_eq +--! @return eql_v3.int8_eq +CREATE FUNCTION eql_v3."->"(a jsonb, selector eql_v3.int8_eq) +RETURNS eql_v3.int8_eq IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a eql_v3.int8_eq +--! @param selector text +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.int8_eq, selector text) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a eql_v3.int8_eq +--! @param selector integer +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.int8_eq, selector integer) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a jsonb +--! @param selector eql_v3.int8_eq +--! @return text +CREATE FUNCTION eql_v3."->>"(a jsonb, selector eql_v3.int8_eq) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a eql_v3.int8_eq +--! @param b text +--! @return boolean +CREATE FUNCTION eql_v3."?"(a eql_v3.int8_eq, b text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a eql_v3.int8_eq +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?|"(a eql_v3.int8_eq, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a eql_v3.int8_eq +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?&"(a eql_v3.int8_eq, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a eql_v3.int8_eq +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@?"(a eql_v3.int8_eq, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a eql_v3.int8_eq +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@@"(a eql_v3.int8_eq, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a eql_v3.int8_eq +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#>"(a eql_v3.int8_eq, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a eql_v3.int8_eq +--! @param b text[] +--! @return text +CREATE FUNCTION eql_v3."#>>"(a eql_v3.int8_eq, b text[]) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a eql_v3.int8_eq +--! @param b text +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int8_eq, b text) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a eql_v3.int8_eq +--! @param b integer +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int8_eq, b integer) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a eql_v3.int8_eq +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int8_eq, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a eql_v3.int8_eq +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#-"(a eql_v3.int8_eq, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a eql_v3.int8_eq +--! @param b eql_v3.int8_eq +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.int8_eq, b eql_v3.int8_eq) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a eql_v3.int8_eq +--! @param b jsonb +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.int8_eq, b jsonb) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a jsonb +--! @param b eql_v3.int8_eq +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a jsonb, b eql_v3.int8_eq) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/int8/int8_ord_ore_functions.sql +--! @brief Functions for eql_v3.int8_ord_ore. + +--! @brief Index extractor for eql_v3.int8_ord_ore. +--! @param a eql_v3.int8_ord_ore +--! @return eql_v3.ore_block_u64_8_256 +CREATE FUNCTION eql_v3.ord_term(a eql_v3.int8_ord_ore) +RETURNS eql_v3.ore_block_u64_8_256 +LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ore_block_u64_8_256(a::jsonb) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord_ore. +--! @param a eql_v3.int8_ord_ore +--! @param b eql_v3.int8_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.int8_ord_ore, b eql_v3.int8_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord_ore. +--! @param a eql_v3.int8_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.int8_ord_ore, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b::eql_v3.int8_ord_ore) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord_ore. +--! @param a jsonb +--! @param b eql_v3.int8_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.int8_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int8_ord_ore) = eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord_ore. +--! @param a eql_v3.int8_ord_ore +--! @param b eql_v3.int8_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.int8_ord_ore, b eql_v3.int8_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord_ore. +--! @param a eql_v3.int8_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.int8_ord_ore, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b::eql_v3.int8_ord_ore) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord_ore. +--! @param a jsonb +--! @param b eql_v3.int8_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.int8_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int8_ord_ore) <> eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord_ore. +--! @param a eql_v3.int8_ord_ore +--! @param b eql_v3.int8_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.int8_ord_ore, b eql_v3.int8_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord_ore. +--! @param a eql_v3.int8_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.int8_ord_ore, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b::eql_v3.int8_ord_ore) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord_ore. +--! @param a jsonb +--! @param b eql_v3.int8_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.int8_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int8_ord_ore) < eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord_ore. +--! @param a eql_v3.int8_ord_ore +--! @param b eql_v3.int8_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.int8_ord_ore, b eql_v3.int8_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord_ore. +--! @param a eql_v3.int8_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.int8_ord_ore, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b::eql_v3.int8_ord_ore) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord_ore. +--! @param a jsonb +--! @param b eql_v3.int8_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.int8_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int8_ord_ore) <= eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord_ore. +--! @param a eql_v3.int8_ord_ore +--! @param b eql_v3.int8_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.int8_ord_ore, b eql_v3.int8_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord_ore. +--! @param a eql_v3.int8_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.int8_ord_ore, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b::eql_v3.int8_ord_ore) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord_ore. +--! @param a jsonb +--! @param b eql_v3.int8_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.int8_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int8_ord_ore) > eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord_ore. +--! @param a eql_v3.int8_ord_ore +--! @param b eql_v3.int8_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.int8_ord_ore, b eql_v3.int8_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord_ore. +--! @param a eql_v3.int8_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.int8_ord_ore, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b::eql_v3.int8_ord_ore) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord_ore. +--! @param a jsonb +--! @param b eql_v3.int8_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.int8_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int8_ord_ore) >= eql_v3.ord_term(b) $$; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore. +--! @param a eql_v3.int8_ord_ore +--! @param b eql_v3.int8_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.int8_ord_ore, b eql_v3.int8_ord_ore) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int8_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore. +--! @param a eql_v3.int8_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.int8_ord_ore, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int8_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore. +--! @param a jsonb +--! @param b eql_v3.int8_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.int8_ord_ore) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int8_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore. +--! @param a eql_v3.int8_ord_ore +--! @param b eql_v3.int8_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.int8_ord_ore, b eql_v3.int8_ord_ore) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int8_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore. +--! @param a eql_v3.int8_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.int8_ord_ore, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int8_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore. +--! @param a jsonb +--! @param b eql_v3.int8_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.int8_ord_ore) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int8_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore. +--! @param a eql_v3.int8_ord_ore +--! @param selector text +--! @return eql_v3.int8_ord_ore +CREATE FUNCTION eql_v3."->"(a eql_v3.int8_ord_ore, selector text) +RETURNS eql_v3.int8_ord_ore IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int8_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore. +--! @param a eql_v3.int8_ord_ore +--! @param selector integer +--! @return eql_v3.int8_ord_ore +CREATE FUNCTION eql_v3."->"(a eql_v3.int8_ord_ore, selector integer) +RETURNS eql_v3.int8_ord_ore IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int8_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore. +--! @param a jsonb +--! @param selector eql_v3.int8_ord_ore +--! @return eql_v3.int8_ord_ore +CREATE FUNCTION eql_v3."->"(a jsonb, selector eql_v3.int8_ord_ore) +RETURNS eql_v3.int8_ord_ore IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int8_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore. +--! @param a eql_v3.int8_ord_ore +--! @param selector text +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.int8_ord_ore, selector text) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int8_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore. +--! @param a eql_v3.int8_ord_ore +--! @param selector integer +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.int8_ord_ore, selector integer) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int8_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore. +--! @param a jsonb +--! @param selector eql_v3.int8_ord_ore +--! @return text +CREATE FUNCTION eql_v3."->>"(a jsonb, selector eql_v3.int8_ord_ore) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int8_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore. +--! @param a eql_v3.int8_ord_ore +--! @param b text +--! @return boolean +CREATE FUNCTION eql_v3."?"(a eql_v3.int8_ord_ore, b text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.int8_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore. +--! @param a eql_v3.int8_ord_ore +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?|"(a eql_v3.int8_ord_ore, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.int8_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore. +--! @param a eql_v3.int8_ord_ore +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?&"(a eql_v3.int8_ord_ore, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.int8_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore. +--! @param a eql_v3.int8_ord_ore +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@?"(a eql_v3.int8_ord_ore, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.int8_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore. +--! @param a eql_v3.int8_ord_ore +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@@"(a eql_v3.int8_ord_ore, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.int8_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore. +--! @param a eql_v3.int8_ord_ore +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#>"(a eql_v3.int8_ord_ore, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.int8_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore. +--! @param a eql_v3.int8_ord_ore +--! @param b text[] +--! @return text +CREATE FUNCTION eql_v3."#>>"(a eql_v3.int8_ord_ore, b text[]) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.int8_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore. +--! @param a eql_v3.int8_ord_ore +--! @param b text +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int8_ord_ore, b text) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int8_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore. +--! @param a eql_v3.int8_ord_ore +--! @param b integer +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int8_ord_ore, b integer) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int8_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore. +--! @param a eql_v3.int8_ord_ore +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int8_ord_ore, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int8_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore. +--! @param a eql_v3.int8_ord_ore +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#-"(a eql_v3.int8_ord_ore, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.int8_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore. +--! @param a eql_v3.int8_ord_ore +--! @param b eql_v3.int8_ord_ore +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.int8_ord_ore, b eql_v3.int8_ord_ore) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int8_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore. +--! @param a eql_v3.int8_ord_ore +--! @param b jsonb +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.int8_ord_ore, b jsonb) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int8_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore. +--! @param a jsonb +--! @param b eql_v3.int8_ord_ore +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a jsonb, b eql_v3.int8_ord_ore) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int8_ord_ore'; END; $$ +LANGUAGE plpgsql; +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/int8/int8_ord_operators.sql +--! @brief Operators for eql_v3.int8_ord. + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.int8_ord, RIGHTARG = eql_v3.int8_ord, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.int8_ord, RIGHTARG = jsonb, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.int8_ord, RIGHTARG = eql_v3.int8_ord, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.int8_ord, RIGHTARG = jsonb, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.int8_ord, RIGHTARG = eql_v3.int8_ord, + COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.int8_ord, RIGHTARG = jsonb, + COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord, + COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.int8_ord, RIGHTARG = eql_v3.int8_ord, + COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.int8_ord, RIGHTARG = jsonb, + COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord, + COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.int8_ord, RIGHTARG = eql_v3.int8_ord, + COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.int8_ord, RIGHTARG = jsonb, + COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord, + COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.int8_ord, RIGHTARG = eql_v3.int8_ord, + COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.int8_ord, RIGHTARG = jsonb, + COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord, + COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.int8_ord, RIGHTARG = eql_v3.int8_ord +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.int8_ord, RIGHTARG = jsonb +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.int8_ord, RIGHTARG = eql_v3.int8_ord +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.int8_ord, RIGHTARG = jsonb +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.int8_ord, RIGHTARG = text +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.int8_ord, RIGHTARG = integer +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.int8_ord, RIGHTARG = text +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.int8_ord, RIGHTARG = integer +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord +); + +CREATE OPERATOR ? ( + FUNCTION = eql_v3."?", + LEFTARG = eql_v3.int8_ord, RIGHTARG = text +); + +CREATE OPERATOR ?| ( + FUNCTION = eql_v3."?|", + LEFTARG = eql_v3.int8_ord, RIGHTARG = text[] +); + +CREATE OPERATOR ?& ( + FUNCTION = eql_v3."?&", + LEFTARG = eql_v3.int8_ord, RIGHTARG = text[] +); + +CREATE OPERATOR @? ( + FUNCTION = eql_v3."@?", + LEFTARG = eql_v3.int8_ord, RIGHTARG = jsonpath +); + +CREATE OPERATOR @@ ( + FUNCTION = eql_v3."@@", + LEFTARG = eql_v3.int8_ord, RIGHTARG = jsonpath +); + +CREATE OPERATOR #> ( + FUNCTION = eql_v3."#>", + LEFTARG = eql_v3.int8_ord, RIGHTARG = text[] +); + +CREATE OPERATOR #>> ( + FUNCTION = eql_v3."#>>", + LEFTARG = eql_v3.int8_ord, RIGHTARG = text[] +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int8_ord, RIGHTARG = text +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int8_ord, RIGHTARG = integer +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int8_ord, RIGHTARG = text[] +); + +CREATE OPERATOR #- ( + FUNCTION = eql_v3."#-", + LEFTARG = eql_v3.int8_ord, RIGHTARG = text[] +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.int8_ord, RIGHTARG = eql_v3.int8_ord +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.int8_ord, RIGHTARG = jsonb +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord +); +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/int8/int8_ord_ore_operators.sql +--! @brief Operators for eql_v3.int8_ord_ore. + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = eql_v3.int8_ord_ore, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = jsonb, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord_ore, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = eql_v3.int8_ord_ore, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = jsonb, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord_ore, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = eql_v3.int8_ord_ore, + COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = jsonb, + COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord_ore, + COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = eql_v3.int8_ord_ore, + COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = jsonb, + COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord_ore, + COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = eql_v3.int8_ord_ore, + COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = jsonb, + COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord_ore, + COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = eql_v3.int8_ord_ore, + COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = jsonb, + COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord_ore, + COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = eql_v3.int8_ord_ore +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = jsonb +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord_ore +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = eql_v3.int8_ord_ore +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = jsonb +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord_ore +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = text +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = integer +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord_ore +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = text +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = integer +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord_ore +); + +CREATE OPERATOR ? ( + FUNCTION = eql_v3."?", + LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = text +); + +CREATE OPERATOR ?| ( + FUNCTION = eql_v3."?|", + LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = text[] +); + +CREATE OPERATOR ?& ( + FUNCTION = eql_v3."?&", + LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = text[] +); + +CREATE OPERATOR @? ( + FUNCTION = eql_v3."@?", + LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = jsonpath +); + +CREATE OPERATOR @@ ( + FUNCTION = eql_v3."@@", + LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = jsonpath +); + +CREATE OPERATOR #> ( + FUNCTION = eql_v3."#>", + LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = text[] +); + +CREATE OPERATOR #>> ( + FUNCTION = eql_v3."#>>", + LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = text[] +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = text +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = integer +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = text[] +); + +CREATE OPERATOR #- ( + FUNCTION = eql_v3."#-", + LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = text[] +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = eql_v3.int8_ord_ore +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = jsonb +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord_ore +); +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/int8/int8_ord_ore_aggregates.sql +--! @brief Aggregates for eql_v3.int8_ord_ore. + +--! @brief State function for min on eql_v3.int8_ord_ore. +--! @param state eql_v3.int8_ord_ore +--! @param value eql_v3.int8_ord_ore +--! @return eql_v3.int8_ord_ore +CREATE FUNCTION eql_v3.min_sfunc(state eql_v3.int8_ord_ore, value eql_v3.int8_ord_ore) +RETURNS eql_v3.int8_ord_ore +LANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE +SET search_path = pg_catalog, extensions, public +AS $$ +BEGIN + IF value < state THEN + RETURN value; + END IF; + RETURN state; +END; +$$; + +--! @brief min aggregate for eql_v3.int8_ord_ore. +--! @param input eql_v3.int8_ord_ore +--! @return eql_v3.int8_ord_ore +CREATE AGGREGATE eql_v3.min(eql_v3.int8_ord_ore) ( + sfunc = eql_v3.min_sfunc, + stype = eql_v3.int8_ord_ore, + combinefunc = eql_v3.min_sfunc, + parallel = safe +); + +--! @brief State function for max on eql_v3.int8_ord_ore. +--! @param state eql_v3.int8_ord_ore +--! @param value eql_v3.int8_ord_ore +--! @return eql_v3.int8_ord_ore +CREATE FUNCTION eql_v3.max_sfunc(state eql_v3.int8_ord_ore, value eql_v3.int8_ord_ore) +RETURNS eql_v3.int8_ord_ore +LANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE +SET search_path = pg_catalog, extensions, public +AS $$ +BEGIN + IF value > state THEN + RETURN value; + END IF; + RETURN state; +END; +$$; + +--! @brief max aggregate for eql_v3.int8_ord_ore. +--! @param input eql_v3.int8_ord_ore +--! @return eql_v3.int8_ord_ore +CREATE AGGREGATE eql_v3.max(eql_v3.int8_ord_ore) ( + sfunc = eql_v3.max_sfunc, + stype = eql_v3.int8_ord_ore, + combinefunc = eql_v3.max_sfunc, + parallel = safe +); +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/int8/int8_ord_aggregates.sql +--! @brief Aggregates for eql_v3.int8_ord. + +--! @brief State function for min on eql_v3.int8_ord. +--! @param state eql_v3.int8_ord +--! @param value eql_v3.int8_ord +--! @return eql_v3.int8_ord +CREATE FUNCTION eql_v3.min_sfunc(state eql_v3.int8_ord, value eql_v3.int8_ord) +RETURNS eql_v3.int8_ord +LANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE +SET search_path = pg_catalog, extensions, public +AS $$ +BEGIN + IF value < state THEN + RETURN value; + END IF; + RETURN state; +END; +$$; + +--! @brief min aggregate for eql_v3.int8_ord. +--! @param input eql_v3.int8_ord +--! @return eql_v3.int8_ord +CREATE AGGREGATE eql_v3.min(eql_v3.int8_ord) ( + sfunc = eql_v3.min_sfunc, + stype = eql_v3.int8_ord, + combinefunc = eql_v3.min_sfunc, + parallel = safe +); + +--! @brief State function for max on eql_v3.int8_ord. +--! @param state eql_v3.int8_ord +--! @param value eql_v3.int8_ord +--! @return eql_v3.int8_ord +CREATE FUNCTION eql_v3.max_sfunc(state eql_v3.int8_ord, value eql_v3.int8_ord) +RETURNS eql_v3.int8_ord +LANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE +SET search_path = pg_catalog, extensions, public +AS $$ +BEGIN + IF value > state THEN + RETURN value; + END IF; + RETURN state; +END; +$$; + +--! @brief max aggregate for eql_v3.int8_ord. +--! @param input eql_v3.int8_ord +--! @return eql_v3.int8_ord +CREATE AGGREGATE eql_v3.max(eql_v3.int8_ord) ( + sfunc = eql_v3.max_sfunc, + stype = eql_v3.int8_ord, + combinefunc = eql_v3.max_sfunc, + parallel = safe +); +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/int8/int8_eq_operators.sql +--! @brief Operators for eql_v3.int8_eq. + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.int8_eq, RIGHTARG = eql_v3.int8_eq, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.int8_eq, RIGHTARG = jsonb, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = jsonb, RIGHTARG = eql_v3.int8_eq, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.int8_eq, RIGHTARG = eql_v3.int8_eq, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.int8_eq, RIGHTARG = jsonb, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = jsonb, RIGHTARG = eql_v3.int8_eq, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.int8_eq, RIGHTARG = eql_v3.int8_eq +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.int8_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = jsonb, RIGHTARG = eql_v3.int8_eq +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.int8_eq, RIGHTARG = eql_v3.int8_eq +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.int8_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = jsonb, RIGHTARG = eql_v3.int8_eq +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.int8_eq, RIGHTARG = eql_v3.int8_eq +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.int8_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = jsonb, RIGHTARG = eql_v3.int8_eq +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.int8_eq, RIGHTARG = eql_v3.int8_eq +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.int8_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = jsonb, RIGHTARG = eql_v3.int8_eq +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.int8_eq, RIGHTARG = eql_v3.int8_eq +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.int8_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = jsonb, RIGHTARG = eql_v3.int8_eq +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.int8_eq, RIGHTARG = eql_v3.int8_eq +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.int8_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = jsonb, RIGHTARG = eql_v3.int8_eq +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.int8_eq, RIGHTARG = text +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.int8_eq, RIGHTARG = integer +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = jsonb, RIGHTARG = eql_v3.int8_eq +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.int8_eq, RIGHTARG = text +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.int8_eq, RIGHTARG = integer +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = jsonb, RIGHTARG = eql_v3.int8_eq +); + +CREATE OPERATOR ? ( + FUNCTION = eql_v3."?", + LEFTARG = eql_v3.int8_eq, RIGHTARG = text +); + +CREATE OPERATOR ?| ( + FUNCTION = eql_v3."?|", + LEFTARG = eql_v3.int8_eq, RIGHTARG = text[] +); + +CREATE OPERATOR ?& ( + FUNCTION = eql_v3."?&", + LEFTARG = eql_v3.int8_eq, RIGHTARG = text[] +); + +CREATE OPERATOR @? ( + FUNCTION = eql_v3."@?", + LEFTARG = eql_v3.int8_eq, RIGHTARG = jsonpath +); + +CREATE OPERATOR @@ ( + FUNCTION = eql_v3."@@", + LEFTARG = eql_v3.int8_eq, RIGHTARG = jsonpath +); + +CREATE OPERATOR #> ( + FUNCTION = eql_v3."#>", + LEFTARG = eql_v3.int8_eq, RIGHTARG = text[] +); + +CREATE OPERATOR #>> ( + FUNCTION = eql_v3."#>>", + LEFTARG = eql_v3.int8_eq, RIGHTARG = text[] +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int8_eq, RIGHTARG = text +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int8_eq, RIGHTARG = integer +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int8_eq, RIGHTARG = text[] +); + +CREATE OPERATOR #- ( + FUNCTION = eql_v3."#-", + LEFTARG = eql_v3.int8_eq, RIGHTARG = text[] +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.int8_eq, RIGHTARG = eql_v3.int8_eq +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.int8_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = jsonb, RIGHTARG = eql_v3.int8_eq +); +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/text/text_functions.sql +--! @brief Functions for eql_v3.text. + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a eql_v3.text +--! @param b eql_v3.text +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.text, b eql_v3.text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a eql_v3.text +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.text, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a jsonb +--! @param b eql_v3.text +--! @return boolean +CREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a eql_v3.text +--! @param b eql_v3.text +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.text, b eql_v3.text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a eql_v3.text +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.text, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a jsonb +--! @param b eql_v3.text +--! @return boolean +CREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a eql_v3.text +--! @param b eql_v3.text +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.text, b eql_v3.text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a eql_v3.text +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.text, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a jsonb +--! @param b eql_v3.text +--! @return boolean +CREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a eql_v3.text +--! @param b eql_v3.text +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.text, b eql_v3.text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a eql_v3.text +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.text, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a jsonb +--! @param b eql_v3.text +--! @return boolean +CREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a eql_v3.text +--! @param b eql_v3.text +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.text, b eql_v3.text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a eql_v3.text +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.text, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a jsonb +--! @param b eql_v3.text +--! @return boolean +CREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a eql_v3.text +--! @param b eql_v3.text +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.text, b eql_v3.text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a eql_v3.text +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.text, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a jsonb +--! @param b eql_v3.text +--! @return boolean +CREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a eql_v3.text +--! @param b eql_v3.text +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.text, b eql_v3.text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a eql_v3.text +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.text, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a jsonb +--! @param b eql_v3.text +--! @return boolean +CREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a eql_v3.text +--! @param b eql_v3.text +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.text, b eql_v3.text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a eql_v3.text +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.text, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a jsonb +--! @param b eql_v3.text +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a eql_v3.text +--! @param selector text +--! @return eql_v3.text +CREATE FUNCTION eql_v3."->"(a eql_v3.text, selector text) +RETURNS eql_v3.text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a eql_v3.text +--! @param selector integer +--! @return eql_v3.text +CREATE FUNCTION eql_v3."->"(a eql_v3.text, selector integer) +RETURNS eql_v3.text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a jsonb +--! @param selector eql_v3.text +--! @return eql_v3.text +CREATE FUNCTION eql_v3."->"(a jsonb, selector eql_v3.text) +RETURNS eql_v3.text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a eql_v3.text +--! @param selector text +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.text, selector text) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a eql_v3.text +--! @param selector integer +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.text, selector integer) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a jsonb +--! @param selector eql_v3.text +--! @return text +CREATE FUNCTION eql_v3."->>"(a jsonb, selector eql_v3.text) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a eql_v3.text +--! @param b text +--! @return boolean +CREATE FUNCTION eql_v3."?"(a eql_v3.text, b text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a eql_v3.text +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?|"(a eql_v3.text, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a eql_v3.text +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?&"(a eql_v3.text, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a eql_v3.text +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@?"(a eql_v3.text, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a eql_v3.text +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@@"(a eql_v3.text, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a eql_v3.text +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#>"(a eql_v3.text, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a eql_v3.text +--! @param b text[] +--! @return text +CREATE FUNCTION eql_v3."#>>"(a eql_v3.text, b text[]) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a eql_v3.text +--! @param b text +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.text, b text) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a eql_v3.text +--! @param b integer +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.text, b integer) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a eql_v3.text +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.text, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a eql_v3.text +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#-"(a eql_v3.text, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a eql_v3.text +--! @param b eql_v3.text +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.text, b eql_v3.text) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a eql_v3.text +--! @param b jsonb +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.text, b jsonb) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a jsonb +--! @param b eql_v3.text +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a jsonb, b eql_v3.text) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/text/text_match_operators.sql +--! @brief Operators for eql_v3.text_match. + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.text_match, RIGHTARG = eql_v3.text_match +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.text_match, RIGHTARG = jsonb +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = jsonb, RIGHTARG = eql_v3.text_match +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.text_match, RIGHTARG = eql_v3.text_match +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.text_match, RIGHTARG = jsonb +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = jsonb, RIGHTARG = eql_v3.text_match +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.text_match, RIGHTARG = eql_v3.text_match +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.text_match, RIGHTARG = jsonb +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = jsonb, RIGHTARG = eql_v3.text_match +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.text_match, RIGHTARG = eql_v3.text_match +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.text_match, RIGHTARG = jsonb +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = jsonb, RIGHTARG = eql_v3.text_match +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.text_match, RIGHTARG = eql_v3.text_match +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.text_match, RIGHTARG = jsonb +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = jsonb, RIGHTARG = eql_v3.text_match +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.text_match, RIGHTARG = eql_v3.text_match +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.text_match, RIGHTARG = jsonb +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = jsonb, RIGHTARG = eql_v3.text_match +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.text_match, RIGHTARG = eql_v3.text_match, + COMMUTATOR = <@, RESTRICT = contsel, JOIN = contjoinsel +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.text_match, RIGHTARG = jsonb, + COMMUTATOR = <@, RESTRICT = contsel, JOIN = contjoinsel +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = jsonb, RIGHTARG = eql_v3.text_match, + COMMUTATOR = <@, RESTRICT = contsel, JOIN = contjoinsel +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.text_match, RIGHTARG = eql_v3.text_match, + COMMUTATOR = @>, RESTRICT = contsel, JOIN = contjoinsel +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.text_match, RIGHTARG = jsonb, + COMMUTATOR = @>, RESTRICT = contsel, JOIN = contjoinsel +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = jsonb, RIGHTARG = eql_v3.text_match, + COMMUTATOR = @>, RESTRICT = contsel, JOIN = contjoinsel +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.text_match, RIGHTARG = text +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.text_match, RIGHTARG = integer +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = jsonb, RIGHTARG = eql_v3.text_match +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.text_match, RIGHTARG = text +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.text_match, RIGHTARG = integer +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = jsonb, RIGHTARG = eql_v3.text_match +); + +CREATE OPERATOR ? ( + FUNCTION = eql_v3."?", + LEFTARG = eql_v3.text_match, RIGHTARG = text +); + +CREATE OPERATOR ?| ( + FUNCTION = eql_v3."?|", + LEFTARG = eql_v3.text_match, RIGHTARG = text[] +); + +CREATE OPERATOR ?& ( + FUNCTION = eql_v3."?&", + LEFTARG = eql_v3.text_match, RIGHTARG = text[] +); + +CREATE OPERATOR @? ( + FUNCTION = eql_v3."@?", + LEFTARG = eql_v3.text_match, RIGHTARG = jsonpath +); + +CREATE OPERATOR @@ ( + FUNCTION = eql_v3."@@", + LEFTARG = eql_v3.text_match, RIGHTARG = jsonpath +); + +CREATE OPERATOR #> ( + FUNCTION = eql_v3."#>", + LEFTARG = eql_v3.text_match, RIGHTARG = text[] +); + +CREATE OPERATOR #>> ( + FUNCTION = eql_v3."#>>", + LEFTARG = eql_v3.text_match, RIGHTARG = text[] +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.text_match, RIGHTARG = text +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.text_match, RIGHTARG = integer +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.text_match, RIGHTARG = text[] +); + +CREATE OPERATOR #- ( + FUNCTION = eql_v3."#-", + LEFTARG = eql_v3.text_match, RIGHTARG = text[] +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.text_match, RIGHTARG = eql_v3.text_match +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.text_match, RIGHTARG = jsonb +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = jsonb, RIGHTARG = eql_v3.text_match +); +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/text/text_eq_operators.sql +--! @brief Operators for eql_v3.text_eq. + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.text_eq, RIGHTARG = eql_v3.text_eq, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.text_eq, RIGHTARG = jsonb, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = jsonb, RIGHTARG = eql_v3.text_eq, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.text_eq, RIGHTARG = eql_v3.text_eq, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.text_eq, RIGHTARG = jsonb, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = jsonb, RIGHTARG = eql_v3.text_eq, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.text_eq, RIGHTARG = eql_v3.text_eq +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.text_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = jsonb, RIGHTARG = eql_v3.text_eq +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.text_eq, RIGHTARG = eql_v3.text_eq +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.text_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = jsonb, RIGHTARG = eql_v3.text_eq +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.text_eq, RIGHTARG = eql_v3.text_eq +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.text_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = jsonb, RIGHTARG = eql_v3.text_eq +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.text_eq, RIGHTARG = eql_v3.text_eq +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.text_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = jsonb, RIGHTARG = eql_v3.text_eq +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.text_eq, RIGHTARG = eql_v3.text_eq +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.text_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = jsonb, RIGHTARG = eql_v3.text_eq +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.text_eq, RIGHTARG = eql_v3.text_eq +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.text_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = jsonb, RIGHTARG = eql_v3.text_eq +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.text_eq, RIGHTARG = text +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.text_eq, RIGHTARG = integer +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = jsonb, RIGHTARG = eql_v3.text_eq +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.text_eq, RIGHTARG = text +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.text_eq, RIGHTARG = integer +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = jsonb, RIGHTARG = eql_v3.text_eq +); + +CREATE OPERATOR ? ( + FUNCTION = eql_v3."?", + LEFTARG = eql_v3.text_eq, RIGHTARG = text +); + +CREATE OPERATOR ?| ( + FUNCTION = eql_v3."?|", + LEFTARG = eql_v3.text_eq, RIGHTARG = text[] +); + +CREATE OPERATOR ?& ( + FUNCTION = eql_v3."?&", + LEFTARG = eql_v3.text_eq, RIGHTARG = text[] +); + +CREATE OPERATOR @? ( + FUNCTION = eql_v3."@?", + LEFTARG = eql_v3.text_eq, RIGHTARG = jsonpath +); + +CREATE OPERATOR @@ ( + FUNCTION = eql_v3."@@", + LEFTARG = eql_v3.text_eq, RIGHTARG = jsonpath +); + +CREATE OPERATOR #> ( + FUNCTION = eql_v3."#>", + LEFTARG = eql_v3.text_eq, RIGHTARG = text[] +); + +CREATE OPERATOR #>> ( + FUNCTION = eql_v3."#>>", + LEFTARG = eql_v3.text_eq, RIGHTARG = text[] +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.text_eq, RIGHTARG = text +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.text_eq, RIGHTARG = integer +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.text_eq, RIGHTARG = text[] +); + +CREATE OPERATOR #- ( + FUNCTION = eql_v3."#-", + LEFTARG = eql_v3.text_eq, RIGHTARG = text[] +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.text_eq, RIGHTARG = eql_v3.text_eq +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.text_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = jsonb, RIGHTARG = eql_v3.text_eq +); +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/text/text_ord_ore_aggregates.sql +--! @brief Aggregates for eql_v3.text_ord_ore. + +--! @brief State function for min on eql_v3.text_ord_ore. +--! @param state eql_v3.text_ord_ore +--! @param value eql_v3.text_ord_ore +--! @return eql_v3.text_ord_ore +CREATE FUNCTION eql_v3.min_sfunc(state eql_v3.text_ord_ore, value eql_v3.text_ord_ore) +RETURNS eql_v3.text_ord_ore +LANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE +SET search_path = pg_catalog, extensions, public +AS $$ +BEGIN + IF value < state THEN + RETURN value; + END IF; + RETURN state; +END; +$$; + +--! @brief min aggregate for eql_v3.text_ord_ore. +--! @param input eql_v3.text_ord_ore +--! @return eql_v3.text_ord_ore +CREATE AGGREGATE eql_v3.min(eql_v3.text_ord_ore) ( + sfunc = eql_v3.min_sfunc, + stype = eql_v3.text_ord_ore, + combinefunc = eql_v3.min_sfunc, + parallel = safe +); + +--! @brief State function for max on eql_v3.text_ord_ore. +--! @param state eql_v3.text_ord_ore +--! @param value eql_v3.text_ord_ore +--! @return eql_v3.text_ord_ore +CREATE FUNCTION eql_v3.max_sfunc(state eql_v3.text_ord_ore, value eql_v3.text_ord_ore) +RETURNS eql_v3.text_ord_ore +LANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE +SET search_path = pg_catalog, extensions, public +AS $$ +BEGIN + IF value > state THEN + RETURN value; + END IF; + RETURN state; +END; +$$; + +--! @brief max aggregate for eql_v3.text_ord_ore. +--! @param input eql_v3.text_ord_ore +--! @return eql_v3.text_ord_ore +CREATE AGGREGATE eql_v3.max(eql_v3.text_ord_ore) ( + sfunc = eql_v3.max_sfunc, + stype = eql_v3.text_ord_ore, + combinefunc = eql_v3.max_sfunc, + parallel = safe +); +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/text/text_ord_aggregates.sql +--! @brief Aggregates for eql_v3.text_ord. + +--! @brief State function for min on eql_v3.text_ord. +--! @param state eql_v3.text_ord +--! @param value eql_v3.text_ord +--! @return eql_v3.text_ord +CREATE FUNCTION eql_v3.min_sfunc(state eql_v3.text_ord, value eql_v3.text_ord) +RETURNS eql_v3.text_ord +LANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE +SET search_path = pg_catalog, extensions, public +AS $$ +BEGIN + IF value < state THEN + RETURN value; + END IF; + RETURN state; +END; +$$; + +--! @brief min aggregate for eql_v3.text_ord. +--! @param input eql_v3.text_ord +--! @return eql_v3.text_ord +CREATE AGGREGATE eql_v3.min(eql_v3.text_ord) ( + sfunc = eql_v3.min_sfunc, + stype = eql_v3.text_ord, + combinefunc = eql_v3.min_sfunc, + parallel = safe +); + +--! @brief State function for max on eql_v3.text_ord. +--! @param state eql_v3.text_ord +--! @param value eql_v3.text_ord +--! @return eql_v3.text_ord +CREATE FUNCTION eql_v3.max_sfunc(state eql_v3.text_ord, value eql_v3.text_ord) +RETURNS eql_v3.text_ord +LANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE +SET search_path = pg_catalog, extensions, public +AS $$ +BEGIN + IF value > state THEN + RETURN value; + END IF; + RETURN state; +END; +$$; + +--! @brief max aggregate for eql_v3.text_ord. +--! @param input eql_v3.text_ord +--! @return eql_v3.text_ord +CREATE AGGREGATE eql_v3.max(eql_v3.text_ord) ( + sfunc = eql_v3.max_sfunc, + stype = eql_v3.text_ord, + combinefunc = eql_v3.max_sfunc, + parallel = safe +); +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/text/text_operators.sql +--! @brief Operators for eql_v3.text. + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.text, RIGHTARG = eql_v3.text +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.text, RIGHTARG = jsonb +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = jsonb, RIGHTARG = eql_v3.text +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.text, RIGHTARG = eql_v3.text +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.text, RIGHTARG = jsonb +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = jsonb, RIGHTARG = eql_v3.text +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.text, RIGHTARG = eql_v3.text +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.text, RIGHTARG = jsonb +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = jsonb, RIGHTARG = eql_v3.text +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.text, RIGHTARG = eql_v3.text +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.text, RIGHTARG = jsonb +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = jsonb, RIGHTARG = eql_v3.text +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.text, RIGHTARG = eql_v3.text +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.text, RIGHTARG = jsonb +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = jsonb, RIGHTARG = eql_v3.text +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.text, RIGHTARG = eql_v3.text +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.text, RIGHTARG = jsonb +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = jsonb, RIGHTARG = eql_v3.text +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.text, RIGHTARG = eql_v3.text +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.text, RIGHTARG = jsonb +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = jsonb, RIGHTARG = eql_v3.text +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.text, RIGHTARG = eql_v3.text +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.text, RIGHTARG = jsonb +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = jsonb, RIGHTARG = eql_v3.text +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.text, RIGHTARG = text +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.text, RIGHTARG = integer +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = jsonb, RIGHTARG = eql_v3.text +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.text, RIGHTARG = text +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.text, RIGHTARG = integer +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = jsonb, RIGHTARG = eql_v3.text +); + +CREATE OPERATOR ? ( + FUNCTION = eql_v3."?", + LEFTARG = eql_v3.text, RIGHTARG = text +); + +CREATE OPERATOR ?| ( + FUNCTION = eql_v3."?|", + LEFTARG = eql_v3.text, RIGHTARG = text[] +); + +CREATE OPERATOR ?& ( + FUNCTION = eql_v3."?&", + LEFTARG = eql_v3.text, RIGHTARG = text[] +); + +CREATE OPERATOR @? ( + FUNCTION = eql_v3."@?", + LEFTARG = eql_v3.text, RIGHTARG = jsonpath +); + +CREATE OPERATOR @@ ( + FUNCTION = eql_v3."@@", + LEFTARG = eql_v3.text, RIGHTARG = jsonpath +); + +CREATE OPERATOR #> ( + FUNCTION = eql_v3."#>", + LEFTARG = eql_v3.text, RIGHTARG = text[] +); + +CREATE OPERATOR #>> ( + FUNCTION = eql_v3."#>>", + LEFTARG = eql_v3.text, RIGHTARG = text[] +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.text, RIGHTARG = text +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.text, RIGHTARG = integer +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.text, RIGHTARG = text[] +); + +CREATE OPERATOR #- ( + FUNCTION = eql_v3."#-", + LEFTARG = eql_v3.text, RIGHTARG = text[] +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.text, RIGHTARG = eql_v3.text +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.text, RIGHTARG = jsonb +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = jsonb, RIGHTARG = eql_v3.text +); + +--! @file v3/sem/ore_block_u64_8_256/operator_class.sql +--! @brief B-tree operator family + default class on eql_v3.ore_block_u64_8_256. +--! +--! Gives the composite type its DEFAULT btree opclass so the recommended +--! functional index `CREATE INDEX ON t (eql_v3.ord_term(col))` engages without +--! an explicit opclass annotation (design D4). Excluded from the Supabase build +--! variant by the `**/*operator_class.sql` glob. + +--! @brief B-tree operator family for ORE block types +CREATE OPERATOR FAMILY eql_v3.ore_block_u64_8_256_operator_family USING btree; + +--! @brief B-tree operator class for ORE block encrypted values +--! +--! Supports operators: <, <=, =, >=, >. Uses comparison function +--! compare_ore_block_u64_8_256_terms. +CREATE OPERATOR CLASS eql_v3.ore_block_u64_8_256_operator_class DEFAULT FOR TYPE eql_v3.ore_block_u64_8_256 USING btree FAMILY eql_v3.ore_block_u64_8_256_operator_family AS + OPERATOR 1 <, + OPERATOR 2 <=, + OPERATOR 3 =, + OPERATOR 4 >=, + OPERATOR 5 >, + FUNCTION 1 eql_v3.compare_ore_block_u64_8_256_terms(a eql_v3.ore_block_u64_8_256, b eql_v3.ore_block_u64_8_256); diff --git a/packages/prisma-next/package.json b/packages/prisma-next/package.json index c0db088f..ebe8937d 100644 --- a/packages/prisma-next/package.json +++ b/packages/prisma-next/package.json @@ -101,6 +101,7 @@ "@prisma-next/sql-contract-ts": "0.8.0", "@prisma-next/sql-schema-ir": "0.8.0", "@prisma-next/target-postgres": "0.8.0", + "fast-check": "^4.8.0", "pathe": "^2.0.3", "tsup": "catalog:repo", "typescript": "catalog:repo", diff --git a/packages/prisma-next/scripts/REFRESH_EQL_V3.md b/packages/prisma-next/scripts/REFRESH_EQL_V3.md new file mode 100644 index 00000000..937e594b --- /dev/null +++ b/packages/prisma-next/scripts/REFRESH_EQL_V3.md @@ -0,0 +1,44 @@ + +# Refreshing the vendored EQL v3 bundle + +`src/migration/eql-v3-install.generated.ts` is a generated TypeScript module that +embeds `__tests__/fixtures/cipherstash-encrypt-v3.sql` (the self-contained +`eql_v3` Postgres installer) as a string. The v3 baseline migration installs that +string byte-for-byte under the `cipherstash:install-eql-v3-bundle-v1` invariant. + +## SQL source of truth + +The fixture itself is **not** authored here. It is the same artefact vendored in +`packages/drizzle/__tests__/fixtures/cipherstash-encrypt-v3.sql`, built from +`cipherstash/encrypt-query-language @ 035952e13fafc87c8a3c89fc7a7ff5447597bdd4`. +Follow `packages/drizzle/scripts/refresh-eql-v3-sql.md` to rebuild that fixture +from the EQL repo — it is the canonical procedure. + +## Refresh procedure (this package) + +1. Refresh the drizzle fixture per `packages/drizzle/scripts/refresh-eql-v3-sql.md` + and record the new EQL commit SHA. +2. Re-copy it into this package: + ```sh + cp packages/drizzle/__tests__/fixtures/cipherstash-encrypt-v3.sql \ + packages/prisma-next/__tests__/fixtures/cipherstash-encrypt-v3.sql + ``` +3. Update `VERSION` in `scripts/vendor-eql-v3-install.ts` to the new SHA marker + (`eql-v3-`). +4. Regenerate the embedded module: + ```sh + # tsx is not installed in this workspace; Node 22+ runs the TS script directly: + node --experimental-strip-types packages/prisma-next/scripts/vendor-eql-v3-install.ts + ``` +5. Confirm the round-trip: + ```sh + pnpm -F @cipherstash/prisma-next vitest run test/v3/bundle.test.ts + ``` +6. Commit the fixture, the regenerated `.generated.ts`, and the version bump. + +## Cross-package duplication hazard + +The same large SQL artefact is vendored independently in `packages/drizzle` and +`packages/prisma-next`, each with its own refresh step — so the two copies can +drift. A shared `@cipherstash/eql-bundle` package would remove this hazard; it is +out of scope for this milestone. When refreshing, refresh **both** packages. diff --git a/packages/prisma-next/scripts/vendor-eql-v3-install.ts b/packages/prisma-next/scripts/vendor-eql-v3-install.ts new file mode 100644 index 00000000..15a77e23 --- /dev/null +++ b/packages/prisma-next/scripts/vendor-eql-v3-install.ts @@ -0,0 +1,33 @@ +// Regenerates src/migration/eql-v3-install.generated.ts from the vendored +// __tests__/fixtures/cipherstash-encrypt-v3.sql installer. +// +// Run: pnpm tsx scripts/vendor-eql-v3-install.ts +// +// See scripts/REFRESH_EQL_V3.md for the full refresh procedure (which EQL commit +// the fixture is built from, the cross-package duplication hazard, etc.). +import { readFileSync, writeFileSync } from 'node:fs' +import { join } from 'node:path' + +const ROOT = join(import.meta.dirname, '..') +const SRC = join(ROOT, '__tests__/fixtures/cipherstash-encrypt-v3.sql') +const OUT = join(ROOT, 'src/migration/eql-v3-install.generated.ts') +const VERSION = 'eql-v3-035952e' // EQL repo commit the fixture was built from + +const sql = readFileSync(SRC, 'utf8') +// Escape order matters: backslash FIRST (so the backslashes we insert below +// are not themselves re-escaped), then backtick, then ${ template openers. +const escaped = sql.replaceAll('\\', '\\\\').replaceAll('`', '\\`').replaceAll('${', '\\${') + +writeFileSync( + OUT, + `// @generated — DO NOT EDIT.\n` + + `// Source: scripts/vendor-eql-v3-install.ts\n` + + `// Origin fixture: __tests__/fixtures/cipherstash-encrypt-v3.sql\n` + + `//\n` + + `// This file is committed to source control so dev environments and offline\n` + + `// builds work without network access. Regenerate with\n` + + `// \`pnpm tsx scripts/vendor-eql-v3-install.ts\` after refreshing the fixture.\n` + + `export const EQL_V3_INSTALL_VERSION = '${VERSION}' as const\n` + + `export const EQL_V3_INSTALL_SQL: string = \`${escaped}\`\n`, +) +console.log(`Wrote ${OUT} (${sql.length} bytes of SQL)`) diff --git a/packages/prisma-next/src/migration/eql-v3-bundle.ts b/packages/prisma-next/src/migration/eql-v3-bundle.ts new file mode 100644 index 00000000..d7a9a094 --- /dev/null +++ b/packages/prisma-next/src/migration/eql-v3-bundle.ts @@ -0,0 +1,17 @@ +/** + * Vendored CipherStash EQL **v3** bundle SQL. + * + * v3 is the domain-based encryption model: the installer creates the `eql_v3` + * schema, the `eql_v3.text*` domains (`text`, `text_eq`, `text_match`, + * `text_ord`), and the extracted-index-term extractor functions + * (`eq_term`/`ord_term`/`match_term`, `hmac_256`, `ore_block_u64_8_256`, + * `bloom_filter`). Like the v2 bundle, CipherStash treats it as one indivisible + * artefact: it flows into the `cipherstash:install-eql-v3-bundle-v1` migration + * op **byte-for-byte**. + * + * Source lives in {@link ./eql-v3-install.generated} — a committed + * `.generated.ts` produced by `scripts/vendor-eql-v3-install.ts` from + * `__tests__/fixtures/cipherstash-encrypt-v3.sql`. See + * `scripts/REFRESH_EQL_V3.md` for the refresh procedure. + */ +export { EQL_V3_INSTALL_SQL as EQL_V3_BUNDLE_SQL, EQL_V3_INSTALL_VERSION } from './eql-v3-install.generated' diff --git a/packages/prisma-next/src/migration/eql-v3-install.generated.ts b/packages/prisma-next/src/migration/eql-v3-install.generated.ts new file mode 100644 index 00000000..7103033a --- /dev/null +++ b/packages/prisma-next/src/migration/eql-v3-install.generated.ts @@ -0,0 +1,16202 @@ +// @generated — DO NOT EDIT. +// Source: scripts/vendor-eql-v3-install.ts +// Origin fixture: __tests__/fixtures/cipherstash-encrypt-v3.sql +// +// This file is committed to source control so dev environments and offline +// builds work without network access. Regenerate with +// `pnpm tsx scripts/vendor-eql-v3-install.ts` after refreshing the fixture. +export const EQL_V3_INSTALL_VERSION = 'eql-v3-035952e' as const +export const EQL_V3_INSTALL_SQL: string = `--! @file v3/schema.sql +--! @brief EQL v3 schema creation +--! +--! Creates the eql_v3 schema, which houses the self-contained encrypted-domain +--! type families (eql_v3.int4, eql_v3.int8, and future scalar domains): their +--! jsonb-backed domains, the searchable-encrypted-metadata (SEM) index-term +--! types they use (eql_v3.hmac_256, eql_v3.ore_block_u64_8_256), the index-term +--! extractors, comparison wrappers, blockers, and aggregates. The v3 surface is +--! self-contained — it owns every type it needs and has no runtime dependency +--! on another EQL schema. +--! +--! Drops existing schema if present to support clean reinstallation. +--! +--! @warning DROP SCHEMA CASCADE will remove all objects in the schema +--! @note eql_v3 is a new, additional schema for the encrypted-domain families. + +--! @brief Drop existing EQL v3 schema +--! @warning CASCADE will drop all dependent objects +DROP SCHEMA IF EXISTS eql_v3 CASCADE; + +--! @brief Create EQL v3 schema +--! @note Houses the encrypted-domain type families +CREATE SCHEMA eql_v3; + +--! @file v3/sem/ore_block_u64_8_256/types.sql +--! @brief ORE block index-term types (eql_v3 SEM). +--! +--! Self-contained eql_v3 copies of the Order-Revealing Encryption block types +--! (design D1/D3). The eql_v2 originals are unchanged. + +--! @brief ORE block term type for Order-Revealing Encryption +--! +--! Composite type representing a single ORE block term. Stores encrypted data +--! as bytea that enables range comparisons without decryption. +CREATE TYPE eql_v3.ore_block_u64_8_256_term AS ( + bytes bytea +); + + +--! @brief ORE block index term type for range queries +--! +--! Composite type containing an array of ORE block terms. The array is stored +--! in the 'ob' field of encrypted data payloads. +--! +--! @note Transient type used only during query execution. +CREATE TYPE eql_v3.ore_block_u64_8_256 AS ( + terms eql_v3.ore_block_u64_8_256_term[] +); + +--! @file v3/crypto.sql +--! @brief PostgreSQL pgcrypto extension enablement (eql_v3 fork) +--! +--! Forked from src/crypto.sql (design D8) so the entire eql_v3 dependency +--! closure lives under src/v3/. Enables the pgcrypto extension which provides +--! cryptographic functions used by the eql_v3 ORE comparison path. +--! +--! Installs pgcrypto into the \`extensions\` schema (Supabase convention) to +--! avoid the \`extension_in_public\` lint. Every EQL function that uses pgcrypto +--! has \`pg_catalog, extensions, public\` on its \`search_path\`, so a pre-existing +--! install in \`public\` keeps working — and a pre-existing install anywhere else +--! will be rejected at install time. The body is idempotent +--! (\`CREATE SCHEMA IF NOT EXISTS\`, \`pg_extension\` guard), so running it +--! alongside the eql_v2 copy in a combined install is safe. +--! +--! @note pgcrypto provides functions like digest(), hmac(), gen_random_bytes() + +--! @brief Create extensions schema (Supabase convention) +CREATE SCHEMA IF NOT EXISTS extensions; + +--! @brief Enable pgcrypto extension and validate its schema +DO $$ +DECLARE + pgcrypto_schema name; +BEGIN + IF NOT EXISTS (SELECT 1 FROM pg_extension WHERE extname = 'pgcrypto') THEN + CREATE EXTENSION pgcrypto WITH SCHEMA extensions; + END IF; + + SELECT n.nspname INTO pgcrypto_schema + FROM pg_extension e + JOIN pg_namespace n ON n.oid = e.extnamespace + WHERE e.extname = 'pgcrypto'; + + IF pgcrypto_schema = 'extensions' THEN + -- expected location, nothing to say + NULL; + ELSIF pgcrypto_schema = 'public' THEN + RAISE NOTICE + 'pgcrypto is installed in the \`public\` schema. EQL works against this layout, ' + 'but Supabase splinter will flag it as \`extension_in_public\`. Move it with: ' + 'ALTER EXTENSION pgcrypto SET SCHEMA extensions'; + ELSE + RAISE EXCEPTION + 'pgcrypto is installed in schema \`%\`, which is not on the EQL function search_path ' + '(pg_catalog, extensions, public). EQL cryptographic operations would fail at ' + 'runtime. Relocate the extension before installing EQL: ' + 'ALTER EXTENSION pgcrypto SET SCHEMA extensions', + pgcrypto_schema; + END IF; +END $$; + +--! @file v3/common.sql +--! @brief Common utility functions for the self-contained eql_v3 surface. +--! +--! Forked from src/common.sql (design D7) so the eql_v3 ORE constructor owns the +--! one transitive helper it needs without reaching into another schema. The +--! eql_v2 original is unchanged. + +--! @brief Convert JSONB hex array to bytea array +--! @internal +--! +--! Converts a JSONB array of hex-encoded strings into a PostgreSQL bytea array. +--! Used for deserializing binary data (like ORE terms) from JSONB storage. +--! +--! @param val jsonb JSONB array of hex-encoded strings +--! @return bytea[] Array of decoded binary values +--! +--! @note Returns NULL if input is JSON null +--! @note Each array element is hex-decoded to bytea +--! @note Inlinable \`LANGUAGE sql\` IMMUTABLE form (no \`SET search_path\`) so the +--! planner can fold this per-encrypted-value helper into the calling query. +--! This deliberately diverges from the v2 plpgsql equivalent (intentionally +--! left unchanged): the \`CASE WHEN jsonb_typeof(val) = 'array'\` guard only +--! evaluates the set-returning \`jsonb_array_elements_text\` for an array, so a +--! non-array JSON scalar returns NULL here instead of raising "cannot extract +--! elements from a scalar". Both callers only ever pass an array or JSON null +--! (\`val->'ob'\`), so the divergence is unreachable in practice; JSON null and +--! empty array still return NULL exactly as before. +CREATE FUNCTION eql_v3.jsonb_array_to_bytea_array(val jsonb) +RETURNS bytea[] + IMMUTABLE +AS $$ + SELECT CASE WHEN jsonb_typeof(val) = 'array' + THEN ( + SELECT array_agg(decode(value::text, 'hex')::bytea) + FROM jsonb_array_elements_text(val) AS value + ) + ELSE NULL + END; +$$ LANGUAGE sql; + +--! @internal Mark this hand-written helper inline-critical so the post-install +--! pin_search_path pass leaves it unpinned (no \`SET search_path\`), preserving +--! SQL-function inlining. It takes a bare \`jsonb\` arg (not a jsonb-backed +--! encrypted DOMAIN), so the structural skip in tasks/pin_search_path.sql does +--! not recognise it; this marker is the documented manual opt-in. +COMMENT ON FUNCTION eql_v3.jsonb_array_to_bytea_array(jsonb) IS + 'eql-inline-critical: per-encrypted-value ORE helper; must stay inlinable (unpinned search_path)'; + +--! @file v3/sem/hmac_256/types.sql +--! @brief HMAC-SHA256 index term type (eql_v3 SEM) +--! +--! Domain type representing HMAC-SHA256 hash values. Used for exact-match +--! encrypted searches. The hash is stored in the 'hm' field of encrypted data +--! payloads. Self-contained eql_v3 copy (design D1/D3); the eql_v2 original is +--! unchanged. +--! +--! @note Transient type used only during query execution. +CREATE DOMAIN eql_v3.hmac_256 AS text; + +--! @file v3/sem/bloom_filter/types.sql +--! @brief Self-contained eql_v3 Bloom-filter SEM index-term type. + +--! @brief Bloom-filter index term: a bit array stored as smallint[]. +--! +--! Backs the \`match\` capability (\`@>\` / \`<@\`) on \`eql_v3.text_match\`. The +--! filter is read from the \`bf\` field of an encrypted jsonb payload. Native +--! \`smallint[]\` array-containment (\`@>\`/\`<@\`) is inherited through the domain, +--! so this type needs no custom operators. +--! +--! @note Self-contained: references no eql_v2 symbol. +CREATE DOMAIN eql_v3.bloom_filter AS smallint[]; + +--! @file v3/scalars/functions.sql +--! @brief Shared blocker helper for the eql_v3 encrypted-domain families. +--! +--! Per-domain wrapper functions live in src/v3/scalars//. +--! Blockers in those files delegate to encrypted_domain_unsupported_bool +--! so every domain raises a uniform domain-specific error rather than +--! letting an unsupported operator fall through to native jsonb +--! behaviour. + +--! @brief Shared blocker helper. Raises 'operator X is not supported +--! for TYPE' so unsupported domain operators surface a clear +--! error rather than fall through to native jsonb behaviour. +--! @param type_name Domain type name (eql_v3.*) +--! @param operator_name Operator symbol (=, <, @>, ->, etc.) +--! @return boolean (never returns; always raises) +CREATE FUNCTION eql_v3.encrypted_domain_unsupported_bool(type_name text, operator_name text) +RETURNS boolean +IMMUTABLE PARALLEL SAFE +SET search_path = pg_catalog, extensions, public +AS $$ +BEGIN + RAISE EXCEPTION 'operator % is not supported for %', operator_name, type_name; +END; +$$ LANGUAGE plpgsql; + +--! @file v3/sem/ore_block_u64_8_256/functions.sql +--! @brief ORE block construction, extraction, and comparison (eql_v3 SEM). +--! +--! jsonb-only subset of src/ore_block_u64_8_256/functions.sql. The +--! encrypted-column overloads are omitted; the helper jsonb_array_to_bytea_array +--! and pgcrypto encrypt() are reached via the forked src/v3/common.sql and +--! src/v3/crypto.sql so the whole closure stays under src/v3. (Doc comments +--! deliberately avoid naming eql_v2 symbols so the self-containment grep stays +--! clean.) + +--! @brief Convert JSONB array to ORE block composite type +--! @internal +--! @param val jsonb Array of hex-encoded ORE block terms +--! @return eql_v3.ore_block_u64_8_256 ORE block composite, or NULL if input is null +--! @note Inlinable \`LANGUAGE sql\` IMMUTABLE form (no \`SET search_path\`) so the +--! planner can fold this per-encrypted-value helper into the calling query. +--! This deliberately diverges from the v2 plpgsql equivalent (intentionally +--! left unchanged): the \`CASE WHEN jsonb_typeof(val) = 'array'\` guard only +--! evaluates the array path for an array, so a non-array JSON scalar returns +--! NULL here instead of raising. The sole caller passes \`val->'ob'\`, always an +--! array or JSON null, so the divergence is unreachable in practice; JSON null +--! and empty array still return NULL exactly as before. +CREATE FUNCTION eql_v3.jsonb_array_to_ore_block_u64_8_256(val jsonb) +RETURNS eql_v3.ore_block_u64_8_256 + IMMUTABLE +AS $$ + SELECT CASE WHEN jsonb_typeof(val) = 'array' + THEN ROW(( + SELECT array_agg(ROW(b)::eql_v3.ore_block_u64_8_256_term) + FROM unnest(eql_v3.jsonb_array_to_bytea_array(val)) AS b + ))::eql_v3.ore_block_u64_8_256 + ELSE NULL + END; +$$ LANGUAGE sql; + +--! @internal Mark this hand-written helper inline-critical so the post-install +--! pin_search_path pass leaves it unpinned (no \`SET search_path\`), preserving +--! SQL-function inlining. It takes a bare \`jsonb\` arg (not a jsonb-backed +--! encrypted DOMAIN), so the structural skip in tasks/pin_search_path.sql does +--! not recognise it; this marker is the documented manual opt-in. +COMMENT ON FUNCTION eql_v3.jsonb_array_to_ore_block_u64_8_256(jsonb) IS + 'eql-inline-critical: per-encrypted-value ORE helper; must stay inlinable (unpinned search_path)'; + + +--! @brief Extract ORE block index term from JSONB payload +--! @param val jsonb containing encrypted EQL payload +--! @return eql_v3.ore_block_u64_8_256 ORE block index term +--! @throws Exception if 'ob' field is missing +CREATE FUNCTION eql_v3.ore_block_u64_8_256(val jsonb) + RETURNS eql_v3.ore_block_u64_8_256 + IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public +AS $$ + BEGIN + -- Declared STRICT: PostgreSQL returns NULL for a NULL argument without + -- entering the body, so no explicit \`val IS NULL\` guard is needed. + IF eql_v3.has_ore_block_u64_8_256(val) THEN + RETURN eql_v3.jsonb_array_to_ore_block_u64_8_256(val->'ob'); + END IF; + RAISE 'Expected an ore index (ob) value in json: %', val; + END; +$$ LANGUAGE plpgsql; + + +--! @brief Check if JSONB payload contains ORE block index term +--! @param val jsonb containing encrypted EQL payload +--! @return boolean True if 'ob' field is present and non-null +CREATE FUNCTION eql_v3.has_ore_block_u64_8_256(val jsonb) + RETURNS boolean + IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public +AS $$ + BEGIN + RETURN val ->> 'ob' IS NOT NULL; + END; +$$ LANGUAGE plpgsql; + + +--! @brief Compare two ORE block terms using cryptographic comparison +--! @internal +--! @param a eql_v3.ore_block_u64_8_256_term First ORE term +--! @param b eql_v3.ore_block_u64_8_256_term Second ORE term +--! @return integer -1 if a < b, 0 if a = b, 1 if a > b +--! @throws Exception if ciphertexts are different lengths +--! @note Marked \`IMMUTABLE\` (the three \`compare_ore_block_u64_8_256_term(s)\` +--! overloads all are). This deliberately diverges from the v2 originals, +--! which carry no volatility marker and so default to \`VOLATILE\`. The +--! comparison is deterministic — its only crypto call, pgcrypto \`encrypt()\`, +--! is itself \`IMMUTABLE STRICT PARALLEL SAFE\` — so \`IMMUTABLE\` lets the +--! planner fold/cache these in ordering and index contexts. NOT \`STRICT\`: +--! the NULL-handling branches below are load-bearing for the array overload. +CREATE FUNCTION eql_v3.compare_ore_block_u64_8_256_term(a eql_v3.ore_block_u64_8_256_term, b eql_v3.ore_block_u64_8_256_term) + RETURNS integer + IMMUTABLE + SET search_path = pg_catalog, extensions, public +AS $$ + DECLARE + eq boolean := true; + unequal_block smallint := 0; + hash_key bytea; + data_block bytea; + encrypt_block bytea; + target_block bytea; + + left_block_size CONSTANT smallint := 16; + right_block_size CONSTANT smallint := 32; + right_offset CONSTANT smallint := 136; -- 8 * 17 + + indicator smallint := 0; + BEGIN + IF a IS NULL AND b IS NULL THEN + RETURN 0; + END IF; + + IF a IS NULL THEN + RETURN -1; + END IF; + + IF b IS NULL THEN + RETURN 1; + END IF; + + IF bit_length(a.bytes) != bit_length(b.bytes) THEN + RAISE EXCEPTION 'Ciphertexts are different lengths'; + END IF; + + FOR block IN 0..7 LOOP + IF + substr(a.bytes, 1 + block, 1) != substr(b.bytes, 1 + block, 1) + OR substr(a.bytes, 9 + left_block_size * block, left_block_size) != substr(b.bytes, 9 + left_block_size * BLOCK, left_block_size) + THEN + IF eq THEN + unequal_block := block; + END IF; + eq = false; + END IF; + END LOOP; + + IF eq THEN + RETURN 0::integer; + END IF; + + hash_key := substr(b.bytes, right_offset + 1, 16); + + target_block := substr(b.bytes, right_offset + 17 + (unequal_block * right_block_size), right_block_size); + + data_block := substr(a.bytes, 9 + (left_block_size * unequal_block), left_block_size); + + encrypt_block := encrypt(data_block::bytea, hash_key::bytea, 'aes-ecb'); + + indicator := ( + get_bit( + encrypt_block, + 0 + ) + get_bit(target_block, get_byte(a.bytes, unequal_block))) % 2; + + IF indicator = 1 THEN + RETURN 1::integer; + ELSE + RETURN -1::integer; + END IF; + END; +$$ LANGUAGE plpgsql; + + +--! @brief Compare arrays of ORE block terms recursively +--! @internal +--! @param a eql_v3.ore_block_u64_8_256_term[] First array +--! @param b eql_v3.ore_block_u64_8_256_term[] Second array +--! @return integer -1/0/1, or NULL if either array is NULL +CREATE FUNCTION eql_v3.compare_ore_block_u64_8_256_terms(a eql_v3.ore_block_u64_8_256_term[], b eql_v3.ore_block_u64_8_256_term[]) +RETURNS integer + IMMUTABLE + SET search_path = pg_catalog, extensions, public +AS $$ + DECLARE + cmp_result integer; + BEGIN + IF a IS NULL OR b IS NULL THEN + RETURN NULL; + END IF; + + IF cardinality(a) = 0 AND cardinality(b) = 0 THEN + RETURN 0; + END IF; + + IF (cardinality(a) = 0) AND cardinality(b) > 0 THEN + RETURN -1; + END IF; + + IF cardinality(a) > 0 AND (cardinality(b) = 0) THEN + RETURN 1; + END IF; + + cmp_result := eql_v3.compare_ore_block_u64_8_256_term(a[1], b[1]); + + IF cmp_result = 0 THEN + RETURN eql_v3.compare_ore_block_u64_8_256_terms(a[2:array_length(a,1)], b[2:array_length(b,1)]); + END IF; + + RETURN cmp_result; + END +$$ LANGUAGE plpgsql; + + +--! @brief Compare ORE block composite types +--! @internal +--! @param a eql_v3.ore_block_u64_8_256 First ORE block +--! @param b eql_v3.ore_block_u64_8_256 Second ORE block +--! @return integer -1/0/1 +CREATE FUNCTION eql_v3.compare_ore_block_u64_8_256_terms(a eql_v3.ore_block_u64_8_256, b eql_v3.ore_block_u64_8_256) +RETURNS integer + IMMUTABLE + SET search_path = pg_catalog, extensions, public +AS $$ + BEGIN + RETURN eql_v3.compare_ore_block_u64_8_256_terms(a.terms, b.terms); + END +$$ LANGUAGE plpgsql; + +--! @file v3/sem/ore_block_u64_8_256/operators.sql +--! @brief Comparison operators on eql_v3.ore_block_u64_8_256. +--! +--! The six backing functions are inlinable single-statement SQL so the planner +--! can fold the eql_v3 comparison wrappers through to functional-index matching. + +--! @brief Equality backing function for ORE block types +--! @internal +--! +--! @param a eql_v3.ore_block_u64_8_256 Left operand +--! @param b eql_v3.ore_block_u64_8_256 Right operand +--! @return boolean True if the ORE blocks are equal +--! +--! @see eql_v3.compare_ore_block_u64_8_256_terms +CREATE FUNCTION eql_v3.ore_block_u64_8_256_eq(a eql_v3.ore_block_u64_8_256, b eql_v3.ore_block_u64_8_256) +RETURNS boolean + LANGUAGE sql + IMMUTABLE STRICT PARALLEL SAFE +AS $$ + SELECT eql_v3.compare_ore_block_u64_8_256_terms(a, b) = 0 +$$; + +--! @brief Not-equal backing function for ORE block types +--! @internal +--! +--! @param a eql_v3.ore_block_u64_8_256 Left operand +--! @param b eql_v3.ore_block_u64_8_256 Right operand +--! @return boolean True if the ORE blocks are not equal +--! +--! @see eql_v3.compare_ore_block_u64_8_256_terms +CREATE FUNCTION eql_v3.ore_block_u64_8_256_neq(a eql_v3.ore_block_u64_8_256, b eql_v3.ore_block_u64_8_256) +RETURNS boolean + LANGUAGE sql + IMMUTABLE STRICT PARALLEL SAFE +AS $$ + SELECT eql_v3.compare_ore_block_u64_8_256_terms(a, b) <> 0 +$$; + +--! @brief Less-than backing function for ORE block types +--! @internal +--! +--! @param a eql_v3.ore_block_u64_8_256 Left operand +--! @param b eql_v3.ore_block_u64_8_256 Right operand +--! @return boolean True if the left operand is less than the right operand +--! +--! @see eql_v3.compare_ore_block_u64_8_256_terms +CREATE FUNCTION eql_v3.ore_block_u64_8_256_lt(a eql_v3.ore_block_u64_8_256, b eql_v3.ore_block_u64_8_256) +RETURNS boolean + LANGUAGE sql + IMMUTABLE STRICT PARALLEL SAFE +AS $$ + SELECT eql_v3.compare_ore_block_u64_8_256_terms(a, b) = -1 +$$; + +--! @brief Less-than-or-equal backing function for ORE block types +--! @internal +--! +--! @param a eql_v3.ore_block_u64_8_256 Left operand +--! @param b eql_v3.ore_block_u64_8_256 Right operand +--! @return boolean True if the left operand is less than or equal to the right operand +--! +--! @see eql_v3.compare_ore_block_u64_8_256_terms +CREATE FUNCTION eql_v3.ore_block_u64_8_256_lte(a eql_v3.ore_block_u64_8_256, b eql_v3.ore_block_u64_8_256) +RETURNS boolean + LANGUAGE sql + IMMUTABLE STRICT PARALLEL SAFE +AS $$ + SELECT eql_v3.compare_ore_block_u64_8_256_terms(a, b) != 1 +$$; + +--! @brief Greater-than backing function for ORE block types +--! @internal +--! +--! @param a eql_v3.ore_block_u64_8_256 Left operand +--! @param b eql_v3.ore_block_u64_8_256 Right operand +--! @return boolean True if the left operand is greater than the right operand +--! +--! @see eql_v3.compare_ore_block_u64_8_256_terms +CREATE FUNCTION eql_v3.ore_block_u64_8_256_gt(a eql_v3.ore_block_u64_8_256, b eql_v3.ore_block_u64_8_256) +RETURNS boolean + LANGUAGE sql + IMMUTABLE STRICT PARALLEL SAFE +AS $$ + SELECT eql_v3.compare_ore_block_u64_8_256_terms(a, b) = 1 +$$; + +--! @brief Greater-than-or-equal backing function for ORE block types +--! @internal +--! +--! @param a eql_v3.ore_block_u64_8_256 Left operand +--! @param b eql_v3.ore_block_u64_8_256 Right operand +--! @return boolean True if the left operand is greater than or equal to the right operand +--! +--! @see eql_v3.compare_ore_block_u64_8_256_terms +CREATE FUNCTION eql_v3.ore_block_u64_8_256_gte(a eql_v3.ore_block_u64_8_256, b eql_v3.ore_block_u64_8_256) +RETURNS boolean + LANGUAGE sql + IMMUTABLE STRICT PARALLEL SAFE +AS $$ + SELECT eql_v3.compare_ore_block_u64_8_256_terms(a, b) != -1 +$$; + + +--! @brief = operator for ORE block types +--! +--! COMMUTATOR is the operator itself: equality is symmetric. Required for the +--! MERGES flag — without it the planner raises "could not find commutator" the +--! first time an ore_block equality is used as a join qual (e.g. via the inlined +--! eql_v3._ord_ore equality wrappers). +CREATE OPERATOR = ( + FUNCTION=eql_v3.ore_block_u64_8_256_eq, + LEFTARG=eql_v3.ore_block_u64_8_256, + RIGHTARG=eql_v3.ore_block_u64_8_256, + COMMUTATOR = =, + NEGATOR = <>, + RESTRICT = eqsel, + JOIN = eqjoinsel, + HASHES, + MERGES +); + +--! @brief <> operator for ORE block types +CREATE OPERATOR <> ( + FUNCTION=eql_v3.ore_block_u64_8_256_neq, + LEFTARG=eql_v3.ore_block_u64_8_256, + RIGHTARG=eql_v3.ore_block_u64_8_256, + COMMUTATOR = <>, + NEGATOR = =, + RESTRICT = eqsel, + JOIN = eqjoinsel, + HASHES, + MERGES +); + +--! @brief > operator for ORE block types +CREATE OPERATOR > ( + FUNCTION=eql_v3.ore_block_u64_8_256_gt, + LEFTARG=eql_v3.ore_block_u64_8_256, + RIGHTARG=eql_v3.ore_block_u64_8_256, + COMMUTATOR = <, + NEGATOR = <=, + RESTRICT = scalargtsel, + JOIN = scalargtjoinsel +); + +--! @brief < operator for ORE block types +CREATE OPERATOR < ( + FUNCTION=eql_v3.ore_block_u64_8_256_lt, + LEFTARG=eql_v3.ore_block_u64_8_256, + RIGHTARG=eql_v3.ore_block_u64_8_256, + COMMUTATOR = >, + NEGATOR = >=, + RESTRICT = scalarltsel, + JOIN = scalarltjoinsel +); + +--! @brief <= operator for ORE block types +CREATE OPERATOR <= ( + FUNCTION=eql_v3.ore_block_u64_8_256_lte, + LEFTARG=eql_v3.ore_block_u64_8_256, + RIGHTARG=eql_v3.ore_block_u64_8_256, + COMMUTATOR = >=, + NEGATOR = >, + RESTRICT = scalarlesel, + JOIN = scalarlejoinsel +); + +--! @brief >= operator for ORE block types +CREATE OPERATOR >= ( + FUNCTION=eql_v3.ore_block_u64_8_256_gte, + LEFTARG=eql_v3.ore_block_u64_8_256, + RIGHTARG=eql_v3.ore_block_u64_8_256, + COMMUTATOR = <=, + NEGATOR = <, + RESTRICT = scalargesel, + JOIN = scalargejoinsel +); + +--! @file v3/sem/hmac_256/functions.sql +--! @brief HMAC-SHA256 index-term extraction from a jsonb payload (eql_v3 SEM). +--! +--! jsonb-only subset of src/hmac_256/functions.sql. The encrypted-column and +--! ste_vec-entry overloads are intentionally omitted — the eql_v3 scalar +--! domains extract from the jsonb payload directly via a cast to the domain. +--! (Doc comments deliberately avoid naming eql_v2 symbols so the +--! self-containment grep stays clean.) + +--! @brief Extract HMAC-SHA256 index term from JSONB payload +--! +--! Inlinable single-statement SQL — the planner can fold this into the calling +--! query so functional hash/btree indexes built on \`eql_v3.eq_term(col)\` +--! (which calls this) engage structurally. +--! +--! @param val jsonb containing encrypted EQL payload +--! @return eql_v3.hmac_256 HMAC-SHA256 hash value, or NULL when \`hm\` is absent +CREATE FUNCTION eql_v3.hmac_256(val jsonb) + RETURNS eql_v3.hmac_256 + LANGUAGE sql + IMMUTABLE STRICT PARALLEL SAFE +AS $$ + SELECT (val ->> 'hm')::eql_v3.hmac_256 +$$; + + +--! @brief Check if JSONB payload contains HMAC-SHA256 index term +--! +--! @param val jsonb containing encrypted EQL payload +--! @return boolean True if 'hm' field is present and non-null +CREATE FUNCTION eql_v3.has_hmac_256(val jsonb) + RETURNS boolean + IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public +AS $$ + BEGIN + RETURN val ->> 'hm' IS NOT NULL; + END; +$$ LANGUAGE plpgsql; + +--! @file v3/sem/bloom_filter/functions.sql +--! @brief Extractor for the eql_v3 Bloom-filter SEM index term. +--! +--! jsonb-only subset of src/bloom_filter/functions.sql. The encrypted-column +--! overloads are intentionally omitted — the eql_v3 scalar domains extract from +--! the jsonb payload directly via a cast to the domain. (Doc comments +--! deliberately avoid naming eql_v2 symbols so the self-containment grep stays +--! clean.) + +--! @brief Test whether a jsonb payload carries a Bloom-filter (\`bf\`) term. +--! +--! @param val jsonb The encrypted payload. +--! @return boolean True when the \`bf\` key is present and non-null. +--! +--! @internal Defined for parity with the eql_v3 SEM index-term predicates +--! (\`has_hmac_256\` / \`has_ore_block_u64_8_256\`); it is not currently called by +--! the extractor below, which gates on value-shape inline, nor by the generated +--! domain CHECK, which tests \`bf\` presence via the envelope-key skeleton. Kept +--! as the canonical presence test for callers that need one. +CREATE FUNCTION eql_v3.has_bloom_filter(val jsonb) + RETURNS boolean + IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public +AS $$ + BEGIN + RETURN val ? 'bf' AND val ->> 'bf' IS NOT NULL; + END; +$$ LANGUAGE plpgsql; + +--! @brief Extract the Bloom-filter index term from a jsonb payload. +--! +--! Inlinable single-statement SQL — the planner can fold this into the calling +--! query so the functional GIN index built on \`eql_v3.match_term(col)\` (which +--! calls this) engages structurally. Mirrors \`eql_v3.hmac_256(jsonb)\`: no RAISE +--! and no pinned \`search_path\`. Returns NULL when \`bf\` is absent or present but +--! not a json array, rather than raising. The \`text_match\` domain CHECK +--! guarantees the \`bf\` *key* is present but not that it is an array, so a +--! non-array \`bf\` (e.g. \`{"bf": null}\`) can reach here even on a typed value; +--! gating on \`jsonb_typeof(...) = 'array'\` returns NULL for that case — and for +--! raw jsonb outside the domain — instead of erroring inside +--! \`jsonb_array_elements\`. NULL, like the HMAC extractor, is the right answer. An +--! empty \`bf\` array yields an empty filter (contains nothing, contained by +--! everything), matching set-containment semantics. +--! +--! @param val jsonb The encrypted payload. +--! @return eql_v3.bloom_filter The \`bf\` array as a smallint[] domain value, or +--! NULL when \`bf\` is absent or not a json array. +CREATE FUNCTION eql_v3.bloom_filter(val jsonb) + RETURNS eql_v3.bloom_filter + LANGUAGE sql + IMMUTABLE STRICT PARALLEL SAFE +AS $$ + SELECT CASE WHEN jsonb_typeof(val -> 'bf') = 'array' + THEN ARRAY(SELECT jsonb_array_elements(val -> 'bf'))::eql_v3.bloom_filter + END +$$; +-- AUTOMATICALLY GENERATED FILE. + +--! @file v3/scalars/int4/int4_types.sql +--! @brief Encrypted-domain types for int4. + +DO $$ +BEGIN + --! @brief Encrypted domain eql_v3.int4. + IF NOT EXISTS ( + SELECT 1 FROM pg_type + WHERE typname = 'int4' AND typnamespace = 'eql_v3'::regnamespace + ) THEN + CREATE DOMAIN eql_v3.int4 AS jsonb + CHECK ( + jsonb_typeof(VALUE) = 'object' + AND VALUE ? 'v' + AND VALUE ? 'i' + AND VALUE ? 'c' + AND VALUE->>'v' = '2' + ); + END IF; + + --! @brief Encrypted domain eql_v3.int4_eq. + IF NOT EXISTS ( + SELECT 1 FROM pg_type + WHERE typname = 'int4_eq' AND typnamespace = 'eql_v3'::regnamespace + ) THEN + CREATE DOMAIN eql_v3.int4_eq AS jsonb + CHECK ( + jsonb_typeof(VALUE) = 'object' + AND VALUE ? 'v' + AND VALUE ? 'i' + AND VALUE ? 'c' + AND VALUE ? 'hm' + AND VALUE->>'v' = '2' + ); + END IF; + + --! @brief Encrypted domain eql_v3.int4_ord_ore. + IF NOT EXISTS ( + SELECT 1 FROM pg_type + WHERE typname = 'int4_ord_ore' AND typnamespace = 'eql_v3'::regnamespace + ) THEN + CREATE DOMAIN eql_v3.int4_ord_ore AS jsonb + CHECK ( + jsonb_typeof(VALUE) = 'object' + AND VALUE ? 'v' + AND VALUE ? 'i' + AND VALUE ? 'c' + AND VALUE ? 'ob' + AND VALUE->>'v' = '2' + ); + END IF; + + --! @brief Encrypted domain eql_v3.int4_ord. + IF NOT EXISTS ( + SELECT 1 FROM pg_type + WHERE typname = 'int4_ord' AND typnamespace = 'eql_v3'::regnamespace + ) THEN + CREATE DOMAIN eql_v3.int4_ord AS jsonb + CHECK ( + jsonb_typeof(VALUE) = 'object' + AND VALUE ? 'v' + AND VALUE ? 'i' + AND VALUE ? 'c' + AND VALUE ? 'ob' + AND VALUE->>'v' = '2' + ); + END IF; +END +$$; +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/int4/int4_ord_functions.sql +--! @brief Functions for eql_v3.int4_ord. + +--! @brief Index extractor for eql_v3.int4_ord. +--! @param a eql_v3.int4_ord +--! @return eql_v3.ore_block_u64_8_256 +CREATE FUNCTION eql_v3.ord_term(a eql_v3.int4_ord) +RETURNS eql_v3.ore_block_u64_8_256 +LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ore_block_u64_8_256(a::jsonb) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord. +--! @param a eql_v3.int4_ord +--! @param b eql_v3.int4_ord +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.int4_ord, b eql_v3.int4_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord. +--! @param a eql_v3.int4_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.int4_ord, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b::eql_v3.int4_ord) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord. +--! @param a jsonb +--! @param b eql_v3.int4_ord +--! @return boolean +CREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.int4_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int4_ord) = eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord. +--! @param a eql_v3.int4_ord +--! @param b eql_v3.int4_ord +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.int4_ord, b eql_v3.int4_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord. +--! @param a eql_v3.int4_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.int4_ord, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b::eql_v3.int4_ord) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord. +--! @param a jsonb +--! @param b eql_v3.int4_ord +--! @return boolean +CREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.int4_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int4_ord) <> eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord. +--! @param a eql_v3.int4_ord +--! @param b eql_v3.int4_ord +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.int4_ord, b eql_v3.int4_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord. +--! @param a eql_v3.int4_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.int4_ord, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b::eql_v3.int4_ord) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord. +--! @param a jsonb +--! @param b eql_v3.int4_ord +--! @return boolean +CREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.int4_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int4_ord) < eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord. +--! @param a eql_v3.int4_ord +--! @param b eql_v3.int4_ord +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.int4_ord, b eql_v3.int4_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord. +--! @param a eql_v3.int4_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.int4_ord, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b::eql_v3.int4_ord) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord. +--! @param a jsonb +--! @param b eql_v3.int4_ord +--! @return boolean +CREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.int4_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int4_ord) <= eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord. +--! @param a eql_v3.int4_ord +--! @param b eql_v3.int4_ord +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.int4_ord, b eql_v3.int4_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord. +--! @param a eql_v3.int4_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.int4_ord, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b::eql_v3.int4_ord) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord. +--! @param a jsonb +--! @param b eql_v3.int4_ord +--! @return boolean +CREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.int4_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int4_ord) > eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord. +--! @param a eql_v3.int4_ord +--! @param b eql_v3.int4_ord +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.int4_ord, b eql_v3.int4_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord. +--! @param a eql_v3.int4_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.int4_ord, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b::eql_v3.int4_ord) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord. +--! @param a jsonb +--! @param b eql_v3.int4_ord +--! @return boolean +CREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.int4_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int4_ord) >= eql_v3.ord_term(b) $$; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord. +--! @param a eql_v3.int4_ord +--! @param b eql_v3.int4_ord +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.int4_ord, b eql_v3.int4_ord) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int4_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord. +--! @param a eql_v3.int4_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.int4_ord, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int4_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord. +--! @param a jsonb +--! @param b eql_v3.int4_ord +--! @return boolean +CREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.int4_ord) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int4_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord. +--! @param a eql_v3.int4_ord +--! @param b eql_v3.int4_ord +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.int4_ord, b eql_v3.int4_ord) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int4_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord. +--! @param a eql_v3.int4_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.int4_ord, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int4_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord. +--! @param a jsonb +--! @param b eql_v3.int4_ord +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.int4_ord) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int4_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord. +--! @param a eql_v3.int4_ord +--! @param selector text +--! @return eql_v3.int4_ord +CREATE FUNCTION eql_v3."->"(a eql_v3.int4_ord, selector text) +RETURNS eql_v3.int4_ord IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int4_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord. +--! @param a eql_v3.int4_ord +--! @param selector integer +--! @return eql_v3.int4_ord +CREATE FUNCTION eql_v3."->"(a eql_v3.int4_ord, selector integer) +RETURNS eql_v3.int4_ord IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int4_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord. +--! @param a jsonb +--! @param selector eql_v3.int4_ord +--! @return eql_v3.int4_ord +CREATE FUNCTION eql_v3."->"(a jsonb, selector eql_v3.int4_ord) +RETURNS eql_v3.int4_ord IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int4_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord. +--! @param a eql_v3.int4_ord +--! @param selector text +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.int4_ord, selector text) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int4_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord. +--! @param a eql_v3.int4_ord +--! @param selector integer +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.int4_ord, selector integer) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int4_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord. +--! @param a jsonb +--! @param selector eql_v3.int4_ord +--! @return text +CREATE FUNCTION eql_v3."->>"(a jsonb, selector eql_v3.int4_ord) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int4_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord. +--! @param a eql_v3.int4_ord +--! @param b text +--! @return boolean +CREATE FUNCTION eql_v3."?"(a eql_v3.int4_ord, b text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.int4_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord. +--! @param a eql_v3.int4_ord +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?|"(a eql_v3.int4_ord, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.int4_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord. +--! @param a eql_v3.int4_ord +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?&"(a eql_v3.int4_ord, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.int4_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord. +--! @param a eql_v3.int4_ord +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@?"(a eql_v3.int4_ord, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.int4_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord. +--! @param a eql_v3.int4_ord +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@@"(a eql_v3.int4_ord, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.int4_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord. +--! @param a eql_v3.int4_ord +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#>"(a eql_v3.int4_ord, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.int4_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord. +--! @param a eql_v3.int4_ord +--! @param b text[] +--! @return text +CREATE FUNCTION eql_v3."#>>"(a eql_v3.int4_ord, b text[]) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.int4_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord. +--! @param a eql_v3.int4_ord +--! @param b text +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int4_ord, b text) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int4_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord. +--! @param a eql_v3.int4_ord +--! @param b integer +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int4_ord, b integer) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int4_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord. +--! @param a eql_v3.int4_ord +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int4_ord, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int4_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord. +--! @param a eql_v3.int4_ord +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#-"(a eql_v3.int4_ord, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.int4_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord. +--! @param a eql_v3.int4_ord +--! @param b eql_v3.int4_ord +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.int4_ord, b eql_v3.int4_ord) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int4_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord. +--! @param a eql_v3.int4_ord +--! @param b jsonb +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.int4_ord, b jsonb) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int4_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord. +--! @param a jsonb +--! @param b eql_v3.int4_ord +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a jsonb, b eql_v3.int4_ord) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int4_ord'; END; $$ +LANGUAGE plpgsql; +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/int4/int4_ord_operators.sql +--! @brief Operators for eql_v3.int4_ord. + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.int4_ord, RIGHTARG = eql_v3.int4_ord, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.int4_ord, RIGHTARG = jsonb, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.int4_ord, RIGHTARG = eql_v3.int4_ord, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.int4_ord, RIGHTARG = jsonb, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.int4_ord, RIGHTARG = eql_v3.int4_ord, + COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.int4_ord, RIGHTARG = jsonb, + COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord, + COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.int4_ord, RIGHTARG = eql_v3.int4_ord, + COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.int4_ord, RIGHTARG = jsonb, + COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord, + COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.int4_ord, RIGHTARG = eql_v3.int4_ord, + COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.int4_ord, RIGHTARG = jsonb, + COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord, + COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.int4_ord, RIGHTARG = eql_v3.int4_ord, + COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.int4_ord, RIGHTARG = jsonb, + COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord, + COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.int4_ord, RIGHTARG = eql_v3.int4_ord +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.int4_ord, RIGHTARG = jsonb +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.int4_ord, RIGHTARG = eql_v3.int4_ord +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.int4_ord, RIGHTARG = jsonb +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.int4_ord, RIGHTARG = text +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.int4_ord, RIGHTARG = integer +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.int4_ord, RIGHTARG = text +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.int4_ord, RIGHTARG = integer +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord +); + +CREATE OPERATOR ? ( + FUNCTION = eql_v3."?", + LEFTARG = eql_v3.int4_ord, RIGHTARG = text +); + +CREATE OPERATOR ?| ( + FUNCTION = eql_v3."?|", + LEFTARG = eql_v3.int4_ord, RIGHTARG = text[] +); + +CREATE OPERATOR ?& ( + FUNCTION = eql_v3."?&", + LEFTARG = eql_v3.int4_ord, RIGHTARG = text[] +); + +CREATE OPERATOR @? ( + FUNCTION = eql_v3."@?", + LEFTARG = eql_v3.int4_ord, RIGHTARG = jsonpath +); + +CREATE OPERATOR @@ ( + FUNCTION = eql_v3."@@", + LEFTARG = eql_v3.int4_ord, RIGHTARG = jsonpath +); + +CREATE OPERATOR #> ( + FUNCTION = eql_v3."#>", + LEFTARG = eql_v3.int4_ord, RIGHTARG = text[] +); + +CREATE OPERATOR #>> ( + FUNCTION = eql_v3."#>>", + LEFTARG = eql_v3.int4_ord, RIGHTARG = text[] +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int4_ord, RIGHTARG = text +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int4_ord, RIGHTARG = integer +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int4_ord, RIGHTARG = text[] +); + +CREATE OPERATOR #- ( + FUNCTION = eql_v3."#-", + LEFTARG = eql_v3.int4_ord, RIGHTARG = text[] +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.int4_ord, RIGHTARG = eql_v3.int4_ord +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.int4_ord, RIGHTARG = jsonb +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord +); +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/int4/int4_eq_functions.sql +--! @brief Functions for eql_v3.int4_eq. + +--! @brief Index extractor for eql_v3.int4_eq. +--! @param a eql_v3.int4_eq +--! @return eql_v3.hmac_256 +CREATE FUNCTION eql_v3.eq_term(a eql_v3.int4_eq) +RETURNS eql_v3.hmac_256 +LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.hmac_256(a::jsonb) $$; + +--! @brief Operator wrapper for eql_v3.int4_eq. +--! @param a eql_v3.int4_eq +--! @param b eql_v3.int4_eq +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.int4_eq, b eql_v3.int4_eq) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a) = eql_v3.eq_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int4_eq. +--! @param a eql_v3.int4_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.int4_eq, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a) = eql_v3.eq_term(b::eql_v3.int4_eq) $$; + +--! @brief Operator wrapper for eql_v3.int4_eq. +--! @param a jsonb +--! @param b eql_v3.int4_eq +--! @return boolean +CREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.int4_eq) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a::eql_v3.int4_eq) = eql_v3.eq_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int4_eq. +--! @param a eql_v3.int4_eq +--! @param b eql_v3.int4_eq +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.int4_eq, b eql_v3.int4_eq) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a) <> eql_v3.eq_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int4_eq. +--! @param a eql_v3.int4_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.int4_eq, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a) <> eql_v3.eq_term(b::eql_v3.int4_eq) $$; + +--! @brief Operator wrapper for eql_v3.int4_eq. +--! @param a jsonb +--! @param b eql_v3.int4_eq +--! @return boolean +CREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.int4_eq) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a::eql_v3.int4_eq) <> eql_v3.eq_term(b) $$; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a eql_v3.int4_eq +--! @param b eql_v3.int4_eq +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.int4_eq, b eql_v3.int4_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a eql_v3.int4_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.int4_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a jsonb +--! @param b eql_v3.int4_eq +--! @return boolean +CREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.int4_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a eql_v3.int4_eq +--! @param b eql_v3.int4_eq +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.int4_eq, b eql_v3.int4_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a eql_v3.int4_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.int4_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a jsonb +--! @param b eql_v3.int4_eq +--! @return boolean +CREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.int4_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a eql_v3.int4_eq +--! @param b eql_v3.int4_eq +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.int4_eq, b eql_v3.int4_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a eql_v3.int4_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.int4_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a jsonb +--! @param b eql_v3.int4_eq +--! @return boolean +CREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.int4_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a eql_v3.int4_eq +--! @param b eql_v3.int4_eq +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.int4_eq, b eql_v3.int4_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a eql_v3.int4_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.int4_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a jsonb +--! @param b eql_v3.int4_eq +--! @return boolean +CREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.int4_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a eql_v3.int4_eq +--! @param b eql_v3.int4_eq +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.int4_eq, b eql_v3.int4_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a eql_v3.int4_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.int4_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a jsonb +--! @param b eql_v3.int4_eq +--! @return boolean +CREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.int4_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a eql_v3.int4_eq +--! @param b eql_v3.int4_eq +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.int4_eq, b eql_v3.int4_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a eql_v3.int4_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.int4_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a jsonb +--! @param b eql_v3.int4_eq +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.int4_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a eql_v3.int4_eq +--! @param selector text +--! @return eql_v3.int4_eq +CREATE FUNCTION eql_v3."->"(a eql_v3.int4_eq, selector text) +RETURNS eql_v3.int4_eq IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a eql_v3.int4_eq +--! @param selector integer +--! @return eql_v3.int4_eq +CREATE FUNCTION eql_v3."->"(a eql_v3.int4_eq, selector integer) +RETURNS eql_v3.int4_eq IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a jsonb +--! @param selector eql_v3.int4_eq +--! @return eql_v3.int4_eq +CREATE FUNCTION eql_v3."->"(a jsonb, selector eql_v3.int4_eq) +RETURNS eql_v3.int4_eq IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a eql_v3.int4_eq +--! @param selector text +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.int4_eq, selector text) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a eql_v3.int4_eq +--! @param selector integer +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.int4_eq, selector integer) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a jsonb +--! @param selector eql_v3.int4_eq +--! @return text +CREATE FUNCTION eql_v3."->>"(a jsonb, selector eql_v3.int4_eq) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a eql_v3.int4_eq +--! @param b text +--! @return boolean +CREATE FUNCTION eql_v3."?"(a eql_v3.int4_eq, b text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a eql_v3.int4_eq +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?|"(a eql_v3.int4_eq, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a eql_v3.int4_eq +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?&"(a eql_v3.int4_eq, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a eql_v3.int4_eq +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@?"(a eql_v3.int4_eq, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a eql_v3.int4_eq +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@@"(a eql_v3.int4_eq, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a eql_v3.int4_eq +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#>"(a eql_v3.int4_eq, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a eql_v3.int4_eq +--! @param b text[] +--! @return text +CREATE FUNCTION eql_v3."#>>"(a eql_v3.int4_eq, b text[]) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a eql_v3.int4_eq +--! @param b text +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int4_eq, b text) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a eql_v3.int4_eq +--! @param b integer +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int4_eq, b integer) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a eql_v3.int4_eq +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int4_eq, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a eql_v3.int4_eq +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#-"(a eql_v3.int4_eq, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a eql_v3.int4_eq +--! @param b eql_v3.int4_eq +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.int4_eq, b eql_v3.int4_eq) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a eql_v3.int4_eq +--! @param b jsonb +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.int4_eq, b jsonb) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_eq. +--! @param a jsonb +--! @param b eql_v3.int4_eq +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a jsonb, b eql_v3.int4_eq) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int4_eq'; END; $$ +LANGUAGE plpgsql; +-- AUTOMATICALLY GENERATED FILE. + +--! @file v3/scalars/timestamptz/timestamptz_types.sql +--! @brief Encrypted-domain types for timestamptz. + +DO $$ +BEGIN + --! @brief Encrypted domain eql_v3.timestamptz. + IF NOT EXISTS ( + SELECT 1 FROM pg_type + WHERE typname = 'timestamptz' AND typnamespace = 'eql_v3'::regnamespace + ) THEN + CREATE DOMAIN eql_v3.timestamptz AS jsonb + CHECK ( + jsonb_typeof(VALUE) = 'object' + AND VALUE ? 'v' + AND VALUE ? 'i' + AND VALUE ? 'c' + AND VALUE->>'v' = '2' + ); + END IF; + + --! @brief Encrypted domain eql_v3.timestamptz_eq. + IF NOT EXISTS ( + SELECT 1 FROM pg_type + WHERE typname = 'timestamptz_eq' AND typnamespace = 'eql_v3'::regnamespace + ) THEN + CREATE DOMAIN eql_v3.timestamptz_eq AS jsonb + CHECK ( + jsonb_typeof(VALUE) = 'object' + AND VALUE ? 'v' + AND VALUE ? 'i' + AND VALUE ? 'c' + AND VALUE ? 'hm' + AND VALUE->>'v' = '2' + ); + END IF; +END +$$; +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/timestamptz/timestamptz_eq_functions.sql +--! @brief Functions for eql_v3.timestamptz_eq. + +--! @brief Index extractor for eql_v3.timestamptz_eq. +--! @param a eql_v3.timestamptz_eq +--! @return eql_v3.hmac_256 +CREATE FUNCTION eql_v3.eq_term(a eql_v3.timestamptz_eq) +RETURNS eql_v3.hmac_256 +LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.hmac_256(a::jsonb) $$; + +--! @brief Operator wrapper for eql_v3.timestamptz_eq. +--! @param a eql_v3.timestamptz_eq +--! @param b eql_v3.timestamptz_eq +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.timestamptz_eq, b eql_v3.timestamptz_eq) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a) = eql_v3.eq_term(b) $$; + +--! @brief Operator wrapper for eql_v3.timestamptz_eq. +--! @param a eql_v3.timestamptz_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.timestamptz_eq, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a) = eql_v3.eq_term(b::eql_v3.timestamptz_eq) $$; + +--! @brief Operator wrapper for eql_v3.timestamptz_eq. +--! @param a jsonb +--! @param b eql_v3.timestamptz_eq +--! @return boolean +CREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.timestamptz_eq) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a::eql_v3.timestamptz_eq) = eql_v3.eq_term(b) $$; + +--! @brief Operator wrapper for eql_v3.timestamptz_eq. +--! @param a eql_v3.timestamptz_eq +--! @param b eql_v3.timestamptz_eq +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.timestamptz_eq, b eql_v3.timestamptz_eq) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a) <> eql_v3.eq_term(b) $$; + +--! @brief Operator wrapper for eql_v3.timestamptz_eq. +--! @param a eql_v3.timestamptz_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.timestamptz_eq, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a) <> eql_v3.eq_term(b::eql_v3.timestamptz_eq) $$; + +--! @brief Operator wrapper for eql_v3.timestamptz_eq. +--! @param a jsonb +--! @param b eql_v3.timestamptz_eq +--! @return boolean +CREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.timestamptz_eq) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a::eql_v3.timestamptz_eq) <> eql_v3.eq_term(b) $$; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a eql_v3.timestamptz_eq +--! @param b eql_v3.timestamptz_eq +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.timestamptz_eq, b eql_v3.timestamptz_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a eql_v3.timestamptz_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.timestamptz_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a jsonb +--! @param b eql_v3.timestamptz_eq +--! @return boolean +CREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.timestamptz_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a eql_v3.timestamptz_eq +--! @param b eql_v3.timestamptz_eq +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.timestamptz_eq, b eql_v3.timestamptz_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a eql_v3.timestamptz_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.timestamptz_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a jsonb +--! @param b eql_v3.timestamptz_eq +--! @return boolean +CREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.timestamptz_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a eql_v3.timestamptz_eq +--! @param b eql_v3.timestamptz_eq +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.timestamptz_eq, b eql_v3.timestamptz_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a eql_v3.timestamptz_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.timestamptz_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a jsonb +--! @param b eql_v3.timestamptz_eq +--! @return boolean +CREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.timestamptz_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a eql_v3.timestamptz_eq +--! @param b eql_v3.timestamptz_eq +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.timestamptz_eq, b eql_v3.timestamptz_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a eql_v3.timestamptz_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.timestamptz_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a jsonb +--! @param b eql_v3.timestamptz_eq +--! @return boolean +CREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.timestamptz_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a eql_v3.timestamptz_eq +--! @param b eql_v3.timestamptz_eq +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.timestamptz_eq, b eql_v3.timestamptz_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a eql_v3.timestamptz_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.timestamptz_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a jsonb +--! @param b eql_v3.timestamptz_eq +--! @return boolean +CREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.timestamptz_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a eql_v3.timestamptz_eq +--! @param b eql_v3.timestamptz_eq +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.timestamptz_eq, b eql_v3.timestamptz_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a eql_v3.timestamptz_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.timestamptz_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a jsonb +--! @param b eql_v3.timestamptz_eq +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.timestamptz_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a eql_v3.timestamptz_eq +--! @param selector text +--! @return eql_v3.timestamptz_eq +CREATE FUNCTION eql_v3."->"(a eql_v3.timestamptz_eq, selector text) +RETURNS eql_v3.timestamptz_eq IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a eql_v3.timestamptz_eq +--! @param selector integer +--! @return eql_v3.timestamptz_eq +CREATE FUNCTION eql_v3."->"(a eql_v3.timestamptz_eq, selector integer) +RETURNS eql_v3.timestamptz_eq IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a jsonb +--! @param selector eql_v3.timestamptz_eq +--! @return eql_v3.timestamptz_eq +CREATE FUNCTION eql_v3."->"(a jsonb, selector eql_v3.timestamptz_eq) +RETURNS eql_v3.timestamptz_eq IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a eql_v3.timestamptz_eq +--! @param selector text +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.timestamptz_eq, selector text) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a eql_v3.timestamptz_eq +--! @param selector integer +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.timestamptz_eq, selector integer) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a jsonb +--! @param selector eql_v3.timestamptz_eq +--! @return text +CREATE FUNCTION eql_v3."->>"(a jsonb, selector eql_v3.timestamptz_eq) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a eql_v3.timestamptz_eq +--! @param b text +--! @return boolean +CREATE FUNCTION eql_v3."?"(a eql_v3.timestamptz_eq, b text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a eql_v3.timestamptz_eq +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?|"(a eql_v3.timestamptz_eq, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a eql_v3.timestamptz_eq +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?&"(a eql_v3.timestamptz_eq, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a eql_v3.timestamptz_eq +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@?"(a eql_v3.timestamptz_eq, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a eql_v3.timestamptz_eq +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@@"(a eql_v3.timestamptz_eq, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a eql_v3.timestamptz_eq +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#>"(a eql_v3.timestamptz_eq, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a eql_v3.timestamptz_eq +--! @param b text[] +--! @return text +CREATE FUNCTION eql_v3."#>>"(a eql_v3.timestamptz_eq, b text[]) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a eql_v3.timestamptz_eq +--! @param b text +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.timestamptz_eq, b text) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a eql_v3.timestamptz_eq +--! @param b integer +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.timestamptz_eq, b integer) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a eql_v3.timestamptz_eq +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.timestamptz_eq, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a eql_v3.timestamptz_eq +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#-"(a eql_v3.timestamptz_eq, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a eql_v3.timestamptz_eq +--! @param b eql_v3.timestamptz_eq +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.timestamptz_eq, b eql_v3.timestamptz_eq) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a eql_v3.timestamptz_eq +--! @param b jsonb +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.timestamptz_eq, b jsonb) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq. +--! @param a jsonb +--! @param b eql_v3.timestamptz_eq +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a jsonb, b eql_v3.timestamptz_eq) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.timestamptz_eq'; END; $$ +LANGUAGE plpgsql; +-- AUTOMATICALLY GENERATED FILE. + +--! @file v3/scalars/int2/int2_types.sql +--! @brief Encrypted-domain types for int2. + +DO $$ +BEGIN + --! @brief Encrypted domain eql_v3.int2. + IF NOT EXISTS ( + SELECT 1 FROM pg_type + WHERE typname = 'int2' AND typnamespace = 'eql_v3'::regnamespace + ) THEN + CREATE DOMAIN eql_v3.int2 AS jsonb + CHECK ( + jsonb_typeof(VALUE) = 'object' + AND VALUE ? 'v' + AND VALUE ? 'i' + AND VALUE ? 'c' + AND VALUE->>'v' = '2' + ); + END IF; + + --! @brief Encrypted domain eql_v3.int2_eq. + IF NOT EXISTS ( + SELECT 1 FROM pg_type + WHERE typname = 'int2_eq' AND typnamespace = 'eql_v3'::regnamespace + ) THEN + CREATE DOMAIN eql_v3.int2_eq AS jsonb + CHECK ( + jsonb_typeof(VALUE) = 'object' + AND VALUE ? 'v' + AND VALUE ? 'i' + AND VALUE ? 'c' + AND VALUE ? 'hm' + AND VALUE->>'v' = '2' + ); + END IF; + + --! @brief Encrypted domain eql_v3.int2_ord_ore. + IF NOT EXISTS ( + SELECT 1 FROM pg_type + WHERE typname = 'int2_ord_ore' AND typnamespace = 'eql_v3'::regnamespace + ) THEN + CREATE DOMAIN eql_v3.int2_ord_ore AS jsonb + CHECK ( + jsonb_typeof(VALUE) = 'object' + AND VALUE ? 'v' + AND VALUE ? 'i' + AND VALUE ? 'c' + AND VALUE ? 'ob' + AND VALUE->>'v' = '2' + ); + END IF; + + --! @brief Encrypted domain eql_v3.int2_ord. + IF NOT EXISTS ( + SELECT 1 FROM pg_type + WHERE typname = 'int2_ord' AND typnamespace = 'eql_v3'::regnamespace + ) THEN + CREATE DOMAIN eql_v3.int2_ord AS jsonb + CHECK ( + jsonb_typeof(VALUE) = 'object' + AND VALUE ? 'v' + AND VALUE ? 'i' + AND VALUE ? 'c' + AND VALUE ? 'ob' + AND VALUE->>'v' = '2' + ); + END IF; +END +$$; +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/int2/int2_ord_ore_functions.sql +--! @brief Functions for eql_v3.int2_ord_ore. + +--! @brief Index extractor for eql_v3.int2_ord_ore. +--! @param a eql_v3.int2_ord_ore +--! @return eql_v3.ore_block_u64_8_256 +CREATE FUNCTION eql_v3.ord_term(a eql_v3.int2_ord_ore) +RETURNS eql_v3.ore_block_u64_8_256 +LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ore_block_u64_8_256(a::jsonb) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord_ore. +--! @param a eql_v3.int2_ord_ore +--! @param b eql_v3.int2_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.int2_ord_ore, b eql_v3.int2_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord_ore. +--! @param a eql_v3.int2_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.int2_ord_ore, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b::eql_v3.int2_ord_ore) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord_ore. +--! @param a jsonb +--! @param b eql_v3.int2_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.int2_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int2_ord_ore) = eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord_ore. +--! @param a eql_v3.int2_ord_ore +--! @param b eql_v3.int2_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.int2_ord_ore, b eql_v3.int2_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord_ore. +--! @param a eql_v3.int2_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.int2_ord_ore, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b::eql_v3.int2_ord_ore) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord_ore. +--! @param a jsonb +--! @param b eql_v3.int2_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.int2_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int2_ord_ore) <> eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord_ore. +--! @param a eql_v3.int2_ord_ore +--! @param b eql_v3.int2_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.int2_ord_ore, b eql_v3.int2_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord_ore. +--! @param a eql_v3.int2_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.int2_ord_ore, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b::eql_v3.int2_ord_ore) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord_ore. +--! @param a jsonb +--! @param b eql_v3.int2_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.int2_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int2_ord_ore) < eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord_ore. +--! @param a eql_v3.int2_ord_ore +--! @param b eql_v3.int2_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.int2_ord_ore, b eql_v3.int2_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord_ore. +--! @param a eql_v3.int2_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.int2_ord_ore, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b::eql_v3.int2_ord_ore) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord_ore. +--! @param a jsonb +--! @param b eql_v3.int2_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.int2_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int2_ord_ore) <= eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord_ore. +--! @param a eql_v3.int2_ord_ore +--! @param b eql_v3.int2_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.int2_ord_ore, b eql_v3.int2_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord_ore. +--! @param a eql_v3.int2_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.int2_ord_ore, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b::eql_v3.int2_ord_ore) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord_ore. +--! @param a jsonb +--! @param b eql_v3.int2_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.int2_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int2_ord_ore) > eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord_ore. +--! @param a eql_v3.int2_ord_ore +--! @param b eql_v3.int2_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.int2_ord_ore, b eql_v3.int2_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord_ore. +--! @param a eql_v3.int2_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.int2_ord_ore, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b::eql_v3.int2_ord_ore) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord_ore. +--! @param a jsonb +--! @param b eql_v3.int2_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.int2_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int2_ord_ore) >= eql_v3.ord_term(b) $$; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore. +--! @param a eql_v3.int2_ord_ore +--! @param b eql_v3.int2_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.int2_ord_ore, b eql_v3.int2_ord_ore) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int2_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore. +--! @param a eql_v3.int2_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.int2_ord_ore, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int2_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore. +--! @param a jsonb +--! @param b eql_v3.int2_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.int2_ord_ore) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int2_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore. +--! @param a eql_v3.int2_ord_ore +--! @param b eql_v3.int2_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.int2_ord_ore, b eql_v3.int2_ord_ore) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int2_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore. +--! @param a eql_v3.int2_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.int2_ord_ore, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int2_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore. +--! @param a jsonb +--! @param b eql_v3.int2_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.int2_ord_ore) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int2_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore. +--! @param a eql_v3.int2_ord_ore +--! @param selector text +--! @return eql_v3.int2_ord_ore +CREATE FUNCTION eql_v3."->"(a eql_v3.int2_ord_ore, selector text) +RETURNS eql_v3.int2_ord_ore IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int2_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore. +--! @param a eql_v3.int2_ord_ore +--! @param selector integer +--! @return eql_v3.int2_ord_ore +CREATE FUNCTION eql_v3."->"(a eql_v3.int2_ord_ore, selector integer) +RETURNS eql_v3.int2_ord_ore IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int2_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore. +--! @param a jsonb +--! @param selector eql_v3.int2_ord_ore +--! @return eql_v3.int2_ord_ore +CREATE FUNCTION eql_v3."->"(a jsonb, selector eql_v3.int2_ord_ore) +RETURNS eql_v3.int2_ord_ore IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int2_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore. +--! @param a eql_v3.int2_ord_ore +--! @param selector text +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.int2_ord_ore, selector text) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int2_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore. +--! @param a eql_v3.int2_ord_ore +--! @param selector integer +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.int2_ord_ore, selector integer) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int2_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore. +--! @param a jsonb +--! @param selector eql_v3.int2_ord_ore +--! @return text +CREATE FUNCTION eql_v3."->>"(a jsonb, selector eql_v3.int2_ord_ore) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int2_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore. +--! @param a eql_v3.int2_ord_ore +--! @param b text +--! @return boolean +CREATE FUNCTION eql_v3."?"(a eql_v3.int2_ord_ore, b text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.int2_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore. +--! @param a eql_v3.int2_ord_ore +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?|"(a eql_v3.int2_ord_ore, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.int2_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore. +--! @param a eql_v3.int2_ord_ore +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?&"(a eql_v3.int2_ord_ore, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.int2_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore. +--! @param a eql_v3.int2_ord_ore +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@?"(a eql_v3.int2_ord_ore, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.int2_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore. +--! @param a eql_v3.int2_ord_ore +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@@"(a eql_v3.int2_ord_ore, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.int2_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore. +--! @param a eql_v3.int2_ord_ore +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#>"(a eql_v3.int2_ord_ore, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.int2_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore. +--! @param a eql_v3.int2_ord_ore +--! @param b text[] +--! @return text +CREATE FUNCTION eql_v3."#>>"(a eql_v3.int2_ord_ore, b text[]) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.int2_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore. +--! @param a eql_v3.int2_ord_ore +--! @param b text +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int2_ord_ore, b text) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int2_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore. +--! @param a eql_v3.int2_ord_ore +--! @param b integer +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int2_ord_ore, b integer) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int2_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore. +--! @param a eql_v3.int2_ord_ore +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int2_ord_ore, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int2_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore. +--! @param a eql_v3.int2_ord_ore +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#-"(a eql_v3.int2_ord_ore, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.int2_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore. +--! @param a eql_v3.int2_ord_ore +--! @param b eql_v3.int2_ord_ore +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.int2_ord_ore, b eql_v3.int2_ord_ore) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int2_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore. +--! @param a eql_v3.int2_ord_ore +--! @param b jsonb +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.int2_ord_ore, b jsonb) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int2_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore. +--! @param a jsonb +--! @param b eql_v3.int2_ord_ore +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a jsonb, b eql_v3.int2_ord_ore) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int2_ord_ore'; END; $$ +LANGUAGE plpgsql; +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/int2/int2_ord_functions.sql +--! @brief Functions for eql_v3.int2_ord. + +--! @brief Index extractor for eql_v3.int2_ord. +--! @param a eql_v3.int2_ord +--! @return eql_v3.ore_block_u64_8_256 +CREATE FUNCTION eql_v3.ord_term(a eql_v3.int2_ord) +RETURNS eql_v3.ore_block_u64_8_256 +LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ore_block_u64_8_256(a::jsonb) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord. +--! @param a eql_v3.int2_ord +--! @param b eql_v3.int2_ord +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.int2_ord, b eql_v3.int2_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord. +--! @param a eql_v3.int2_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.int2_ord, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b::eql_v3.int2_ord) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord. +--! @param a jsonb +--! @param b eql_v3.int2_ord +--! @return boolean +CREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.int2_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int2_ord) = eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord. +--! @param a eql_v3.int2_ord +--! @param b eql_v3.int2_ord +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.int2_ord, b eql_v3.int2_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord. +--! @param a eql_v3.int2_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.int2_ord, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b::eql_v3.int2_ord) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord. +--! @param a jsonb +--! @param b eql_v3.int2_ord +--! @return boolean +CREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.int2_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int2_ord) <> eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord. +--! @param a eql_v3.int2_ord +--! @param b eql_v3.int2_ord +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.int2_ord, b eql_v3.int2_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord. +--! @param a eql_v3.int2_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.int2_ord, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b::eql_v3.int2_ord) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord. +--! @param a jsonb +--! @param b eql_v3.int2_ord +--! @return boolean +CREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.int2_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int2_ord) < eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord. +--! @param a eql_v3.int2_ord +--! @param b eql_v3.int2_ord +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.int2_ord, b eql_v3.int2_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord. +--! @param a eql_v3.int2_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.int2_ord, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b::eql_v3.int2_ord) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord. +--! @param a jsonb +--! @param b eql_v3.int2_ord +--! @return boolean +CREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.int2_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int2_ord) <= eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord. +--! @param a eql_v3.int2_ord +--! @param b eql_v3.int2_ord +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.int2_ord, b eql_v3.int2_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord. +--! @param a eql_v3.int2_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.int2_ord, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b::eql_v3.int2_ord) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord. +--! @param a jsonb +--! @param b eql_v3.int2_ord +--! @return boolean +CREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.int2_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int2_ord) > eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord. +--! @param a eql_v3.int2_ord +--! @param b eql_v3.int2_ord +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.int2_ord, b eql_v3.int2_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord. +--! @param a eql_v3.int2_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.int2_ord, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b::eql_v3.int2_ord) $$; + +--! @brief Operator wrapper for eql_v3.int2_ord. +--! @param a jsonb +--! @param b eql_v3.int2_ord +--! @return boolean +CREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.int2_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int2_ord) >= eql_v3.ord_term(b) $$; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord. +--! @param a eql_v3.int2_ord +--! @param b eql_v3.int2_ord +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.int2_ord, b eql_v3.int2_ord) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int2_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord. +--! @param a eql_v3.int2_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.int2_ord, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int2_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord. +--! @param a jsonb +--! @param b eql_v3.int2_ord +--! @return boolean +CREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.int2_ord) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int2_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord. +--! @param a eql_v3.int2_ord +--! @param b eql_v3.int2_ord +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.int2_ord, b eql_v3.int2_ord) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int2_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord. +--! @param a eql_v3.int2_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.int2_ord, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int2_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord. +--! @param a jsonb +--! @param b eql_v3.int2_ord +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.int2_ord) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int2_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord. +--! @param a eql_v3.int2_ord +--! @param selector text +--! @return eql_v3.int2_ord +CREATE FUNCTION eql_v3."->"(a eql_v3.int2_ord, selector text) +RETURNS eql_v3.int2_ord IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int2_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord. +--! @param a eql_v3.int2_ord +--! @param selector integer +--! @return eql_v3.int2_ord +CREATE FUNCTION eql_v3."->"(a eql_v3.int2_ord, selector integer) +RETURNS eql_v3.int2_ord IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int2_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord. +--! @param a jsonb +--! @param selector eql_v3.int2_ord +--! @return eql_v3.int2_ord +CREATE FUNCTION eql_v3."->"(a jsonb, selector eql_v3.int2_ord) +RETURNS eql_v3.int2_ord IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int2_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord. +--! @param a eql_v3.int2_ord +--! @param selector text +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.int2_ord, selector text) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int2_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord. +--! @param a eql_v3.int2_ord +--! @param selector integer +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.int2_ord, selector integer) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int2_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord. +--! @param a jsonb +--! @param selector eql_v3.int2_ord +--! @return text +CREATE FUNCTION eql_v3."->>"(a jsonb, selector eql_v3.int2_ord) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int2_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord. +--! @param a eql_v3.int2_ord +--! @param b text +--! @return boolean +CREATE FUNCTION eql_v3."?"(a eql_v3.int2_ord, b text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.int2_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord. +--! @param a eql_v3.int2_ord +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?|"(a eql_v3.int2_ord, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.int2_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord. +--! @param a eql_v3.int2_ord +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?&"(a eql_v3.int2_ord, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.int2_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord. +--! @param a eql_v3.int2_ord +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@?"(a eql_v3.int2_ord, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.int2_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord. +--! @param a eql_v3.int2_ord +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@@"(a eql_v3.int2_ord, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.int2_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord. +--! @param a eql_v3.int2_ord +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#>"(a eql_v3.int2_ord, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.int2_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord. +--! @param a eql_v3.int2_ord +--! @param b text[] +--! @return text +CREATE FUNCTION eql_v3."#>>"(a eql_v3.int2_ord, b text[]) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.int2_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord. +--! @param a eql_v3.int2_ord +--! @param b text +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int2_ord, b text) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int2_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord. +--! @param a eql_v3.int2_ord +--! @param b integer +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int2_ord, b integer) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int2_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord. +--! @param a eql_v3.int2_ord +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int2_ord, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int2_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord. +--! @param a eql_v3.int2_ord +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#-"(a eql_v3.int2_ord, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.int2_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord. +--! @param a eql_v3.int2_ord +--! @param b eql_v3.int2_ord +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.int2_ord, b eql_v3.int2_ord) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int2_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord. +--! @param a eql_v3.int2_ord +--! @param b jsonb +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.int2_ord, b jsonb) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int2_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_ord. +--! @param a jsonb +--! @param b eql_v3.int2_ord +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a jsonb, b eql_v3.int2_ord) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int2_ord'; END; $$ +LANGUAGE plpgsql; +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/int2/int2_ord_operators.sql +--! @brief Operators for eql_v3.int2_ord. + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.int2_ord, RIGHTARG = eql_v3.int2_ord, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.int2_ord, RIGHTARG = jsonb, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.int2_ord, RIGHTARG = eql_v3.int2_ord, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.int2_ord, RIGHTARG = jsonb, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.int2_ord, RIGHTARG = eql_v3.int2_ord, + COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.int2_ord, RIGHTARG = jsonb, + COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord, + COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.int2_ord, RIGHTARG = eql_v3.int2_ord, + COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.int2_ord, RIGHTARG = jsonb, + COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord, + COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.int2_ord, RIGHTARG = eql_v3.int2_ord, + COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.int2_ord, RIGHTARG = jsonb, + COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord, + COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.int2_ord, RIGHTARG = eql_v3.int2_ord, + COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.int2_ord, RIGHTARG = jsonb, + COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord, + COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.int2_ord, RIGHTARG = eql_v3.int2_ord +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.int2_ord, RIGHTARG = jsonb +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.int2_ord, RIGHTARG = eql_v3.int2_ord +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.int2_ord, RIGHTARG = jsonb +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.int2_ord, RIGHTARG = text +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.int2_ord, RIGHTARG = integer +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.int2_ord, RIGHTARG = text +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.int2_ord, RIGHTARG = integer +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord +); + +CREATE OPERATOR ? ( + FUNCTION = eql_v3."?", + LEFTARG = eql_v3.int2_ord, RIGHTARG = text +); + +CREATE OPERATOR ?| ( + FUNCTION = eql_v3."?|", + LEFTARG = eql_v3.int2_ord, RIGHTARG = text[] +); + +CREATE OPERATOR ?& ( + FUNCTION = eql_v3."?&", + LEFTARG = eql_v3.int2_ord, RIGHTARG = text[] +); + +CREATE OPERATOR @? ( + FUNCTION = eql_v3."@?", + LEFTARG = eql_v3.int2_ord, RIGHTARG = jsonpath +); + +CREATE OPERATOR @@ ( + FUNCTION = eql_v3."@@", + LEFTARG = eql_v3.int2_ord, RIGHTARG = jsonpath +); + +CREATE OPERATOR #> ( + FUNCTION = eql_v3."#>", + LEFTARG = eql_v3.int2_ord, RIGHTARG = text[] +); + +CREATE OPERATOR #>> ( + FUNCTION = eql_v3."#>>", + LEFTARG = eql_v3.int2_ord, RIGHTARG = text[] +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int2_ord, RIGHTARG = text +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int2_ord, RIGHTARG = integer +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int2_ord, RIGHTARG = text[] +); + +CREATE OPERATOR #- ( + FUNCTION = eql_v3."#-", + LEFTARG = eql_v3.int2_ord, RIGHTARG = text[] +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.int2_ord, RIGHTARG = eql_v3.int2_ord +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.int2_ord, RIGHTARG = jsonb +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord +); +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/int2/int2_functions.sql +--! @brief Functions for eql_v3.int2. + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a eql_v3.int2 +--! @param b eql_v3.int2 +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.int2, b eql_v3.int2) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a eql_v3.int2 +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.int2, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a jsonb +--! @param b eql_v3.int2 +--! @return boolean +CREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.int2) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a eql_v3.int2 +--! @param b eql_v3.int2 +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.int2, b eql_v3.int2) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a eql_v3.int2 +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.int2, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a jsonb +--! @param b eql_v3.int2 +--! @return boolean +CREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.int2) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a eql_v3.int2 +--! @param b eql_v3.int2 +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.int2, b eql_v3.int2) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a eql_v3.int2 +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.int2, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a jsonb +--! @param b eql_v3.int2 +--! @return boolean +CREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.int2) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a eql_v3.int2 +--! @param b eql_v3.int2 +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.int2, b eql_v3.int2) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a eql_v3.int2 +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.int2, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a jsonb +--! @param b eql_v3.int2 +--! @return boolean +CREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.int2) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a eql_v3.int2 +--! @param b eql_v3.int2 +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.int2, b eql_v3.int2) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a eql_v3.int2 +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.int2, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a jsonb +--! @param b eql_v3.int2 +--! @return boolean +CREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.int2) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a eql_v3.int2 +--! @param b eql_v3.int2 +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.int2, b eql_v3.int2) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a eql_v3.int2 +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.int2, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a jsonb +--! @param b eql_v3.int2 +--! @return boolean +CREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.int2) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a eql_v3.int2 +--! @param b eql_v3.int2 +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.int2, b eql_v3.int2) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a eql_v3.int2 +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.int2, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a jsonb +--! @param b eql_v3.int2 +--! @return boolean +CREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.int2) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a eql_v3.int2 +--! @param b eql_v3.int2 +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.int2, b eql_v3.int2) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a eql_v3.int2 +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.int2, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a jsonb +--! @param b eql_v3.int2 +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.int2) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a eql_v3.int2 +--! @param selector text +--! @return eql_v3.int2 +CREATE FUNCTION eql_v3."->"(a eql_v3.int2, selector text) +RETURNS eql_v3.int2 IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a eql_v3.int2 +--! @param selector integer +--! @return eql_v3.int2 +CREATE FUNCTION eql_v3."->"(a eql_v3.int2, selector integer) +RETURNS eql_v3.int2 IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a jsonb +--! @param selector eql_v3.int2 +--! @return eql_v3.int2 +CREATE FUNCTION eql_v3."->"(a jsonb, selector eql_v3.int2) +RETURNS eql_v3.int2 IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a eql_v3.int2 +--! @param selector text +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.int2, selector text) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a eql_v3.int2 +--! @param selector integer +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.int2, selector integer) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a jsonb +--! @param selector eql_v3.int2 +--! @return text +CREATE FUNCTION eql_v3."->>"(a jsonb, selector eql_v3.int2) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a eql_v3.int2 +--! @param b text +--! @return boolean +CREATE FUNCTION eql_v3."?"(a eql_v3.int2, b text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a eql_v3.int2 +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?|"(a eql_v3.int2, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a eql_v3.int2 +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?&"(a eql_v3.int2, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a eql_v3.int2 +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@?"(a eql_v3.int2, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a eql_v3.int2 +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@@"(a eql_v3.int2, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a eql_v3.int2 +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#>"(a eql_v3.int2, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a eql_v3.int2 +--! @param b text[] +--! @return text +CREATE FUNCTION eql_v3."#>>"(a eql_v3.int2, b text[]) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a eql_v3.int2 +--! @param b text +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int2, b text) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a eql_v3.int2 +--! @param b integer +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int2, b integer) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a eql_v3.int2 +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int2, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a eql_v3.int2 +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#-"(a eql_v3.int2, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a eql_v3.int2 +--! @param b eql_v3.int2 +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.int2, b eql_v3.int2) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a eql_v3.int2 +--! @param b jsonb +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.int2, b jsonb) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2. +--! @param a jsonb +--! @param b eql_v3.int2 +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a jsonb, b eql_v3.int2) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int2'; END; $$ +LANGUAGE plpgsql; +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/int2/int2_ord_ore_operators.sql +--! @brief Operators for eql_v3.int2_ord_ore. + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = eql_v3.int2_ord_ore, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = jsonb, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord_ore, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = eql_v3.int2_ord_ore, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = jsonb, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord_ore, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = eql_v3.int2_ord_ore, + COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = jsonb, + COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord_ore, + COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = eql_v3.int2_ord_ore, + COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = jsonb, + COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord_ore, + COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = eql_v3.int2_ord_ore, + COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = jsonb, + COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord_ore, + COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = eql_v3.int2_ord_ore, + COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = jsonb, + COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord_ore, + COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = eql_v3.int2_ord_ore +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = jsonb +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord_ore +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = eql_v3.int2_ord_ore +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = jsonb +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord_ore +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = text +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = integer +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord_ore +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = text +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = integer +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord_ore +); + +CREATE OPERATOR ? ( + FUNCTION = eql_v3."?", + LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = text +); + +CREATE OPERATOR ?| ( + FUNCTION = eql_v3."?|", + LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = text[] +); + +CREATE OPERATOR ?& ( + FUNCTION = eql_v3."?&", + LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = text[] +); + +CREATE OPERATOR @? ( + FUNCTION = eql_v3."@?", + LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = jsonpath +); + +CREATE OPERATOR @@ ( + FUNCTION = eql_v3."@@", + LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = jsonpath +); + +CREATE OPERATOR #> ( + FUNCTION = eql_v3."#>", + LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = text[] +); + +CREATE OPERATOR #>> ( + FUNCTION = eql_v3."#>>", + LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = text[] +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = text +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = integer +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = text[] +); + +CREATE OPERATOR #- ( + FUNCTION = eql_v3."#-", + LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = text[] +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = eql_v3.int2_ord_ore +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = jsonb +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord_ore +); +-- AUTOMATICALLY GENERATED FILE. + +--! @file v3/scalars/date/date_types.sql +--! @brief Encrypted-domain types for date. + +DO $$ +BEGIN + --! @brief Encrypted domain eql_v3.date. + IF NOT EXISTS ( + SELECT 1 FROM pg_type + WHERE typname = 'date' AND typnamespace = 'eql_v3'::regnamespace + ) THEN + CREATE DOMAIN eql_v3.date AS jsonb + CHECK ( + jsonb_typeof(VALUE) = 'object' + AND VALUE ? 'v' + AND VALUE ? 'i' + AND VALUE ? 'c' + AND VALUE->>'v' = '2' + ); + END IF; + + --! @brief Encrypted domain eql_v3.date_eq. + IF NOT EXISTS ( + SELECT 1 FROM pg_type + WHERE typname = 'date_eq' AND typnamespace = 'eql_v3'::regnamespace + ) THEN + CREATE DOMAIN eql_v3.date_eq AS jsonb + CHECK ( + jsonb_typeof(VALUE) = 'object' + AND VALUE ? 'v' + AND VALUE ? 'i' + AND VALUE ? 'c' + AND VALUE ? 'hm' + AND VALUE->>'v' = '2' + ); + END IF; + + --! @brief Encrypted domain eql_v3.date_ord_ore. + IF NOT EXISTS ( + SELECT 1 FROM pg_type + WHERE typname = 'date_ord_ore' AND typnamespace = 'eql_v3'::regnamespace + ) THEN + CREATE DOMAIN eql_v3.date_ord_ore AS jsonb + CHECK ( + jsonb_typeof(VALUE) = 'object' + AND VALUE ? 'v' + AND VALUE ? 'i' + AND VALUE ? 'c' + AND VALUE ? 'ob' + AND VALUE->>'v' = '2' + ); + END IF; + + --! @brief Encrypted domain eql_v3.date_ord. + IF NOT EXISTS ( + SELECT 1 FROM pg_type + WHERE typname = 'date_ord' AND typnamespace = 'eql_v3'::regnamespace + ) THEN + CREATE DOMAIN eql_v3.date_ord AS jsonb + CHECK ( + jsonb_typeof(VALUE) = 'object' + AND VALUE ? 'v' + AND VALUE ? 'i' + AND VALUE ? 'c' + AND VALUE ? 'ob' + AND VALUE->>'v' = '2' + ); + END IF; +END +$$; +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/date/date_ord_ore_functions.sql +--! @brief Functions for eql_v3.date_ord_ore. + +--! @brief Index extractor for eql_v3.date_ord_ore. +--! @param a eql_v3.date_ord_ore +--! @return eql_v3.ore_block_u64_8_256 +CREATE FUNCTION eql_v3.ord_term(a eql_v3.date_ord_ore) +RETURNS eql_v3.ore_block_u64_8_256 +LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ore_block_u64_8_256(a::jsonb) $$; + +--! @brief Operator wrapper for eql_v3.date_ord_ore. +--! @param a eql_v3.date_ord_ore +--! @param b eql_v3.date_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.date_ord_ore, b eql_v3.date_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.date_ord_ore. +--! @param a eql_v3.date_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.date_ord_ore, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b::eql_v3.date_ord_ore) $$; + +--! @brief Operator wrapper for eql_v3.date_ord_ore. +--! @param a jsonb +--! @param b eql_v3.date_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.date_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.date_ord_ore) = eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.date_ord_ore. +--! @param a eql_v3.date_ord_ore +--! @param b eql_v3.date_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.date_ord_ore, b eql_v3.date_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.date_ord_ore. +--! @param a eql_v3.date_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.date_ord_ore, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b::eql_v3.date_ord_ore) $$; + +--! @brief Operator wrapper for eql_v3.date_ord_ore. +--! @param a jsonb +--! @param b eql_v3.date_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.date_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.date_ord_ore) <> eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.date_ord_ore. +--! @param a eql_v3.date_ord_ore +--! @param b eql_v3.date_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.date_ord_ore, b eql_v3.date_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.date_ord_ore. +--! @param a eql_v3.date_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.date_ord_ore, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b::eql_v3.date_ord_ore) $$; + +--! @brief Operator wrapper for eql_v3.date_ord_ore. +--! @param a jsonb +--! @param b eql_v3.date_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.date_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.date_ord_ore) < eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.date_ord_ore. +--! @param a eql_v3.date_ord_ore +--! @param b eql_v3.date_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.date_ord_ore, b eql_v3.date_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.date_ord_ore. +--! @param a eql_v3.date_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.date_ord_ore, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b::eql_v3.date_ord_ore) $$; + +--! @brief Operator wrapper for eql_v3.date_ord_ore. +--! @param a jsonb +--! @param b eql_v3.date_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.date_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.date_ord_ore) <= eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.date_ord_ore. +--! @param a eql_v3.date_ord_ore +--! @param b eql_v3.date_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.date_ord_ore, b eql_v3.date_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.date_ord_ore. +--! @param a eql_v3.date_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.date_ord_ore, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b::eql_v3.date_ord_ore) $$; + +--! @brief Operator wrapper for eql_v3.date_ord_ore. +--! @param a jsonb +--! @param b eql_v3.date_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.date_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.date_ord_ore) > eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.date_ord_ore. +--! @param a eql_v3.date_ord_ore +--! @param b eql_v3.date_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.date_ord_ore, b eql_v3.date_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.date_ord_ore. +--! @param a eql_v3.date_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.date_ord_ore, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b::eql_v3.date_ord_ore) $$; + +--! @brief Operator wrapper for eql_v3.date_ord_ore. +--! @param a jsonb +--! @param b eql_v3.date_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.date_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.date_ord_ore) >= eql_v3.ord_term(b) $$; + +--! @brief Unsupported operator blocker for eql_v3.date_ord_ore. +--! @param a eql_v3.date_ord_ore +--! @param b eql_v3.date_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.date_ord_ore, b eql_v3.date_ord_ore) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.date_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord_ore. +--! @param a eql_v3.date_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.date_ord_ore, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.date_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord_ore. +--! @param a jsonb +--! @param b eql_v3.date_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.date_ord_ore) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.date_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord_ore. +--! @param a eql_v3.date_ord_ore +--! @param b eql_v3.date_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.date_ord_ore, b eql_v3.date_ord_ore) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.date_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord_ore. +--! @param a eql_v3.date_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.date_ord_ore, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.date_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord_ore. +--! @param a jsonb +--! @param b eql_v3.date_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.date_ord_ore) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.date_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord_ore. +--! @param a eql_v3.date_ord_ore +--! @param selector text +--! @return eql_v3.date_ord_ore +CREATE FUNCTION eql_v3."->"(a eql_v3.date_ord_ore, selector text) +RETURNS eql_v3.date_ord_ore IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.date_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord_ore. +--! @param a eql_v3.date_ord_ore +--! @param selector integer +--! @return eql_v3.date_ord_ore +CREATE FUNCTION eql_v3."->"(a eql_v3.date_ord_ore, selector integer) +RETURNS eql_v3.date_ord_ore IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.date_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord_ore. +--! @param a jsonb +--! @param selector eql_v3.date_ord_ore +--! @return eql_v3.date_ord_ore +CREATE FUNCTION eql_v3."->"(a jsonb, selector eql_v3.date_ord_ore) +RETURNS eql_v3.date_ord_ore IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.date_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord_ore. +--! @param a eql_v3.date_ord_ore +--! @param selector text +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.date_ord_ore, selector text) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.date_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord_ore. +--! @param a eql_v3.date_ord_ore +--! @param selector integer +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.date_ord_ore, selector integer) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.date_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord_ore. +--! @param a jsonb +--! @param selector eql_v3.date_ord_ore +--! @return text +CREATE FUNCTION eql_v3."->>"(a jsonb, selector eql_v3.date_ord_ore) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.date_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord_ore. +--! @param a eql_v3.date_ord_ore +--! @param b text +--! @return boolean +CREATE FUNCTION eql_v3."?"(a eql_v3.date_ord_ore, b text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.date_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord_ore. +--! @param a eql_v3.date_ord_ore +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?|"(a eql_v3.date_ord_ore, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.date_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord_ore. +--! @param a eql_v3.date_ord_ore +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?&"(a eql_v3.date_ord_ore, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.date_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord_ore. +--! @param a eql_v3.date_ord_ore +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@?"(a eql_v3.date_ord_ore, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.date_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord_ore. +--! @param a eql_v3.date_ord_ore +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@@"(a eql_v3.date_ord_ore, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.date_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord_ore. +--! @param a eql_v3.date_ord_ore +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#>"(a eql_v3.date_ord_ore, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.date_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord_ore. +--! @param a eql_v3.date_ord_ore +--! @param b text[] +--! @return text +CREATE FUNCTION eql_v3."#>>"(a eql_v3.date_ord_ore, b text[]) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.date_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord_ore. +--! @param a eql_v3.date_ord_ore +--! @param b text +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.date_ord_ore, b text) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.date_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord_ore. +--! @param a eql_v3.date_ord_ore +--! @param b integer +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.date_ord_ore, b integer) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.date_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord_ore. +--! @param a eql_v3.date_ord_ore +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.date_ord_ore, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.date_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord_ore. +--! @param a eql_v3.date_ord_ore +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#-"(a eql_v3.date_ord_ore, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.date_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord_ore. +--! @param a eql_v3.date_ord_ore +--! @param b eql_v3.date_ord_ore +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.date_ord_ore, b eql_v3.date_ord_ore) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.date_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord_ore. +--! @param a eql_v3.date_ord_ore +--! @param b jsonb +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.date_ord_ore, b jsonb) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.date_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord_ore. +--! @param a jsonb +--! @param b eql_v3.date_ord_ore +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a jsonb, b eql_v3.date_ord_ore) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.date_ord_ore'; END; $$ +LANGUAGE plpgsql; +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/date/date_eq_functions.sql +--! @brief Functions for eql_v3.date_eq. + +--! @brief Index extractor for eql_v3.date_eq. +--! @param a eql_v3.date_eq +--! @return eql_v3.hmac_256 +CREATE FUNCTION eql_v3.eq_term(a eql_v3.date_eq) +RETURNS eql_v3.hmac_256 +LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.hmac_256(a::jsonb) $$; + +--! @brief Operator wrapper for eql_v3.date_eq. +--! @param a eql_v3.date_eq +--! @param b eql_v3.date_eq +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.date_eq, b eql_v3.date_eq) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a) = eql_v3.eq_term(b) $$; + +--! @brief Operator wrapper for eql_v3.date_eq. +--! @param a eql_v3.date_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.date_eq, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a) = eql_v3.eq_term(b::eql_v3.date_eq) $$; + +--! @brief Operator wrapper for eql_v3.date_eq. +--! @param a jsonb +--! @param b eql_v3.date_eq +--! @return boolean +CREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.date_eq) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a::eql_v3.date_eq) = eql_v3.eq_term(b) $$; + +--! @brief Operator wrapper for eql_v3.date_eq. +--! @param a eql_v3.date_eq +--! @param b eql_v3.date_eq +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.date_eq, b eql_v3.date_eq) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a) <> eql_v3.eq_term(b) $$; + +--! @brief Operator wrapper for eql_v3.date_eq. +--! @param a eql_v3.date_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.date_eq, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a) <> eql_v3.eq_term(b::eql_v3.date_eq) $$; + +--! @brief Operator wrapper for eql_v3.date_eq. +--! @param a jsonb +--! @param b eql_v3.date_eq +--! @return boolean +CREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.date_eq) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a::eql_v3.date_eq) <> eql_v3.eq_term(b) $$; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a eql_v3.date_eq +--! @param b eql_v3.date_eq +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.date_eq, b eql_v3.date_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a eql_v3.date_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.date_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a jsonb +--! @param b eql_v3.date_eq +--! @return boolean +CREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.date_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a eql_v3.date_eq +--! @param b eql_v3.date_eq +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.date_eq, b eql_v3.date_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a eql_v3.date_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.date_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a jsonb +--! @param b eql_v3.date_eq +--! @return boolean +CREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.date_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a eql_v3.date_eq +--! @param b eql_v3.date_eq +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.date_eq, b eql_v3.date_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a eql_v3.date_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.date_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a jsonb +--! @param b eql_v3.date_eq +--! @return boolean +CREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.date_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a eql_v3.date_eq +--! @param b eql_v3.date_eq +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.date_eq, b eql_v3.date_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a eql_v3.date_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.date_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a jsonb +--! @param b eql_v3.date_eq +--! @return boolean +CREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.date_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a eql_v3.date_eq +--! @param b eql_v3.date_eq +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.date_eq, b eql_v3.date_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a eql_v3.date_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.date_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a jsonb +--! @param b eql_v3.date_eq +--! @return boolean +CREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.date_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a eql_v3.date_eq +--! @param b eql_v3.date_eq +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.date_eq, b eql_v3.date_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a eql_v3.date_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.date_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a jsonb +--! @param b eql_v3.date_eq +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.date_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a eql_v3.date_eq +--! @param selector text +--! @return eql_v3.date_eq +CREATE FUNCTION eql_v3."->"(a eql_v3.date_eq, selector text) +RETURNS eql_v3.date_eq IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a eql_v3.date_eq +--! @param selector integer +--! @return eql_v3.date_eq +CREATE FUNCTION eql_v3."->"(a eql_v3.date_eq, selector integer) +RETURNS eql_v3.date_eq IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a jsonb +--! @param selector eql_v3.date_eq +--! @return eql_v3.date_eq +CREATE FUNCTION eql_v3."->"(a jsonb, selector eql_v3.date_eq) +RETURNS eql_v3.date_eq IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a eql_v3.date_eq +--! @param selector text +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.date_eq, selector text) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a eql_v3.date_eq +--! @param selector integer +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.date_eq, selector integer) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a jsonb +--! @param selector eql_v3.date_eq +--! @return text +CREATE FUNCTION eql_v3."->>"(a jsonb, selector eql_v3.date_eq) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a eql_v3.date_eq +--! @param b text +--! @return boolean +CREATE FUNCTION eql_v3."?"(a eql_v3.date_eq, b text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a eql_v3.date_eq +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?|"(a eql_v3.date_eq, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a eql_v3.date_eq +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?&"(a eql_v3.date_eq, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a eql_v3.date_eq +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@?"(a eql_v3.date_eq, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a eql_v3.date_eq +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@@"(a eql_v3.date_eq, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a eql_v3.date_eq +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#>"(a eql_v3.date_eq, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a eql_v3.date_eq +--! @param b text[] +--! @return text +CREATE FUNCTION eql_v3."#>>"(a eql_v3.date_eq, b text[]) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a eql_v3.date_eq +--! @param b text +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.date_eq, b text) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a eql_v3.date_eq +--! @param b integer +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.date_eq, b integer) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a eql_v3.date_eq +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.date_eq, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a eql_v3.date_eq +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#-"(a eql_v3.date_eq, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a eql_v3.date_eq +--! @param b eql_v3.date_eq +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.date_eq, b eql_v3.date_eq) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a eql_v3.date_eq +--! @param b jsonb +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.date_eq, b jsonb) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_eq. +--! @param a jsonb +--! @param b eql_v3.date_eq +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a jsonb, b eql_v3.date_eq) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.date_eq'; END; $$ +LANGUAGE plpgsql; +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/date/date_functions.sql +--! @brief Functions for eql_v3.date. + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a eql_v3.date +--! @param b eql_v3.date +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.date, b eql_v3.date) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a eql_v3.date +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.date, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a jsonb +--! @param b eql_v3.date +--! @return boolean +CREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.date) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a eql_v3.date +--! @param b eql_v3.date +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.date, b eql_v3.date) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a eql_v3.date +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.date, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a jsonb +--! @param b eql_v3.date +--! @return boolean +CREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.date) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a eql_v3.date +--! @param b eql_v3.date +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.date, b eql_v3.date) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a eql_v3.date +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.date, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a jsonb +--! @param b eql_v3.date +--! @return boolean +CREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.date) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a eql_v3.date +--! @param b eql_v3.date +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.date, b eql_v3.date) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a eql_v3.date +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.date, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a jsonb +--! @param b eql_v3.date +--! @return boolean +CREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.date) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a eql_v3.date +--! @param b eql_v3.date +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.date, b eql_v3.date) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a eql_v3.date +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.date, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a jsonb +--! @param b eql_v3.date +--! @return boolean +CREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.date) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a eql_v3.date +--! @param b eql_v3.date +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.date, b eql_v3.date) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a eql_v3.date +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.date, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a jsonb +--! @param b eql_v3.date +--! @return boolean +CREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.date) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a eql_v3.date +--! @param b eql_v3.date +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.date, b eql_v3.date) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a eql_v3.date +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.date, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a jsonb +--! @param b eql_v3.date +--! @return boolean +CREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.date) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a eql_v3.date +--! @param b eql_v3.date +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.date, b eql_v3.date) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a eql_v3.date +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.date, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a jsonb +--! @param b eql_v3.date +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.date) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a eql_v3.date +--! @param selector text +--! @return eql_v3.date +CREATE FUNCTION eql_v3."->"(a eql_v3.date, selector text) +RETURNS eql_v3.date IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a eql_v3.date +--! @param selector integer +--! @return eql_v3.date +CREATE FUNCTION eql_v3."->"(a eql_v3.date, selector integer) +RETURNS eql_v3.date IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a jsonb +--! @param selector eql_v3.date +--! @return eql_v3.date +CREATE FUNCTION eql_v3."->"(a jsonb, selector eql_v3.date) +RETURNS eql_v3.date IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a eql_v3.date +--! @param selector text +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.date, selector text) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a eql_v3.date +--! @param selector integer +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.date, selector integer) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a jsonb +--! @param selector eql_v3.date +--! @return text +CREATE FUNCTION eql_v3."->>"(a jsonb, selector eql_v3.date) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a eql_v3.date +--! @param b text +--! @return boolean +CREATE FUNCTION eql_v3."?"(a eql_v3.date, b text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a eql_v3.date +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?|"(a eql_v3.date, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a eql_v3.date +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?&"(a eql_v3.date, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a eql_v3.date +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@?"(a eql_v3.date, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a eql_v3.date +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@@"(a eql_v3.date, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a eql_v3.date +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#>"(a eql_v3.date, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a eql_v3.date +--! @param b text[] +--! @return text +CREATE FUNCTION eql_v3."#>>"(a eql_v3.date, b text[]) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a eql_v3.date +--! @param b text +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.date, b text) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a eql_v3.date +--! @param b integer +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.date, b integer) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a eql_v3.date +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.date, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a eql_v3.date +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#-"(a eql_v3.date, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a eql_v3.date +--! @param b eql_v3.date +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.date, b eql_v3.date) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a eql_v3.date +--! @param b jsonb +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.date, b jsonb) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date. +--! @param a jsonb +--! @param b eql_v3.date +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a jsonb, b eql_v3.date) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.date'; END; $$ +LANGUAGE plpgsql; +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/date/date_ord_ore_operators.sql +--! @brief Operators for eql_v3.date_ord_ore. + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.date_ord_ore, RIGHTARG = eql_v3.date_ord_ore, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.date_ord_ore, RIGHTARG = jsonb, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord_ore, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.date_ord_ore, RIGHTARG = eql_v3.date_ord_ore, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.date_ord_ore, RIGHTARG = jsonb, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord_ore, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.date_ord_ore, RIGHTARG = eql_v3.date_ord_ore, + COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.date_ord_ore, RIGHTARG = jsonb, + COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord_ore, + COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.date_ord_ore, RIGHTARG = eql_v3.date_ord_ore, + COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.date_ord_ore, RIGHTARG = jsonb, + COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord_ore, + COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.date_ord_ore, RIGHTARG = eql_v3.date_ord_ore, + COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.date_ord_ore, RIGHTARG = jsonb, + COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord_ore, + COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.date_ord_ore, RIGHTARG = eql_v3.date_ord_ore, + COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.date_ord_ore, RIGHTARG = jsonb, + COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord_ore, + COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.date_ord_ore, RIGHTARG = eql_v3.date_ord_ore +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.date_ord_ore, RIGHTARG = jsonb +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord_ore +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.date_ord_ore, RIGHTARG = eql_v3.date_ord_ore +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.date_ord_ore, RIGHTARG = jsonb +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord_ore +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.date_ord_ore, RIGHTARG = text +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.date_ord_ore, RIGHTARG = integer +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord_ore +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.date_ord_ore, RIGHTARG = text +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.date_ord_ore, RIGHTARG = integer +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord_ore +); + +CREATE OPERATOR ? ( + FUNCTION = eql_v3."?", + LEFTARG = eql_v3.date_ord_ore, RIGHTARG = text +); + +CREATE OPERATOR ?| ( + FUNCTION = eql_v3."?|", + LEFTARG = eql_v3.date_ord_ore, RIGHTARG = text[] +); + +CREATE OPERATOR ?& ( + FUNCTION = eql_v3."?&", + LEFTARG = eql_v3.date_ord_ore, RIGHTARG = text[] +); + +CREATE OPERATOR @? ( + FUNCTION = eql_v3."@?", + LEFTARG = eql_v3.date_ord_ore, RIGHTARG = jsonpath +); + +CREATE OPERATOR @@ ( + FUNCTION = eql_v3."@@", + LEFTARG = eql_v3.date_ord_ore, RIGHTARG = jsonpath +); + +CREATE OPERATOR #> ( + FUNCTION = eql_v3."#>", + LEFTARG = eql_v3.date_ord_ore, RIGHTARG = text[] +); + +CREATE OPERATOR #>> ( + FUNCTION = eql_v3."#>>", + LEFTARG = eql_v3.date_ord_ore, RIGHTARG = text[] +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.date_ord_ore, RIGHTARG = text +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.date_ord_ore, RIGHTARG = integer +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.date_ord_ore, RIGHTARG = text[] +); + +CREATE OPERATOR #- ( + FUNCTION = eql_v3."#-", + LEFTARG = eql_v3.date_ord_ore, RIGHTARG = text[] +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.date_ord_ore, RIGHTARG = eql_v3.date_ord_ore +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.date_ord_ore, RIGHTARG = jsonb +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord_ore +); +-- AUTOMATICALLY GENERATED FILE. + +--! @file v3/scalars/int8/int8_types.sql +--! @brief Encrypted-domain types for int8. + +DO $$ +BEGIN + --! @brief Encrypted domain eql_v3.int8. + IF NOT EXISTS ( + SELECT 1 FROM pg_type + WHERE typname = 'int8' AND typnamespace = 'eql_v3'::regnamespace + ) THEN + CREATE DOMAIN eql_v3.int8 AS jsonb + CHECK ( + jsonb_typeof(VALUE) = 'object' + AND VALUE ? 'v' + AND VALUE ? 'i' + AND VALUE ? 'c' + AND VALUE->>'v' = '2' + ); + END IF; + + --! @brief Encrypted domain eql_v3.int8_eq. + IF NOT EXISTS ( + SELECT 1 FROM pg_type + WHERE typname = 'int8_eq' AND typnamespace = 'eql_v3'::regnamespace + ) THEN + CREATE DOMAIN eql_v3.int8_eq AS jsonb + CHECK ( + jsonb_typeof(VALUE) = 'object' + AND VALUE ? 'v' + AND VALUE ? 'i' + AND VALUE ? 'c' + AND VALUE ? 'hm' + AND VALUE->>'v' = '2' + ); + END IF; + + --! @brief Encrypted domain eql_v3.int8_ord_ore. + IF NOT EXISTS ( + SELECT 1 FROM pg_type + WHERE typname = 'int8_ord_ore' AND typnamespace = 'eql_v3'::regnamespace + ) THEN + CREATE DOMAIN eql_v3.int8_ord_ore AS jsonb + CHECK ( + jsonb_typeof(VALUE) = 'object' + AND VALUE ? 'v' + AND VALUE ? 'i' + AND VALUE ? 'c' + AND VALUE ? 'ob' + AND VALUE->>'v' = '2' + ); + END IF; + + --! @brief Encrypted domain eql_v3.int8_ord. + IF NOT EXISTS ( + SELECT 1 FROM pg_type + WHERE typname = 'int8_ord' AND typnamespace = 'eql_v3'::regnamespace + ) THEN + CREATE DOMAIN eql_v3.int8_ord AS jsonb + CHECK ( + jsonb_typeof(VALUE) = 'object' + AND VALUE ? 'v' + AND VALUE ? 'i' + AND VALUE ? 'c' + AND VALUE ? 'ob' + AND VALUE->>'v' = '2' + ); + END IF; +END +$$; +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/int8/int8_functions.sql +--! @brief Functions for eql_v3.int8. + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a eql_v3.int8 +--! @param b eql_v3.int8 +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.int8, b eql_v3.int8) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a eql_v3.int8 +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.int8, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a jsonb +--! @param b eql_v3.int8 +--! @return boolean +CREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.int8) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a eql_v3.int8 +--! @param b eql_v3.int8 +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.int8, b eql_v3.int8) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a eql_v3.int8 +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.int8, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a jsonb +--! @param b eql_v3.int8 +--! @return boolean +CREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.int8) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a eql_v3.int8 +--! @param b eql_v3.int8 +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.int8, b eql_v3.int8) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a eql_v3.int8 +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.int8, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a jsonb +--! @param b eql_v3.int8 +--! @return boolean +CREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.int8) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a eql_v3.int8 +--! @param b eql_v3.int8 +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.int8, b eql_v3.int8) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a eql_v3.int8 +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.int8, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a jsonb +--! @param b eql_v3.int8 +--! @return boolean +CREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.int8) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a eql_v3.int8 +--! @param b eql_v3.int8 +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.int8, b eql_v3.int8) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a eql_v3.int8 +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.int8, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a jsonb +--! @param b eql_v3.int8 +--! @return boolean +CREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.int8) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a eql_v3.int8 +--! @param b eql_v3.int8 +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.int8, b eql_v3.int8) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a eql_v3.int8 +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.int8, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a jsonb +--! @param b eql_v3.int8 +--! @return boolean +CREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.int8) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a eql_v3.int8 +--! @param b eql_v3.int8 +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.int8, b eql_v3.int8) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a eql_v3.int8 +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.int8, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a jsonb +--! @param b eql_v3.int8 +--! @return boolean +CREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.int8) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a eql_v3.int8 +--! @param b eql_v3.int8 +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.int8, b eql_v3.int8) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a eql_v3.int8 +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.int8, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a jsonb +--! @param b eql_v3.int8 +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.int8) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a eql_v3.int8 +--! @param selector text +--! @return eql_v3.int8 +CREATE FUNCTION eql_v3."->"(a eql_v3.int8, selector text) +RETURNS eql_v3.int8 IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a eql_v3.int8 +--! @param selector integer +--! @return eql_v3.int8 +CREATE FUNCTION eql_v3."->"(a eql_v3.int8, selector integer) +RETURNS eql_v3.int8 IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a jsonb +--! @param selector eql_v3.int8 +--! @return eql_v3.int8 +CREATE FUNCTION eql_v3."->"(a jsonb, selector eql_v3.int8) +RETURNS eql_v3.int8 IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a eql_v3.int8 +--! @param selector text +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.int8, selector text) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a eql_v3.int8 +--! @param selector integer +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.int8, selector integer) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a jsonb +--! @param selector eql_v3.int8 +--! @return text +CREATE FUNCTION eql_v3."->>"(a jsonb, selector eql_v3.int8) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a eql_v3.int8 +--! @param b text +--! @return boolean +CREATE FUNCTION eql_v3."?"(a eql_v3.int8, b text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a eql_v3.int8 +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?|"(a eql_v3.int8, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a eql_v3.int8 +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?&"(a eql_v3.int8, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a eql_v3.int8 +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@?"(a eql_v3.int8, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a eql_v3.int8 +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@@"(a eql_v3.int8, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a eql_v3.int8 +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#>"(a eql_v3.int8, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a eql_v3.int8 +--! @param b text[] +--! @return text +CREATE FUNCTION eql_v3."#>>"(a eql_v3.int8, b text[]) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a eql_v3.int8 +--! @param b text +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int8, b text) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a eql_v3.int8 +--! @param b integer +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int8, b integer) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a eql_v3.int8 +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int8, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a eql_v3.int8 +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#-"(a eql_v3.int8, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a eql_v3.int8 +--! @param b eql_v3.int8 +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.int8, b eql_v3.int8) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a eql_v3.int8 +--! @param b jsonb +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.int8, b jsonb) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8. +--! @param a jsonb +--! @param b eql_v3.int8 +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a jsonb, b eql_v3.int8) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int8'; END; $$ +LANGUAGE plpgsql; +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/int8/int8_ord_functions.sql +--! @brief Functions for eql_v3.int8_ord. + +--! @brief Index extractor for eql_v3.int8_ord. +--! @param a eql_v3.int8_ord +--! @return eql_v3.ore_block_u64_8_256 +CREATE FUNCTION eql_v3.ord_term(a eql_v3.int8_ord) +RETURNS eql_v3.ore_block_u64_8_256 +LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ore_block_u64_8_256(a::jsonb) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord. +--! @param a eql_v3.int8_ord +--! @param b eql_v3.int8_ord +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.int8_ord, b eql_v3.int8_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord. +--! @param a eql_v3.int8_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.int8_ord, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b::eql_v3.int8_ord) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord. +--! @param a jsonb +--! @param b eql_v3.int8_ord +--! @return boolean +CREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.int8_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int8_ord) = eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord. +--! @param a eql_v3.int8_ord +--! @param b eql_v3.int8_ord +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.int8_ord, b eql_v3.int8_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord. +--! @param a eql_v3.int8_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.int8_ord, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b::eql_v3.int8_ord) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord. +--! @param a jsonb +--! @param b eql_v3.int8_ord +--! @return boolean +CREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.int8_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int8_ord) <> eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord. +--! @param a eql_v3.int8_ord +--! @param b eql_v3.int8_ord +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.int8_ord, b eql_v3.int8_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord. +--! @param a eql_v3.int8_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.int8_ord, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b::eql_v3.int8_ord) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord. +--! @param a jsonb +--! @param b eql_v3.int8_ord +--! @return boolean +CREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.int8_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int8_ord) < eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord. +--! @param a eql_v3.int8_ord +--! @param b eql_v3.int8_ord +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.int8_ord, b eql_v3.int8_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord. +--! @param a eql_v3.int8_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.int8_ord, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b::eql_v3.int8_ord) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord. +--! @param a jsonb +--! @param b eql_v3.int8_ord +--! @return boolean +CREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.int8_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int8_ord) <= eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord. +--! @param a eql_v3.int8_ord +--! @param b eql_v3.int8_ord +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.int8_ord, b eql_v3.int8_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord. +--! @param a eql_v3.int8_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.int8_ord, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b::eql_v3.int8_ord) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord. +--! @param a jsonb +--! @param b eql_v3.int8_ord +--! @return boolean +CREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.int8_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int8_ord) > eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord. +--! @param a eql_v3.int8_ord +--! @param b eql_v3.int8_ord +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.int8_ord, b eql_v3.int8_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord. +--! @param a eql_v3.int8_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.int8_ord, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b::eql_v3.int8_ord) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord. +--! @param a jsonb +--! @param b eql_v3.int8_ord +--! @return boolean +CREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.int8_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int8_ord) >= eql_v3.ord_term(b) $$; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord. +--! @param a eql_v3.int8_ord +--! @param b eql_v3.int8_ord +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.int8_ord, b eql_v3.int8_ord) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int8_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord. +--! @param a eql_v3.int8_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.int8_ord, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int8_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord. +--! @param a jsonb +--! @param b eql_v3.int8_ord +--! @return boolean +CREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.int8_ord) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int8_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord. +--! @param a eql_v3.int8_ord +--! @param b eql_v3.int8_ord +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.int8_ord, b eql_v3.int8_ord) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int8_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord. +--! @param a eql_v3.int8_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.int8_ord, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int8_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord. +--! @param a jsonb +--! @param b eql_v3.int8_ord +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.int8_ord) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int8_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord. +--! @param a eql_v3.int8_ord +--! @param selector text +--! @return eql_v3.int8_ord +CREATE FUNCTION eql_v3."->"(a eql_v3.int8_ord, selector text) +RETURNS eql_v3.int8_ord IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int8_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord. +--! @param a eql_v3.int8_ord +--! @param selector integer +--! @return eql_v3.int8_ord +CREATE FUNCTION eql_v3."->"(a eql_v3.int8_ord, selector integer) +RETURNS eql_v3.int8_ord IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int8_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord. +--! @param a jsonb +--! @param selector eql_v3.int8_ord +--! @return eql_v3.int8_ord +CREATE FUNCTION eql_v3."->"(a jsonb, selector eql_v3.int8_ord) +RETURNS eql_v3.int8_ord IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int8_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord. +--! @param a eql_v3.int8_ord +--! @param selector text +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.int8_ord, selector text) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int8_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord. +--! @param a eql_v3.int8_ord +--! @param selector integer +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.int8_ord, selector integer) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int8_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord. +--! @param a jsonb +--! @param selector eql_v3.int8_ord +--! @return text +CREATE FUNCTION eql_v3."->>"(a jsonb, selector eql_v3.int8_ord) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int8_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord. +--! @param a eql_v3.int8_ord +--! @param b text +--! @return boolean +CREATE FUNCTION eql_v3."?"(a eql_v3.int8_ord, b text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.int8_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord. +--! @param a eql_v3.int8_ord +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?|"(a eql_v3.int8_ord, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.int8_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord. +--! @param a eql_v3.int8_ord +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?&"(a eql_v3.int8_ord, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.int8_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord. +--! @param a eql_v3.int8_ord +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@?"(a eql_v3.int8_ord, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.int8_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord. +--! @param a eql_v3.int8_ord +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@@"(a eql_v3.int8_ord, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.int8_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord. +--! @param a eql_v3.int8_ord +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#>"(a eql_v3.int8_ord, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.int8_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord. +--! @param a eql_v3.int8_ord +--! @param b text[] +--! @return text +CREATE FUNCTION eql_v3."#>>"(a eql_v3.int8_ord, b text[]) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.int8_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord. +--! @param a eql_v3.int8_ord +--! @param b text +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int8_ord, b text) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int8_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord. +--! @param a eql_v3.int8_ord +--! @param b integer +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int8_ord, b integer) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int8_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord. +--! @param a eql_v3.int8_ord +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int8_ord, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int8_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord. +--! @param a eql_v3.int8_ord +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#-"(a eql_v3.int8_ord, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.int8_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord. +--! @param a eql_v3.int8_ord +--! @param b eql_v3.int8_ord +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.int8_ord, b eql_v3.int8_ord) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int8_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord. +--! @param a eql_v3.int8_ord +--! @param b jsonb +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.int8_ord, b jsonb) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int8_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord. +--! @param a jsonb +--! @param b eql_v3.int8_ord +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a jsonb, b eql_v3.int8_ord) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int8_ord'; END; $$ +LANGUAGE plpgsql; +-- AUTOMATICALLY GENERATED FILE. + +--! @file v3/scalars/text/text_types.sql +--! @brief Encrypted-domain types for text. + +DO $$ +BEGIN + --! @brief Encrypted domain eql_v3.text. + IF NOT EXISTS ( + SELECT 1 FROM pg_type + WHERE typname = 'text' AND typnamespace = 'eql_v3'::regnamespace + ) THEN + CREATE DOMAIN eql_v3.text AS jsonb + CHECK ( + jsonb_typeof(VALUE) = 'object' + AND VALUE ? 'v' + AND VALUE ? 'i' + AND VALUE ? 'c' + AND VALUE->>'v' = '2' + ); + END IF; + + --! @brief Encrypted domain eql_v3.text_eq. + IF NOT EXISTS ( + SELECT 1 FROM pg_type + WHERE typname = 'text_eq' AND typnamespace = 'eql_v3'::regnamespace + ) THEN + CREATE DOMAIN eql_v3.text_eq AS jsonb + CHECK ( + jsonb_typeof(VALUE) = 'object' + AND VALUE ? 'v' + AND VALUE ? 'i' + AND VALUE ? 'c' + AND VALUE ? 'hm' + AND VALUE->>'v' = '2' + ); + END IF; + + --! @brief Encrypted domain eql_v3.text_match. + IF NOT EXISTS ( + SELECT 1 FROM pg_type + WHERE typname = 'text_match' AND typnamespace = 'eql_v3'::regnamespace + ) THEN + CREATE DOMAIN eql_v3.text_match AS jsonb + CHECK ( + jsonb_typeof(VALUE) = 'object' + AND VALUE ? 'v' + AND VALUE ? 'i' + AND VALUE ? 'c' + AND VALUE ? 'bf' + AND VALUE->>'v' = '2' + ); + END IF; + + --! @brief Encrypted domain eql_v3.text_ord_ore. + IF NOT EXISTS ( + SELECT 1 FROM pg_type + WHERE typname = 'text_ord_ore' AND typnamespace = 'eql_v3'::regnamespace + ) THEN + CREATE DOMAIN eql_v3.text_ord_ore AS jsonb + CHECK ( + jsonb_typeof(VALUE) = 'object' + AND VALUE ? 'v' + AND VALUE ? 'i' + AND VALUE ? 'c' + AND VALUE ? 'ob' + AND VALUE->>'v' = '2' + ); + END IF; + + --! @brief Encrypted domain eql_v3.text_ord. + IF NOT EXISTS ( + SELECT 1 FROM pg_type + WHERE typname = 'text_ord' AND typnamespace = 'eql_v3'::regnamespace + ) THEN + CREATE DOMAIN eql_v3.text_ord AS jsonb + CHECK ( + jsonb_typeof(VALUE) = 'object' + AND VALUE ? 'v' + AND VALUE ? 'i' + AND VALUE ? 'c' + AND VALUE ? 'ob' + AND VALUE->>'v' = '2' + ); + END IF; +END +$$; +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/text/text_ord_functions.sql +--! @brief Functions for eql_v3.text_ord. + +--! @brief Index extractor for eql_v3.text_ord. +--! @param a eql_v3.text_ord +--! @return eql_v3.ore_block_u64_8_256 +CREATE FUNCTION eql_v3.ord_term(a eql_v3.text_ord) +RETURNS eql_v3.ore_block_u64_8_256 +LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ore_block_u64_8_256(a::jsonb) $$; + +--! @brief Operator wrapper for eql_v3.text_ord. +--! @param a eql_v3.text_ord +--! @param b eql_v3.text_ord +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.text_ord, b eql_v3.text_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.text_ord. +--! @param a eql_v3.text_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.text_ord, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b::eql_v3.text_ord) $$; + +--! @brief Operator wrapper for eql_v3.text_ord. +--! @param a jsonb +--! @param b eql_v3.text_ord +--! @return boolean +CREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.text_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.text_ord) = eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.text_ord. +--! @param a eql_v3.text_ord +--! @param b eql_v3.text_ord +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.text_ord, b eql_v3.text_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.text_ord. +--! @param a eql_v3.text_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.text_ord, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b::eql_v3.text_ord) $$; + +--! @brief Operator wrapper for eql_v3.text_ord. +--! @param a jsonb +--! @param b eql_v3.text_ord +--! @return boolean +CREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.text_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.text_ord) <> eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.text_ord. +--! @param a eql_v3.text_ord +--! @param b eql_v3.text_ord +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.text_ord, b eql_v3.text_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.text_ord. +--! @param a eql_v3.text_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.text_ord, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b::eql_v3.text_ord) $$; + +--! @brief Operator wrapper for eql_v3.text_ord. +--! @param a jsonb +--! @param b eql_v3.text_ord +--! @return boolean +CREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.text_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.text_ord) < eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.text_ord. +--! @param a eql_v3.text_ord +--! @param b eql_v3.text_ord +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.text_ord, b eql_v3.text_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.text_ord. +--! @param a eql_v3.text_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.text_ord, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b::eql_v3.text_ord) $$; + +--! @brief Operator wrapper for eql_v3.text_ord. +--! @param a jsonb +--! @param b eql_v3.text_ord +--! @return boolean +CREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.text_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.text_ord) <= eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.text_ord. +--! @param a eql_v3.text_ord +--! @param b eql_v3.text_ord +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.text_ord, b eql_v3.text_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.text_ord. +--! @param a eql_v3.text_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.text_ord, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b::eql_v3.text_ord) $$; + +--! @brief Operator wrapper for eql_v3.text_ord. +--! @param a jsonb +--! @param b eql_v3.text_ord +--! @return boolean +CREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.text_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.text_ord) > eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.text_ord. +--! @param a eql_v3.text_ord +--! @param b eql_v3.text_ord +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.text_ord, b eql_v3.text_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.text_ord. +--! @param a eql_v3.text_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.text_ord, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b::eql_v3.text_ord) $$; + +--! @brief Operator wrapper for eql_v3.text_ord. +--! @param a jsonb +--! @param b eql_v3.text_ord +--! @return boolean +CREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.text_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.text_ord) >= eql_v3.ord_term(b) $$; + +--! @brief Unsupported operator blocker for eql_v3.text_ord. +--! @param a eql_v3.text_ord +--! @param b eql_v3.text_ord +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.text_ord, b eql_v3.text_ord) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.text_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord. +--! @param a eql_v3.text_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.text_ord, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.text_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord. +--! @param a jsonb +--! @param b eql_v3.text_ord +--! @return boolean +CREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.text_ord) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.text_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord. +--! @param a eql_v3.text_ord +--! @param b eql_v3.text_ord +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.text_ord, b eql_v3.text_ord) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.text_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord. +--! @param a eql_v3.text_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.text_ord, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.text_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord. +--! @param a jsonb +--! @param b eql_v3.text_ord +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.text_ord) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.text_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord. +--! @param a eql_v3.text_ord +--! @param selector text +--! @return eql_v3.text_ord +CREATE FUNCTION eql_v3."->"(a eql_v3.text_ord, selector text) +RETURNS eql_v3.text_ord IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.text_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord. +--! @param a eql_v3.text_ord +--! @param selector integer +--! @return eql_v3.text_ord +CREATE FUNCTION eql_v3."->"(a eql_v3.text_ord, selector integer) +RETURNS eql_v3.text_ord IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.text_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord. +--! @param a jsonb +--! @param selector eql_v3.text_ord +--! @return eql_v3.text_ord +CREATE FUNCTION eql_v3."->"(a jsonb, selector eql_v3.text_ord) +RETURNS eql_v3.text_ord IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.text_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord. +--! @param a eql_v3.text_ord +--! @param selector text +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.text_ord, selector text) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.text_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord. +--! @param a eql_v3.text_ord +--! @param selector integer +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.text_ord, selector integer) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.text_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord. +--! @param a jsonb +--! @param selector eql_v3.text_ord +--! @return text +CREATE FUNCTION eql_v3."->>"(a jsonb, selector eql_v3.text_ord) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.text_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord. +--! @param a eql_v3.text_ord +--! @param b text +--! @return boolean +CREATE FUNCTION eql_v3."?"(a eql_v3.text_ord, b text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.text_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord. +--! @param a eql_v3.text_ord +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?|"(a eql_v3.text_ord, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.text_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord. +--! @param a eql_v3.text_ord +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?&"(a eql_v3.text_ord, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.text_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord. +--! @param a eql_v3.text_ord +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@?"(a eql_v3.text_ord, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.text_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord. +--! @param a eql_v3.text_ord +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@@"(a eql_v3.text_ord, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.text_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord. +--! @param a eql_v3.text_ord +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#>"(a eql_v3.text_ord, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.text_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord. +--! @param a eql_v3.text_ord +--! @param b text[] +--! @return text +CREATE FUNCTION eql_v3."#>>"(a eql_v3.text_ord, b text[]) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.text_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord. +--! @param a eql_v3.text_ord +--! @param b text +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.text_ord, b text) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.text_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord. +--! @param a eql_v3.text_ord +--! @param b integer +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.text_ord, b integer) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.text_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord. +--! @param a eql_v3.text_ord +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.text_ord, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.text_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord. +--! @param a eql_v3.text_ord +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#-"(a eql_v3.text_ord, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.text_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord. +--! @param a eql_v3.text_ord +--! @param b eql_v3.text_ord +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.text_ord, b eql_v3.text_ord) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.text_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord. +--! @param a eql_v3.text_ord +--! @param b jsonb +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.text_ord, b jsonb) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.text_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord. +--! @param a jsonb +--! @param b eql_v3.text_ord +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a jsonb, b eql_v3.text_ord) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.text_ord'; END; $$ +LANGUAGE plpgsql; +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/text/text_ord_ore_functions.sql +--! @brief Functions for eql_v3.text_ord_ore. + +--! @brief Index extractor for eql_v3.text_ord_ore. +--! @param a eql_v3.text_ord_ore +--! @return eql_v3.ore_block_u64_8_256 +CREATE FUNCTION eql_v3.ord_term(a eql_v3.text_ord_ore) +RETURNS eql_v3.ore_block_u64_8_256 +LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ore_block_u64_8_256(a::jsonb) $$; + +--! @brief Operator wrapper for eql_v3.text_ord_ore. +--! @param a eql_v3.text_ord_ore +--! @param b eql_v3.text_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.text_ord_ore, b eql_v3.text_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.text_ord_ore. +--! @param a eql_v3.text_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.text_ord_ore, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b::eql_v3.text_ord_ore) $$; + +--! @brief Operator wrapper for eql_v3.text_ord_ore. +--! @param a jsonb +--! @param b eql_v3.text_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.text_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.text_ord_ore) = eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.text_ord_ore. +--! @param a eql_v3.text_ord_ore +--! @param b eql_v3.text_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.text_ord_ore, b eql_v3.text_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.text_ord_ore. +--! @param a eql_v3.text_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.text_ord_ore, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b::eql_v3.text_ord_ore) $$; + +--! @brief Operator wrapper for eql_v3.text_ord_ore. +--! @param a jsonb +--! @param b eql_v3.text_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.text_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.text_ord_ore) <> eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.text_ord_ore. +--! @param a eql_v3.text_ord_ore +--! @param b eql_v3.text_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.text_ord_ore, b eql_v3.text_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.text_ord_ore. +--! @param a eql_v3.text_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.text_ord_ore, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b::eql_v3.text_ord_ore) $$; + +--! @brief Operator wrapper for eql_v3.text_ord_ore. +--! @param a jsonb +--! @param b eql_v3.text_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.text_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.text_ord_ore) < eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.text_ord_ore. +--! @param a eql_v3.text_ord_ore +--! @param b eql_v3.text_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.text_ord_ore, b eql_v3.text_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.text_ord_ore. +--! @param a eql_v3.text_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.text_ord_ore, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b::eql_v3.text_ord_ore) $$; + +--! @brief Operator wrapper for eql_v3.text_ord_ore. +--! @param a jsonb +--! @param b eql_v3.text_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.text_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.text_ord_ore) <= eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.text_ord_ore. +--! @param a eql_v3.text_ord_ore +--! @param b eql_v3.text_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.text_ord_ore, b eql_v3.text_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.text_ord_ore. +--! @param a eql_v3.text_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.text_ord_ore, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b::eql_v3.text_ord_ore) $$; + +--! @brief Operator wrapper for eql_v3.text_ord_ore. +--! @param a jsonb +--! @param b eql_v3.text_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.text_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.text_ord_ore) > eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.text_ord_ore. +--! @param a eql_v3.text_ord_ore +--! @param b eql_v3.text_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.text_ord_ore, b eql_v3.text_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.text_ord_ore. +--! @param a eql_v3.text_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.text_ord_ore, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b::eql_v3.text_ord_ore) $$; + +--! @brief Operator wrapper for eql_v3.text_ord_ore. +--! @param a jsonb +--! @param b eql_v3.text_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.text_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.text_ord_ore) >= eql_v3.ord_term(b) $$; + +--! @brief Unsupported operator blocker for eql_v3.text_ord_ore. +--! @param a eql_v3.text_ord_ore +--! @param b eql_v3.text_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.text_ord_ore, b eql_v3.text_ord_ore) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.text_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord_ore. +--! @param a eql_v3.text_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.text_ord_ore, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.text_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord_ore. +--! @param a jsonb +--! @param b eql_v3.text_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.text_ord_ore) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.text_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord_ore. +--! @param a eql_v3.text_ord_ore +--! @param b eql_v3.text_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.text_ord_ore, b eql_v3.text_ord_ore) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.text_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord_ore. +--! @param a eql_v3.text_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.text_ord_ore, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.text_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord_ore. +--! @param a jsonb +--! @param b eql_v3.text_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.text_ord_ore) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.text_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord_ore. +--! @param a eql_v3.text_ord_ore +--! @param selector text +--! @return eql_v3.text_ord_ore +CREATE FUNCTION eql_v3."->"(a eql_v3.text_ord_ore, selector text) +RETURNS eql_v3.text_ord_ore IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.text_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord_ore. +--! @param a eql_v3.text_ord_ore +--! @param selector integer +--! @return eql_v3.text_ord_ore +CREATE FUNCTION eql_v3."->"(a eql_v3.text_ord_ore, selector integer) +RETURNS eql_v3.text_ord_ore IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.text_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord_ore. +--! @param a jsonb +--! @param selector eql_v3.text_ord_ore +--! @return eql_v3.text_ord_ore +CREATE FUNCTION eql_v3."->"(a jsonb, selector eql_v3.text_ord_ore) +RETURNS eql_v3.text_ord_ore IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.text_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord_ore. +--! @param a eql_v3.text_ord_ore +--! @param selector text +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.text_ord_ore, selector text) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.text_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord_ore. +--! @param a eql_v3.text_ord_ore +--! @param selector integer +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.text_ord_ore, selector integer) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.text_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord_ore. +--! @param a jsonb +--! @param selector eql_v3.text_ord_ore +--! @return text +CREATE FUNCTION eql_v3."->>"(a jsonb, selector eql_v3.text_ord_ore) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.text_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord_ore. +--! @param a eql_v3.text_ord_ore +--! @param b text +--! @return boolean +CREATE FUNCTION eql_v3."?"(a eql_v3.text_ord_ore, b text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.text_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord_ore. +--! @param a eql_v3.text_ord_ore +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?|"(a eql_v3.text_ord_ore, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.text_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord_ore. +--! @param a eql_v3.text_ord_ore +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?&"(a eql_v3.text_ord_ore, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.text_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord_ore. +--! @param a eql_v3.text_ord_ore +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@?"(a eql_v3.text_ord_ore, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.text_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord_ore. +--! @param a eql_v3.text_ord_ore +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@@"(a eql_v3.text_ord_ore, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.text_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord_ore. +--! @param a eql_v3.text_ord_ore +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#>"(a eql_v3.text_ord_ore, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.text_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord_ore. +--! @param a eql_v3.text_ord_ore +--! @param b text[] +--! @return text +CREATE FUNCTION eql_v3."#>>"(a eql_v3.text_ord_ore, b text[]) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.text_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord_ore. +--! @param a eql_v3.text_ord_ore +--! @param b text +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.text_ord_ore, b text) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.text_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord_ore. +--! @param a eql_v3.text_ord_ore +--! @param b integer +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.text_ord_ore, b integer) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.text_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord_ore. +--! @param a eql_v3.text_ord_ore +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.text_ord_ore, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.text_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord_ore. +--! @param a eql_v3.text_ord_ore +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#-"(a eql_v3.text_ord_ore, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.text_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord_ore. +--! @param a eql_v3.text_ord_ore +--! @param b eql_v3.text_ord_ore +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.text_ord_ore, b eql_v3.text_ord_ore) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.text_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord_ore. +--! @param a eql_v3.text_ord_ore +--! @param b jsonb +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.text_ord_ore, b jsonb) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.text_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_ord_ore. +--! @param a jsonb +--! @param b eql_v3.text_ord_ore +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a jsonb, b eql_v3.text_ord_ore) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.text_ord_ore'; END; $$ +LANGUAGE plpgsql; +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/text/text_match_functions.sql +--! @brief Functions for eql_v3.text_match. + +--! @brief Index extractor for eql_v3.text_match. +--! @param a eql_v3.text_match +--! @return eql_v3.bloom_filter +CREATE FUNCTION eql_v3.match_term(a eql_v3.text_match) +RETURNS eql_v3.bloom_filter +LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.bloom_filter(a::jsonb) $$; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a eql_v3.text_match +--! @param b eql_v3.text_match +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.text_match, b eql_v3.text_match) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a eql_v3.text_match +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.text_match, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a jsonb +--! @param b eql_v3.text_match +--! @return boolean +CREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.text_match) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a eql_v3.text_match +--! @param b eql_v3.text_match +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.text_match, b eql_v3.text_match) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a eql_v3.text_match +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.text_match, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a jsonb +--! @param b eql_v3.text_match +--! @return boolean +CREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.text_match) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a eql_v3.text_match +--! @param b eql_v3.text_match +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.text_match, b eql_v3.text_match) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a eql_v3.text_match +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.text_match, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a jsonb +--! @param b eql_v3.text_match +--! @return boolean +CREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.text_match) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a eql_v3.text_match +--! @param b eql_v3.text_match +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.text_match, b eql_v3.text_match) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a eql_v3.text_match +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.text_match, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a jsonb +--! @param b eql_v3.text_match +--! @return boolean +CREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.text_match) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a eql_v3.text_match +--! @param b eql_v3.text_match +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.text_match, b eql_v3.text_match) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a eql_v3.text_match +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.text_match, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a jsonb +--! @param b eql_v3.text_match +--! @return boolean +CREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.text_match) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a eql_v3.text_match +--! @param b eql_v3.text_match +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.text_match, b eql_v3.text_match) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a eql_v3.text_match +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.text_match, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a jsonb +--! @param b eql_v3.text_match +--! @return boolean +CREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.text_match) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Operator wrapper for eql_v3.text_match. +--! @param a eql_v3.text_match +--! @param b eql_v3.text_match +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.text_match, b eql_v3.text_match) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.match_term(a) @> eql_v3.match_term(b) $$; + +--! @brief Operator wrapper for eql_v3.text_match. +--! @param a eql_v3.text_match +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.text_match, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.match_term(a) @> eql_v3.match_term(b::eql_v3.text_match) $$; + +--! @brief Operator wrapper for eql_v3.text_match. +--! @param a jsonb +--! @param b eql_v3.text_match +--! @return boolean +CREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.text_match) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.match_term(a::eql_v3.text_match) @> eql_v3.match_term(b) $$; + +--! @brief Operator wrapper for eql_v3.text_match. +--! @param a eql_v3.text_match +--! @param b eql_v3.text_match +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.text_match, b eql_v3.text_match) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.match_term(a) <@ eql_v3.match_term(b) $$; + +--! @brief Operator wrapper for eql_v3.text_match. +--! @param a eql_v3.text_match +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.text_match, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.match_term(a) <@ eql_v3.match_term(b::eql_v3.text_match) $$; + +--! @brief Operator wrapper for eql_v3.text_match. +--! @param a jsonb +--! @param b eql_v3.text_match +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.text_match) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.match_term(a::eql_v3.text_match) <@ eql_v3.match_term(b) $$; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a eql_v3.text_match +--! @param selector text +--! @return eql_v3.text_match +CREATE FUNCTION eql_v3."->"(a eql_v3.text_match, selector text) +RETURNS eql_v3.text_match IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a eql_v3.text_match +--! @param selector integer +--! @return eql_v3.text_match +CREATE FUNCTION eql_v3."->"(a eql_v3.text_match, selector integer) +RETURNS eql_v3.text_match IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a jsonb +--! @param selector eql_v3.text_match +--! @return eql_v3.text_match +CREATE FUNCTION eql_v3."->"(a jsonb, selector eql_v3.text_match) +RETURNS eql_v3.text_match IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a eql_v3.text_match +--! @param selector text +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.text_match, selector text) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a eql_v3.text_match +--! @param selector integer +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.text_match, selector integer) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a jsonb +--! @param selector eql_v3.text_match +--! @return text +CREATE FUNCTION eql_v3."->>"(a jsonb, selector eql_v3.text_match) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a eql_v3.text_match +--! @param b text +--! @return boolean +CREATE FUNCTION eql_v3."?"(a eql_v3.text_match, b text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a eql_v3.text_match +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?|"(a eql_v3.text_match, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a eql_v3.text_match +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?&"(a eql_v3.text_match, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a eql_v3.text_match +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@?"(a eql_v3.text_match, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a eql_v3.text_match +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@@"(a eql_v3.text_match, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a eql_v3.text_match +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#>"(a eql_v3.text_match, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a eql_v3.text_match +--! @param b text[] +--! @return text +CREATE FUNCTION eql_v3."#>>"(a eql_v3.text_match, b text[]) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a eql_v3.text_match +--! @param b text +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.text_match, b text) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a eql_v3.text_match +--! @param b integer +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.text_match, b integer) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a eql_v3.text_match +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.text_match, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a eql_v3.text_match +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#-"(a eql_v3.text_match, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a eql_v3.text_match +--! @param b eql_v3.text_match +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.text_match, b eql_v3.text_match) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a eql_v3.text_match +--! @param b jsonb +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.text_match, b jsonb) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_match. +--! @param a jsonb +--! @param b eql_v3.text_match +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a jsonb, b eql_v3.text_match) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.text_match'; END; $$ +LANGUAGE plpgsql; +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/text/text_eq_functions.sql +--! @brief Functions for eql_v3.text_eq. + +--! @brief Index extractor for eql_v3.text_eq. +--! @param a eql_v3.text_eq +--! @return eql_v3.hmac_256 +CREATE FUNCTION eql_v3.eq_term(a eql_v3.text_eq) +RETURNS eql_v3.hmac_256 +LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.hmac_256(a::jsonb) $$; + +--! @brief Operator wrapper for eql_v3.text_eq. +--! @param a eql_v3.text_eq +--! @param b eql_v3.text_eq +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.text_eq, b eql_v3.text_eq) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a) = eql_v3.eq_term(b) $$; + +--! @brief Operator wrapper for eql_v3.text_eq. +--! @param a eql_v3.text_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.text_eq, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a) = eql_v3.eq_term(b::eql_v3.text_eq) $$; + +--! @brief Operator wrapper for eql_v3.text_eq. +--! @param a jsonb +--! @param b eql_v3.text_eq +--! @return boolean +CREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.text_eq) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a::eql_v3.text_eq) = eql_v3.eq_term(b) $$; + +--! @brief Operator wrapper for eql_v3.text_eq. +--! @param a eql_v3.text_eq +--! @param b eql_v3.text_eq +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.text_eq, b eql_v3.text_eq) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a) <> eql_v3.eq_term(b) $$; + +--! @brief Operator wrapper for eql_v3.text_eq. +--! @param a eql_v3.text_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.text_eq, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a) <> eql_v3.eq_term(b::eql_v3.text_eq) $$; + +--! @brief Operator wrapper for eql_v3.text_eq. +--! @param a jsonb +--! @param b eql_v3.text_eq +--! @return boolean +CREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.text_eq) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a::eql_v3.text_eq) <> eql_v3.eq_term(b) $$; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a eql_v3.text_eq +--! @param b eql_v3.text_eq +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.text_eq, b eql_v3.text_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a eql_v3.text_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.text_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a jsonb +--! @param b eql_v3.text_eq +--! @return boolean +CREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.text_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a eql_v3.text_eq +--! @param b eql_v3.text_eq +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.text_eq, b eql_v3.text_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a eql_v3.text_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.text_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a jsonb +--! @param b eql_v3.text_eq +--! @return boolean +CREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.text_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a eql_v3.text_eq +--! @param b eql_v3.text_eq +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.text_eq, b eql_v3.text_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a eql_v3.text_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.text_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a jsonb +--! @param b eql_v3.text_eq +--! @return boolean +CREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.text_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a eql_v3.text_eq +--! @param b eql_v3.text_eq +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.text_eq, b eql_v3.text_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a eql_v3.text_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.text_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a jsonb +--! @param b eql_v3.text_eq +--! @return boolean +CREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.text_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a eql_v3.text_eq +--! @param b eql_v3.text_eq +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.text_eq, b eql_v3.text_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a eql_v3.text_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.text_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a jsonb +--! @param b eql_v3.text_eq +--! @return boolean +CREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.text_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a eql_v3.text_eq +--! @param b eql_v3.text_eq +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.text_eq, b eql_v3.text_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a eql_v3.text_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.text_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a jsonb +--! @param b eql_v3.text_eq +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.text_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a eql_v3.text_eq +--! @param selector text +--! @return eql_v3.text_eq +CREATE FUNCTION eql_v3."->"(a eql_v3.text_eq, selector text) +RETURNS eql_v3.text_eq IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a eql_v3.text_eq +--! @param selector integer +--! @return eql_v3.text_eq +CREATE FUNCTION eql_v3."->"(a eql_v3.text_eq, selector integer) +RETURNS eql_v3.text_eq IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a jsonb +--! @param selector eql_v3.text_eq +--! @return eql_v3.text_eq +CREATE FUNCTION eql_v3."->"(a jsonb, selector eql_v3.text_eq) +RETURNS eql_v3.text_eq IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a eql_v3.text_eq +--! @param selector text +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.text_eq, selector text) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a eql_v3.text_eq +--! @param selector integer +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.text_eq, selector integer) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a jsonb +--! @param selector eql_v3.text_eq +--! @return text +CREATE FUNCTION eql_v3."->>"(a jsonb, selector eql_v3.text_eq) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a eql_v3.text_eq +--! @param b text +--! @return boolean +CREATE FUNCTION eql_v3."?"(a eql_v3.text_eq, b text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a eql_v3.text_eq +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?|"(a eql_v3.text_eq, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a eql_v3.text_eq +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?&"(a eql_v3.text_eq, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a eql_v3.text_eq +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@?"(a eql_v3.text_eq, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a eql_v3.text_eq +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@@"(a eql_v3.text_eq, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a eql_v3.text_eq +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#>"(a eql_v3.text_eq, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a eql_v3.text_eq +--! @param b text[] +--! @return text +CREATE FUNCTION eql_v3."#>>"(a eql_v3.text_eq, b text[]) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a eql_v3.text_eq +--! @param b text +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.text_eq, b text) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a eql_v3.text_eq +--! @param b integer +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.text_eq, b integer) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a eql_v3.text_eq +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.text_eq, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a eql_v3.text_eq +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#-"(a eql_v3.text_eq, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a eql_v3.text_eq +--! @param b eql_v3.text_eq +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.text_eq, b eql_v3.text_eq) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a eql_v3.text_eq +--! @param b jsonb +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.text_eq, b jsonb) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text_eq. +--! @param a jsonb +--! @param b eql_v3.text_eq +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a jsonb, b eql_v3.text_eq) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.text_eq'; END; $$ +LANGUAGE plpgsql; +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/text/text_ord_ore_operators.sql +--! @brief Operators for eql_v3.text_ord_ore. + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.text_ord_ore, RIGHTARG = eql_v3.text_ord_ore, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.text_ord_ore, RIGHTARG = jsonb, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord_ore, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.text_ord_ore, RIGHTARG = eql_v3.text_ord_ore, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.text_ord_ore, RIGHTARG = jsonb, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord_ore, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.text_ord_ore, RIGHTARG = eql_v3.text_ord_ore, + COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.text_ord_ore, RIGHTARG = jsonb, + COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord_ore, + COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.text_ord_ore, RIGHTARG = eql_v3.text_ord_ore, + COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.text_ord_ore, RIGHTARG = jsonb, + COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord_ore, + COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.text_ord_ore, RIGHTARG = eql_v3.text_ord_ore, + COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.text_ord_ore, RIGHTARG = jsonb, + COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord_ore, + COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.text_ord_ore, RIGHTARG = eql_v3.text_ord_ore, + COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.text_ord_ore, RIGHTARG = jsonb, + COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord_ore, + COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.text_ord_ore, RIGHTARG = eql_v3.text_ord_ore +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.text_ord_ore, RIGHTARG = jsonb +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord_ore +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.text_ord_ore, RIGHTARG = eql_v3.text_ord_ore +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.text_ord_ore, RIGHTARG = jsonb +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord_ore +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.text_ord_ore, RIGHTARG = text +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.text_ord_ore, RIGHTARG = integer +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord_ore +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.text_ord_ore, RIGHTARG = text +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.text_ord_ore, RIGHTARG = integer +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord_ore +); + +CREATE OPERATOR ? ( + FUNCTION = eql_v3."?", + LEFTARG = eql_v3.text_ord_ore, RIGHTARG = text +); + +CREATE OPERATOR ?| ( + FUNCTION = eql_v3."?|", + LEFTARG = eql_v3.text_ord_ore, RIGHTARG = text[] +); + +CREATE OPERATOR ?& ( + FUNCTION = eql_v3."?&", + LEFTARG = eql_v3.text_ord_ore, RIGHTARG = text[] +); + +CREATE OPERATOR @? ( + FUNCTION = eql_v3."@?", + LEFTARG = eql_v3.text_ord_ore, RIGHTARG = jsonpath +); + +CREATE OPERATOR @@ ( + FUNCTION = eql_v3."@@", + LEFTARG = eql_v3.text_ord_ore, RIGHTARG = jsonpath +); + +CREATE OPERATOR #> ( + FUNCTION = eql_v3."#>", + LEFTARG = eql_v3.text_ord_ore, RIGHTARG = text[] +); + +CREATE OPERATOR #>> ( + FUNCTION = eql_v3."#>>", + LEFTARG = eql_v3.text_ord_ore, RIGHTARG = text[] +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.text_ord_ore, RIGHTARG = text +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.text_ord_ore, RIGHTARG = integer +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.text_ord_ore, RIGHTARG = text[] +); + +CREATE OPERATOR #- ( + FUNCTION = eql_v3."#-", + LEFTARG = eql_v3.text_ord_ore, RIGHTARG = text[] +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.text_ord_ore, RIGHTARG = eql_v3.text_ord_ore +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.text_ord_ore, RIGHTARG = jsonb +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord_ore +); +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/text/text_ord_operators.sql +--! @brief Operators for eql_v3.text_ord. + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.text_ord, RIGHTARG = eql_v3.text_ord, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.text_ord, RIGHTARG = jsonb, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.text_ord, RIGHTARG = eql_v3.text_ord, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.text_ord, RIGHTARG = jsonb, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.text_ord, RIGHTARG = eql_v3.text_ord, + COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.text_ord, RIGHTARG = jsonb, + COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord, + COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.text_ord, RIGHTARG = eql_v3.text_ord, + COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.text_ord, RIGHTARG = jsonb, + COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord, + COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.text_ord, RIGHTARG = eql_v3.text_ord, + COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.text_ord, RIGHTARG = jsonb, + COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord, + COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.text_ord, RIGHTARG = eql_v3.text_ord, + COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.text_ord, RIGHTARG = jsonb, + COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord, + COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.text_ord, RIGHTARG = eql_v3.text_ord +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.text_ord, RIGHTARG = jsonb +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.text_ord, RIGHTARG = eql_v3.text_ord +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.text_ord, RIGHTARG = jsonb +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.text_ord, RIGHTARG = text +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.text_ord, RIGHTARG = integer +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.text_ord, RIGHTARG = text +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.text_ord, RIGHTARG = integer +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord +); + +CREATE OPERATOR ? ( + FUNCTION = eql_v3."?", + LEFTARG = eql_v3.text_ord, RIGHTARG = text +); + +CREATE OPERATOR ?| ( + FUNCTION = eql_v3."?|", + LEFTARG = eql_v3.text_ord, RIGHTARG = text[] +); + +CREATE OPERATOR ?& ( + FUNCTION = eql_v3."?&", + LEFTARG = eql_v3.text_ord, RIGHTARG = text[] +); + +CREATE OPERATOR @? ( + FUNCTION = eql_v3."@?", + LEFTARG = eql_v3.text_ord, RIGHTARG = jsonpath +); + +CREATE OPERATOR @@ ( + FUNCTION = eql_v3."@@", + LEFTARG = eql_v3.text_ord, RIGHTARG = jsonpath +); + +CREATE OPERATOR #> ( + FUNCTION = eql_v3."#>", + LEFTARG = eql_v3.text_ord, RIGHTARG = text[] +); + +CREATE OPERATOR #>> ( + FUNCTION = eql_v3."#>>", + LEFTARG = eql_v3.text_ord, RIGHTARG = text[] +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.text_ord, RIGHTARG = text +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.text_ord, RIGHTARG = integer +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.text_ord, RIGHTARG = text[] +); + +CREATE OPERATOR #- ( + FUNCTION = eql_v3."#-", + LEFTARG = eql_v3.text_ord, RIGHTARG = text[] +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.text_ord, RIGHTARG = eql_v3.text_ord +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.text_ord, RIGHTARG = jsonb +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord +); +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/int4/int4_ord_aggregates.sql +--! @brief Aggregates for eql_v3.int4_ord. + +--! @brief State function for min on eql_v3.int4_ord. +--! @param state eql_v3.int4_ord +--! @param value eql_v3.int4_ord +--! @return eql_v3.int4_ord +CREATE FUNCTION eql_v3.min_sfunc(state eql_v3.int4_ord, value eql_v3.int4_ord) +RETURNS eql_v3.int4_ord +LANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE +SET search_path = pg_catalog, extensions, public +AS $$ +BEGIN + IF value < state THEN + RETURN value; + END IF; + RETURN state; +END; +$$; + +--! @brief min aggregate for eql_v3.int4_ord. +--! @param input eql_v3.int4_ord +--! @return eql_v3.int4_ord +CREATE AGGREGATE eql_v3.min(eql_v3.int4_ord) ( + sfunc = eql_v3.min_sfunc, + stype = eql_v3.int4_ord, + combinefunc = eql_v3.min_sfunc, + parallel = safe +); + +--! @brief State function for max on eql_v3.int4_ord. +--! @param state eql_v3.int4_ord +--! @param value eql_v3.int4_ord +--! @return eql_v3.int4_ord +CREATE FUNCTION eql_v3.max_sfunc(state eql_v3.int4_ord, value eql_v3.int4_ord) +RETURNS eql_v3.int4_ord +LANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE +SET search_path = pg_catalog, extensions, public +AS $$ +BEGIN + IF value > state THEN + RETURN value; + END IF; + RETURN state; +END; +$$; + +--! @brief max aggregate for eql_v3.int4_ord. +--! @param input eql_v3.int4_ord +--! @return eql_v3.int4_ord +CREATE AGGREGATE eql_v3.max(eql_v3.int4_ord) ( + sfunc = eql_v3.max_sfunc, + stype = eql_v3.int4_ord, + combinefunc = eql_v3.max_sfunc, + parallel = safe +); +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/int4/int4_functions.sql +--! @brief Functions for eql_v3.int4. + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a eql_v3.int4 +--! @param b eql_v3.int4 +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.int4, b eql_v3.int4) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a eql_v3.int4 +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.int4, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a jsonb +--! @param b eql_v3.int4 +--! @return boolean +CREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.int4) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a eql_v3.int4 +--! @param b eql_v3.int4 +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.int4, b eql_v3.int4) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a eql_v3.int4 +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.int4, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a jsonb +--! @param b eql_v3.int4 +--! @return boolean +CREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.int4) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a eql_v3.int4 +--! @param b eql_v3.int4 +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.int4, b eql_v3.int4) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a eql_v3.int4 +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.int4, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a jsonb +--! @param b eql_v3.int4 +--! @return boolean +CREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.int4) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a eql_v3.int4 +--! @param b eql_v3.int4 +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.int4, b eql_v3.int4) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a eql_v3.int4 +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.int4, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a jsonb +--! @param b eql_v3.int4 +--! @return boolean +CREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.int4) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a eql_v3.int4 +--! @param b eql_v3.int4 +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.int4, b eql_v3.int4) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a eql_v3.int4 +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.int4, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a jsonb +--! @param b eql_v3.int4 +--! @return boolean +CREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.int4) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a eql_v3.int4 +--! @param b eql_v3.int4 +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.int4, b eql_v3.int4) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a eql_v3.int4 +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.int4, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a jsonb +--! @param b eql_v3.int4 +--! @return boolean +CREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.int4) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a eql_v3.int4 +--! @param b eql_v3.int4 +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.int4, b eql_v3.int4) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a eql_v3.int4 +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.int4, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a jsonb +--! @param b eql_v3.int4 +--! @return boolean +CREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.int4) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a eql_v3.int4 +--! @param b eql_v3.int4 +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.int4, b eql_v3.int4) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a eql_v3.int4 +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.int4, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a jsonb +--! @param b eql_v3.int4 +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.int4) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a eql_v3.int4 +--! @param selector text +--! @return eql_v3.int4 +CREATE FUNCTION eql_v3."->"(a eql_v3.int4, selector text) +RETURNS eql_v3.int4 IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a eql_v3.int4 +--! @param selector integer +--! @return eql_v3.int4 +CREATE FUNCTION eql_v3."->"(a eql_v3.int4, selector integer) +RETURNS eql_v3.int4 IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a jsonb +--! @param selector eql_v3.int4 +--! @return eql_v3.int4 +CREATE FUNCTION eql_v3."->"(a jsonb, selector eql_v3.int4) +RETURNS eql_v3.int4 IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a eql_v3.int4 +--! @param selector text +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.int4, selector text) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a eql_v3.int4 +--! @param selector integer +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.int4, selector integer) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a jsonb +--! @param selector eql_v3.int4 +--! @return text +CREATE FUNCTION eql_v3."->>"(a jsonb, selector eql_v3.int4) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a eql_v3.int4 +--! @param b text +--! @return boolean +CREATE FUNCTION eql_v3."?"(a eql_v3.int4, b text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a eql_v3.int4 +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?|"(a eql_v3.int4, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a eql_v3.int4 +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?&"(a eql_v3.int4, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a eql_v3.int4 +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@?"(a eql_v3.int4, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a eql_v3.int4 +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@@"(a eql_v3.int4, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a eql_v3.int4 +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#>"(a eql_v3.int4, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a eql_v3.int4 +--! @param b text[] +--! @return text +CREATE FUNCTION eql_v3."#>>"(a eql_v3.int4, b text[]) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a eql_v3.int4 +--! @param b text +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int4, b text) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a eql_v3.int4 +--! @param b integer +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int4, b integer) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a eql_v3.int4 +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int4, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a eql_v3.int4 +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#-"(a eql_v3.int4, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a eql_v3.int4 +--! @param b eql_v3.int4 +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.int4, b eql_v3.int4) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a eql_v3.int4 +--! @param b jsonb +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.int4, b jsonb) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4. +--! @param a jsonb +--! @param b eql_v3.int4 +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a jsonb, b eql_v3.int4) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int4'; END; $$ +LANGUAGE plpgsql; +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/int4/int4_eq_operators.sql +--! @brief Operators for eql_v3.int4_eq. + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.int4_eq, RIGHTARG = eql_v3.int4_eq, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.int4_eq, RIGHTARG = jsonb, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = jsonb, RIGHTARG = eql_v3.int4_eq, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.int4_eq, RIGHTARG = eql_v3.int4_eq, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.int4_eq, RIGHTARG = jsonb, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = jsonb, RIGHTARG = eql_v3.int4_eq, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.int4_eq, RIGHTARG = eql_v3.int4_eq +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.int4_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = jsonb, RIGHTARG = eql_v3.int4_eq +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.int4_eq, RIGHTARG = eql_v3.int4_eq +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.int4_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = jsonb, RIGHTARG = eql_v3.int4_eq +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.int4_eq, RIGHTARG = eql_v3.int4_eq +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.int4_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = jsonb, RIGHTARG = eql_v3.int4_eq +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.int4_eq, RIGHTARG = eql_v3.int4_eq +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.int4_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = jsonb, RIGHTARG = eql_v3.int4_eq +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.int4_eq, RIGHTARG = eql_v3.int4_eq +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.int4_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = jsonb, RIGHTARG = eql_v3.int4_eq +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.int4_eq, RIGHTARG = eql_v3.int4_eq +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.int4_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = jsonb, RIGHTARG = eql_v3.int4_eq +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.int4_eq, RIGHTARG = text +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.int4_eq, RIGHTARG = integer +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = jsonb, RIGHTARG = eql_v3.int4_eq +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.int4_eq, RIGHTARG = text +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.int4_eq, RIGHTARG = integer +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = jsonb, RIGHTARG = eql_v3.int4_eq +); + +CREATE OPERATOR ? ( + FUNCTION = eql_v3."?", + LEFTARG = eql_v3.int4_eq, RIGHTARG = text +); + +CREATE OPERATOR ?| ( + FUNCTION = eql_v3."?|", + LEFTARG = eql_v3.int4_eq, RIGHTARG = text[] +); + +CREATE OPERATOR ?& ( + FUNCTION = eql_v3."?&", + LEFTARG = eql_v3.int4_eq, RIGHTARG = text[] +); + +CREATE OPERATOR @? ( + FUNCTION = eql_v3."@?", + LEFTARG = eql_v3.int4_eq, RIGHTARG = jsonpath +); + +CREATE OPERATOR @@ ( + FUNCTION = eql_v3."@@", + LEFTARG = eql_v3.int4_eq, RIGHTARG = jsonpath +); + +CREATE OPERATOR #> ( + FUNCTION = eql_v3."#>", + LEFTARG = eql_v3.int4_eq, RIGHTARG = text[] +); + +CREATE OPERATOR #>> ( + FUNCTION = eql_v3."#>>", + LEFTARG = eql_v3.int4_eq, RIGHTARG = text[] +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int4_eq, RIGHTARG = text +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int4_eq, RIGHTARG = integer +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int4_eq, RIGHTARG = text[] +); + +CREATE OPERATOR #- ( + FUNCTION = eql_v3."#-", + LEFTARG = eql_v3.int4_eq, RIGHTARG = text[] +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.int4_eq, RIGHTARG = eql_v3.int4_eq +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.int4_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = jsonb, RIGHTARG = eql_v3.int4_eq +); +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/int4/int4_ord_ore_functions.sql +--! @brief Functions for eql_v3.int4_ord_ore. + +--! @brief Index extractor for eql_v3.int4_ord_ore. +--! @param a eql_v3.int4_ord_ore +--! @return eql_v3.ore_block_u64_8_256 +CREATE FUNCTION eql_v3.ord_term(a eql_v3.int4_ord_ore) +RETURNS eql_v3.ore_block_u64_8_256 +LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ore_block_u64_8_256(a::jsonb) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord_ore. +--! @param a eql_v3.int4_ord_ore +--! @param b eql_v3.int4_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.int4_ord_ore, b eql_v3.int4_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord_ore. +--! @param a eql_v3.int4_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.int4_ord_ore, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b::eql_v3.int4_ord_ore) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord_ore. +--! @param a jsonb +--! @param b eql_v3.int4_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.int4_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int4_ord_ore) = eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord_ore. +--! @param a eql_v3.int4_ord_ore +--! @param b eql_v3.int4_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.int4_ord_ore, b eql_v3.int4_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord_ore. +--! @param a eql_v3.int4_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.int4_ord_ore, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b::eql_v3.int4_ord_ore) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord_ore. +--! @param a jsonb +--! @param b eql_v3.int4_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.int4_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int4_ord_ore) <> eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord_ore. +--! @param a eql_v3.int4_ord_ore +--! @param b eql_v3.int4_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.int4_ord_ore, b eql_v3.int4_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord_ore. +--! @param a eql_v3.int4_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.int4_ord_ore, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b::eql_v3.int4_ord_ore) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord_ore. +--! @param a jsonb +--! @param b eql_v3.int4_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.int4_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int4_ord_ore) < eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord_ore. +--! @param a eql_v3.int4_ord_ore +--! @param b eql_v3.int4_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.int4_ord_ore, b eql_v3.int4_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord_ore. +--! @param a eql_v3.int4_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.int4_ord_ore, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b::eql_v3.int4_ord_ore) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord_ore. +--! @param a jsonb +--! @param b eql_v3.int4_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.int4_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int4_ord_ore) <= eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord_ore. +--! @param a eql_v3.int4_ord_ore +--! @param b eql_v3.int4_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.int4_ord_ore, b eql_v3.int4_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord_ore. +--! @param a eql_v3.int4_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.int4_ord_ore, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b::eql_v3.int4_ord_ore) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord_ore. +--! @param a jsonb +--! @param b eql_v3.int4_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.int4_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int4_ord_ore) > eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord_ore. +--! @param a eql_v3.int4_ord_ore +--! @param b eql_v3.int4_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.int4_ord_ore, b eql_v3.int4_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord_ore. +--! @param a eql_v3.int4_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.int4_ord_ore, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b::eql_v3.int4_ord_ore) $$; + +--! @brief Operator wrapper for eql_v3.int4_ord_ore. +--! @param a jsonb +--! @param b eql_v3.int4_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.int4_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int4_ord_ore) >= eql_v3.ord_term(b) $$; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore. +--! @param a eql_v3.int4_ord_ore +--! @param b eql_v3.int4_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.int4_ord_ore, b eql_v3.int4_ord_ore) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int4_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore. +--! @param a eql_v3.int4_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.int4_ord_ore, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int4_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore. +--! @param a jsonb +--! @param b eql_v3.int4_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.int4_ord_ore) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int4_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore. +--! @param a eql_v3.int4_ord_ore +--! @param b eql_v3.int4_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.int4_ord_ore, b eql_v3.int4_ord_ore) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int4_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore. +--! @param a eql_v3.int4_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.int4_ord_ore, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int4_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore. +--! @param a jsonb +--! @param b eql_v3.int4_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.int4_ord_ore) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int4_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore. +--! @param a eql_v3.int4_ord_ore +--! @param selector text +--! @return eql_v3.int4_ord_ore +CREATE FUNCTION eql_v3."->"(a eql_v3.int4_ord_ore, selector text) +RETURNS eql_v3.int4_ord_ore IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int4_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore. +--! @param a eql_v3.int4_ord_ore +--! @param selector integer +--! @return eql_v3.int4_ord_ore +CREATE FUNCTION eql_v3."->"(a eql_v3.int4_ord_ore, selector integer) +RETURNS eql_v3.int4_ord_ore IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int4_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore. +--! @param a jsonb +--! @param selector eql_v3.int4_ord_ore +--! @return eql_v3.int4_ord_ore +CREATE FUNCTION eql_v3."->"(a jsonb, selector eql_v3.int4_ord_ore) +RETURNS eql_v3.int4_ord_ore IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int4_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore. +--! @param a eql_v3.int4_ord_ore +--! @param selector text +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.int4_ord_ore, selector text) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int4_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore. +--! @param a eql_v3.int4_ord_ore +--! @param selector integer +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.int4_ord_ore, selector integer) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int4_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore. +--! @param a jsonb +--! @param selector eql_v3.int4_ord_ore +--! @return text +CREATE FUNCTION eql_v3."->>"(a jsonb, selector eql_v3.int4_ord_ore) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int4_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore. +--! @param a eql_v3.int4_ord_ore +--! @param b text +--! @return boolean +CREATE FUNCTION eql_v3."?"(a eql_v3.int4_ord_ore, b text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.int4_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore. +--! @param a eql_v3.int4_ord_ore +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?|"(a eql_v3.int4_ord_ore, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.int4_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore. +--! @param a eql_v3.int4_ord_ore +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?&"(a eql_v3.int4_ord_ore, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.int4_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore. +--! @param a eql_v3.int4_ord_ore +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@?"(a eql_v3.int4_ord_ore, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.int4_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore. +--! @param a eql_v3.int4_ord_ore +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@@"(a eql_v3.int4_ord_ore, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.int4_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore. +--! @param a eql_v3.int4_ord_ore +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#>"(a eql_v3.int4_ord_ore, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.int4_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore. +--! @param a eql_v3.int4_ord_ore +--! @param b text[] +--! @return text +CREATE FUNCTION eql_v3."#>>"(a eql_v3.int4_ord_ore, b text[]) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.int4_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore. +--! @param a eql_v3.int4_ord_ore +--! @param b text +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int4_ord_ore, b text) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int4_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore. +--! @param a eql_v3.int4_ord_ore +--! @param b integer +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int4_ord_ore, b integer) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int4_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore. +--! @param a eql_v3.int4_ord_ore +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int4_ord_ore, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int4_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore. +--! @param a eql_v3.int4_ord_ore +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#-"(a eql_v3.int4_ord_ore, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.int4_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore. +--! @param a eql_v3.int4_ord_ore +--! @param b eql_v3.int4_ord_ore +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.int4_ord_ore, b eql_v3.int4_ord_ore) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int4_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore. +--! @param a eql_v3.int4_ord_ore +--! @param b jsonb +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.int4_ord_ore, b jsonb) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int4_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore. +--! @param a jsonb +--! @param b eql_v3.int4_ord_ore +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a jsonb, b eql_v3.int4_ord_ore) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int4_ord_ore'; END; $$ +LANGUAGE plpgsql; +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/int4/int4_ord_ore_operators.sql +--! @brief Operators for eql_v3.int4_ord_ore. + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = eql_v3.int4_ord_ore, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = jsonb, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord_ore, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = eql_v3.int4_ord_ore, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = jsonb, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord_ore, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = eql_v3.int4_ord_ore, + COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = jsonb, + COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord_ore, + COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = eql_v3.int4_ord_ore, + COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = jsonb, + COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord_ore, + COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = eql_v3.int4_ord_ore, + COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = jsonb, + COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord_ore, + COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = eql_v3.int4_ord_ore, + COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = jsonb, + COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord_ore, + COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = eql_v3.int4_ord_ore +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = jsonb +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord_ore +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = eql_v3.int4_ord_ore +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = jsonb +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord_ore +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = text +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = integer +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord_ore +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = text +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = integer +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord_ore +); + +CREATE OPERATOR ? ( + FUNCTION = eql_v3."?", + LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = text +); + +CREATE OPERATOR ?| ( + FUNCTION = eql_v3."?|", + LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = text[] +); + +CREATE OPERATOR ?& ( + FUNCTION = eql_v3."?&", + LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = text[] +); + +CREATE OPERATOR @? ( + FUNCTION = eql_v3."@?", + LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = jsonpath +); + +CREATE OPERATOR @@ ( + FUNCTION = eql_v3."@@", + LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = jsonpath +); + +CREATE OPERATOR #> ( + FUNCTION = eql_v3."#>", + LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = text[] +); + +CREATE OPERATOR #>> ( + FUNCTION = eql_v3."#>>", + LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = text[] +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = text +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = integer +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = text[] +); + +CREATE OPERATOR #- ( + FUNCTION = eql_v3."#-", + LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = text[] +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = eql_v3.int4_ord_ore +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = jsonb +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord_ore +); +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/int4/int4_operators.sql +--! @brief Operators for eql_v3.int4. + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.int4, RIGHTARG = eql_v3.int4 +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.int4, RIGHTARG = jsonb +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = jsonb, RIGHTARG = eql_v3.int4 +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.int4, RIGHTARG = eql_v3.int4 +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.int4, RIGHTARG = jsonb +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = jsonb, RIGHTARG = eql_v3.int4 +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.int4, RIGHTARG = eql_v3.int4 +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.int4, RIGHTARG = jsonb +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = jsonb, RIGHTARG = eql_v3.int4 +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.int4, RIGHTARG = eql_v3.int4 +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.int4, RIGHTARG = jsonb +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = jsonb, RIGHTARG = eql_v3.int4 +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.int4, RIGHTARG = eql_v3.int4 +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.int4, RIGHTARG = jsonb +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = jsonb, RIGHTARG = eql_v3.int4 +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.int4, RIGHTARG = eql_v3.int4 +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.int4, RIGHTARG = jsonb +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = jsonb, RIGHTARG = eql_v3.int4 +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.int4, RIGHTARG = eql_v3.int4 +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.int4, RIGHTARG = jsonb +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = jsonb, RIGHTARG = eql_v3.int4 +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.int4, RIGHTARG = eql_v3.int4 +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.int4, RIGHTARG = jsonb +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = jsonb, RIGHTARG = eql_v3.int4 +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.int4, RIGHTARG = text +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.int4, RIGHTARG = integer +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = jsonb, RIGHTARG = eql_v3.int4 +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.int4, RIGHTARG = text +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.int4, RIGHTARG = integer +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = jsonb, RIGHTARG = eql_v3.int4 +); + +CREATE OPERATOR ? ( + FUNCTION = eql_v3."?", + LEFTARG = eql_v3.int4, RIGHTARG = text +); + +CREATE OPERATOR ?| ( + FUNCTION = eql_v3."?|", + LEFTARG = eql_v3.int4, RIGHTARG = text[] +); + +CREATE OPERATOR ?& ( + FUNCTION = eql_v3."?&", + LEFTARG = eql_v3.int4, RIGHTARG = text[] +); + +CREATE OPERATOR @? ( + FUNCTION = eql_v3."@?", + LEFTARG = eql_v3.int4, RIGHTARG = jsonpath +); + +CREATE OPERATOR @@ ( + FUNCTION = eql_v3."@@", + LEFTARG = eql_v3.int4, RIGHTARG = jsonpath +); + +CREATE OPERATOR #> ( + FUNCTION = eql_v3."#>", + LEFTARG = eql_v3.int4, RIGHTARG = text[] +); + +CREATE OPERATOR #>> ( + FUNCTION = eql_v3."#>>", + LEFTARG = eql_v3.int4, RIGHTARG = text[] +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int4, RIGHTARG = text +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int4, RIGHTARG = integer +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int4, RIGHTARG = text[] +); + +CREATE OPERATOR #- ( + FUNCTION = eql_v3."#-", + LEFTARG = eql_v3.int4, RIGHTARG = text[] +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.int4, RIGHTARG = eql_v3.int4 +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.int4, RIGHTARG = jsonb +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = jsonb, RIGHTARG = eql_v3.int4 +); +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/int4/int4_ord_ore_aggregates.sql +--! @brief Aggregates for eql_v3.int4_ord_ore. + +--! @brief State function for min on eql_v3.int4_ord_ore. +--! @param state eql_v3.int4_ord_ore +--! @param value eql_v3.int4_ord_ore +--! @return eql_v3.int4_ord_ore +CREATE FUNCTION eql_v3.min_sfunc(state eql_v3.int4_ord_ore, value eql_v3.int4_ord_ore) +RETURNS eql_v3.int4_ord_ore +LANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE +SET search_path = pg_catalog, extensions, public +AS $$ +BEGIN + IF value < state THEN + RETURN value; + END IF; + RETURN state; +END; +$$; + +--! @brief min aggregate for eql_v3.int4_ord_ore. +--! @param input eql_v3.int4_ord_ore +--! @return eql_v3.int4_ord_ore +CREATE AGGREGATE eql_v3.min(eql_v3.int4_ord_ore) ( + sfunc = eql_v3.min_sfunc, + stype = eql_v3.int4_ord_ore, + combinefunc = eql_v3.min_sfunc, + parallel = safe +); + +--! @brief State function for max on eql_v3.int4_ord_ore. +--! @param state eql_v3.int4_ord_ore +--! @param value eql_v3.int4_ord_ore +--! @return eql_v3.int4_ord_ore +CREATE FUNCTION eql_v3.max_sfunc(state eql_v3.int4_ord_ore, value eql_v3.int4_ord_ore) +RETURNS eql_v3.int4_ord_ore +LANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE +SET search_path = pg_catalog, extensions, public +AS $$ +BEGIN + IF value > state THEN + RETURN value; + END IF; + RETURN state; +END; +$$; + +--! @brief max aggregate for eql_v3.int4_ord_ore. +--! @param input eql_v3.int4_ord_ore +--! @return eql_v3.int4_ord_ore +CREATE AGGREGATE eql_v3.max(eql_v3.int4_ord_ore) ( + sfunc = eql_v3.max_sfunc, + stype = eql_v3.int4_ord_ore, + combinefunc = eql_v3.max_sfunc, + parallel = safe +); +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/timestamptz/timestamptz_functions.sql +--! @brief Functions for eql_v3.timestamptz. + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a eql_v3.timestamptz +--! @param b eql_v3.timestamptz +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.timestamptz, b eql_v3.timestamptz) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a eql_v3.timestamptz +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.timestamptz, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a jsonb +--! @param b eql_v3.timestamptz +--! @return boolean +CREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.timestamptz) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a eql_v3.timestamptz +--! @param b eql_v3.timestamptz +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.timestamptz, b eql_v3.timestamptz) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a eql_v3.timestamptz +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.timestamptz, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a jsonb +--! @param b eql_v3.timestamptz +--! @return boolean +CREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.timestamptz) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a eql_v3.timestamptz +--! @param b eql_v3.timestamptz +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.timestamptz, b eql_v3.timestamptz) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a eql_v3.timestamptz +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.timestamptz, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a jsonb +--! @param b eql_v3.timestamptz +--! @return boolean +CREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.timestamptz) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a eql_v3.timestamptz +--! @param b eql_v3.timestamptz +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.timestamptz, b eql_v3.timestamptz) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a eql_v3.timestamptz +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.timestamptz, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a jsonb +--! @param b eql_v3.timestamptz +--! @return boolean +CREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.timestamptz) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a eql_v3.timestamptz +--! @param b eql_v3.timestamptz +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.timestamptz, b eql_v3.timestamptz) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a eql_v3.timestamptz +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.timestamptz, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a jsonb +--! @param b eql_v3.timestamptz +--! @return boolean +CREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.timestamptz) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a eql_v3.timestamptz +--! @param b eql_v3.timestamptz +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.timestamptz, b eql_v3.timestamptz) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a eql_v3.timestamptz +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.timestamptz, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a jsonb +--! @param b eql_v3.timestamptz +--! @return boolean +CREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.timestamptz) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a eql_v3.timestamptz +--! @param b eql_v3.timestamptz +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.timestamptz, b eql_v3.timestamptz) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a eql_v3.timestamptz +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.timestamptz, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a jsonb +--! @param b eql_v3.timestamptz +--! @return boolean +CREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.timestamptz) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a eql_v3.timestamptz +--! @param b eql_v3.timestamptz +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.timestamptz, b eql_v3.timestamptz) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a eql_v3.timestamptz +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.timestamptz, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a jsonb +--! @param b eql_v3.timestamptz +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.timestamptz) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a eql_v3.timestamptz +--! @param selector text +--! @return eql_v3.timestamptz +CREATE FUNCTION eql_v3."->"(a eql_v3.timestamptz, selector text) +RETURNS eql_v3.timestamptz IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a eql_v3.timestamptz +--! @param selector integer +--! @return eql_v3.timestamptz +CREATE FUNCTION eql_v3."->"(a eql_v3.timestamptz, selector integer) +RETURNS eql_v3.timestamptz IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a jsonb +--! @param selector eql_v3.timestamptz +--! @return eql_v3.timestamptz +CREATE FUNCTION eql_v3."->"(a jsonb, selector eql_v3.timestamptz) +RETURNS eql_v3.timestamptz IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a eql_v3.timestamptz +--! @param selector text +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.timestamptz, selector text) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a eql_v3.timestamptz +--! @param selector integer +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.timestamptz, selector integer) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a jsonb +--! @param selector eql_v3.timestamptz +--! @return text +CREATE FUNCTION eql_v3."->>"(a jsonb, selector eql_v3.timestamptz) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a eql_v3.timestamptz +--! @param b text +--! @return boolean +CREATE FUNCTION eql_v3."?"(a eql_v3.timestamptz, b text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a eql_v3.timestamptz +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?|"(a eql_v3.timestamptz, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a eql_v3.timestamptz +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?&"(a eql_v3.timestamptz, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a eql_v3.timestamptz +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@?"(a eql_v3.timestamptz, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a eql_v3.timestamptz +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@@"(a eql_v3.timestamptz, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a eql_v3.timestamptz +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#>"(a eql_v3.timestamptz, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a eql_v3.timestamptz +--! @param b text[] +--! @return text +CREATE FUNCTION eql_v3."#>>"(a eql_v3.timestamptz, b text[]) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a eql_v3.timestamptz +--! @param b text +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.timestamptz, b text) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a eql_v3.timestamptz +--! @param b integer +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.timestamptz, b integer) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a eql_v3.timestamptz +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.timestamptz, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a eql_v3.timestamptz +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#-"(a eql_v3.timestamptz, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a eql_v3.timestamptz +--! @param b eql_v3.timestamptz +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.timestamptz, b eql_v3.timestamptz) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a eql_v3.timestamptz +--! @param b jsonb +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.timestamptz, b jsonb) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.timestamptz. +--! @param a jsonb +--! @param b eql_v3.timestamptz +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a jsonb, b eql_v3.timestamptz) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.timestamptz'; END; $$ +LANGUAGE plpgsql; +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/timestamptz/timestamptz_eq_operators.sql +--! @brief Operators for eql_v3.timestamptz_eq. + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = eql_v3.timestamptz_eq, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = jsonb, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz_eq, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = eql_v3.timestamptz_eq, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = jsonb, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz_eq, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = eql_v3.timestamptz_eq +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz_eq +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = eql_v3.timestamptz_eq +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz_eq +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = eql_v3.timestamptz_eq +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz_eq +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = eql_v3.timestamptz_eq +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz_eq +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = eql_v3.timestamptz_eq +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz_eq +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = eql_v3.timestamptz_eq +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz_eq +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = text +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = integer +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz_eq +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = text +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = integer +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz_eq +); + +CREATE OPERATOR ? ( + FUNCTION = eql_v3."?", + LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = text +); + +CREATE OPERATOR ?| ( + FUNCTION = eql_v3."?|", + LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = text[] +); + +CREATE OPERATOR ?& ( + FUNCTION = eql_v3."?&", + LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = text[] +); + +CREATE OPERATOR @? ( + FUNCTION = eql_v3."@?", + LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = jsonpath +); + +CREATE OPERATOR @@ ( + FUNCTION = eql_v3."@@", + LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = jsonpath +); + +CREATE OPERATOR #> ( + FUNCTION = eql_v3."#>", + LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = text[] +); + +CREATE OPERATOR #>> ( + FUNCTION = eql_v3."#>>", + LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = text[] +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = text +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = integer +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = text[] +); + +CREATE OPERATOR #- ( + FUNCTION = eql_v3."#-", + LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = text[] +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = eql_v3.timestamptz_eq +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz_eq +); +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/timestamptz/timestamptz_operators.sql +--! @brief Operators for eql_v3.timestamptz. + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.timestamptz, RIGHTARG = eql_v3.timestamptz +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.timestamptz, RIGHTARG = jsonb +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.timestamptz, RIGHTARG = eql_v3.timestamptz +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.timestamptz, RIGHTARG = jsonb +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.timestamptz, RIGHTARG = eql_v3.timestamptz +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.timestamptz, RIGHTARG = jsonb +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.timestamptz, RIGHTARG = eql_v3.timestamptz +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.timestamptz, RIGHTARG = jsonb +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.timestamptz, RIGHTARG = eql_v3.timestamptz +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.timestamptz, RIGHTARG = jsonb +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.timestamptz, RIGHTARG = eql_v3.timestamptz +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.timestamptz, RIGHTARG = jsonb +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.timestamptz, RIGHTARG = eql_v3.timestamptz +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.timestamptz, RIGHTARG = jsonb +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.timestamptz, RIGHTARG = eql_v3.timestamptz +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.timestamptz, RIGHTARG = jsonb +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.timestamptz, RIGHTARG = text +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.timestamptz, RIGHTARG = integer +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.timestamptz, RIGHTARG = text +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.timestamptz, RIGHTARG = integer +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz +); + +CREATE OPERATOR ? ( + FUNCTION = eql_v3."?", + LEFTARG = eql_v3.timestamptz, RIGHTARG = text +); + +CREATE OPERATOR ?| ( + FUNCTION = eql_v3."?|", + LEFTARG = eql_v3.timestamptz, RIGHTARG = text[] +); + +CREATE OPERATOR ?& ( + FUNCTION = eql_v3."?&", + LEFTARG = eql_v3.timestamptz, RIGHTARG = text[] +); + +CREATE OPERATOR @? ( + FUNCTION = eql_v3."@?", + LEFTARG = eql_v3.timestamptz, RIGHTARG = jsonpath +); + +CREATE OPERATOR @@ ( + FUNCTION = eql_v3."@@", + LEFTARG = eql_v3.timestamptz, RIGHTARG = jsonpath +); + +CREATE OPERATOR #> ( + FUNCTION = eql_v3."#>", + LEFTARG = eql_v3.timestamptz, RIGHTARG = text[] +); + +CREATE OPERATOR #>> ( + FUNCTION = eql_v3."#>>", + LEFTARG = eql_v3.timestamptz, RIGHTARG = text[] +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.timestamptz, RIGHTARG = text +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.timestamptz, RIGHTARG = integer +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.timestamptz, RIGHTARG = text[] +); + +CREATE OPERATOR #- ( + FUNCTION = eql_v3."#-", + LEFTARG = eql_v3.timestamptz, RIGHTARG = text[] +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.timestamptz, RIGHTARG = eql_v3.timestamptz +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.timestamptz, RIGHTARG = jsonb +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz +); +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/int2/int2_eq_functions.sql +--! @brief Functions for eql_v3.int2_eq. + +--! @brief Index extractor for eql_v3.int2_eq. +--! @param a eql_v3.int2_eq +--! @return eql_v3.hmac_256 +CREATE FUNCTION eql_v3.eq_term(a eql_v3.int2_eq) +RETURNS eql_v3.hmac_256 +LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.hmac_256(a::jsonb) $$; + +--! @brief Operator wrapper for eql_v3.int2_eq. +--! @param a eql_v3.int2_eq +--! @param b eql_v3.int2_eq +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.int2_eq, b eql_v3.int2_eq) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a) = eql_v3.eq_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int2_eq. +--! @param a eql_v3.int2_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.int2_eq, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a) = eql_v3.eq_term(b::eql_v3.int2_eq) $$; + +--! @brief Operator wrapper for eql_v3.int2_eq. +--! @param a jsonb +--! @param b eql_v3.int2_eq +--! @return boolean +CREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.int2_eq) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a::eql_v3.int2_eq) = eql_v3.eq_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int2_eq. +--! @param a eql_v3.int2_eq +--! @param b eql_v3.int2_eq +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.int2_eq, b eql_v3.int2_eq) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a) <> eql_v3.eq_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int2_eq. +--! @param a eql_v3.int2_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.int2_eq, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a) <> eql_v3.eq_term(b::eql_v3.int2_eq) $$; + +--! @brief Operator wrapper for eql_v3.int2_eq. +--! @param a jsonb +--! @param b eql_v3.int2_eq +--! @return boolean +CREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.int2_eq) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a::eql_v3.int2_eq) <> eql_v3.eq_term(b) $$; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a eql_v3.int2_eq +--! @param b eql_v3.int2_eq +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.int2_eq, b eql_v3.int2_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a eql_v3.int2_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.int2_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a jsonb +--! @param b eql_v3.int2_eq +--! @return boolean +CREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.int2_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a eql_v3.int2_eq +--! @param b eql_v3.int2_eq +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.int2_eq, b eql_v3.int2_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a eql_v3.int2_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.int2_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a jsonb +--! @param b eql_v3.int2_eq +--! @return boolean +CREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.int2_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a eql_v3.int2_eq +--! @param b eql_v3.int2_eq +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.int2_eq, b eql_v3.int2_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a eql_v3.int2_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.int2_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a jsonb +--! @param b eql_v3.int2_eq +--! @return boolean +CREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.int2_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a eql_v3.int2_eq +--! @param b eql_v3.int2_eq +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.int2_eq, b eql_v3.int2_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a eql_v3.int2_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.int2_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a jsonb +--! @param b eql_v3.int2_eq +--! @return boolean +CREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.int2_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a eql_v3.int2_eq +--! @param b eql_v3.int2_eq +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.int2_eq, b eql_v3.int2_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a eql_v3.int2_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.int2_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a jsonb +--! @param b eql_v3.int2_eq +--! @return boolean +CREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.int2_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a eql_v3.int2_eq +--! @param b eql_v3.int2_eq +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.int2_eq, b eql_v3.int2_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a eql_v3.int2_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.int2_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a jsonb +--! @param b eql_v3.int2_eq +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.int2_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a eql_v3.int2_eq +--! @param selector text +--! @return eql_v3.int2_eq +CREATE FUNCTION eql_v3."->"(a eql_v3.int2_eq, selector text) +RETURNS eql_v3.int2_eq IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a eql_v3.int2_eq +--! @param selector integer +--! @return eql_v3.int2_eq +CREATE FUNCTION eql_v3."->"(a eql_v3.int2_eq, selector integer) +RETURNS eql_v3.int2_eq IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a jsonb +--! @param selector eql_v3.int2_eq +--! @return eql_v3.int2_eq +CREATE FUNCTION eql_v3."->"(a jsonb, selector eql_v3.int2_eq) +RETURNS eql_v3.int2_eq IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a eql_v3.int2_eq +--! @param selector text +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.int2_eq, selector text) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a eql_v3.int2_eq +--! @param selector integer +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.int2_eq, selector integer) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a jsonb +--! @param selector eql_v3.int2_eq +--! @return text +CREATE FUNCTION eql_v3."->>"(a jsonb, selector eql_v3.int2_eq) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a eql_v3.int2_eq +--! @param b text +--! @return boolean +CREATE FUNCTION eql_v3."?"(a eql_v3.int2_eq, b text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a eql_v3.int2_eq +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?|"(a eql_v3.int2_eq, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a eql_v3.int2_eq +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?&"(a eql_v3.int2_eq, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a eql_v3.int2_eq +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@?"(a eql_v3.int2_eq, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a eql_v3.int2_eq +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@@"(a eql_v3.int2_eq, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a eql_v3.int2_eq +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#>"(a eql_v3.int2_eq, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a eql_v3.int2_eq +--! @param b text[] +--! @return text +CREATE FUNCTION eql_v3."#>>"(a eql_v3.int2_eq, b text[]) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a eql_v3.int2_eq +--! @param b text +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int2_eq, b text) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a eql_v3.int2_eq +--! @param b integer +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int2_eq, b integer) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a eql_v3.int2_eq +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int2_eq, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a eql_v3.int2_eq +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#-"(a eql_v3.int2_eq, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a eql_v3.int2_eq +--! @param b eql_v3.int2_eq +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.int2_eq, b eql_v3.int2_eq) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a eql_v3.int2_eq +--! @param b jsonb +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.int2_eq, b jsonb) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int2_eq. +--! @param a jsonb +--! @param b eql_v3.int2_eq +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a jsonb, b eql_v3.int2_eq) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int2_eq'; END; $$ +LANGUAGE plpgsql; +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/int2/int2_ord_aggregates.sql +--! @brief Aggregates for eql_v3.int2_ord. + +--! @brief State function for min on eql_v3.int2_ord. +--! @param state eql_v3.int2_ord +--! @param value eql_v3.int2_ord +--! @return eql_v3.int2_ord +CREATE FUNCTION eql_v3.min_sfunc(state eql_v3.int2_ord, value eql_v3.int2_ord) +RETURNS eql_v3.int2_ord +LANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE +SET search_path = pg_catalog, extensions, public +AS $$ +BEGIN + IF value < state THEN + RETURN value; + END IF; + RETURN state; +END; +$$; + +--! @brief min aggregate for eql_v3.int2_ord. +--! @param input eql_v3.int2_ord +--! @return eql_v3.int2_ord +CREATE AGGREGATE eql_v3.min(eql_v3.int2_ord) ( + sfunc = eql_v3.min_sfunc, + stype = eql_v3.int2_ord, + combinefunc = eql_v3.min_sfunc, + parallel = safe +); + +--! @brief State function for max on eql_v3.int2_ord. +--! @param state eql_v3.int2_ord +--! @param value eql_v3.int2_ord +--! @return eql_v3.int2_ord +CREATE FUNCTION eql_v3.max_sfunc(state eql_v3.int2_ord, value eql_v3.int2_ord) +RETURNS eql_v3.int2_ord +LANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE +SET search_path = pg_catalog, extensions, public +AS $$ +BEGIN + IF value > state THEN + RETURN value; + END IF; + RETURN state; +END; +$$; + +--! @brief max aggregate for eql_v3.int2_ord. +--! @param input eql_v3.int2_ord +--! @return eql_v3.int2_ord +CREATE AGGREGATE eql_v3.max(eql_v3.int2_ord) ( + sfunc = eql_v3.max_sfunc, + stype = eql_v3.int2_ord, + combinefunc = eql_v3.max_sfunc, + parallel = safe +); +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/int2/int2_operators.sql +--! @brief Operators for eql_v3.int2. + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.int2, RIGHTARG = eql_v3.int2 +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.int2, RIGHTARG = jsonb +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = jsonb, RIGHTARG = eql_v3.int2 +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.int2, RIGHTARG = eql_v3.int2 +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.int2, RIGHTARG = jsonb +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = jsonb, RIGHTARG = eql_v3.int2 +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.int2, RIGHTARG = eql_v3.int2 +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.int2, RIGHTARG = jsonb +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = jsonb, RIGHTARG = eql_v3.int2 +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.int2, RIGHTARG = eql_v3.int2 +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.int2, RIGHTARG = jsonb +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = jsonb, RIGHTARG = eql_v3.int2 +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.int2, RIGHTARG = eql_v3.int2 +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.int2, RIGHTARG = jsonb +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = jsonb, RIGHTARG = eql_v3.int2 +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.int2, RIGHTARG = eql_v3.int2 +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.int2, RIGHTARG = jsonb +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = jsonb, RIGHTARG = eql_v3.int2 +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.int2, RIGHTARG = eql_v3.int2 +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.int2, RIGHTARG = jsonb +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = jsonb, RIGHTARG = eql_v3.int2 +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.int2, RIGHTARG = eql_v3.int2 +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.int2, RIGHTARG = jsonb +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = jsonb, RIGHTARG = eql_v3.int2 +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.int2, RIGHTARG = text +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.int2, RIGHTARG = integer +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = jsonb, RIGHTARG = eql_v3.int2 +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.int2, RIGHTARG = text +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.int2, RIGHTARG = integer +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = jsonb, RIGHTARG = eql_v3.int2 +); + +CREATE OPERATOR ? ( + FUNCTION = eql_v3."?", + LEFTARG = eql_v3.int2, RIGHTARG = text +); + +CREATE OPERATOR ?| ( + FUNCTION = eql_v3."?|", + LEFTARG = eql_v3.int2, RIGHTARG = text[] +); + +CREATE OPERATOR ?& ( + FUNCTION = eql_v3."?&", + LEFTARG = eql_v3.int2, RIGHTARG = text[] +); + +CREATE OPERATOR @? ( + FUNCTION = eql_v3."@?", + LEFTARG = eql_v3.int2, RIGHTARG = jsonpath +); + +CREATE OPERATOR @@ ( + FUNCTION = eql_v3."@@", + LEFTARG = eql_v3.int2, RIGHTARG = jsonpath +); + +CREATE OPERATOR #> ( + FUNCTION = eql_v3."#>", + LEFTARG = eql_v3.int2, RIGHTARG = text[] +); + +CREATE OPERATOR #>> ( + FUNCTION = eql_v3."#>>", + LEFTARG = eql_v3.int2, RIGHTARG = text[] +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int2, RIGHTARG = text +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int2, RIGHTARG = integer +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int2, RIGHTARG = text[] +); + +CREATE OPERATOR #- ( + FUNCTION = eql_v3."#-", + LEFTARG = eql_v3.int2, RIGHTARG = text[] +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.int2, RIGHTARG = eql_v3.int2 +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.int2, RIGHTARG = jsonb +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = jsonb, RIGHTARG = eql_v3.int2 +); +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/int2/int2_eq_operators.sql +--! @brief Operators for eql_v3.int2_eq. + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.int2_eq, RIGHTARG = eql_v3.int2_eq, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.int2_eq, RIGHTARG = jsonb, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = jsonb, RIGHTARG = eql_v3.int2_eq, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.int2_eq, RIGHTARG = eql_v3.int2_eq, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.int2_eq, RIGHTARG = jsonb, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = jsonb, RIGHTARG = eql_v3.int2_eq, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.int2_eq, RIGHTARG = eql_v3.int2_eq +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.int2_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = jsonb, RIGHTARG = eql_v3.int2_eq +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.int2_eq, RIGHTARG = eql_v3.int2_eq +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.int2_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = jsonb, RIGHTARG = eql_v3.int2_eq +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.int2_eq, RIGHTARG = eql_v3.int2_eq +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.int2_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = jsonb, RIGHTARG = eql_v3.int2_eq +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.int2_eq, RIGHTARG = eql_v3.int2_eq +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.int2_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = jsonb, RIGHTARG = eql_v3.int2_eq +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.int2_eq, RIGHTARG = eql_v3.int2_eq +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.int2_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = jsonb, RIGHTARG = eql_v3.int2_eq +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.int2_eq, RIGHTARG = eql_v3.int2_eq +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.int2_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = jsonb, RIGHTARG = eql_v3.int2_eq +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.int2_eq, RIGHTARG = text +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.int2_eq, RIGHTARG = integer +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = jsonb, RIGHTARG = eql_v3.int2_eq +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.int2_eq, RIGHTARG = text +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.int2_eq, RIGHTARG = integer +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = jsonb, RIGHTARG = eql_v3.int2_eq +); + +CREATE OPERATOR ? ( + FUNCTION = eql_v3."?", + LEFTARG = eql_v3.int2_eq, RIGHTARG = text +); + +CREATE OPERATOR ?| ( + FUNCTION = eql_v3."?|", + LEFTARG = eql_v3.int2_eq, RIGHTARG = text[] +); + +CREATE OPERATOR ?& ( + FUNCTION = eql_v3."?&", + LEFTARG = eql_v3.int2_eq, RIGHTARG = text[] +); + +CREATE OPERATOR @? ( + FUNCTION = eql_v3."@?", + LEFTARG = eql_v3.int2_eq, RIGHTARG = jsonpath +); + +CREATE OPERATOR @@ ( + FUNCTION = eql_v3."@@", + LEFTARG = eql_v3.int2_eq, RIGHTARG = jsonpath +); + +CREATE OPERATOR #> ( + FUNCTION = eql_v3."#>", + LEFTARG = eql_v3.int2_eq, RIGHTARG = text[] +); + +CREATE OPERATOR #>> ( + FUNCTION = eql_v3."#>>", + LEFTARG = eql_v3.int2_eq, RIGHTARG = text[] +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int2_eq, RIGHTARG = text +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int2_eq, RIGHTARG = integer +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int2_eq, RIGHTARG = text[] +); + +CREATE OPERATOR #- ( + FUNCTION = eql_v3."#-", + LEFTARG = eql_v3.int2_eq, RIGHTARG = text[] +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.int2_eq, RIGHTARG = eql_v3.int2_eq +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.int2_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = jsonb, RIGHTARG = eql_v3.int2_eq +); +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/int2/int2_ord_ore_aggregates.sql +--! @brief Aggregates for eql_v3.int2_ord_ore. + +--! @brief State function for min on eql_v3.int2_ord_ore. +--! @param state eql_v3.int2_ord_ore +--! @param value eql_v3.int2_ord_ore +--! @return eql_v3.int2_ord_ore +CREATE FUNCTION eql_v3.min_sfunc(state eql_v3.int2_ord_ore, value eql_v3.int2_ord_ore) +RETURNS eql_v3.int2_ord_ore +LANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE +SET search_path = pg_catalog, extensions, public +AS $$ +BEGIN + IF value < state THEN + RETURN value; + END IF; + RETURN state; +END; +$$; + +--! @brief min aggregate for eql_v3.int2_ord_ore. +--! @param input eql_v3.int2_ord_ore +--! @return eql_v3.int2_ord_ore +CREATE AGGREGATE eql_v3.min(eql_v3.int2_ord_ore) ( + sfunc = eql_v3.min_sfunc, + stype = eql_v3.int2_ord_ore, + combinefunc = eql_v3.min_sfunc, + parallel = safe +); + +--! @brief State function for max on eql_v3.int2_ord_ore. +--! @param state eql_v3.int2_ord_ore +--! @param value eql_v3.int2_ord_ore +--! @return eql_v3.int2_ord_ore +CREATE FUNCTION eql_v3.max_sfunc(state eql_v3.int2_ord_ore, value eql_v3.int2_ord_ore) +RETURNS eql_v3.int2_ord_ore +LANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE +SET search_path = pg_catalog, extensions, public +AS $$ +BEGIN + IF value > state THEN + RETURN value; + END IF; + RETURN state; +END; +$$; + +--! @brief max aggregate for eql_v3.int2_ord_ore. +--! @param input eql_v3.int2_ord_ore +--! @return eql_v3.int2_ord_ore +CREATE AGGREGATE eql_v3.max(eql_v3.int2_ord_ore) ( + sfunc = eql_v3.max_sfunc, + stype = eql_v3.int2_ord_ore, + combinefunc = eql_v3.max_sfunc, + parallel = safe +); +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/date/date_ord_functions.sql +--! @brief Functions for eql_v3.date_ord. + +--! @brief Index extractor for eql_v3.date_ord. +--! @param a eql_v3.date_ord +--! @return eql_v3.ore_block_u64_8_256 +CREATE FUNCTION eql_v3.ord_term(a eql_v3.date_ord) +RETURNS eql_v3.ore_block_u64_8_256 +LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ore_block_u64_8_256(a::jsonb) $$; + +--! @brief Operator wrapper for eql_v3.date_ord. +--! @param a eql_v3.date_ord +--! @param b eql_v3.date_ord +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.date_ord, b eql_v3.date_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.date_ord. +--! @param a eql_v3.date_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.date_ord, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b::eql_v3.date_ord) $$; + +--! @brief Operator wrapper for eql_v3.date_ord. +--! @param a jsonb +--! @param b eql_v3.date_ord +--! @return boolean +CREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.date_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.date_ord) = eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.date_ord. +--! @param a eql_v3.date_ord +--! @param b eql_v3.date_ord +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.date_ord, b eql_v3.date_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.date_ord. +--! @param a eql_v3.date_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.date_ord, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b::eql_v3.date_ord) $$; + +--! @brief Operator wrapper for eql_v3.date_ord. +--! @param a jsonb +--! @param b eql_v3.date_ord +--! @return boolean +CREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.date_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.date_ord) <> eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.date_ord. +--! @param a eql_v3.date_ord +--! @param b eql_v3.date_ord +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.date_ord, b eql_v3.date_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.date_ord. +--! @param a eql_v3.date_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.date_ord, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b::eql_v3.date_ord) $$; + +--! @brief Operator wrapper for eql_v3.date_ord. +--! @param a jsonb +--! @param b eql_v3.date_ord +--! @return boolean +CREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.date_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.date_ord) < eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.date_ord. +--! @param a eql_v3.date_ord +--! @param b eql_v3.date_ord +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.date_ord, b eql_v3.date_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.date_ord. +--! @param a eql_v3.date_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.date_ord, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b::eql_v3.date_ord) $$; + +--! @brief Operator wrapper for eql_v3.date_ord. +--! @param a jsonb +--! @param b eql_v3.date_ord +--! @return boolean +CREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.date_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.date_ord) <= eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.date_ord. +--! @param a eql_v3.date_ord +--! @param b eql_v3.date_ord +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.date_ord, b eql_v3.date_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.date_ord. +--! @param a eql_v3.date_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.date_ord, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b::eql_v3.date_ord) $$; + +--! @brief Operator wrapper for eql_v3.date_ord. +--! @param a jsonb +--! @param b eql_v3.date_ord +--! @return boolean +CREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.date_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.date_ord) > eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.date_ord. +--! @param a eql_v3.date_ord +--! @param b eql_v3.date_ord +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.date_ord, b eql_v3.date_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.date_ord. +--! @param a eql_v3.date_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.date_ord, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b::eql_v3.date_ord) $$; + +--! @brief Operator wrapper for eql_v3.date_ord. +--! @param a jsonb +--! @param b eql_v3.date_ord +--! @return boolean +CREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.date_ord) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.date_ord) >= eql_v3.ord_term(b) $$; + +--! @brief Unsupported operator blocker for eql_v3.date_ord. +--! @param a eql_v3.date_ord +--! @param b eql_v3.date_ord +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.date_ord, b eql_v3.date_ord) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.date_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord. +--! @param a eql_v3.date_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.date_ord, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.date_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord. +--! @param a jsonb +--! @param b eql_v3.date_ord +--! @return boolean +CREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.date_ord) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.date_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord. +--! @param a eql_v3.date_ord +--! @param b eql_v3.date_ord +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.date_ord, b eql_v3.date_ord) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.date_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord. +--! @param a eql_v3.date_ord +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.date_ord, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.date_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord. +--! @param a jsonb +--! @param b eql_v3.date_ord +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.date_ord) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.date_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord. +--! @param a eql_v3.date_ord +--! @param selector text +--! @return eql_v3.date_ord +CREATE FUNCTION eql_v3."->"(a eql_v3.date_ord, selector text) +RETURNS eql_v3.date_ord IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.date_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord. +--! @param a eql_v3.date_ord +--! @param selector integer +--! @return eql_v3.date_ord +CREATE FUNCTION eql_v3."->"(a eql_v3.date_ord, selector integer) +RETURNS eql_v3.date_ord IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.date_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord. +--! @param a jsonb +--! @param selector eql_v3.date_ord +--! @return eql_v3.date_ord +CREATE FUNCTION eql_v3."->"(a jsonb, selector eql_v3.date_ord) +RETURNS eql_v3.date_ord IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.date_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord. +--! @param a eql_v3.date_ord +--! @param selector text +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.date_ord, selector text) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.date_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord. +--! @param a eql_v3.date_ord +--! @param selector integer +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.date_ord, selector integer) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.date_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord. +--! @param a jsonb +--! @param selector eql_v3.date_ord +--! @return text +CREATE FUNCTION eql_v3."->>"(a jsonb, selector eql_v3.date_ord) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.date_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord. +--! @param a eql_v3.date_ord +--! @param b text +--! @return boolean +CREATE FUNCTION eql_v3."?"(a eql_v3.date_ord, b text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.date_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord. +--! @param a eql_v3.date_ord +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?|"(a eql_v3.date_ord, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.date_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord. +--! @param a eql_v3.date_ord +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?&"(a eql_v3.date_ord, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.date_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord. +--! @param a eql_v3.date_ord +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@?"(a eql_v3.date_ord, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.date_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord. +--! @param a eql_v3.date_ord +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@@"(a eql_v3.date_ord, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.date_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord. +--! @param a eql_v3.date_ord +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#>"(a eql_v3.date_ord, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.date_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord. +--! @param a eql_v3.date_ord +--! @param b text[] +--! @return text +CREATE FUNCTION eql_v3."#>>"(a eql_v3.date_ord, b text[]) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.date_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord. +--! @param a eql_v3.date_ord +--! @param b text +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.date_ord, b text) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.date_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord. +--! @param a eql_v3.date_ord +--! @param b integer +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.date_ord, b integer) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.date_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord. +--! @param a eql_v3.date_ord +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.date_ord, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.date_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord. +--! @param a eql_v3.date_ord +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#-"(a eql_v3.date_ord, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.date_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord. +--! @param a eql_v3.date_ord +--! @param b eql_v3.date_ord +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.date_ord, b eql_v3.date_ord) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.date_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord. +--! @param a eql_v3.date_ord +--! @param b jsonb +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.date_ord, b jsonb) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.date_ord'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.date_ord. +--! @param a jsonb +--! @param b eql_v3.date_ord +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a jsonb, b eql_v3.date_ord) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.date_ord'; END; $$ +LANGUAGE plpgsql; +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/date/date_eq_operators.sql +--! @brief Operators for eql_v3.date_eq. + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.date_eq, RIGHTARG = eql_v3.date_eq, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.date_eq, RIGHTARG = jsonb, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = jsonb, RIGHTARG = eql_v3.date_eq, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.date_eq, RIGHTARG = eql_v3.date_eq, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.date_eq, RIGHTARG = jsonb, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = jsonb, RIGHTARG = eql_v3.date_eq, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.date_eq, RIGHTARG = eql_v3.date_eq +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.date_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = jsonb, RIGHTARG = eql_v3.date_eq +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.date_eq, RIGHTARG = eql_v3.date_eq +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.date_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = jsonb, RIGHTARG = eql_v3.date_eq +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.date_eq, RIGHTARG = eql_v3.date_eq +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.date_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = jsonb, RIGHTARG = eql_v3.date_eq +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.date_eq, RIGHTARG = eql_v3.date_eq +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.date_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = jsonb, RIGHTARG = eql_v3.date_eq +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.date_eq, RIGHTARG = eql_v3.date_eq +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.date_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = jsonb, RIGHTARG = eql_v3.date_eq +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.date_eq, RIGHTARG = eql_v3.date_eq +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.date_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = jsonb, RIGHTARG = eql_v3.date_eq +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.date_eq, RIGHTARG = text +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.date_eq, RIGHTARG = integer +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = jsonb, RIGHTARG = eql_v3.date_eq +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.date_eq, RIGHTARG = text +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.date_eq, RIGHTARG = integer +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = jsonb, RIGHTARG = eql_v3.date_eq +); + +CREATE OPERATOR ? ( + FUNCTION = eql_v3."?", + LEFTARG = eql_v3.date_eq, RIGHTARG = text +); + +CREATE OPERATOR ?| ( + FUNCTION = eql_v3."?|", + LEFTARG = eql_v3.date_eq, RIGHTARG = text[] +); + +CREATE OPERATOR ?& ( + FUNCTION = eql_v3."?&", + LEFTARG = eql_v3.date_eq, RIGHTARG = text[] +); + +CREATE OPERATOR @? ( + FUNCTION = eql_v3."@?", + LEFTARG = eql_v3.date_eq, RIGHTARG = jsonpath +); + +CREATE OPERATOR @@ ( + FUNCTION = eql_v3."@@", + LEFTARG = eql_v3.date_eq, RIGHTARG = jsonpath +); + +CREATE OPERATOR #> ( + FUNCTION = eql_v3."#>", + LEFTARG = eql_v3.date_eq, RIGHTARG = text[] +); + +CREATE OPERATOR #>> ( + FUNCTION = eql_v3."#>>", + LEFTARG = eql_v3.date_eq, RIGHTARG = text[] +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.date_eq, RIGHTARG = text +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.date_eq, RIGHTARG = integer +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.date_eq, RIGHTARG = text[] +); + +CREATE OPERATOR #- ( + FUNCTION = eql_v3."#-", + LEFTARG = eql_v3.date_eq, RIGHTARG = text[] +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.date_eq, RIGHTARG = eql_v3.date_eq +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.date_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = jsonb, RIGHTARG = eql_v3.date_eq +); +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/date/date_operators.sql +--! @brief Operators for eql_v3.date. + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.date, RIGHTARG = eql_v3.date +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.date, RIGHTARG = jsonb +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = jsonb, RIGHTARG = eql_v3.date +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.date, RIGHTARG = eql_v3.date +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.date, RIGHTARG = jsonb +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = jsonb, RIGHTARG = eql_v3.date +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.date, RIGHTARG = eql_v3.date +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.date, RIGHTARG = jsonb +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = jsonb, RIGHTARG = eql_v3.date +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.date, RIGHTARG = eql_v3.date +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.date, RIGHTARG = jsonb +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = jsonb, RIGHTARG = eql_v3.date +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.date, RIGHTARG = eql_v3.date +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.date, RIGHTARG = jsonb +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = jsonb, RIGHTARG = eql_v3.date +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.date, RIGHTARG = eql_v3.date +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.date, RIGHTARG = jsonb +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = jsonb, RIGHTARG = eql_v3.date +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.date, RIGHTARG = eql_v3.date +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.date, RIGHTARG = jsonb +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = jsonb, RIGHTARG = eql_v3.date +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.date, RIGHTARG = eql_v3.date +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.date, RIGHTARG = jsonb +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = jsonb, RIGHTARG = eql_v3.date +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.date, RIGHTARG = text +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.date, RIGHTARG = integer +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = jsonb, RIGHTARG = eql_v3.date +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.date, RIGHTARG = text +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.date, RIGHTARG = integer +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = jsonb, RIGHTARG = eql_v3.date +); + +CREATE OPERATOR ? ( + FUNCTION = eql_v3."?", + LEFTARG = eql_v3.date, RIGHTARG = text +); + +CREATE OPERATOR ?| ( + FUNCTION = eql_v3."?|", + LEFTARG = eql_v3.date, RIGHTARG = text[] +); + +CREATE OPERATOR ?& ( + FUNCTION = eql_v3."?&", + LEFTARG = eql_v3.date, RIGHTARG = text[] +); + +CREATE OPERATOR @? ( + FUNCTION = eql_v3."@?", + LEFTARG = eql_v3.date, RIGHTARG = jsonpath +); + +CREATE OPERATOR @@ ( + FUNCTION = eql_v3."@@", + LEFTARG = eql_v3.date, RIGHTARG = jsonpath +); + +CREATE OPERATOR #> ( + FUNCTION = eql_v3."#>", + LEFTARG = eql_v3.date, RIGHTARG = text[] +); + +CREATE OPERATOR #>> ( + FUNCTION = eql_v3."#>>", + LEFTARG = eql_v3.date, RIGHTARG = text[] +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.date, RIGHTARG = text +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.date, RIGHTARG = integer +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.date, RIGHTARG = text[] +); + +CREATE OPERATOR #- ( + FUNCTION = eql_v3."#-", + LEFTARG = eql_v3.date, RIGHTARG = text[] +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.date, RIGHTARG = eql_v3.date +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.date, RIGHTARG = jsonb +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = jsonb, RIGHTARG = eql_v3.date +); +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/date/date_ord_ore_aggregates.sql +--! @brief Aggregates for eql_v3.date_ord_ore. + +--! @brief State function for min on eql_v3.date_ord_ore. +--! @param state eql_v3.date_ord_ore +--! @param value eql_v3.date_ord_ore +--! @return eql_v3.date_ord_ore +CREATE FUNCTION eql_v3.min_sfunc(state eql_v3.date_ord_ore, value eql_v3.date_ord_ore) +RETURNS eql_v3.date_ord_ore +LANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE +SET search_path = pg_catalog, extensions, public +AS $$ +BEGIN + IF value < state THEN + RETURN value; + END IF; + RETURN state; +END; +$$; + +--! @brief min aggregate for eql_v3.date_ord_ore. +--! @param input eql_v3.date_ord_ore +--! @return eql_v3.date_ord_ore +CREATE AGGREGATE eql_v3.min(eql_v3.date_ord_ore) ( + sfunc = eql_v3.min_sfunc, + stype = eql_v3.date_ord_ore, + combinefunc = eql_v3.min_sfunc, + parallel = safe +); + +--! @brief State function for max on eql_v3.date_ord_ore. +--! @param state eql_v3.date_ord_ore +--! @param value eql_v3.date_ord_ore +--! @return eql_v3.date_ord_ore +CREATE FUNCTION eql_v3.max_sfunc(state eql_v3.date_ord_ore, value eql_v3.date_ord_ore) +RETURNS eql_v3.date_ord_ore +LANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE +SET search_path = pg_catalog, extensions, public +AS $$ +BEGIN + IF value > state THEN + RETURN value; + END IF; + RETURN state; +END; +$$; + +--! @brief max aggregate for eql_v3.date_ord_ore. +--! @param input eql_v3.date_ord_ore +--! @return eql_v3.date_ord_ore +CREATE AGGREGATE eql_v3.max(eql_v3.date_ord_ore) ( + sfunc = eql_v3.max_sfunc, + stype = eql_v3.date_ord_ore, + combinefunc = eql_v3.max_sfunc, + parallel = safe +); +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/date/date_ord_operators.sql +--! @brief Operators for eql_v3.date_ord. + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.date_ord, RIGHTARG = eql_v3.date_ord, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.date_ord, RIGHTARG = jsonb, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.date_ord, RIGHTARG = eql_v3.date_ord, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.date_ord, RIGHTARG = jsonb, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.date_ord, RIGHTARG = eql_v3.date_ord, + COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.date_ord, RIGHTARG = jsonb, + COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord, + COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.date_ord, RIGHTARG = eql_v3.date_ord, + COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.date_ord, RIGHTARG = jsonb, + COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord, + COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.date_ord, RIGHTARG = eql_v3.date_ord, + COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.date_ord, RIGHTARG = jsonb, + COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord, + COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.date_ord, RIGHTARG = eql_v3.date_ord, + COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.date_ord, RIGHTARG = jsonb, + COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord, + COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.date_ord, RIGHTARG = eql_v3.date_ord +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.date_ord, RIGHTARG = jsonb +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.date_ord, RIGHTARG = eql_v3.date_ord +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.date_ord, RIGHTARG = jsonb +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.date_ord, RIGHTARG = text +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.date_ord, RIGHTARG = integer +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.date_ord, RIGHTARG = text +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.date_ord, RIGHTARG = integer +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord +); + +CREATE OPERATOR ? ( + FUNCTION = eql_v3."?", + LEFTARG = eql_v3.date_ord, RIGHTARG = text +); + +CREATE OPERATOR ?| ( + FUNCTION = eql_v3."?|", + LEFTARG = eql_v3.date_ord, RIGHTARG = text[] +); + +CREATE OPERATOR ?& ( + FUNCTION = eql_v3."?&", + LEFTARG = eql_v3.date_ord, RIGHTARG = text[] +); + +CREATE OPERATOR @? ( + FUNCTION = eql_v3."@?", + LEFTARG = eql_v3.date_ord, RIGHTARG = jsonpath +); + +CREATE OPERATOR @@ ( + FUNCTION = eql_v3."@@", + LEFTARG = eql_v3.date_ord, RIGHTARG = jsonpath +); + +CREATE OPERATOR #> ( + FUNCTION = eql_v3."#>", + LEFTARG = eql_v3.date_ord, RIGHTARG = text[] +); + +CREATE OPERATOR #>> ( + FUNCTION = eql_v3."#>>", + LEFTARG = eql_v3.date_ord, RIGHTARG = text[] +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.date_ord, RIGHTARG = text +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.date_ord, RIGHTARG = integer +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.date_ord, RIGHTARG = text[] +); + +CREATE OPERATOR #- ( + FUNCTION = eql_v3."#-", + LEFTARG = eql_v3.date_ord, RIGHTARG = text[] +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.date_ord, RIGHTARG = eql_v3.date_ord +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.date_ord, RIGHTARG = jsonb +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord +); +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/date/date_ord_aggregates.sql +--! @brief Aggregates for eql_v3.date_ord. + +--! @brief State function for min on eql_v3.date_ord. +--! @param state eql_v3.date_ord +--! @param value eql_v3.date_ord +--! @return eql_v3.date_ord +CREATE FUNCTION eql_v3.min_sfunc(state eql_v3.date_ord, value eql_v3.date_ord) +RETURNS eql_v3.date_ord +LANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE +SET search_path = pg_catalog, extensions, public +AS $$ +BEGIN + IF value < state THEN + RETURN value; + END IF; + RETURN state; +END; +$$; + +--! @brief min aggregate for eql_v3.date_ord. +--! @param input eql_v3.date_ord +--! @return eql_v3.date_ord +CREATE AGGREGATE eql_v3.min(eql_v3.date_ord) ( + sfunc = eql_v3.min_sfunc, + stype = eql_v3.date_ord, + combinefunc = eql_v3.min_sfunc, + parallel = safe +); + +--! @brief State function for max on eql_v3.date_ord. +--! @param state eql_v3.date_ord +--! @param value eql_v3.date_ord +--! @return eql_v3.date_ord +CREATE FUNCTION eql_v3.max_sfunc(state eql_v3.date_ord, value eql_v3.date_ord) +RETURNS eql_v3.date_ord +LANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE +SET search_path = pg_catalog, extensions, public +AS $$ +BEGIN + IF value > state THEN + RETURN value; + END IF; + RETURN state; +END; +$$; + +--! @brief max aggregate for eql_v3.date_ord. +--! @param input eql_v3.date_ord +--! @return eql_v3.date_ord +CREATE AGGREGATE eql_v3.max(eql_v3.date_ord) ( + sfunc = eql_v3.max_sfunc, + stype = eql_v3.date_ord, + combinefunc = eql_v3.max_sfunc, + parallel = safe +); +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/int8/int8_operators.sql +--! @brief Operators for eql_v3.int8. + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.int8, RIGHTARG = eql_v3.int8 +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.int8, RIGHTARG = jsonb +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = jsonb, RIGHTARG = eql_v3.int8 +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.int8, RIGHTARG = eql_v3.int8 +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.int8, RIGHTARG = jsonb +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = jsonb, RIGHTARG = eql_v3.int8 +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.int8, RIGHTARG = eql_v3.int8 +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.int8, RIGHTARG = jsonb +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = jsonb, RIGHTARG = eql_v3.int8 +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.int8, RIGHTARG = eql_v3.int8 +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.int8, RIGHTARG = jsonb +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = jsonb, RIGHTARG = eql_v3.int8 +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.int8, RIGHTARG = eql_v3.int8 +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.int8, RIGHTARG = jsonb +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = jsonb, RIGHTARG = eql_v3.int8 +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.int8, RIGHTARG = eql_v3.int8 +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.int8, RIGHTARG = jsonb +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = jsonb, RIGHTARG = eql_v3.int8 +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.int8, RIGHTARG = eql_v3.int8 +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.int8, RIGHTARG = jsonb +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = jsonb, RIGHTARG = eql_v3.int8 +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.int8, RIGHTARG = eql_v3.int8 +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.int8, RIGHTARG = jsonb +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = jsonb, RIGHTARG = eql_v3.int8 +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.int8, RIGHTARG = text +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.int8, RIGHTARG = integer +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = jsonb, RIGHTARG = eql_v3.int8 +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.int8, RIGHTARG = text +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.int8, RIGHTARG = integer +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = jsonb, RIGHTARG = eql_v3.int8 +); + +CREATE OPERATOR ? ( + FUNCTION = eql_v3."?", + LEFTARG = eql_v3.int8, RIGHTARG = text +); + +CREATE OPERATOR ?| ( + FUNCTION = eql_v3."?|", + LEFTARG = eql_v3.int8, RIGHTARG = text[] +); + +CREATE OPERATOR ?& ( + FUNCTION = eql_v3."?&", + LEFTARG = eql_v3.int8, RIGHTARG = text[] +); + +CREATE OPERATOR @? ( + FUNCTION = eql_v3."@?", + LEFTARG = eql_v3.int8, RIGHTARG = jsonpath +); + +CREATE OPERATOR @@ ( + FUNCTION = eql_v3."@@", + LEFTARG = eql_v3.int8, RIGHTARG = jsonpath +); + +CREATE OPERATOR #> ( + FUNCTION = eql_v3."#>", + LEFTARG = eql_v3.int8, RIGHTARG = text[] +); + +CREATE OPERATOR #>> ( + FUNCTION = eql_v3."#>>", + LEFTARG = eql_v3.int8, RIGHTARG = text[] +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int8, RIGHTARG = text +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int8, RIGHTARG = integer +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int8, RIGHTARG = text[] +); + +CREATE OPERATOR #- ( + FUNCTION = eql_v3."#-", + LEFTARG = eql_v3.int8, RIGHTARG = text[] +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.int8, RIGHTARG = eql_v3.int8 +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.int8, RIGHTARG = jsonb +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = jsonb, RIGHTARG = eql_v3.int8 +); +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/int8/int8_eq_functions.sql +--! @brief Functions for eql_v3.int8_eq. + +--! @brief Index extractor for eql_v3.int8_eq. +--! @param a eql_v3.int8_eq +--! @return eql_v3.hmac_256 +CREATE FUNCTION eql_v3.eq_term(a eql_v3.int8_eq) +RETURNS eql_v3.hmac_256 +LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.hmac_256(a::jsonb) $$; + +--! @brief Operator wrapper for eql_v3.int8_eq. +--! @param a eql_v3.int8_eq +--! @param b eql_v3.int8_eq +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.int8_eq, b eql_v3.int8_eq) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a) = eql_v3.eq_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int8_eq. +--! @param a eql_v3.int8_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.int8_eq, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a) = eql_v3.eq_term(b::eql_v3.int8_eq) $$; + +--! @brief Operator wrapper for eql_v3.int8_eq. +--! @param a jsonb +--! @param b eql_v3.int8_eq +--! @return boolean +CREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.int8_eq) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a::eql_v3.int8_eq) = eql_v3.eq_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int8_eq. +--! @param a eql_v3.int8_eq +--! @param b eql_v3.int8_eq +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.int8_eq, b eql_v3.int8_eq) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a) <> eql_v3.eq_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int8_eq. +--! @param a eql_v3.int8_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.int8_eq, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a) <> eql_v3.eq_term(b::eql_v3.int8_eq) $$; + +--! @brief Operator wrapper for eql_v3.int8_eq. +--! @param a jsonb +--! @param b eql_v3.int8_eq +--! @return boolean +CREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.int8_eq) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.eq_term(a::eql_v3.int8_eq) <> eql_v3.eq_term(b) $$; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a eql_v3.int8_eq +--! @param b eql_v3.int8_eq +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.int8_eq, b eql_v3.int8_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a eql_v3.int8_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.int8_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a jsonb +--! @param b eql_v3.int8_eq +--! @return boolean +CREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.int8_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a eql_v3.int8_eq +--! @param b eql_v3.int8_eq +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.int8_eq, b eql_v3.int8_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a eql_v3.int8_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.int8_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a jsonb +--! @param b eql_v3.int8_eq +--! @return boolean +CREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.int8_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a eql_v3.int8_eq +--! @param b eql_v3.int8_eq +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.int8_eq, b eql_v3.int8_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a eql_v3.int8_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.int8_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a jsonb +--! @param b eql_v3.int8_eq +--! @return boolean +CREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.int8_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a eql_v3.int8_eq +--! @param b eql_v3.int8_eq +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.int8_eq, b eql_v3.int8_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a eql_v3.int8_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.int8_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a jsonb +--! @param b eql_v3.int8_eq +--! @return boolean +CREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.int8_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a eql_v3.int8_eq +--! @param b eql_v3.int8_eq +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.int8_eq, b eql_v3.int8_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a eql_v3.int8_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.int8_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a jsonb +--! @param b eql_v3.int8_eq +--! @return boolean +CREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.int8_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a eql_v3.int8_eq +--! @param b eql_v3.int8_eq +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.int8_eq, b eql_v3.int8_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a eql_v3.int8_eq +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.int8_eq, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a jsonb +--! @param b eql_v3.int8_eq +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.int8_eq) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a eql_v3.int8_eq +--! @param selector text +--! @return eql_v3.int8_eq +CREATE FUNCTION eql_v3."->"(a eql_v3.int8_eq, selector text) +RETURNS eql_v3.int8_eq IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a eql_v3.int8_eq +--! @param selector integer +--! @return eql_v3.int8_eq +CREATE FUNCTION eql_v3."->"(a eql_v3.int8_eq, selector integer) +RETURNS eql_v3.int8_eq IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a jsonb +--! @param selector eql_v3.int8_eq +--! @return eql_v3.int8_eq +CREATE FUNCTION eql_v3."->"(a jsonb, selector eql_v3.int8_eq) +RETURNS eql_v3.int8_eq IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a eql_v3.int8_eq +--! @param selector text +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.int8_eq, selector text) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a eql_v3.int8_eq +--! @param selector integer +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.int8_eq, selector integer) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a jsonb +--! @param selector eql_v3.int8_eq +--! @return text +CREATE FUNCTION eql_v3."->>"(a jsonb, selector eql_v3.int8_eq) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a eql_v3.int8_eq +--! @param b text +--! @return boolean +CREATE FUNCTION eql_v3."?"(a eql_v3.int8_eq, b text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a eql_v3.int8_eq +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?|"(a eql_v3.int8_eq, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a eql_v3.int8_eq +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?&"(a eql_v3.int8_eq, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a eql_v3.int8_eq +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@?"(a eql_v3.int8_eq, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a eql_v3.int8_eq +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@@"(a eql_v3.int8_eq, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a eql_v3.int8_eq +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#>"(a eql_v3.int8_eq, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a eql_v3.int8_eq +--! @param b text[] +--! @return text +CREATE FUNCTION eql_v3."#>>"(a eql_v3.int8_eq, b text[]) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a eql_v3.int8_eq +--! @param b text +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int8_eq, b text) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a eql_v3.int8_eq +--! @param b integer +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int8_eq, b integer) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a eql_v3.int8_eq +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int8_eq, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a eql_v3.int8_eq +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#-"(a eql_v3.int8_eq, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a eql_v3.int8_eq +--! @param b eql_v3.int8_eq +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.int8_eq, b eql_v3.int8_eq) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a eql_v3.int8_eq +--! @param b jsonb +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.int8_eq, b jsonb) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_eq. +--! @param a jsonb +--! @param b eql_v3.int8_eq +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a jsonb, b eql_v3.int8_eq) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int8_eq'; END; $$ +LANGUAGE plpgsql; +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/int8/int8_ord_ore_functions.sql +--! @brief Functions for eql_v3.int8_ord_ore. + +--! @brief Index extractor for eql_v3.int8_ord_ore. +--! @param a eql_v3.int8_ord_ore +--! @return eql_v3.ore_block_u64_8_256 +CREATE FUNCTION eql_v3.ord_term(a eql_v3.int8_ord_ore) +RETURNS eql_v3.ore_block_u64_8_256 +LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ore_block_u64_8_256(a::jsonb) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord_ore. +--! @param a eql_v3.int8_ord_ore +--! @param b eql_v3.int8_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.int8_ord_ore, b eql_v3.int8_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord_ore. +--! @param a eql_v3.int8_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.int8_ord_ore, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b::eql_v3.int8_ord_ore) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord_ore. +--! @param a jsonb +--! @param b eql_v3.int8_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.int8_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int8_ord_ore) = eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord_ore. +--! @param a eql_v3.int8_ord_ore +--! @param b eql_v3.int8_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.int8_ord_ore, b eql_v3.int8_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord_ore. +--! @param a eql_v3.int8_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.int8_ord_ore, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b::eql_v3.int8_ord_ore) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord_ore. +--! @param a jsonb +--! @param b eql_v3.int8_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.int8_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int8_ord_ore) <> eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord_ore. +--! @param a eql_v3.int8_ord_ore +--! @param b eql_v3.int8_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.int8_ord_ore, b eql_v3.int8_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord_ore. +--! @param a eql_v3.int8_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.int8_ord_ore, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b::eql_v3.int8_ord_ore) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord_ore. +--! @param a jsonb +--! @param b eql_v3.int8_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.int8_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int8_ord_ore) < eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord_ore. +--! @param a eql_v3.int8_ord_ore +--! @param b eql_v3.int8_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.int8_ord_ore, b eql_v3.int8_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord_ore. +--! @param a eql_v3.int8_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.int8_ord_ore, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b::eql_v3.int8_ord_ore) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord_ore. +--! @param a jsonb +--! @param b eql_v3.int8_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.int8_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int8_ord_ore) <= eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord_ore. +--! @param a eql_v3.int8_ord_ore +--! @param b eql_v3.int8_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.int8_ord_ore, b eql_v3.int8_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord_ore. +--! @param a eql_v3.int8_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.int8_ord_ore, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b::eql_v3.int8_ord_ore) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord_ore. +--! @param a jsonb +--! @param b eql_v3.int8_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.int8_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int8_ord_ore) > eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord_ore. +--! @param a eql_v3.int8_ord_ore +--! @param b eql_v3.int8_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.int8_ord_ore, b eql_v3.int8_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord_ore. +--! @param a eql_v3.int8_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.int8_ord_ore, b jsonb) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b::eql_v3.int8_ord_ore) $$; + +--! @brief Operator wrapper for eql_v3.int8_ord_ore. +--! @param a jsonb +--! @param b eql_v3.int8_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.int8_ord_ore) +RETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE +AS $$ SELECT eql_v3.ord_term(a::eql_v3.int8_ord_ore) >= eql_v3.ord_term(b) $$; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore. +--! @param a eql_v3.int8_ord_ore +--! @param b eql_v3.int8_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.int8_ord_ore, b eql_v3.int8_ord_ore) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int8_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore. +--! @param a eql_v3.int8_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.int8_ord_ore, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int8_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore. +--! @param a jsonb +--! @param b eql_v3.int8_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.int8_ord_ore) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int8_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore. +--! @param a eql_v3.int8_ord_ore +--! @param b eql_v3.int8_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.int8_ord_ore, b eql_v3.int8_ord_ore) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int8_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore. +--! @param a eql_v3.int8_ord_ore +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.int8_ord_ore, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int8_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore. +--! @param a jsonb +--! @param b eql_v3.int8_ord_ore +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.int8_ord_ore) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int8_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore. +--! @param a eql_v3.int8_ord_ore +--! @param selector text +--! @return eql_v3.int8_ord_ore +CREATE FUNCTION eql_v3."->"(a eql_v3.int8_ord_ore, selector text) +RETURNS eql_v3.int8_ord_ore IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int8_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore. +--! @param a eql_v3.int8_ord_ore +--! @param selector integer +--! @return eql_v3.int8_ord_ore +CREATE FUNCTION eql_v3."->"(a eql_v3.int8_ord_ore, selector integer) +RETURNS eql_v3.int8_ord_ore IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int8_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore. +--! @param a jsonb +--! @param selector eql_v3.int8_ord_ore +--! @return eql_v3.int8_ord_ore +CREATE FUNCTION eql_v3."->"(a jsonb, selector eql_v3.int8_ord_ore) +RETURNS eql_v3.int8_ord_ore IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int8_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore. +--! @param a eql_v3.int8_ord_ore +--! @param selector text +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.int8_ord_ore, selector text) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int8_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore. +--! @param a eql_v3.int8_ord_ore +--! @param selector integer +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.int8_ord_ore, selector integer) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int8_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore. +--! @param a jsonb +--! @param selector eql_v3.int8_ord_ore +--! @return text +CREATE FUNCTION eql_v3."->>"(a jsonb, selector eql_v3.int8_ord_ore) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int8_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore. +--! @param a eql_v3.int8_ord_ore +--! @param b text +--! @return boolean +CREATE FUNCTION eql_v3."?"(a eql_v3.int8_ord_ore, b text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.int8_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore. +--! @param a eql_v3.int8_ord_ore +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?|"(a eql_v3.int8_ord_ore, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.int8_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore. +--! @param a eql_v3.int8_ord_ore +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?&"(a eql_v3.int8_ord_ore, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.int8_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore. +--! @param a eql_v3.int8_ord_ore +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@?"(a eql_v3.int8_ord_ore, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.int8_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore. +--! @param a eql_v3.int8_ord_ore +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@@"(a eql_v3.int8_ord_ore, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.int8_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore. +--! @param a eql_v3.int8_ord_ore +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#>"(a eql_v3.int8_ord_ore, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.int8_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore. +--! @param a eql_v3.int8_ord_ore +--! @param b text[] +--! @return text +CREATE FUNCTION eql_v3."#>>"(a eql_v3.int8_ord_ore, b text[]) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.int8_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore. +--! @param a eql_v3.int8_ord_ore +--! @param b text +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int8_ord_ore, b text) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int8_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore. +--! @param a eql_v3.int8_ord_ore +--! @param b integer +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int8_ord_ore, b integer) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int8_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore. +--! @param a eql_v3.int8_ord_ore +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.int8_ord_ore, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int8_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore. +--! @param a eql_v3.int8_ord_ore +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#-"(a eql_v3.int8_ord_ore, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.int8_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore. +--! @param a eql_v3.int8_ord_ore +--! @param b eql_v3.int8_ord_ore +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.int8_ord_ore, b eql_v3.int8_ord_ore) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int8_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore. +--! @param a eql_v3.int8_ord_ore +--! @param b jsonb +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.int8_ord_ore, b jsonb) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int8_ord_ore'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore. +--! @param a jsonb +--! @param b eql_v3.int8_ord_ore +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a jsonb, b eql_v3.int8_ord_ore) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int8_ord_ore'; END; $$ +LANGUAGE plpgsql; +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/int8/int8_ord_operators.sql +--! @brief Operators for eql_v3.int8_ord. + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.int8_ord, RIGHTARG = eql_v3.int8_ord, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.int8_ord, RIGHTARG = jsonb, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.int8_ord, RIGHTARG = eql_v3.int8_ord, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.int8_ord, RIGHTARG = jsonb, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.int8_ord, RIGHTARG = eql_v3.int8_ord, + COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.int8_ord, RIGHTARG = jsonb, + COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord, + COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.int8_ord, RIGHTARG = eql_v3.int8_ord, + COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.int8_ord, RIGHTARG = jsonb, + COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord, + COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.int8_ord, RIGHTARG = eql_v3.int8_ord, + COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.int8_ord, RIGHTARG = jsonb, + COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord, + COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.int8_ord, RIGHTARG = eql_v3.int8_ord, + COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.int8_ord, RIGHTARG = jsonb, + COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord, + COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.int8_ord, RIGHTARG = eql_v3.int8_ord +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.int8_ord, RIGHTARG = jsonb +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.int8_ord, RIGHTARG = eql_v3.int8_ord +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.int8_ord, RIGHTARG = jsonb +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.int8_ord, RIGHTARG = text +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.int8_ord, RIGHTARG = integer +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.int8_ord, RIGHTARG = text +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.int8_ord, RIGHTARG = integer +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord +); + +CREATE OPERATOR ? ( + FUNCTION = eql_v3."?", + LEFTARG = eql_v3.int8_ord, RIGHTARG = text +); + +CREATE OPERATOR ?| ( + FUNCTION = eql_v3."?|", + LEFTARG = eql_v3.int8_ord, RIGHTARG = text[] +); + +CREATE OPERATOR ?& ( + FUNCTION = eql_v3."?&", + LEFTARG = eql_v3.int8_ord, RIGHTARG = text[] +); + +CREATE OPERATOR @? ( + FUNCTION = eql_v3."@?", + LEFTARG = eql_v3.int8_ord, RIGHTARG = jsonpath +); + +CREATE OPERATOR @@ ( + FUNCTION = eql_v3."@@", + LEFTARG = eql_v3.int8_ord, RIGHTARG = jsonpath +); + +CREATE OPERATOR #> ( + FUNCTION = eql_v3."#>", + LEFTARG = eql_v3.int8_ord, RIGHTARG = text[] +); + +CREATE OPERATOR #>> ( + FUNCTION = eql_v3."#>>", + LEFTARG = eql_v3.int8_ord, RIGHTARG = text[] +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int8_ord, RIGHTARG = text +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int8_ord, RIGHTARG = integer +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int8_ord, RIGHTARG = text[] +); + +CREATE OPERATOR #- ( + FUNCTION = eql_v3."#-", + LEFTARG = eql_v3.int8_ord, RIGHTARG = text[] +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.int8_ord, RIGHTARG = eql_v3.int8_ord +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.int8_ord, RIGHTARG = jsonb +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord +); +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/int8/int8_ord_ore_operators.sql +--! @brief Operators for eql_v3.int8_ord_ore. + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = eql_v3.int8_ord_ore, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = jsonb, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord_ore, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = eql_v3.int8_ord_ore, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = jsonb, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord_ore, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = eql_v3.int8_ord_ore, + COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = jsonb, + COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord_ore, + COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = eql_v3.int8_ord_ore, + COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = jsonb, + COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord_ore, + COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = eql_v3.int8_ord_ore, + COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = jsonb, + COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord_ore, + COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = eql_v3.int8_ord_ore, + COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = jsonb, + COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord_ore, + COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = eql_v3.int8_ord_ore +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = jsonb +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord_ore +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = eql_v3.int8_ord_ore +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = jsonb +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord_ore +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = text +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = integer +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord_ore +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = text +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = integer +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord_ore +); + +CREATE OPERATOR ? ( + FUNCTION = eql_v3."?", + LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = text +); + +CREATE OPERATOR ?| ( + FUNCTION = eql_v3."?|", + LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = text[] +); + +CREATE OPERATOR ?& ( + FUNCTION = eql_v3."?&", + LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = text[] +); + +CREATE OPERATOR @? ( + FUNCTION = eql_v3."@?", + LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = jsonpath +); + +CREATE OPERATOR @@ ( + FUNCTION = eql_v3."@@", + LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = jsonpath +); + +CREATE OPERATOR #> ( + FUNCTION = eql_v3."#>", + LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = text[] +); + +CREATE OPERATOR #>> ( + FUNCTION = eql_v3."#>>", + LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = text[] +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = text +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = integer +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = text[] +); + +CREATE OPERATOR #- ( + FUNCTION = eql_v3."#-", + LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = text[] +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = eql_v3.int8_ord_ore +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = jsonb +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord_ore +); +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/int8/int8_ord_ore_aggregates.sql +--! @brief Aggregates for eql_v3.int8_ord_ore. + +--! @brief State function for min on eql_v3.int8_ord_ore. +--! @param state eql_v3.int8_ord_ore +--! @param value eql_v3.int8_ord_ore +--! @return eql_v3.int8_ord_ore +CREATE FUNCTION eql_v3.min_sfunc(state eql_v3.int8_ord_ore, value eql_v3.int8_ord_ore) +RETURNS eql_v3.int8_ord_ore +LANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE +SET search_path = pg_catalog, extensions, public +AS $$ +BEGIN + IF value < state THEN + RETURN value; + END IF; + RETURN state; +END; +$$; + +--! @brief min aggregate for eql_v3.int8_ord_ore. +--! @param input eql_v3.int8_ord_ore +--! @return eql_v3.int8_ord_ore +CREATE AGGREGATE eql_v3.min(eql_v3.int8_ord_ore) ( + sfunc = eql_v3.min_sfunc, + stype = eql_v3.int8_ord_ore, + combinefunc = eql_v3.min_sfunc, + parallel = safe +); + +--! @brief State function for max on eql_v3.int8_ord_ore. +--! @param state eql_v3.int8_ord_ore +--! @param value eql_v3.int8_ord_ore +--! @return eql_v3.int8_ord_ore +CREATE FUNCTION eql_v3.max_sfunc(state eql_v3.int8_ord_ore, value eql_v3.int8_ord_ore) +RETURNS eql_v3.int8_ord_ore +LANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE +SET search_path = pg_catalog, extensions, public +AS $$ +BEGIN + IF value > state THEN + RETURN value; + END IF; + RETURN state; +END; +$$; + +--! @brief max aggregate for eql_v3.int8_ord_ore. +--! @param input eql_v3.int8_ord_ore +--! @return eql_v3.int8_ord_ore +CREATE AGGREGATE eql_v3.max(eql_v3.int8_ord_ore) ( + sfunc = eql_v3.max_sfunc, + stype = eql_v3.int8_ord_ore, + combinefunc = eql_v3.max_sfunc, + parallel = safe +); +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/int8/int8_ord_aggregates.sql +--! @brief Aggregates for eql_v3.int8_ord. + +--! @brief State function for min on eql_v3.int8_ord. +--! @param state eql_v3.int8_ord +--! @param value eql_v3.int8_ord +--! @return eql_v3.int8_ord +CREATE FUNCTION eql_v3.min_sfunc(state eql_v3.int8_ord, value eql_v3.int8_ord) +RETURNS eql_v3.int8_ord +LANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE +SET search_path = pg_catalog, extensions, public +AS $$ +BEGIN + IF value < state THEN + RETURN value; + END IF; + RETURN state; +END; +$$; + +--! @brief min aggregate for eql_v3.int8_ord. +--! @param input eql_v3.int8_ord +--! @return eql_v3.int8_ord +CREATE AGGREGATE eql_v3.min(eql_v3.int8_ord) ( + sfunc = eql_v3.min_sfunc, + stype = eql_v3.int8_ord, + combinefunc = eql_v3.min_sfunc, + parallel = safe +); + +--! @brief State function for max on eql_v3.int8_ord. +--! @param state eql_v3.int8_ord +--! @param value eql_v3.int8_ord +--! @return eql_v3.int8_ord +CREATE FUNCTION eql_v3.max_sfunc(state eql_v3.int8_ord, value eql_v3.int8_ord) +RETURNS eql_v3.int8_ord +LANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE +SET search_path = pg_catalog, extensions, public +AS $$ +BEGIN + IF value > state THEN + RETURN value; + END IF; + RETURN state; +END; +$$; + +--! @brief max aggregate for eql_v3.int8_ord. +--! @param input eql_v3.int8_ord +--! @return eql_v3.int8_ord +CREATE AGGREGATE eql_v3.max(eql_v3.int8_ord) ( + sfunc = eql_v3.max_sfunc, + stype = eql_v3.int8_ord, + combinefunc = eql_v3.max_sfunc, + parallel = safe +); +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/int8/int8_eq_operators.sql +--! @brief Operators for eql_v3.int8_eq. + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.int8_eq, RIGHTARG = eql_v3.int8_eq, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.int8_eq, RIGHTARG = jsonb, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = jsonb, RIGHTARG = eql_v3.int8_eq, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.int8_eq, RIGHTARG = eql_v3.int8_eq, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.int8_eq, RIGHTARG = jsonb, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = jsonb, RIGHTARG = eql_v3.int8_eq, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.int8_eq, RIGHTARG = eql_v3.int8_eq +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.int8_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = jsonb, RIGHTARG = eql_v3.int8_eq +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.int8_eq, RIGHTARG = eql_v3.int8_eq +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.int8_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = jsonb, RIGHTARG = eql_v3.int8_eq +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.int8_eq, RIGHTARG = eql_v3.int8_eq +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.int8_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = jsonb, RIGHTARG = eql_v3.int8_eq +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.int8_eq, RIGHTARG = eql_v3.int8_eq +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.int8_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = jsonb, RIGHTARG = eql_v3.int8_eq +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.int8_eq, RIGHTARG = eql_v3.int8_eq +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.int8_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = jsonb, RIGHTARG = eql_v3.int8_eq +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.int8_eq, RIGHTARG = eql_v3.int8_eq +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.int8_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = jsonb, RIGHTARG = eql_v3.int8_eq +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.int8_eq, RIGHTARG = text +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.int8_eq, RIGHTARG = integer +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = jsonb, RIGHTARG = eql_v3.int8_eq +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.int8_eq, RIGHTARG = text +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.int8_eq, RIGHTARG = integer +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = jsonb, RIGHTARG = eql_v3.int8_eq +); + +CREATE OPERATOR ? ( + FUNCTION = eql_v3."?", + LEFTARG = eql_v3.int8_eq, RIGHTARG = text +); + +CREATE OPERATOR ?| ( + FUNCTION = eql_v3."?|", + LEFTARG = eql_v3.int8_eq, RIGHTARG = text[] +); + +CREATE OPERATOR ?& ( + FUNCTION = eql_v3."?&", + LEFTARG = eql_v3.int8_eq, RIGHTARG = text[] +); + +CREATE OPERATOR @? ( + FUNCTION = eql_v3."@?", + LEFTARG = eql_v3.int8_eq, RIGHTARG = jsonpath +); + +CREATE OPERATOR @@ ( + FUNCTION = eql_v3."@@", + LEFTARG = eql_v3.int8_eq, RIGHTARG = jsonpath +); + +CREATE OPERATOR #> ( + FUNCTION = eql_v3."#>", + LEFTARG = eql_v3.int8_eq, RIGHTARG = text[] +); + +CREATE OPERATOR #>> ( + FUNCTION = eql_v3."#>>", + LEFTARG = eql_v3.int8_eq, RIGHTARG = text[] +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int8_eq, RIGHTARG = text +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int8_eq, RIGHTARG = integer +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.int8_eq, RIGHTARG = text[] +); + +CREATE OPERATOR #- ( + FUNCTION = eql_v3."#-", + LEFTARG = eql_v3.int8_eq, RIGHTARG = text[] +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.int8_eq, RIGHTARG = eql_v3.int8_eq +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.int8_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = jsonb, RIGHTARG = eql_v3.int8_eq +); +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/text/text_functions.sql +--! @brief Functions for eql_v3.text. + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a eql_v3.text +--! @param b eql_v3.text +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.text, b eql_v3.text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a eql_v3.text +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.eq(a eql_v3.text, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a jsonb +--! @param b eql_v3.text +--! @return boolean +CREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a eql_v3.text +--! @param b eql_v3.text +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.text, b eql_v3.text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a eql_v3.text +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.neq(a eql_v3.text, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a jsonb +--! @param b eql_v3.text +--! @return boolean +CREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a eql_v3.text +--! @param b eql_v3.text +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.text, b eql_v3.text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a eql_v3.text +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lt(a eql_v3.text, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a jsonb +--! @param b eql_v3.text +--! @return boolean +CREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a eql_v3.text +--! @param b eql_v3.text +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.text, b eql_v3.text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a eql_v3.text +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.lte(a eql_v3.text, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a jsonb +--! @param b eql_v3.text +--! @return boolean +CREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a eql_v3.text +--! @param b eql_v3.text +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.text, b eql_v3.text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a eql_v3.text +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gt(a eql_v3.text, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a jsonb +--! @param b eql_v3.text +--! @return boolean +CREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a eql_v3.text +--! @param b eql_v3.text +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.text, b eql_v3.text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a eql_v3.text +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.gte(a eql_v3.text, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a jsonb +--! @param b eql_v3.text +--! @return boolean +CREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a eql_v3.text +--! @param b eql_v3.text +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.text, b eql_v3.text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a eql_v3.text +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contains(a eql_v3.text, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a jsonb +--! @param b eql_v3.text +--! @return boolean +CREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a eql_v3.text +--! @param b eql_v3.text +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.text, b eql_v3.text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a eql_v3.text +--! @param b jsonb +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a eql_v3.text, b jsonb) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a jsonb +--! @param b eql_v3.text +--! @return boolean +CREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a eql_v3.text +--! @param selector text +--! @return eql_v3.text +CREATE FUNCTION eql_v3."->"(a eql_v3.text, selector text) +RETURNS eql_v3.text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a eql_v3.text +--! @param selector integer +--! @return eql_v3.text +CREATE FUNCTION eql_v3."->"(a eql_v3.text, selector integer) +RETURNS eql_v3.text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a jsonb +--! @param selector eql_v3.text +--! @return eql_v3.text +CREATE FUNCTION eql_v3."->"(a jsonb, selector eql_v3.text) +RETURNS eql_v3.text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a eql_v3.text +--! @param selector text +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.text, selector text) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a eql_v3.text +--! @param selector integer +--! @return text +CREATE FUNCTION eql_v3."->>"(a eql_v3.text, selector integer) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a jsonb +--! @param selector eql_v3.text +--! @return text +CREATE FUNCTION eql_v3."->>"(a jsonb, selector eql_v3.text) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a eql_v3.text +--! @param b text +--! @return boolean +CREATE FUNCTION eql_v3."?"(a eql_v3.text, b text) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a eql_v3.text +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?|"(a eql_v3.text, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a eql_v3.text +--! @param b text[] +--! @return boolean +CREATE FUNCTION eql_v3."?&"(a eql_v3.text, b text[]) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a eql_v3.text +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@?"(a eql_v3.text, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a eql_v3.text +--! @param b jsonpath +--! @return boolean +CREATE FUNCTION eql_v3."@@"(a eql_v3.text, b jsonpath) +RETURNS boolean IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a eql_v3.text +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#>"(a eql_v3.text, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a eql_v3.text +--! @param b text[] +--! @return text +CREATE FUNCTION eql_v3."#>>"(a eql_v3.text, b text[]) +RETURNS text IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a eql_v3.text +--! @param b text +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.text, b text) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a eql_v3.text +--! @param b integer +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.text, b integer) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a eql_v3.text +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."-"(a eql_v3.text, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a eql_v3.text +--! @param b text[] +--! @return jsonb +CREATE FUNCTION eql_v3."#-"(a eql_v3.text, b text[]) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a eql_v3.text +--! @param b eql_v3.text +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.text, b eql_v3.text) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a eql_v3.text +--! @param b jsonb +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a eql_v3.text, b jsonb) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; + +--! @brief Unsupported operator blocker for eql_v3.text. +--! @param a jsonb +--! @param b eql_v3.text +--! @return jsonb +CREATE FUNCTION eql_v3."||"(a jsonb, b eql_v3.text) +RETURNS jsonb IMMUTABLE PARALLEL SAFE +AS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.text'; END; $$ +LANGUAGE plpgsql; +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/text/text_match_operators.sql +--! @brief Operators for eql_v3.text_match. + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.text_match, RIGHTARG = eql_v3.text_match +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.text_match, RIGHTARG = jsonb +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = jsonb, RIGHTARG = eql_v3.text_match +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.text_match, RIGHTARG = eql_v3.text_match +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.text_match, RIGHTARG = jsonb +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = jsonb, RIGHTARG = eql_v3.text_match +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.text_match, RIGHTARG = eql_v3.text_match +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.text_match, RIGHTARG = jsonb +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = jsonb, RIGHTARG = eql_v3.text_match +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.text_match, RIGHTARG = eql_v3.text_match +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.text_match, RIGHTARG = jsonb +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = jsonb, RIGHTARG = eql_v3.text_match +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.text_match, RIGHTARG = eql_v3.text_match +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.text_match, RIGHTARG = jsonb +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = jsonb, RIGHTARG = eql_v3.text_match +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.text_match, RIGHTARG = eql_v3.text_match +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.text_match, RIGHTARG = jsonb +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = jsonb, RIGHTARG = eql_v3.text_match +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.text_match, RIGHTARG = eql_v3.text_match, + COMMUTATOR = <@, RESTRICT = contsel, JOIN = contjoinsel +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.text_match, RIGHTARG = jsonb, + COMMUTATOR = <@, RESTRICT = contsel, JOIN = contjoinsel +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = jsonb, RIGHTARG = eql_v3.text_match, + COMMUTATOR = <@, RESTRICT = contsel, JOIN = contjoinsel +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.text_match, RIGHTARG = eql_v3.text_match, + COMMUTATOR = @>, RESTRICT = contsel, JOIN = contjoinsel +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.text_match, RIGHTARG = jsonb, + COMMUTATOR = @>, RESTRICT = contsel, JOIN = contjoinsel +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = jsonb, RIGHTARG = eql_v3.text_match, + COMMUTATOR = @>, RESTRICT = contsel, JOIN = contjoinsel +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.text_match, RIGHTARG = text +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.text_match, RIGHTARG = integer +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = jsonb, RIGHTARG = eql_v3.text_match +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.text_match, RIGHTARG = text +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.text_match, RIGHTARG = integer +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = jsonb, RIGHTARG = eql_v3.text_match +); + +CREATE OPERATOR ? ( + FUNCTION = eql_v3."?", + LEFTARG = eql_v3.text_match, RIGHTARG = text +); + +CREATE OPERATOR ?| ( + FUNCTION = eql_v3."?|", + LEFTARG = eql_v3.text_match, RIGHTARG = text[] +); + +CREATE OPERATOR ?& ( + FUNCTION = eql_v3."?&", + LEFTARG = eql_v3.text_match, RIGHTARG = text[] +); + +CREATE OPERATOR @? ( + FUNCTION = eql_v3."@?", + LEFTARG = eql_v3.text_match, RIGHTARG = jsonpath +); + +CREATE OPERATOR @@ ( + FUNCTION = eql_v3."@@", + LEFTARG = eql_v3.text_match, RIGHTARG = jsonpath +); + +CREATE OPERATOR #> ( + FUNCTION = eql_v3."#>", + LEFTARG = eql_v3.text_match, RIGHTARG = text[] +); + +CREATE OPERATOR #>> ( + FUNCTION = eql_v3."#>>", + LEFTARG = eql_v3.text_match, RIGHTARG = text[] +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.text_match, RIGHTARG = text +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.text_match, RIGHTARG = integer +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.text_match, RIGHTARG = text[] +); + +CREATE OPERATOR #- ( + FUNCTION = eql_v3."#-", + LEFTARG = eql_v3.text_match, RIGHTARG = text[] +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.text_match, RIGHTARG = eql_v3.text_match +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.text_match, RIGHTARG = jsonb +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = jsonb, RIGHTARG = eql_v3.text_match +); +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/text/text_eq_operators.sql +--! @brief Operators for eql_v3.text_eq. + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.text_eq, RIGHTARG = eql_v3.text_eq, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.text_eq, RIGHTARG = jsonb, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = jsonb, RIGHTARG = eql_v3.text_eq, + COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.text_eq, RIGHTARG = eql_v3.text_eq, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.text_eq, RIGHTARG = jsonb, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = jsonb, RIGHTARG = eql_v3.text_eq, + COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.text_eq, RIGHTARG = eql_v3.text_eq +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.text_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = jsonb, RIGHTARG = eql_v3.text_eq +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.text_eq, RIGHTARG = eql_v3.text_eq +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.text_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = jsonb, RIGHTARG = eql_v3.text_eq +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.text_eq, RIGHTARG = eql_v3.text_eq +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.text_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = jsonb, RIGHTARG = eql_v3.text_eq +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.text_eq, RIGHTARG = eql_v3.text_eq +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.text_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = jsonb, RIGHTARG = eql_v3.text_eq +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.text_eq, RIGHTARG = eql_v3.text_eq +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.text_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = jsonb, RIGHTARG = eql_v3.text_eq +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.text_eq, RIGHTARG = eql_v3.text_eq +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.text_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = jsonb, RIGHTARG = eql_v3.text_eq +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.text_eq, RIGHTARG = text +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.text_eq, RIGHTARG = integer +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = jsonb, RIGHTARG = eql_v3.text_eq +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.text_eq, RIGHTARG = text +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.text_eq, RIGHTARG = integer +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = jsonb, RIGHTARG = eql_v3.text_eq +); + +CREATE OPERATOR ? ( + FUNCTION = eql_v3."?", + LEFTARG = eql_v3.text_eq, RIGHTARG = text +); + +CREATE OPERATOR ?| ( + FUNCTION = eql_v3."?|", + LEFTARG = eql_v3.text_eq, RIGHTARG = text[] +); + +CREATE OPERATOR ?& ( + FUNCTION = eql_v3."?&", + LEFTARG = eql_v3.text_eq, RIGHTARG = text[] +); + +CREATE OPERATOR @? ( + FUNCTION = eql_v3."@?", + LEFTARG = eql_v3.text_eq, RIGHTARG = jsonpath +); + +CREATE OPERATOR @@ ( + FUNCTION = eql_v3."@@", + LEFTARG = eql_v3.text_eq, RIGHTARG = jsonpath +); + +CREATE OPERATOR #> ( + FUNCTION = eql_v3."#>", + LEFTARG = eql_v3.text_eq, RIGHTARG = text[] +); + +CREATE OPERATOR #>> ( + FUNCTION = eql_v3."#>>", + LEFTARG = eql_v3.text_eq, RIGHTARG = text[] +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.text_eq, RIGHTARG = text +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.text_eq, RIGHTARG = integer +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.text_eq, RIGHTARG = text[] +); + +CREATE OPERATOR #- ( + FUNCTION = eql_v3."#-", + LEFTARG = eql_v3.text_eq, RIGHTARG = text[] +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.text_eq, RIGHTARG = eql_v3.text_eq +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.text_eq, RIGHTARG = jsonb +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = jsonb, RIGHTARG = eql_v3.text_eq +); +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/text/text_ord_ore_aggregates.sql +--! @brief Aggregates for eql_v3.text_ord_ore. + +--! @brief State function for min on eql_v3.text_ord_ore. +--! @param state eql_v3.text_ord_ore +--! @param value eql_v3.text_ord_ore +--! @return eql_v3.text_ord_ore +CREATE FUNCTION eql_v3.min_sfunc(state eql_v3.text_ord_ore, value eql_v3.text_ord_ore) +RETURNS eql_v3.text_ord_ore +LANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE +SET search_path = pg_catalog, extensions, public +AS $$ +BEGIN + IF value < state THEN + RETURN value; + END IF; + RETURN state; +END; +$$; + +--! @brief min aggregate for eql_v3.text_ord_ore. +--! @param input eql_v3.text_ord_ore +--! @return eql_v3.text_ord_ore +CREATE AGGREGATE eql_v3.min(eql_v3.text_ord_ore) ( + sfunc = eql_v3.min_sfunc, + stype = eql_v3.text_ord_ore, + combinefunc = eql_v3.min_sfunc, + parallel = safe +); + +--! @brief State function for max on eql_v3.text_ord_ore. +--! @param state eql_v3.text_ord_ore +--! @param value eql_v3.text_ord_ore +--! @return eql_v3.text_ord_ore +CREATE FUNCTION eql_v3.max_sfunc(state eql_v3.text_ord_ore, value eql_v3.text_ord_ore) +RETURNS eql_v3.text_ord_ore +LANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE +SET search_path = pg_catalog, extensions, public +AS $$ +BEGIN + IF value > state THEN + RETURN value; + END IF; + RETURN state; +END; +$$; + +--! @brief max aggregate for eql_v3.text_ord_ore. +--! @param input eql_v3.text_ord_ore +--! @return eql_v3.text_ord_ore +CREATE AGGREGATE eql_v3.max(eql_v3.text_ord_ore) ( + sfunc = eql_v3.max_sfunc, + stype = eql_v3.text_ord_ore, + combinefunc = eql_v3.max_sfunc, + parallel = safe +); +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/text/text_ord_aggregates.sql +--! @brief Aggregates for eql_v3.text_ord. + +--! @brief State function for min on eql_v3.text_ord. +--! @param state eql_v3.text_ord +--! @param value eql_v3.text_ord +--! @return eql_v3.text_ord +CREATE FUNCTION eql_v3.min_sfunc(state eql_v3.text_ord, value eql_v3.text_ord) +RETURNS eql_v3.text_ord +LANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE +SET search_path = pg_catalog, extensions, public +AS $$ +BEGIN + IF value < state THEN + RETURN value; + END IF; + RETURN state; +END; +$$; + +--! @brief min aggregate for eql_v3.text_ord. +--! @param input eql_v3.text_ord +--! @return eql_v3.text_ord +CREATE AGGREGATE eql_v3.min(eql_v3.text_ord) ( + sfunc = eql_v3.min_sfunc, + stype = eql_v3.text_ord, + combinefunc = eql_v3.min_sfunc, + parallel = safe +); + +--! @brief State function for max on eql_v3.text_ord. +--! @param state eql_v3.text_ord +--! @param value eql_v3.text_ord +--! @return eql_v3.text_ord +CREATE FUNCTION eql_v3.max_sfunc(state eql_v3.text_ord, value eql_v3.text_ord) +RETURNS eql_v3.text_ord +LANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE +SET search_path = pg_catalog, extensions, public +AS $$ +BEGIN + IF value > state THEN + RETURN value; + END IF; + RETURN state; +END; +$$; + +--! @brief max aggregate for eql_v3.text_ord. +--! @param input eql_v3.text_ord +--! @return eql_v3.text_ord +CREATE AGGREGATE eql_v3.max(eql_v3.text_ord) ( + sfunc = eql_v3.max_sfunc, + stype = eql_v3.text_ord, + combinefunc = eql_v3.max_sfunc, + parallel = safe +); +-- AUTOMATICALLY GENERATED FILE. + +--! @file encrypted_domain/text/text_operators.sql +--! @brief Operators for eql_v3.text. + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.text, RIGHTARG = eql_v3.text +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = eql_v3.text, RIGHTARG = jsonb +); + +CREATE OPERATOR = ( + FUNCTION = eql_v3.eq, + LEFTARG = jsonb, RIGHTARG = eql_v3.text +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.text, RIGHTARG = eql_v3.text +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = eql_v3.text, RIGHTARG = jsonb +); + +CREATE OPERATOR <> ( + FUNCTION = eql_v3.neq, + LEFTARG = jsonb, RIGHTARG = eql_v3.text +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.text, RIGHTARG = eql_v3.text +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = eql_v3.text, RIGHTARG = jsonb +); + +CREATE OPERATOR < ( + FUNCTION = eql_v3.lt, + LEFTARG = jsonb, RIGHTARG = eql_v3.text +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.text, RIGHTARG = eql_v3.text +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = eql_v3.text, RIGHTARG = jsonb +); + +CREATE OPERATOR <= ( + FUNCTION = eql_v3.lte, + LEFTARG = jsonb, RIGHTARG = eql_v3.text +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.text, RIGHTARG = eql_v3.text +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = eql_v3.text, RIGHTARG = jsonb +); + +CREATE OPERATOR > ( + FUNCTION = eql_v3.gt, + LEFTARG = jsonb, RIGHTARG = eql_v3.text +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.text, RIGHTARG = eql_v3.text +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = eql_v3.text, RIGHTARG = jsonb +); + +CREATE OPERATOR >= ( + FUNCTION = eql_v3.gte, + LEFTARG = jsonb, RIGHTARG = eql_v3.text +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.text, RIGHTARG = eql_v3.text +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = eql_v3.text, RIGHTARG = jsonb +); + +CREATE OPERATOR @> ( + FUNCTION = eql_v3.contains, + LEFTARG = jsonb, RIGHTARG = eql_v3.text +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.text, RIGHTARG = eql_v3.text +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = eql_v3.text, RIGHTARG = jsonb +); + +CREATE OPERATOR <@ ( + FUNCTION = eql_v3.contained_by, + LEFTARG = jsonb, RIGHTARG = eql_v3.text +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.text, RIGHTARG = text +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = eql_v3.text, RIGHTARG = integer +); + +CREATE OPERATOR -> ( + FUNCTION = eql_v3."->", + LEFTARG = jsonb, RIGHTARG = eql_v3.text +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.text, RIGHTARG = text +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = eql_v3.text, RIGHTARG = integer +); + +CREATE OPERATOR ->> ( + FUNCTION = eql_v3."->>", + LEFTARG = jsonb, RIGHTARG = eql_v3.text +); + +CREATE OPERATOR ? ( + FUNCTION = eql_v3."?", + LEFTARG = eql_v3.text, RIGHTARG = text +); + +CREATE OPERATOR ?| ( + FUNCTION = eql_v3."?|", + LEFTARG = eql_v3.text, RIGHTARG = text[] +); + +CREATE OPERATOR ?& ( + FUNCTION = eql_v3."?&", + LEFTARG = eql_v3.text, RIGHTARG = text[] +); + +CREATE OPERATOR @? ( + FUNCTION = eql_v3."@?", + LEFTARG = eql_v3.text, RIGHTARG = jsonpath +); + +CREATE OPERATOR @@ ( + FUNCTION = eql_v3."@@", + LEFTARG = eql_v3.text, RIGHTARG = jsonpath +); + +CREATE OPERATOR #> ( + FUNCTION = eql_v3."#>", + LEFTARG = eql_v3.text, RIGHTARG = text[] +); + +CREATE OPERATOR #>> ( + FUNCTION = eql_v3."#>>", + LEFTARG = eql_v3.text, RIGHTARG = text[] +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.text, RIGHTARG = text +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.text, RIGHTARG = integer +); + +CREATE OPERATOR - ( + FUNCTION = eql_v3."-", + LEFTARG = eql_v3.text, RIGHTARG = text[] +); + +CREATE OPERATOR #- ( + FUNCTION = eql_v3."#-", + LEFTARG = eql_v3.text, RIGHTARG = text[] +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.text, RIGHTARG = eql_v3.text +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = eql_v3.text, RIGHTARG = jsonb +); + +CREATE OPERATOR || ( + FUNCTION = eql_v3."||", + LEFTARG = jsonb, RIGHTARG = eql_v3.text +); + +--! @file v3/sem/ore_block_u64_8_256/operator_class.sql +--! @brief B-tree operator family + default class on eql_v3.ore_block_u64_8_256. +--! +--! Gives the composite type its DEFAULT btree opclass so the recommended +--! functional index \`CREATE INDEX ON t (eql_v3.ord_term(col))\` engages without +--! an explicit opclass annotation (design D4). Excluded from the Supabase build +--! variant by the \`**/*operator_class.sql\` glob. + +--! @brief B-tree operator family for ORE block types +CREATE OPERATOR FAMILY eql_v3.ore_block_u64_8_256_operator_family USING btree; + +--! @brief B-tree operator class for ORE block encrypted values +--! +--! Supports operators: <, <=, =, >=, >. Uses comparison function +--! compare_ore_block_u64_8_256_terms. +CREATE OPERATOR CLASS eql_v3.ore_block_u64_8_256_operator_class DEFAULT FOR TYPE eql_v3.ore_block_u64_8_256 USING btree FAMILY eql_v3.ore_block_u64_8_256_operator_family AS + OPERATOR 1 <, + OPERATOR 2 <=, + OPERATOR 3 =, + OPERATOR 4 >=, + OPERATOR 5 >, + FUNCTION 1 eql_v3.compare_ore_block_u64_8_256_terms(a eql_v3.ore_block_u64_8_256, b eql_v3.ore_block_u64_8_256); +` diff --git a/packages/prisma-next/test/v3/bundle.test.ts b/packages/prisma-next/test/v3/bundle.test.ts new file mode 100644 index 00000000..632614cb --- /dev/null +++ b/packages/prisma-next/test/v3/bundle.test.ts @@ -0,0 +1,29 @@ +import { readFileSync } from 'node:fs' +import { join } from 'node:path' +import { describe, expect, it } from 'vitest' +import { EQL_V3_BUNDLE_SQL, EQL_V3_INSTALL_VERSION } from '../../src/migration/eql-v3-bundle' + +const FIXTURE = join(import.meta.dirname, '../../__tests__/fixtures/cipherstash-encrypt-v3.sql') + +describe('eql v3 bundle', () => { + it('round-trips the fixture byte-for-byte through the vendor escaping', () => { + // pins the vendor-script escaping chain: the embedded string MUST equal the + // source SQL exactly, or a corrupted bundle ships and only fails at e2e. + expect(EQL_V3_BUNDLE_SQL).toBe(readFileSync(FIXTURE, 'utf8')) + }) + + it('embeds a self-contained eql_v3 installer (no non-comment eql_v2 refs)', () => { + expect(EQL_V3_INSTALL_VERSION).toMatch(/^eql-v3-/) + const nonComment = EQL_V3_BUNDLE_SQL.split('\n').filter((l) => !l.trim().startsWith('--')) + expect(nonComment.some((l) => l.includes('eql_v2'))).toBe(false) + }) + + it('defines the four text-scalar domains and the index-term extractors', () => { + const nonComment = EQL_V3_BUNDLE_SQL.split('\n') + .filter((l) => !l.trim().startsWith('--')) + .join('\n') + for (const d of ['eql_v3.text', 'eql_v3.text_eq', 'eql_v3.text_match', 'eql_v3.text_ord']) + expect(nonComment).toContain(d) + for (const fn of ['eq_term', 'ord_term', 'match_term']) expect(nonComment).toContain(fn) + }) +}) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c5a5306a..4fef9ee7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -403,6 +403,9 @@ importers: '@prisma-next/target-postgres': specifier: 0.8.0 version: 0.8.0(typanion@3.14.0) + fast-check: + specifier: ^4.8.0 + version: 4.8.0 pathe: specifier: ^2.0.3 version: 2.0.3 From 8e1a5910c51cddab7b3914894cb92c6daecffed6 Mon Sep 17 00:00:00 2001 From: Toby Hede Date: Wed, 17 Jun 2026 08:32:11 +1000 Subject: [PATCH 02/21] feat(prisma-next): port v3 domain map (+ totality property) --- packages/prisma-next/src/v3/domain-map.ts | 57 +++++++++++++++++++ .../prisma-next/test/v3/domain-map.test.ts | 45 +++++++++++++++ 2 files changed, 102 insertions(+) create mode 100644 packages/prisma-next/src/v3/domain-map.ts create mode 100644 packages/prisma-next/test/v3/domain-map.test.ts diff --git a/packages/prisma-next/src/v3/domain-map.ts b/packages/prisma-next/src/v3/domain-map.ts new file mode 100644 index 00000000..03c2926e --- /dev/null +++ b/packages/prisma-next/src/v3/domain-map.ts @@ -0,0 +1,57 @@ +// Ported from packages/drizzle/src/pg/v3/domain-map.ts. +// +// The (scalar, index) → eql_v3 domain SSOT. v3 is domain-based: each column is +// exactly one Postgres DOMAIN (`eql_v3.text_eq` / `text_match` / `text_ord`), +// chosen by its single index capability; the bare storage domain `eql_v3.text` +// is the base type the per-index domains narrow from. + +// CastAs is the internal Protect cast-name. @cipherstash/schema is not a direct +// dependency and @cipherstash/stack does not re-export the CastAs *type* from +// its top-level entry, so we alias it locally to the only value this milestone +// uses. This mirrors derive-schemas.ts, which keeps its own local `DataType`. +// TODO(v3-scalars): replace with the real CastAs re-export when scalar #2 lands. +type CastAs = 'string' + +/** v3 scalar names (column-facing API). NOT the same as CastAs. */ +export type V3DataType = 'text' + +/** v3 single-capability index choices for the text scalar. */ +export type V3Index = 'equality' | 'freeTextSearch' | 'orderAndRange' + +/** + * Per-scalar capability table. Keyed by scalar so adding int/date/timestamptz is + * a type-shape extension (new key + its valid index subset), not a row append + * that lets invalid (scalar, capability) tuples type-check. + */ +const DOMAINS: Record }> = { + text: { + storage: 'eql_v3.text', + byIndex: { equality: 'eql_v3.text_eq', freeTextSearch: 'eql_v3.text_match', orderAndRange: 'eql_v3.text_ord' }, + }, +} + +/** + * Single source of truth for the v3 domain sql-names, derived from DOMAINS by + * flattening storage + per-index values, so the domain set has exactly one + * definition (no "keep in sync" hazard). + */ +export const ALL_V3_DOMAINS: ReadonlySet = new Set( + Object.values(DOMAINS).flatMap((scalar) => [scalar.storage, ...Object.values(scalar.byIndex)]), +) + +const CAST_AS: Record = { text: 'string' } + +export function eqlV3Domain(dataType: V3DataType, index: V3Index | undefined): string { + const scalar = DOMAINS[dataType] + if (!scalar) throw new Error(`Unsupported v3 dataType "${dataType}". Only "text" is supported in this milestone.`) + if (index === undefined) return scalar.storage + const domain = scalar.byIndex[index] + if (!domain) throw new Error(`Unsupported v3 index "${index}" for dataType "${dataType}".`) + return domain +} + +export function v3CastAs(dataType: V3DataType): CastAs { + const castAs = CAST_AS[dataType] + if (!castAs) throw new Error(`Unsupported v3 dataType "${dataType}".`) + return castAs +} diff --git a/packages/prisma-next/test/v3/domain-map.test.ts b/packages/prisma-next/test/v3/domain-map.test.ts new file mode 100644 index 00000000..1375746b --- /dev/null +++ b/packages/prisma-next/test/v3/domain-map.test.ts @@ -0,0 +1,45 @@ +import fc from 'fast-check' +import { describe, expect, it } from 'vitest' +import { ALL_V3_DOMAINS, eqlV3Domain, v3CastAs } from '../../src/v3/domain-map' + +describe('eqlV3Domain', () => { + it('maps the text scalar + index to a domain', () => { + expect(eqlV3Domain('text', undefined)).toBe('eql_v3.text') + expect(eqlV3Domain('text', 'equality')).toBe('eql_v3.text_eq') + expect(eqlV3Domain('text', 'freeTextSearch')).toBe('eql_v3.text_match') + expect(eqlV3Domain('text', 'orderAndRange')).toBe('eql_v3.text_ord') + }) + it('rejects unsupported scalars/indexes', () => { + // @ts-expect-error invalid scalar + expect(() => eqlV3Domain('int', 'equality')).toThrow() + // @ts-expect-error invalid index + expect(() => eqlV3Domain('text', 'nope')).toThrow() + }) +}) + +describe('v3CastAs', () => { + it('translates the text scalar to the protect CastAs', () => { + // 'string' is the only supported cast in this milestone (text scalar only). + expect(v3CastAs('text')).toBe('string') + }) +}) + +describe('ALL_V3_DOMAINS', () => { + it('contains every text domain', () => { + for (const d of ['eql_v3.text', 'eql_v3.text_eq', 'eql_v3.text_match', 'eql_v3.text_ord']) + expect(ALL_V3_DOMAINS.has(d)).toBe(true) + }) +}) + +// Property: eqlV3Domain is total over the declared (scalar, index) space and +// always returns a member of ALL_V3_DOMAINS — catches a future scalar/index +// addition that forgets to register a domain. +describe('eqlV3Domain totality (property)', () => { + it('every valid (text, index|undefined) maps into ALL_V3_DOMAINS', () => { + fc.assert( + fc.property(fc.constantFrom('equality', 'freeTextSearch', 'orderAndRange', undefined), (idx) => { + expect(ALL_V3_DOMAINS.has(eqlV3Domain('text', idx as never))).toBe(true) + }), + ) + }) +}) From dc6e1cb3f376bdbf183ee761cedcf7339f2cca1f Mon Sep 17 00:00:00 2001 From: Toby Hede Date: Wed, 17 Jun 2026 08:32:47 +1000 Subject: [PATCH 03/21] feat(prisma-next): port v3 plain-jsonb wire codec (+ round-trip property) --- packages/prisma-next/src/v3/wire-codec.ts | 22 ++++++++++ .../prisma-next/test/v3/wire-codec.test.ts | 40 +++++++++++++++++++ 2 files changed, 62 insertions(+) create mode 100644 packages/prisma-next/src/v3/wire-codec.ts create mode 100644 packages/prisma-next/test/v3/wire-codec.test.ts diff --git a/packages/prisma-next/src/v3/wire-codec.ts b/packages/prisma-next/src/v3/wire-codec.ts new file mode 100644 index 00000000..190c300d --- /dev/null +++ b/packages/prisma-next/src/v3/wire-codec.ts @@ -0,0 +1,22 @@ +// Ported from packages/drizzle/src/pg/v3/codec.ts. +// +// v3 columns are CREATE DOMAIN … AS jsonb (plain jsonb wire), a DISTINCT wire +// from v2's composite literal `("…")`. + +export function encodeEqlV3Wire(value: unknown): string | null { + // null/undefined bind as SQL NULL (JS null), NOT the JSON 'null' literal: + // the v3 domains CHECK jsonb_typeof(VALUE) = 'object', so JSONB null fails. + if (value === null || value === undefined) return null + return JSON.stringify(value) +} + +// Param widened to `string | object | null | undefined`: the pg driver returns a +// jsonb string OR an already-parsed object, NULL for SQL NULL, and `undefined` +// for an absent column. Return is `unknown` (not drizzle's phantom ): the +// v3 codec immediately wraps the result in EncryptedString.fromInternal, so the +// generic would buy nothing here. +export function decodeEqlV3Wire(value: string | object | null | undefined): unknown { + if (value === null || value === undefined) return value + if (typeof value === 'object') return value + return JSON.parse(value) +} diff --git a/packages/prisma-next/test/v3/wire-codec.test.ts b/packages/prisma-next/test/v3/wire-codec.test.ts new file mode 100644 index 00000000..069021c0 --- /dev/null +++ b/packages/prisma-next/test/v3/wire-codec.test.ts @@ -0,0 +1,40 @@ +import fc from 'fast-check' +import { describe, expect, it } from 'vitest' +import { decodeEqlV3Wire, encodeEqlV3Wire } from '../../src/v3/wire-codec' + +describe('encodeEqlV3Wire', () => { + it('serialises an object payload as plain jsonb text', () => { + expect(encodeEqlV3Wire({ v: 2, i: { t: 'users', c: 'email' }, hm: 'abc' })).toBe( + '{"v":2,"i":{"t":"users","c":"email"},"hm":"abc"}', + ) + }) + it('maps null/undefined to SQL NULL (never the JSON null literal)', () => { + // the v3 domains CHECK jsonb_typeof = 'object'; a JSONB null fails the domain. + expect(encodeEqlV3Wire(null)).toBeNull() + expect(encodeEqlV3Wire(undefined)).toBeNull() + }) +}) + +describe('decodeEqlV3Wire', () => { + it('parses a jsonb string', () => { + expect(decodeEqlV3Wire('{"hm":"abc"}')).toEqual({ hm: 'abc' }) + }) + it('passes through an already-parsed object (postgres auto-parse)', () => { + expect(decodeEqlV3Wire({ hm: 'abc' })).toEqual({ hm: 'abc' }) + }) + it('passes through null/undefined', () => { + expect(decodeEqlV3Wire(null)).toBeNull() + expect(decodeEqlV3Wire(undefined)).toBeUndefined() + }) +}) + +describe('wire round-trip (property)', () => { + it('decode∘encode is identity for arbitrary JSON objects', () => { + fc.assert( + fc.property(fc.dictionary(fc.string(), fc.jsonValue()), (obj) => { + const wire = encodeEqlV3Wire(obj) + expect(decodeEqlV3Wire(wire as string)).toEqual(obj) + }), + ) + }) +}) From 411a5e729ad035fff86508c9ceeb86ec5c6a32b4 Mon Sep 17 00:00:00 2001 From: Toby Hede Date: Wed, 17 Jun 2026 08:36:56 +1000 Subject: [PATCH 04/21] feat(prisma-next): add v3 codec id, traits (+ v2-string-only trait), schema constants --- .../src/extension-metadata/constants.ts | 55 +++++++++++++++++++ .../prisma-next/test/v3/constants.test.ts | 49 +++++++++++++++++ 2 files changed, 104 insertions(+) create mode 100644 packages/prisma-next/test/v3/constants.test.ts diff --git a/packages/prisma-next/src/extension-metadata/constants.ts b/packages/prisma-next/src/extension-metadata/constants.ts index 77fae13f..09d512ff 100644 --- a/packages/prisma-next/src/extension-metadata/constants.ts +++ b/packages/prisma-next/src/extension-metadata/constants.ts @@ -118,6 +118,31 @@ export function isCipherstashCodecId(codecId: string): codecId is CipherstashCod return CIPHERSTASH_CODEC_ID_SET.has(codecId); } +// --- EQL v3 (additive; coexists with v2) ------------------------------------- + +/** Schema CipherStash installs its v3 domains/functions into. */ +export const EQL_V3_SCHEMA = 'eql_v3'; + +/** + * v3 text/String codec id. Distinct from `cipherstash/string@1`: v3 columns are + * `CREATE DOMAIN … AS jsonb` with a per-index domain native type, a plain-jsonb + * wire, and extracted-index-term operator SQL. The per-column index lives in + * `typeParams.index`. Deliberately kept OUT of {@link CIPHERSTASH_CODEC_IDS} / + * {@link CIPHERSTASH_CODEC_ID_SET} so the v2 bulk-encrypt middleware ignores it; + * the v3 middleware filters {@link CIPHERSTASH_V3_CODEC_ID_SET} instead. + */ +export const CIPHERSTASH_STRING_V3_CODEC_ID = 'cipherstash/string-v3@1'; + +/** Closed list/set/union of the v3 codec ids this package owns. */ +export const CIPHERSTASH_V3_CODEC_IDS = [CIPHERSTASH_STRING_V3_CODEC_ID] as const; +export const CIPHERSTASH_V3_CODEC_ID_SET: ReadonlySet = new Set(CIPHERSTASH_V3_CODEC_IDS); +export type CipherstashV3CodecId = (typeof CIPHERSTASH_V3_CODEC_IDS)[number]; + +/** Type-guard form of {@link CIPHERSTASH_V3_CODEC_ID_SET}. */ +export function isCipherstashV3CodecId(codecId: string): codecId is CipherstashV3CodecId { + return CIPHERSTASH_V3_CODEC_ID_SET.has(codecId); +} + /** * Cipherstash-namespaced codec traits. Used as the dispatch key for * the multi-codec predicate operators in `src/execution/operators.ts` @@ -152,6 +177,17 @@ export const CIPHERSTASH_TRAIT_ORDER_AND_RANGE = 'cipherstash:order-and-range' a export const CIPHERSTASH_TRAIT_FREE_TEXT_SEARCH = 'cipherstash:free-text-search' as const; export const CIPHERSTASH_TRAIT_SEARCHABLE_JSON = 'cipherstash:searchable-json' as const; +/** + * Shared string trait — carried by BOTH `cipherstash/string@1` AND + * `cipherstash/string-v3@1`, and ONLY by those two. It gives the legacy + * single-codec `cipherstashEq` / `cipherstashIlike` operators a SINGLE shared + * trait so they attach to both the v2 and v3 string columns (trait dispatch is + * AND over `self.traits`, so a single trait is required) WITHOUT exposing them + * on double/bigint/date/boolean. Rides the same `cipherstash:` namespace and + * the same `as unknown as` cast as the other cipherstash traits below. + */ +export const CIPHERSTASH_TRAIT_STRING = 'cipherstash:string' as const; + /** * Per-codec trait sets keyed by codec id. Each codec descriptor in * `parameterized.ts` / `codec-runtime.ts` / `codec-metadata.ts` reads @@ -167,6 +203,7 @@ type FrameworkCodecTrait = import('@prisma-next/framework-components/codec').Cod const CIPHERSTASH_CODEC_TRAITS_RAW: Readonly> = { [CIPHERSTASH_STRING_CODEC_ID]: [ + CIPHERSTASH_TRAIT_STRING, CIPHERSTASH_TRAIT_EQUALITY, CIPHERSTASH_TRAIT_FREE_TEXT_SEARCH, CIPHERSTASH_TRAIT_ORDER_AND_RANGE, @@ -176,6 +213,17 @@ const CIPHERSTASH_CODEC_TRAITS_RAW: Readonly> [CIPHERSTASH_DATE_CODEC_ID]: [CIPHERSTASH_TRAIT_EQUALITY, CIPHERSTASH_TRAIT_ORDER_AND_RANGE], [CIPHERSTASH_BOOLEAN_CODEC_ID]: [CIPHERSTASH_TRAIT_EQUALITY], [CIPHERSTASH_JSON_CODEC_ID]: [CIPHERSTASH_TRAIT_SEARCHABLE_JSON], + // v3 codec carries the v2 cipherstash traits so the existing single-trait + // operators (eq/ne/gt/.../ilike) attach to it automatically; the v2/v3 SQL + // split is decided inside the operator `impl` by `dialectForCodecId`, NOT by + // a distinct trait. `cipherstash:string` gives the legacy eq/ilike a shared + // single trait across both string versions (round-2 fix 8). + [CIPHERSTASH_STRING_V3_CODEC_ID]: [ + CIPHERSTASH_TRAIT_STRING, + CIPHERSTASH_TRAIT_EQUALITY, + CIPHERSTASH_TRAIT_FREE_TEXT_SEARCH, + CIPHERSTASH_TRAIT_ORDER_AND_RANGE, + ], }; // `CodecDescriptor.traits` is typed `readonly CodecTrait[]` where @@ -232,4 +280,11 @@ export const CIPHERSTASH_BASELINE_MIGRATION_NAME = '20260601T0000_install_eql_bu */ export const CIPHERSTASH_INVARIANTS = { installBundle: 'cipherstash:install-eql-bundle-v1', + installBundleV3: 'cipherstash:install-eql-v3-bundle-v1', } as const; + +/** + * Migration directory name for the v3 baseline (installs the eql_v3 bundle). + * Sorts after the v2 baseline so both install in order. + */ +export const CIPHERSTASH_V3_BASELINE_MIGRATION_NAME = '20260601T0100_install_eql_v3_bundle'; diff --git a/packages/prisma-next/test/v3/constants.test.ts b/packages/prisma-next/test/v3/constants.test.ts new file mode 100644 index 00000000..5d7d76fe --- /dev/null +++ b/packages/prisma-next/test/v3/constants.test.ts @@ -0,0 +1,49 @@ +import { describe, expect, it } from 'vitest' +import { + CIPHERSTASH_CODEC_ID_SET, + CIPHERSTASH_CODEC_TRAITS, + CIPHERSTASH_STRING_CODEC_ID, + CIPHERSTASH_STRING_V3_CODEC_ID, + CIPHERSTASH_TRAIT_EQUALITY, + CIPHERSTASH_TRAIT_FREE_TEXT_SEARCH, + CIPHERSTASH_TRAIT_ORDER_AND_RANGE, + CIPHERSTASH_TRAIT_STRING, + CIPHERSTASH_V3_CODEC_ID_SET, + EQL_V3_SCHEMA, + isCipherstashV3CodecId, +} from '../../src/extension-metadata/constants' + +describe('v3 constants', () => { + it('defines the v3 string codec id and schema', () => { + expect(CIPHERSTASH_STRING_V3_CODEC_ID).toBe('cipherstash/string-v3@1') + expect(EQL_V3_SCHEMA).toBe('eql_v3') + }) + it('keeps v3 ids OUT of the v2 set (so the v2 middleware ignores them)', () => { + expect(CIPHERSTASH_CODEC_ID_SET.has(CIPHERSTASH_STRING_V3_CODEC_ID)).toBe(false) + expect(CIPHERSTASH_V3_CODEC_ID_SET.has(CIPHERSTASH_STRING_V3_CODEC_ID)).toBe(true) + }) + it('guards v3 codec ids', () => { + expect(isCipherstashV3CodecId(CIPHERSTASH_STRING_V3_CODEC_ID)).toBe(true) + expect(isCipherstashV3CodecId(CIPHERSTASH_STRING_CODEC_ID)).toBe(false) + }) + it('defines the shared string trait (for the legacy eq/ilike single-trait dispatch)', () => { + expect(CIPHERSTASH_TRAIT_STRING).toBe('cipherstash:string') + }) + it('carries cipherstash:string on BOTH string codecs, NOT on numeric/bool codecs', () => { + expect(CIPHERSTASH_CODEC_TRAITS[CIPHERSTASH_STRING_CODEC_ID]).toContain(CIPHERSTASH_TRAIT_STRING) + expect(CIPHERSTASH_CODEC_TRAITS[CIPHERSTASH_STRING_V3_CODEC_ID]).toContain(CIPHERSTASH_TRAIT_STRING) + // double/bigint/date/boolean must NOT carry it (preserves v2 eq/ilike string-only visibility) + expect(CIPHERSTASH_CODEC_TRAITS['cipherstash/double@1'] ?? []).not.toContain(CIPHERSTASH_TRAIT_STRING) + }) + it('v3 codec carries the v2 cipherstash traits so existing single-trait operators attach', () => { + const t = CIPHERSTASH_CODEC_TRAITS[CIPHERSTASH_STRING_V3_CODEC_ID] ?? [] + expect(t).toEqual( + expect.arrayContaining([ + CIPHERSTASH_TRAIT_STRING, + CIPHERSTASH_TRAIT_EQUALITY, + CIPHERSTASH_TRAIT_FREE_TEXT_SEARCH, + CIPHERSTASH_TRAIT_ORDER_AND_RANGE, + ]), + ) + }) +}) From 4fe0e1959165019e2af8d5c53f731134b607003b Mon Sep 17 00:00:00 2001 From: Toby Hede Date: Wed, 17 Jun 2026 08:36:56 +1000 Subject: [PATCH 05/21] test(prisma-next): make v3 wire round-trip property JSON-normalisation aware (-0) --- packages/prisma-next/test/v3/wire-codec.test.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/prisma-next/test/v3/wire-codec.test.ts b/packages/prisma-next/test/v3/wire-codec.test.ts index 069021c0..5ebefc8a 100644 --- a/packages/prisma-next/test/v3/wire-codec.test.ts +++ b/packages/prisma-next/test/v3/wire-codec.test.ts @@ -29,11 +29,15 @@ describe('decodeEqlV3Wire', () => { }) describe('wire round-trip (property)', () => { - it('decode∘encode is identity for arbitrary JSON objects', () => { + it('decode∘encode is a faithful JSON round-trip for arbitrary JSON objects', () => { fc.assert( fc.property(fc.dictionary(fc.string(), fc.jsonValue()), (obj) => { const wire = encodeEqlV3Wire(obj) - expect(decodeEqlV3Wire(wire as string)).toEqual(obj) + // JSON cannot represent -0 (it serialises to "0"), so the round-trip is + // identity *up to* JSON normalisation. Compare against the JSON-normalised + // input rather than the raw value — the codec is a faithful JSON + // round-trip, not a structural clone that preserves -0. + expect(decodeEqlV3Wire(wire as string)).toEqual(JSON.parse(JSON.stringify(obj))) }), ) }) From 0ad430f256586101cd54e47f32244edf093117ac Mon Sep 17 00:00:00 2001 From: Toby Hede Date: Wed, 17 Jun 2026 08:37:57 +1000 Subject: [PATCH 06/21] feat(prisma-next): add SQL dialect seam (v2 + v3 templates) --- packages/prisma-next/src/execution/dialect.ts | 57 +++++++++++++++++++ packages/prisma-next/test/v3/dialect.test.ts | 48 ++++++++++++++++ 2 files changed, 105 insertions(+) create mode 100644 packages/prisma-next/src/execution/dialect.ts create mode 100644 packages/prisma-next/test/v3/dialect.test.ts diff --git a/packages/prisma-next/src/execution/dialect.ts b/packages/prisma-next/src/execution/dialect.ts new file mode 100644 index 00000000..aeb1eec3 --- /dev/null +++ b/packages/prisma-next/src/execution/dialect.ts @@ -0,0 +1,57 @@ +import { isCipherstashV3CodecId } from '../extension-metadata/constants' + +export type EqualityOp = 'eq' | 'ne' +export type ComparisonOp = 'gt' | 'gte' | 'lt' | 'lte' +export type MatchOp = 'like' | 'ilike' + +/** + * SQL-dialect seam (mirrors packages/drizzle/src/pg/sql-dialect.ts). The operator + * factories read template strings from here, so v2 and v3 share all lowering + * plumbing and differ only in this object. Templates use the framework's + * {{self}} / {{argN}} placeholders. + */ +export interface SqlDialect { + equality(op: EqualityOp): string + comparison(op: ComparisonOp): string + range(): string + match(op: MatchOp): string + orderBy(): string +} + +export const v2Dialect: SqlDialect = { + equality: (op) => (op === 'eq' ? 'eql_v2.eq({{self}}, {{arg0}})' : 'NOT eql_v2.eq({{self}}, {{arg0}})'), + comparison: (op) => `eql_v2.${op}({{self}}, {{arg0}})`, + range: () => 'eql_v2.gte({{self}}, {{arg0}}) AND eql_v2.lte({{self}}, {{arg1}})', + match: (op) => `eql_v2.${op === 'like' ? 'ilike' : op}({{self}}, {{arg0}})`, + orderBy: () => 'eql_v2.order_by({{self}})', +} + +const ORD_SYMBOL: Record = { gt: '>', gte: '>=', lt: '<', lte: '<=' } + +/** + * v3 emission. v3 queries compare EXTRACTED INDEX TERMS, not encrypted payloads: + * the domains CHECK a full payload {v,i,c,…}, but a search term is index-only, so + * native (domain, jsonb) operators — which coerce the param into the domain — + * fail the CHECK (SQLSTATE 23514). Column-side extractors take the column domain + * (has `c`); jsonb-side helpers pull the index field straight out of the search + * term with no coercion. + * + * Scalar-AGNOSTIC: the column-side extractors are overloaded per domain (Postgres + * resolves by the column's type) and the jsonb-side helpers are shared across + * scalars — so adding scalar #2 is a domain-map row, not a new dialect. + */ +export const v3Dialect: SqlDialect = { + equality: (op) => `eql_v3.eq_term({{self}}) ${op === 'eq' ? '=' : '<>'} eql_v3.hmac_256({{arg0}}::jsonb)`, + comparison: (op) => `eql_v3.ord_term({{self}}) ${ORD_SYMBOL[op]} eql_v3.ore_block_u64_8_256({{arg0}}::jsonb)`, + range: () => + 'eql_v3.ord_term({{self}}) >= eql_v3.ore_block_u64_8_256({{arg0}}::jsonb) AND ' + + 'eql_v3.ord_term({{self}}) <= eql_v3.ore_block_u64_8_256({{arg1}}::jsonb)', + match: () => 'eql_v3.match_term({{self}}) @> eql_v3.bloom_filter({{arg0}}::jsonb)', + orderBy: () => 'eql_v3.ord_term({{self}})', +} + +// Route by codec id: a column's wire/operator family is fixed by its codec id, +// not by which operator is applied. +export function dialectForCodecId(codecId: string): SqlDialect { + return isCipherstashV3CodecId(codecId) ? v3Dialect : v2Dialect +} diff --git a/packages/prisma-next/test/v3/dialect.test.ts b/packages/prisma-next/test/v3/dialect.test.ts new file mode 100644 index 00000000..5f041958 --- /dev/null +++ b/packages/prisma-next/test/v3/dialect.test.ts @@ -0,0 +1,48 @@ +import { describe, expect, it } from 'vitest' +import { dialectForCodecId, v2Dialect, v3Dialect } from '../../src/execution/dialect' +import { + CIPHERSTASH_STRING_CODEC_ID, + CIPHERSTASH_STRING_V3_CODEC_ID, +} from '../../src/extension-metadata/constants' + +describe('v2Dialect (must match current operators.ts templates byte-for-byte)', () => { + it('equality / comparison / range / match / orderBy', () => { + expect(v2Dialect.equality('eq')).toBe('eql_v2.eq({{self}}, {{arg0}})') + expect(v2Dialect.equality('ne')).toBe('NOT eql_v2.eq({{self}}, {{arg0}})') + expect(v2Dialect.comparison('gt')).toBe('eql_v2.gt({{self}}, {{arg0}})') + expect(v2Dialect.comparison('gte')).toBe('eql_v2.gte({{self}}, {{arg0}})') + expect(v2Dialect.comparison('lt')).toBe('eql_v2.lt({{self}}, {{arg0}})') + expect(v2Dialect.comparison('lte')).toBe('eql_v2.lte({{self}}, {{arg0}})') + expect(v2Dialect.range()).toBe('eql_v2.gte({{self}}, {{arg0}}) AND eql_v2.lte({{self}}, {{arg1}})') + expect(v2Dialect.match('like')).toBe('eql_v2.ilike({{self}}, {{arg0}})') + expect(v2Dialect.orderBy()).toBe('eql_v2.order_by({{self}})') + }) +}) + +describe('v3Dialect (extracted-index-term form, mirrors drizzle v3Dialect)', () => { + it('equality', () => { + expect(v3Dialect.equality('eq')).toBe('eql_v3.eq_term({{self}}) = eql_v3.hmac_256({{arg0}}::jsonb)') + expect(v3Dialect.equality('ne')).toBe('eql_v3.eq_term({{self}}) <> eql_v3.hmac_256({{arg0}}::jsonb)') + }) + it('comparison — all four ord symbols distinct (catches gte→> copy-paste)', () => { + expect(v3Dialect.comparison('gt')).toBe('eql_v3.ord_term({{self}}) > eql_v3.ore_block_u64_8_256({{arg0}}::jsonb)') + expect(v3Dialect.comparison('gte')).toBe('eql_v3.ord_term({{self}}) >= eql_v3.ore_block_u64_8_256({{arg0}}::jsonb)') + expect(v3Dialect.comparison('lt')).toBe('eql_v3.ord_term({{self}}) < eql_v3.ore_block_u64_8_256({{arg0}}::jsonb)') + expect(v3Dialect.comparison('lte')).toBe('eql_v3.ord_term({{self}}) <= eql_v3.ore_block_u64_8_256({{arg0}}::jsonb)') + }) + it('range / match / orderBy', () => { + expect(v3Dialect.range()).toBe( + 'eql_v3.ord_term({{self}}) >= eql_v3.ore_block_u64_8_256({{arg0}}::jsonb) AND ' + + 'eql_v3.ord_term({{self}}) <= eql_v3.ore_block_u64_8_256({{arg1}}::jsonb)', + ) + expect(v3Dialect.match('like')).toBe('eql_v3.match_term({{self}}) @> eql_v3.bloom_filter({{arg0}}::jsonb)') + expect(v3Dialect.orderBy()).toBe('eql_v3.ord_term({{self}})') + }) +}) + +describe('dialectForCodecId', () => { + it('routes v2 ids to v2Dialect and v3 ids to v3Dialect', () => { + expect(dialectForCodecId(CIPHERSTASH_STRING_CODEC_ID)).toBe(v2Dialect) + expect(dialectForCodecId(CIPHERSTASH_STRING_V3_CODEC_ID)).toBe(v3Dialect) + }) +}) From 073fb26a407f6dd4d9ace3f148ad6863f817391c Mon Sep 17 00:00:00 2001 From: Toby Hede Date: Wed, 17 Jun 2026 08:39:34 +1000 Subject: [PATCH 07/21] feat(prisma-next): add v3 string param schema + output renderer + descriptor consts --- .../src/execution/parameterized.ts | 21 ++++++++++++++++++ .../prisma-next/test/v3/parameterized.test.ts | 22 +++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 packages/prisma-next/test/v3/parameterized.test.ts diff --git a/packages/prisma-next/src/execution/parameterized.ts b/packages/prisma-next/src/execution/parameterized.ts index 3b7d9386..7b62bcd2 100644 --- a/packages/prisma-next/src/execution/parameterized.ts +++ b/packages/prisma-next/src/execution/parameterized.ts @@ -111,6 +111,14 @@ export const encryptedJsonParamsSchema = arktype({ searchableJson: 'boolean', }); +// v3 params is a SINGLE index choice (one domain per column), NOT the v2 boolean +// flags. Bare arktype value handed directly to the descriptor's paramsSchema +// (matches the encryptedStringParamsSchema idiom). +export const encryptedStringV3ParamsSchema = arktype({ + index: '"equality" | "freeTextSearch" | "orderAndRange"', +}); +export type CipherstashStringV3Params = typeof encryptedStringV3ParamsSchema.infer; + export function renderEncryptedStringOutputType(_params: CipherstashStringParams): string { return 'EncryptedString'; } @@ -135,8 +143,21 @@ export function renderEncryptedJsonOutputType(_params: CipherstashJsonParams): s return 'EncryptedJson'; } +// Returns the TS output-type LABEL (like renderEncryptedStringOutputType), not +// the SQL native type. The SQL domain is emitted per-column by the codec hook's +// expandNativeType (codec-hooks-v3.ts). v3 reuses the EncryptedString envelope. +export function renderEncryptedStringV3OutputType(_params: CipherstashStringV3Params): string { + return 'EncryptedString'; +} + const ENCRYPTED_TARGET_TYPES = ['eql_v2_encrypted'] as const; const ENCRYPTED_META = { db: { sql: { postgres: { nativeType: 'eql_v2_encrypted' } } } } as const; + +// v3 domains the codec binds to. Base meta.nativeType is the storage domain; +// expandNativeType (codec-hooks-v3.ts) narrows it to text_eq/text_match/text_ord +// per column at migration time. +const ENCRYPTED_V3_TARGET_TYPES = ['eql_v3.text', 'eql_v3.text_eq', 'eql_v3.text_match', 'eql_v3.text_ord'] as const; +const ENCRYPTED_V3_META = { db: { sql: { postgres: { nativeType: 'eql_v3.text' } } } } as const; // Per-codec traits live in `CIPHERSTASH_CODEC_TRAITS` and use the // `cipherstash:*` namespace so the cipherstash-namespaced operators // (`cipherstashEq`, `cipherstashGt`, etc.) can register against diff --git a/packages/prisma-next/test/v3/parameterized.test.ts b/packages/prisma-next/test/v3/parameterized.test.ts new file mode 100644 index 00000000..3f064cd7 --- /dev/null +++ b/packages/prisma-next/test/v3/parameterized.test.ts @@ -0,0 +1,22 @@ +import { type } from 'arktype' +import { describe, expect, it } from 'vitest' +import { + encryptedStringV3ParamsSchema, + renderEncryptedStringV3OutputType, +} from '../../src/execution/parameterized' + +describe('encryptedStringV3ParamsSchema (bare arktype value, matches v2 idiom)', () => { + it('accepts a single index choice', () => { + const out = encryptedStringV3ParamsSchema({ index: 'equality' }) + expect(out).toEqual({ index: 'equality' }) + }) + it('rejects an unknown index', () => { + expect(encryptedStringV3ParamsSchema({ index: 'nope' }) instanceof type.errors).toBe(true) + }) +}) + +describe('renderEncryptedStringV3OutputType', () => { + it('returns the TS output type label (NOT the SQL native type)', () => { + expect(renderEncryptedStringV3OutputType({ index: 'equality' })).toBe('EncryptedString') + }) +}) From 26d45ef746e7cc6fc3698ae2e0264319a8f581d1 Mon Sep 17 00:00:00 2001 From: Toby Hede Date: Wed, 17 Jun 2026 08:47:07 +1000 Subject: [PATCH 08/21] feat(prisma-next): add v3 plain-jsonb cell codec + wire v3 parameterized descriptor Parameterize the shared cell-codec factory with optional wire/metadata/middleware options (v2 defaults unchanged), add createCipherstashStringV3Codec, and register the v3 descriptor. Update the descriptor-count pins to include the 7th (v3) codec. --- .../src/execution/cell-codec-factory.ts | 31 ++++++++++--- .../src/execution/codec-runtime.ts | 3 ++ .../prisma-next/src/execution/codec-v3.ts | 42 ++++++++++++++++++ .../src/execution/parameterized.ts | 22 +++++++++- packages/prisma-next/src/v3/wire-codec.ts | 16 ++++--- .../prisma-next/test/codec-runtime.test.ts | 17 +++++--- .../test/runtime-descriptor.test.ts | 20 ++++++--- packages/prisma-next/test/v3/codec-v3.test.ts | 43 +++++++++++++++++++ .../prisma-next/test/v3/helpers/fake-sdk.ts | 25 +++++++++++ 9 files changed, 194 insertions(+), 25 deletions(-) create mode 100644 packages/prisma-next/src/execution/codec-v3.ts create mode 100644 packages/prisma-next/test/v3/codec-v3.test.ts create mode 100644 packages/prisma-next/test/v3/helpers/fake-sdk.ts diff --git a/packages/prisma-next/src/execution/cell-codec-factory.ts b/packages/prisma-next/src/execution/cell-codec-factory.ts index 0396894d..dfee1eb5 100644 --- a/packages/prisma-next/src/execution/cell-codec-factory.ts +++ b/packages/prisma-next/src/execution/cell-codec-factory.ts @@ -101,6 +101,19 @@ export interface CipherstashCellCodecOptions E; + /** + * Wire-format codec. Defaults to the v2 `eql_v2_encrypted` composite literal + * (`encodeEqlV2EncryptedWire` / `decodeEqlV2EncryptedWire`). EQL v3 columns are + * `CREATE DOMAIN … AS jsonb` (plain-jsonb wire), so the v3 codec overrides both. + */ + readonly encodeWire?: (payload: unknown) => unknown; + readonly decodeWire?: (wire: unknown) => unknown; + /** Native DB type(s) for the auxiliary descriptor. Default: `[eql_v2_encrypted]`. */ + readonly targetTypes?: readonly string[]; + /** Postgres `nativeType` for the auxiliary descriptor's meta. Default: `eql_v2_encrypted`. */ + readonly nativeType?: string; + /** Middleware fn name used in the encode-time misconfig diagnostic. Default: `bulkEncryptMiddleware`. */ + readonly middlewareName?: string; } export class CipherstashCellCodec> extends CodecImpl< @@ -112,6 +125,9 @@ export class CipherstashCellCodec> exte readonly sdk: CipherstashSdk | undefined; readonly #fromInternal: CipherstashCellCodecOptions['fromInternal']; readonly #typeName: string; + readonly #encodeWire: (payload: unknown) => unknown; + readonly #decodeWire: (wire: unknown) => unknown; + readonly #middlewareName: string; // One-shot cache so the per-encode WeakSet lookup only runs until the // first time we observe a registered middleware on this codec's SDK. // WeakSet entries are append-only (the registry never un-registers an @@ -128,6 +144,9 @@ export class CipherstashCellCodec> exte this.sdk = sdk; this.#fromInternal = options.fromInternal; this.#typeName = options.typeName; + this.#encodeWire = options.encodeWire ?? encodeEqlV2EncryptedWire; + this.#decodeWire = options.decodeWire ?? decodeEqlV2EncryptedWire; + this.#middlewareName = options.middlewareName ?? 'bulkEncryptMiddleware'; } async encode(value: E, _ctx: SqlCodecCallContext): Promise { @@ -157,12 +176,12 @@ export class CipherstashCellCodec> exte throw runtimeError( 'RUNTIME.ENCODE_FAILED', `cipherstash ${this.descriptor.codecId}: encrypted column value has not been encrypted, ` + - 'and no `bulkEncryptMiddleware(sdk)` has been registered with this SDK. ' + + `and no \`${this.#middlewareName}(sdk)\` has been registered with this SDK. ` + 'Wire it up alongside the extension descriptor:\n\n' + ' postgres({\n' + ' contractJson,\n' + ' extensions: [createCipherstashRuntimeDescriptor({ sdk })],\n' + - ' middleware: [bulkEncryptMiddleware(sdk)],\n' + + ` middleware: [${this.#middlewareName}(sdk)],\n` + ' });\n\n' + 'Both must close over the SAME `sdk` reference. See the @cipherstash/prisma-next README for the full wiring example.', { @@ -176,7 +195,7 @@ export class CipherstashCellCodec> exte } return value; } - return encodeEqlV2EncryptedWire(handle.ciphertext); + return this.#encodeWire(handle.ciphertext); } async decode(wire: unknown, ctx: SqlCodecCallContext): Promise { @@ -208,7 +227,7 @@ export class CipherstashCellCodec> exte ); } return this.#fromInternal({ - ciphertext: decodeEqlV2EncryptedWire(wire), + ciphertext: this.#decodeWire(wire), table: column.table, column: column.name, sdk: this.sdk, @@ -257,9 +276,9 @@ function makeAuxiliaryDescriptor>( return { codecId: options.codecId, traits: CIPHERSTASH_CODEC_TRAITS[options.codecId] ?? [], - targetTypes: CIPHERSTASH_TARGET_TYPES, + targetTypes: options.targetTypes ?? CIPHERSTASH_TARGET_TYPES, meta: { - db: { sql: { postgres: { nativeType: EQL_V2_ENCRYPTED_TYPE } } }, + db: { sql: { postgres: { nativeType: options.nativeType ?? EQL_V2_ENCRYPTED_TYPE } } }, }, paramsSchema: { '~standard': { diff --git a/packages/prisma-next/src/execution/codec-runtime.ts b/packages/prisma-next/src/execution/codec-runtime.ts index 6b89a217..5319674c 100644 --- a/packages/prisma-next/src/execution/codec-runtime.ts +++ b/packages/prisma-next/src/execution/codec-runtime.ts @@ -44,6 +44,9 @@ export { CIPHERSTASH_STRING_CODEC_ID }; /** @deprecated Re-exported for source compatibility; new call sites should use `CipherstashCellCodec`. */ export type CipherstashStringCodec = CipherstashCellCodec; +// EQL v3 plain-jsonb string codec — see ./codec-v3.ts. +export { createCipherstashStringV3Codec } from './codec-v3'; + export function createCipherstashStringCodec( sdk: CipherstashSdk, ): CipherstashCellCodec { diff --git a/packages/prisma-next/src/execution/codec-v3.ts b/packages/prisma-next/src/execution/codec-v3.ts new file mode 100644 index 00000000..4f208e0e --- /dev/null +++ b/packages/prisma-next/src/execution/codec-v3.ts @@ -0,0 +1,42 @@ +/** + * EQL v3 cell codec for the `cipherstash/string-v3@1` codec id. + * + * Reuses the shared {@link makeCipherstashCellCodec} body (encode/decode, + * two-pass write path, middleware-misconfig diagnostic) but overrides the + * wire-format codec and DB metadata for v3: + * + * - **Wire:** plain jsonb (`encodeEqlV3Wire` / `decodeEqlV3Wire`), NOT the v2 + * `eql_v2_encrypted` composite literal — v3 columns are `CREATE DOMAIN … AS + * jsonb`. + * - **Metadata:** its own `targetTypes` (the four `eql_v3.text*` domains) and + * base `nativeType` (`eql_v3.text`). The per-column index domain + * (`text_eq`/`text_match`/`text_ord`) is emitted by the migration hook's + * `expandNativeType` (codec-hooks-v3.ts), not here. + * - **Misconfig diagnostic:** names `bulkEncryptV3Middleware` (the v3 write + * middleware registers against the same sdk-keyed WeakSet as v2). + * + * v3 reuses the {@link EncryptedString} envelope (a stored v3 payload `{v,i,c}` + * is decrypt-compatible with the v2 read path — see decrypt-all-v3.test.ts). + */ + +import { CIPHERSTASH_STRING_V3_CODEC_ID } from '../extension-metadata/constants' +import { encodeEqlV3Wire } from '../v3/wire-codec' +import { decodeEqlV3Wire } from '../v3/wire-codec' +import { type CipherstashCellCodec, makeCipherstashCellCodec } from './cell-codec-factory' +import { EncryptedString } from './envelope-string' +import type { CipherstashSdk } from './sdk' + +const V3_TARGET_TYPES = ['eql_v3.text', 'eql_v3.text_eq', 'eql_v3.text_match', 'eql_v3.text_ord'] as const + +export function createCipherstashStringV3Codec(sdk: CipherstashSdk): CipherstashCellCodec { + return makeCipherstashCellCodec(sdk, { + codecId: CIPHERSTASH_STRING_V3_CODEC_ID, + typeName: 'EncryptedString', + fromInternal: EncryptedString.fromInternal, + encodeWire: encodeEqlV3Wire, + decodeWire: decodeEqlV3Wire, + targetTypes: V3_TARGET_TYPES, + nativeType: 'eql_v3.text', + middlewareName: 'bulkEncryptV3Middleware', + }) +} diff --git a/packages/prisma-next/src/execution/parameterized.ts b/packages/prisma-next/src/execution/parameterized.ts index 7b62bcd2..ac925331 100644 --- a/packages/prisma-next/src/execution/parameterized.ts +++ b/packages/prisma-next/src/execution/parameterized.ts @@ -47,6 +47,7 @@ import { CIPHERSTASH_DOUBLE_CODEC_ID, CIPHERSTASH_JSON_CODEC_ID, CIPHERSTASH_STRING_CODEC_ID, + CIPHERSTASH_STRING_V3_CODEC_ID, } from '../extension-metadata/constants'; import { createCipherstashBigIntCodec, @@ -55,6 +56,7 @@ import { createCipherstashDoubleCodec, createCipherstashJsonCodec, createCipherstashStringCodec, + createCipherstashStringV3Codec, } from './codec-runtime'; import type { CipherstashSdk } from './sdk'; @@ -171,7 +173,8 @@ export type CipherstashAnyParams = | CipherstashNumericParams | CipherstashDateParams | CipherstashBooleanParams - | CipherstashJsonParams; + | CipherstashJsonParams + | CipherstashStringV3Params; export function createParameterizedCodecDescriptors( sdk: CipherstashSdk, @@ -182,6 +185,7 @@ export function createParameterizedCodecDescriptors( const dateCodec = createCipherstashDateCodec(sdk); const booleanCodec = createCipherstashBooleanCodec(sdk); const jsonCodec = createCipherstashJsonCodec(sdk); + const stringV3Codec = createCipherstashStringV3Codec(sdk); const stringDescriptor: RuntimeParameterizedCodecDescriptor = { codecId: CIPHERSTASH_STRING_CODEC_ID, @@ -249,6 +253,21 @@ export function createParameterizedCodecDescriptors( factory: (_params: CipherstashJsonParams) => (_ctx: CodecInstanceContext) => jsonCodec, }; + // EQL v3 string descriptor. Carries its OWN v3 domains as targetTypes/meta + // (NOT eql_v2_encrypted); the per-column index domain is emitted at migration + // time by the codec hook's expandNativeType (codec-hooks-v3.ts). renderOutputType + // returns the TS label 'EncryptedString' (v3 reuses the v2 envelope). + const stringV3Descriptor: RuntimeParameterizedCodecDescriptor = { + codecId: CIPHERSTASH_STRING_V3_CODEC_ID, + traits: CIPHERSTASH_CODEC_TRAITS[CIPHERSTASH_STRING_V3_CODEC_ID] ?? [], + targetTypes: ENCRYPTED_V3_TARGET_TYPES, + meta: ENCRYPTED_V3_META, + paramsSchema: encryptedStringV3ParamsSchema, + isParameterized: true as const, + renderOutputType: renderEncryptedStringV3OutputType, + factory: (_params: CipherstashStringV3Params) => (_ctx: CodecInstanceContext) => stringV3Codec, + }; + return [ stringDescriptor, doubleDescriptor, @@ -256,5 +275,6 @@ export function createParameterizedCodecDescriptors( dateDescriptor, booleanDescriptor, jsonDescriptor, + stringV3Descriptor, ] as ReadonlyArray>; } diff --git a/packages/prisma-next/src/v3/wire-codec.ts b/packages/prisma-next/src/v3/wire-codec.ts index 190c300d..bdb831e0 100644 --- a/packages/prisma-next/src/v3/wire-codec.ts +++ b/packages/prisma-next/src/v3/wire-codec.ts @@ -10,13 +10,15 @@ export function encodeEqlV3Wire(value: unknown): string | null { return JSON.stringify(value) } -// Param widened to `string | object | null | undefined`: the pg driver returns a -// jsonb string OR an already-parsed object, NULL for SQL NULL, and `undefined` -// for an absent column. Return is `unknown` (not drizzle's phantom ): the -// v3 codec immediately wraps the result in EncryptedString.fromInternal, so the -// generic would buy nothing here. -export function decodeEqlV3Wire(value: string | object | null | undefined): unknown { +// Param typed `unknown` to match the codec `decode(wire: unknown)` boundary (like +// the v2 decodeEqlV2EncryptedWire). The pg driver returns a jsonb string OR an +// already-parsed object, NULL for SQL NULL, and `undefined` for an absent column. +// Return is `unknown` (not drizzle's phantom ): the v3 codec immediately +// wraps the result in EncryptedString.fromInternal, so the generic would buy +// nothing here. +export function decodeEqlV3Wire(value: unknown): unknown { if (value === null || value === undefined) return value if (typeof value === 'object') return value - return JSON.parse(value) + if (typeof value === 'string') return JSON.parse(value) + return value } diff --git a/packages/prisma-next/test/codec-runtime.test.ts b/packages/prisma-next/test/codec-runtime.test.ts index 1ccee5d2..a569dd75 100644 --- a/packages/prisma-next/test/codec-runtime.test.ts +++ b/packages/prisma-next/test/codec-runtime.test.ts @@ -42,6 +42,7 @@ import { CIPHERSTASH_DATE_CODEC_ID, CIPHERSTASH_DOUBLE_CODEC_ID, CIPHERSTASH_JSON_CODEC_ID, + CIPHERSTASH_STRING_V3_CODEC_ID, } from '../src/extension-metadata/constants'; function emptySdk(): CipherstashSdk { @@ -230,11 +231,11 @@ describe('eql_v2_encrypted wire-format round-trip — wire-format fix', () => { }); describe('createParameterizedCodecDescriptors', () => { - // Pins the full six-descriptor surface — string + double + - // bigint + date + boolean + json — in stable order. - it('exposes the cipherstash/{string,double,bigint,date,boolean,json}@1 descriptors in stable order', () => { + // Pins the full descriptor surface — string + double + bigint + date + + // boolean + json (v2) + string-v3 — in stable order. + it('exposes the cipherstash/{string,double,bigint,date,boolean,json}@1 + string-v3@1 descriptors in stable order', () => { const descriptors = createParameterizedCodecDescriptors(emptySdk()); - expect(descriptors).toHaveLength(6); + expect(descriptors).toHaveLength(7); expect(descriptors.map((d) => d.codecId)).toEqual([ CIPHERSTASH_STRING_CODEC_ID, CIPHERSTASH_DOUBLE_CODEC_ID, @@ -242,9 +243,15 @@ describe('createParameterizedCodecDescriptors', () => { CIPHERSTASH_DATE_CODEC_ID, CIPHERSTASH_BOOLEAN_CODEC_ID, CIPHERSTASH_JSON_CODEC_ID, + CIPHERSTASH_STRING_V3_CODEC_ID, ]); for (const descriptor of descriptors) { - expect(descriptor.targetTypes).toEqual(['eql_v2_encrypted']); + // v2 codecs target eql_v2_encrypted; the v3 codec carries its own jsonb domains. + if (descriptor.codecId === CIPHERSTASH_STRING_V3_CODEC_ID) { + expect(descriptor.targetTypes).toEqual(['eql_v3.text', 'eql_v3.text_eq', 'eql_v3.text_match', 'eql_v3.text_ord']); + } else { + expect(descriptor.targetTypes).toEqual(['eql_v2_encrypted']); + } // Per-codec `cipherstash:*` traits drive the multi-codec // operator dispatch (see `extension-metadata/constants.ts`); the // framework `'equality'` trait is intentionally absent across diff --git a/packages/prisma-next/test/runtime-descriptor.test.ts b/packages/prisma-next/test/runtime-descriptor.test.ts index 03e063a8..e30344c5 100644 --- a/packages/prisma-next/test/runtime-descriptor.test.ts +++ b/packages/prisma-next/test/runtime-descriptor.test.ts @@ -22,6 +22,7 @@ import { import { CIPHERSTASH_SPACE_ID, CIPHERSTASH_STRING_CODEC_ID, + CIPHERSTASH_STRING_V3_CODEC_ID, } from '../src/extension-metadata/constants'; function emptySdk(): CipherstashSdk { @@ -43,19 +44,20 @@ describe('createCipherstashRuntimeDescriptor — descriptor shape', () => { }); it('exposes the cipherstash codec descriptors under types.codecTypes.codecDescriptors', () => { - // The descriptor wires the full six-codec surface (string + - // double + bigint + date + boolean + json). The current count + - // ordering is pinned here so a missed wiring surfaces in unit - // tests instead of leaking through e2e. + // The descriptor wires the full codec surface (string + double + bigint + + // date + boolean + json (v2) + string-v3). The current count + ordering is + // pinned here so a missed wiring surfaces in unit tests instead of leaking + // through e2e. const descriptor = createCipherstashRuntimeDescriptor({ sdk: emptySdk() }); const codecDescriptors = descriptor.types?.codecTypes?.codecDescriptors ?? []; - expect(codecDescriptors).toHaveLength(6); + expect(codecDescriptors).toHaveLength(7); expect(codecDescriptors[0]?.codecId).toBe(CIPHERSTASH_STRING_CODEC_ID); expect(codecDescriptors[1]?.codecId).toBe('cipherstash/double@1'); expect(codecDescriptors[2]?.codecId).toBe('cipherstash/bigint@1'); expect(codecDescriptors[3]?.codecId).toBe('cipherstash/date@1'); expect(codecDescriptors[4]?.codecId).toBe('cipherstash/boolean@1'); expect(codecDescriptors[5]?.codecId).toBe('cipherstash/json@1'); + expect(codecDescriptors[6]?.codecId).toBe(CIPHERSTASH_STRING_V3_CODEC_ID); }); }); @@ -63,7 +65,7 @@ describe('createCipherstashRuntimeDescriptor — codecs()', () => { it('returns the parameterized codec descriptors in stable order', () => { const descriptor = createCipherstashRuntimeDescriptor({ sdk: emptySdk() }); const codecs = descriptor.codecs?.() ?? []; - expect(codecs).toHaveLength(6); + expect(codecs).toHaveLength(7); expect(codecs.map((c) => c.codecId)).toEqual([ CIPHERSTASH_STRING_CODEC_ID, 'cipherstash/double@1', @@ -71,8 +73,14 @@ describe('createCipherstashRuntimeDescriptor — codecs()', () => { 'cipherstash/date@1', 'cipherstash/boolean@1', 'cipherstash/json@1', + CIPHERSTASH_STRING_V3_CODEC_ID, ]); for (const c of codecs) { + // v2 codecs target eql_v2_encrypted; the v3 codec carries its own jsonb domains. + if (c.codecId === CIPHERSTASH_STRING_V3_CODEC_ID) { + expect(c.targetTypes).toEqual(['eql_v3.text', 'eql_v3.text_eq', 'eql_v3.text_match', 'eql_v3.text_ord']); + continue; + } expect(c.targetTypes).toEqual(['eql_v2_encrypted']); // Per-codec `cipherstash:*` namespaced traits drive the // multi-codec operator dispatch (see diff --git a/packages/prisma-next/test/v3/codec-v3.test.ts b/packages/prisma-next/test/v3/codec-v3.test.ts new file mode 100644 index 00000000..8d194558 --- /dev/null +++ b/packages/prisma-next/test/v3/codec-v3.test.ts @@ -0,0 +1,43 @@ +import { describe, expect, it } from 'vitest' +import { createCipherstashStringV3Codec } from '../../src/execution/codec-v3' +import { EncryptedString } from '../../src/execution/envelope-string' +import { makeFakeSdk } from './helpers/fake-sdk' + +// The real SqlCodecCallContext routing key is `ctx.column = { table, name }` +// (see cell-codec-factory.ts decode body), so the test ctx mirrors that. +const ctx = (table: string, name: string) => ({ column: { table, name } }) as never + +describe('createCipherstashStringV3Codec', () => { + it('decode parses plain-jsonb wire, stamps (table,column), keeps ciphertext', async () => { + const codec = createCipherstashStringV3Codec(makeFakeSdk()) + const env = await codec.decode('{"v":2,"i":{"t":"users","c":"email"},"c":"ct"}', ctx('users', 'email')) + expect(env).toBeInstanceOf(EncryptedString) + const h = (env as EncryptedString).expose() + expect(h.table).toBe('users') + expect(h.column).toBe('email') + expect(h.ciphertext).toEqual({ v: 2, i: { t: 'users', c: 'email' }, c: 'ct' }) + }) + + it('encode passes through an already-replaced wire string unchanged (0.8 primary path)', async () => { + const codec = createCipherstashStringV3Codec(makeFakeSdk()) + const wire = '{"v":2,"i":{"t":"t","c":"c"},"c":"ct"}' + expect(await codec.encode(wire as never, {} as never)).toBe(wire) + }) + + it('encode of an envelope WITH ciphertext returns plain-jsonb (JSON.stringify), not a v2 composite', async () => { + const codec = createCipherstashStringV3Codec(makeFakeSdk()) + const env = EncryptedString.fromInternal({ + ciphertext: { v: 2, i: { t: 't', c: 'c' }, c: 'ct' }, + table: 't', + column: 'c', + sdk: makeFakeSdk(), + }) + expect(await codec.encode(env as never, {} as never)).toBe('{"v":2,"i":{"t":"t","c":"c"},"c":"ct"}') + }) + + it('decode passes a null wire through to a null-bearing envelope (NULL round-trips)', async () => { + const codec = createCipherstashStringV3Codec(makeFakeSdk()) + const env = await codec.decode(null as never, ctx('t', 'c')) + expect((env as EncryptedString).expose().ciphertext ?? null).toBeNull() + }) +}) diff --git a/packages/prisma-next/test/v3/helpers/fake-sdk.ts b/packages/prisma-next/test/v3/helpers/fake-sdk.ts new file mode 100644 index 00000000..b547750b --- /dev/null +++ b/packages/prisma-next/test/v3/helpers/fake-sdk.ts @@ -0,0 +1,25 @@ +import type { CipherstashSdk } from '../../../src/execution/sdk' + +// A v3-aware fake SDK shared by the v3 codec / middleware / decrypt tests. +// `bulkEncryptQuery` joins the real `CipherstashSdk` interface in Task 10; until +// then it is an extra method here, so the literal is cast to `CipherstashSdk`. +export type FakeCipherstashSdk = CipherstashSdk & { + bulkEncryptQuery(args: { + routingKey: { table: string; column: string } + queryType: string + values: ReadonlyArray + signal?: AbortSignal + }): Promise> +} + +export function makeFakeSdk(overrides: Partial = {}): FakeCipherstashSdk { + return { + decrypt: async () => 'plaintext', + // full stored payload (has ciphertext `c`) + bulkEncrypt: async ({ values }) => values.map((_v, i) => ({ v: 2, i: { t: 't', c: 'c' }, c: `ct-${i}` })), + bulkDecrypt: async ({ ciphertexts }) => ciphertexts.map(() => 'plaintext'), + // search term (index-only, NO ciphertext `c`) + bulkEncryptQuery: async ({ values }) => values.map((_v, i) => ({ v: 2, i: { t: 't', c: 'c' }, hm: `hm-${i}` })), + ...overrides, + } as FakeCipherstashSdk +} From c9c75f7e163dd442e25d06bdea4e46632fcf1137 Mon Sep 17 00:00:00 2001 From: Toby Hede Date: Wed, 17 Jun 2026 08:52:09 +1000 Subject: [PATCH 09/21] feat(prisma-next): add encryptedStringV3 column type (TS + PSL) --- .../prisma-next/src/contract-authoring.ts | 25 +++++++++++++ .../prisma-next/src/exports/column-types.ts | 37 +++++++++++++++++++ .../src/extension-metadata/constants.ts | 8 ++++ .../prisma-next/test/v3/authoring-v3.test.ts | 32 ++++++++++++++++ .../prisma-next/test/v3/column-types.test.ts | 18 +++++++++ 5 files changed, 120 insertions(+) create mode 100644 packages/prisma-next/test/v3/authoring-v3.test.ts create mode 100644 packages/prisma-next/test/v3/column-types.test.ts diff --git a/packages/prisma-next/src/contract-authoring.ts b/packages/prisma-next/src/contract-authoring.ts index 4821c56d..98c10d7b 100644 --- a/packages/prisma-next/src/contract-authoring.ts +++ b/packages/prisma-next/src/contract-authoring.ts @@ -31,7 +31,9 @@ import { CIPHERSTASH_DOUBLE_CODEC_ID, CIPHERSTASH_JSON_CODEC_ID, CIPHERSTASH_STRING_CODEC_ID, + CIPHERSTASH_STRING_V3_CODEC_ID, EQL_V2_ENCRYPTED_TYPE, + EQL_V3_TEXT_TYPE, } from './extension-metadata/constants'; export const cipherstashAuthoringTypes = { @@ -196,5 +198,28 @@ export const cipherstashAuthoringTypes = { }, }, }, + // EQL v3 (additive). One required `index` capability per column (no boolean + // flags, no defaults). Lowers to the v3 codec with the base storage domain + // eql_v3.text; the migration hook narrows it per index at DDL time. + EncryptedStringV3: { + kind: 'typeConstructor', + args: [ + { + kind: 'object', + name: 'options', + optional: false, + properties: { + index: { kind: 'string', optional: false }, + }, + }, + ], + output: { + codecId: CIPHERSTASH_STRING_V3_CODEC_ID, + nativeType: EQL_V3_TEXT_TYPE, + typeParams: { + index: { kind: 'arg', index: 0, path: ['index'] }, + }, + }, + }, }, } as const satisfies AuthoringTypeNamespace; diff --git a/packages/prisma-next/src/exports/column-types.ts b/packages/prisma-next/src/exports/column-types.ts index d7bd6a55..5f3f16b0 100644 --- a/packages/prisma-next/src/exports/column-types.ts +++ b/packages/prisma-next/src/exports/column-types.ts @@ -26,8 +26,11 @@ import { CIPHERSTASH_DOUBLE_CODEC_ID, CIPHERSTASH_JSON_CODEC_ID, CIPHERSTASH_STRING_CODEC_ID, + CIPHERSTASH_STRING_V3_CODEC_ID, EQL_V2_ENCRYPTED_TYPE, + EQL_V3_TEXT_TYPE, } from '../extension-metadata/constants'; +import { eqlV3Domain, type V3Index } from '../v3/domain-map'; /** * Search-mode parameters for `encryptedString({...})`. Every flag is @@ -76,6 +79,40 @@ export function encryptedString( }; } +/** + * Options for `encryptedStringV3({ index })`. v3 columns carry exactly ONE index + * capability (one Postgres domain), chosen here. Mirrors drizzle's `eqlV3Type`. + */ +export interface EncryptedStringV3Options { + readonly index: V3Index; +} + +export interface EncryptedStringV3ColumnDescriptor { + readonly codecId: typeof CIPHERSTASH_STRING_V3_CODEC_ID; + readonly nativeType: typeof EQL_V3_TEXT_TYPE; + readonly typeParams: { readonly index: V3Index }; +} + +/** + * `encryptedStringV3({ index })` — TS contract factory for an EQL v3 String + * column. Lowers to the `cipherstash/string-v3@1` codec with the base storage + * domain `eql_v3.text` as nativeType; the per-column index domain + * (`text_eq`/`text_match`/`text_ord`) is emitted at migration time by the codec + * hook's `expandNativeType`. The chosen index lands in `typeParams.index`. + */ +export function encryptedStringV3(options: EncryptedStringV3Options): EncryptedStringV3ColumnDescriptor { + // Validate the index by resolving its domain — eqlV3Domain throws on an unknown + // index (mirrors drizzle's eqlV3Type). The v2 factories run no arktype + // validation here (the framework validates paramsSchema separately), so we + // don't add arktype theatre — the throw-on-resolve is the guard. + eqlV3Domain('text', options.index); + return { + codecId: CIPHERSTASH_STRING_V3_CODEC_ID, + nativeType: EQL_V3_TEXT_TYPE, + typeParams: { index: options.index }, + }; +} + /** * Search-mode parameters for `encryptedDouble({...})` and * `encryptedBigInt({...})`. Both flags are optional and default to diff --git a/packages/prisma-next/src/extension-metadata/constants.ts b/packages/prisma-next/src/extension-metadata/constants.ts index 09d512ff..5186e6f9 100644 --- a/packages/prisma-next/src/extension-metadata/constants.ts +++ b/packages/prisma-next/src/extension-metadata/constants.ts @@ -123,6 +123,14 @@ export function isCipherstashCodecId(codecId: string): codecId is CipherstashCod /** Schema CipherStash installs its v3 domains/functions into. */ export const EQL_V3_SCHEMA = 'eql_v3'; +/** + * Base v3 storage domain (the `CREATE DOMAIN eql_v3.text AS jsonb` type). v3 + * `Encrypted` columns declare this as their nativeType; the migration + * codec hook's `expandNativeType` narrows it to the per-index domain + * (`eql_v3.text_eq` / `text_match` / `text_ord`) at DDL time. + */ +export const EQL_V3_TEXT_TYPE = 'eql_v3.text'; + /** * v3 text/String codec id. Distinct from `cipherstash/string@1`: v3 columns are * `CREATE DOMAIN … AS jsonb` with a per-index domain native type, a plain-jsonb diff --git a/packages/prisma-next/test/v3/authoring-v3.test.ts b/packages/prisma-next/test/v3/authoring-v3.test.ts new file mode 100644 index 00000000..5b957971 --- /dev/null +++ b/packages/prisma-next/test/v3/authoring-v3.test.ts @@ -0,0 +1,32 @@ +import { describe, expect, it } from 'vitest' +import { cipherstashAuthoringTypes } from '../../src/contract-authoring' +import { CIPHERSTASH_STRING_V3_CODEC_ID } from '../../src/extension-metadata/constants' + +describe('cipherstash.EncryptedStringV3 PSL constructor', () => { + const ctor = cipherstashAuthoringTypes.cipherstash.EncryptedStringV3 + + it('is a namespaced type constructor', () => { + expect(ctor.kind).toBe('typeConstructor') + }) + + it('declares a single required object arg with a required string `index` property', () => { + expect(ctor).toMatchObject({ + args: [ + { + kind: 'object', + name: 'options', + optional: false, + properties: { index: { kind: 'string', optional: false } }, + }, + ], + }) + }) + + it('lowers to the v3 codec id + base storage domain, threading index through typeParams', () => { + expect(ctor.output).toMatchObject({ + codecId: CIPHERSTASH_STRING_V3_CODEC_ID, + nativeType: 'eql_v3.text', + typeParams: { index: { kind: 'arg', index: 0, path: ['index'] } }, + }) + }) +}) diff --git a/packages/prisma-next/test/v3/column-types.test.ts b/packages/prisma-next/test/v3/column-types.test.ts new file mode 100644 index 00000000..ee5b9979 --- /dev/null +++ b/packages/prisma-next/test/v3/column-types.test.ts @@ -0,0 +1,18 @@ +import { describe, expect, it } from 'vitest' +import { encryptedStringV3 } from '../../src/exports/column-types' +import { CIPHERSTASH_STRING_V3_CODEC_ID } from '../../src/extension-metadata/constants' + +describe('encryptedStringV3', () => { + it('lowers to the v3 codec id with the chosen index in typeParams', () => { + const d = encryptedStringV3({ index: 'equality' }) + expect(d.codecId).toBe(CIPHERSTASH_STRING_V3_CODEC_ID) + expect(d.typeParams).toEqual({ index: 'equality' }) + }) + it('carries the base storage domain as nativeType (per-column domain emitted by the migration hook)', () => { + expect(encryptedStringV3({ index: 'orderAndRange' }).nativeType).toBe('eql_v3.text') + }) + it('rejects an unknown index', () => { + // @ts-expect-error invalid index + expect(() => encryptedStringV3({ index: 'nope' })).toThrow() + }) +}) From da7a4063c42939581c9b5c22bb3641238acc918f Mon Sep 17 00:00:00 2001 From: Toby Hede Date: Wed, 17 Jun 2026 09:07:54 +1000 Subject: [PATCH 10/21] feat(prisma-next): route v3 columns through v3 dialect + query-term tagging Operator factories now compute the lowering template inside impl via dialectForCodecId(selfCodec.codecId); cipherstashEq/Ilike convert to the shared cipherstash:string trait (attaching to both string codecs); add V3_ENVELOPE_COERCERS, queryTypeForIndex, the index/operator mismatch guard, and setHandleQueryType on the envelope handle. v3 param cast is plain jsonb (meta.nativeType), not the column domain, so search terms don't fail the full-payload domain CHECK. --- .../prisma-next/src/execution/codec-v3.ts | 8 +- .../src/execution/envelope-base.ts | 34 ++++ .../src/execution/envelope-string.ts | 2 + .../prisma-next/src/execution/operators.ts | 173 ++++++++++++------ .../src/execution/parameterized.ts | 7 +- .../test/operator-lowering.test.ts | 8 +- .../test/v3/operators-v2-unchanged.test.ts | 82 +++++++++ .../prisma-next/test/v3/operators-v3.test.ts | 171 +++++++++++++++++ 8 files changed, 428 insertions(+), 57 deletions(-) create mode 100644 packages/prisma-next/test/v3/operators-v2-unchanged.test.ts create mode 100644 packages/prisma-next/test/v3/operators-v3.test.ts diff --git a/packages/prisma-next/src/execution/codec-v3.ts b/packages/prisma-next/src/execution/codec-v3.ts index 4f208e0e..65dbacc5 100644 --- a/packages/prisma-next/src/execution/codec-v3.ts +++ b/packages/prisma-next/src/execution/codec-v3.ts @@ -36,7 +36,13 @@ export function createCipherstashStringV3Codec(sdk: CipherstashSdk): Cipherstash encodeWire: encodeEqlV3Wire, decodeWire: decodeEqlV3Wire, targetTypes: V3_TARGET_TYPES, - nativeType: 'eql_v3.text', + // Param cast type — plain `jsonb`, NOT the column domain. v3 bind params are + // plain-jsonb for BOTH search terms (encryptQuery: an index-only object that + // would FAIL the `eql_v3.text*` full-payload domain CHECK) and storage values + // (bulkEncrypt: a full payload that implicitly casts jsonb→domain on INSERT). + // The per-column DDL domain comes from the migration hook's expandNativeType + // (codec-hooks-v3.ts), not from this runtime param-cast nativeType. + nativeType: 'jsonb', middlewareName: 'bulkEncryptV3Middleware', }) } diff --git a/packages/prisma-next/src/execution/envelope-base.ts b/packages/prisma-next/src/execution/envelope-base.ts index 1d593183..d8e4dfa3 100644 --- a/packages/prisma-next/src/execution/envelope-base.ts +++ b/packages/prisma-next/src/execution/envelope-base.ts @@ -55,6 +55,16 @@ export interface EncryptedEnvelopeHandle { table: string | undefined; column: string | undefined; sdk: CipherstashSdk | undefined; + /** + * v3-only: the protect query-type marker (`equality`/`freeTextSearch`/ + * `orderAndRange`). Stamped ONLY by v3 predicate operators (the search path) + * so `bulkEncryptV3Middleware` routes this param to `encryptQuery` (a search + * term) instead of `bulkEncrypt` (a storage value). v2 never sets it; an + * ABSENT slot means "storage value". Typed `string` (not `V3Index`) so this + * lowest-layer module stays free of a v3 import — see Round-3 §A2. Optional so + * the per-subclass `from`/`fromInternal` factories need not set it. + */ + queryType?: string; } export interface EncryptedEnvelopeFromInternalArgs { @@ -298,6 +308,30 @@ export function setHandleRoutingKey( } } +/** + * v3-only: stamps the protect queryType so `bulkEncryptV3Middleware` routes this + * param to `encryptQuery` (a search term) rather than `bulkEncrypt` (a storage + * value). v2 never sets it; an ABSENT slot means "storage value". Stamped only by + * v3 predicate operators (the search path), never on a write/insert param. Typed + * `string` (not `V3Index`) to keep this base module free of a v3 import; callers + * in v3-aware code pass a `V3Index`, which widens to `string`. Write-once-wins: + * a conflicting re-stamp throws (a reused envelope across query types is a bug). + */ +export function setHandleQueryType(envelope: EncryptedEnvelopeBase, queryType: string): void { + const handle = envelope.expose(); + if (handle.queryType !== undefined && handle.queryType !== queryType) { + throw new Error( + `cipherstash envelope: queryType already set to "${handle.queryType}", refusing to rebind to "${queryType}".`, + ); + } + handle.queryType = queryType; +} + +/** Read the v3 query-type marker (undefined ⇒ storage value). */ +export function readHandleQueryType(envelope: EncryptedEnvelopeBase): string | undefined { + return envelope.expose().queryType; +} + /** * `true` when the handle already carries a usable plaintext (write-side * construction or post-`decrypt` caching). Used by `decryptAll` to skip diff --git a/packages/prisma-next/src/execution/envelope-string.ts b/packages/prisma-next/src/execution/envelope-string.ts index 0929ce26..78c57ee6 100644 --- a/packages/prisma-next/src/execution/envelope-string.ts +++ b/packages/prisma-next/src/execution/envelope-string.ts @@ -72,7 +72,9 @@ export class EncryptedString extends EncryptedEnvelopeBase { export { isHandleDecrypted, + readHandleQueryType, setHandleCiphertext, setHandlePlaintextCache, + setHandleQueryType, setHandleRoutingKey, } from './envelope-base'; diff --git a/packages/prisma-next/src/execution/operators.ts b/packages/prisma-next/src/execution/operators.ts index 33e2e16f..493640b5 100644 --- a/packages/prisma-next/src/execution/operators.ts +++ b/packages/prisma-next/src/execution/operators.ts @@ -86,20 +86,26 @@ import { CIPHERSTASH_DOUBLE_CODEC_ID, CIPHERSTASH_JSON_CODEC_ID, CIPHERSTASH_STRING_CODEC_ID, + CIPHERSTASH_STRING_V3_CODEC_ID, CIPHERSTASH_TRAIT_EQUALITY, CIPHERSTASH_TRAIT_FREE_TEXT_SEARCH, CIPHERSTASH_TRAIT_ORDER_AND_RANGE, CIPHERSTASH_TRAIT_SEARCHABLE_JSON, + CIPHERSTASH_TRAIT_STRING, type CipherstashCodecId, + type CipherstashV3CodecId, isCipherstashCodecId, + isCipherstashV3CodecId, } from '../extension-metadata/constants'; +import type { V3Index } from '../v3/domain-map'; +import { type SqlDialect, dialectForCodecId } from './dialect'; import type { EncryptedEnvelopeBase } from './envelope-base'; import { EncryptedBigInt } from './envelope-bigint'; import { EncryptedBoolean } from './envelope-boolean'; import { EncryptedDate } from './envelope-date'; import { EncryptedDouble } from './envelope-double'; import { EncryptedJson } from './envelope-json'; -import { EncryptedString, setHandleRoutingKey } from './envelope-string'; +import { EncryptedString, setHandleQueryType, setHandleRoutingKey } from './envelope-string'; /** * Codec ID of the framework's Postgres boolean codec. Referenced as a @@ -134,8 +140,29 @@ type PgBoolReturn = { readonly codecId: typeof PG_BOOL_CODEC_ID; readonly nullab * require their search-index `typeParams` (`equality`, * `freeTextSearch`, `orderAndRange`) to be present. */ -function asEncryptedParam(selfAst: AnyExpression, selfCodec: CodecRef, value: unknown): ParamRef { +function asEncryptedParam( + selfAst: AnyExpression, + selfCodec: CodecRef, + value: unknown, + v3?: { readonly queryType: V3Index; readonly publicMethod: string }, +): ParamRef { const envelope = coerceToEnvelope(selfCodec.codecId, value); + // v3 search path: a v3 column is exactly one index domain, so an operator + // whose required query-type does not match the column's index is invalid. + // Reject here for a clear error rather than a downstream domain CHECK / "function + // does not exist" failure. On a match, stamp the queryType so the v3 middleware + // routes this param through encryptQuery (a search term), not bulkEncrypt. + if (v3 !== undefined && isCipherstashV3CodecId(selfCodec.codecId)) { + const columnIndex = readV3ColumnIndex(selfCodec); + if (columnIndex !== v3.queryType) { + throw new TypeError( + `cipherstash ${v3.publicMethod}: this operator needs a "${v3.queryType}" index, but the column's ` + + `index is "${String(columnIndex)}". A v3 column has exactly one index capability — declare the ` + + `column with \`cipherstash.EncryptedStringV3({ index: "${v3.queryType}" })\` to use this operator.`, + ); + } + setHandleQueryType(envelope, queryTypeForIndex(v3.queryType)); + } const columnRef = extractColumnRef(selfAst); if (columnRef !== undefined) { setHandleRoutingKey(envelope, columnRef.table, columnRef.column); @@ -143,6 +170,25 @@ function asEncryptedParam(selfAst: AnyExpression, selfCodec: CodecRef, value: un return ParamRef.of(envelope, { codec: selfCodec }); } +/** + * Centralises the column-index → protect query-type mapping. Identity today + * (V3Index ⊂ the protect `QueryTypeName` union: `equality` | `freeTextSearch` | + * `orderAndRange`); kept as a function so a future divergence has one edit site. + * Pinned against the real protect query-type strings by the Task 10 adapter test. + */ +export function queryTypeForIndex(index: V3Index): string { + return index; +} + +/** Read a v3 column's single index off its CodecRef typeParams (`JsonValue`). */ +function readV3ColumnIndex(selfCodec: CodecRef): unknown { + const params = selfCodec.typeParams; + if (params !== null && typeof params === 'object' && !Array.isArray(params)) { + return (params as { index?: unknown }).index; + } + return undefined; +} + /** * Read the column-bound {@link CodecRef} off the `self` expression. * Cipherstash predicate operators are reachable only via the ORM's @@ -214,7 +260,22 @@ const ENVELOPE_COERCERS: Readonly> = }, }; +// Parallel coercer table for the v3 codec ids. Kept SEPARATE from +// ENVELOPE_COERCERS (a `Record` whose exhaustiveness guard +// over the v2 union must not be widened). v3 string reuses the EncryptedString +// envelope, so the body matches the v2 string coercer. +const V3_ENVELOPE_COERCERS: Readonly> = { + [CIPHERSTASH_STRING_V3_CODEC_ID]: (value) => { + if (value instanceof EncryptedString) return value; + if (typeof value === 'string') return EncryptedString.from(value); + throw envelopeTypeError('EncryptedString', 'string', value); + }, +}; + function coerceToEnvelope(columnCodecId: string, value: unknown): EncryptedEnvelopeBase { + if (isCipherstashV3CodecId(columnCodecId)) { + return V3_ENVELOPE_COERCERS[columnCodecId](value); + } if (!isCipherstashCodecId(columnCodecId)) { throw new Error( `cipherstash operator: column codec id "${columnCodecId}" is not a cipherstash codec; ` + @@ -274,19 +335,29 @@ function extractColumnRef(selfAst: AnyExpression): ColumnRef | undefined { * Embedded into the SQL lowering template as `eql_v2.(...)`. */ function eqlOperator(publicMethod: string, eqlFunction: 'eq' | 'ilike'): SqlOperationDescriptor { + // `eq` carries an equality index; `ilike` (free-text containment) carries the + // freeTextSearch index. Used on v3 columns to enforce the index/operator match. + const queryType: V3Index = eqlFunction === 'eq' ? 'equality' : 'freeTextSearch'; return { - self: { codecId: CIPHERSTASH_STRING_CODEC_ID }, + // Single-trait dispatch on `cipherstash:string` (carried by BOTH string + // codecs and ONLY those two) preserves v2 string-only visibility while + // attaching to v3 string columns too. The v2/v3 SQL split happens below via + // dialectForCodecId. See ADR 214 + round-2 fix 9 (this changed the pinned + // `self` shape in operator-lowering.test.ts from `{codecId}` to `{traits}`). + self: { traits: [CIPHERSTASH_TRAIT_STRING] as unknown as readonly CodecTrait[] }, impl: (self: Expression, value: unknown): Expression => { const selfCodec = requireSelfCodec(self, publicMethod); const selfAst = toExpr(self, selfCodec); + const dialect = dialectForCodecId(selfCodec.codecId); + const template = eqlFunction === 'eq' ? dialect.equality('eq') : dialect.match('like'); return buildOperation({ method: publicMethod, - args: [selfAst, asEncryptedParam(selfAst, selfCodec, value)], + args: [selfAst, asEncryptedParam(selfAst, selfCodec, value, { queryType, publicMethod })], returns: { codecId: PG_BOOL_CODEC_ID, nullable: false }, lowering: { targetFamily: 'sql', strategy: 'function', - template: `eql_v2.${eqlFunction}({{self}}, {{arg0}})`, + template, }, }); }, @@ -324,16 +395,19 @@ function envelopeOperator( publicMethod: string, trait: string, arity: number, - template: string, + buildTemplate: (dialect: SqlDialect) => string, + queryType: V3Index, ): SqlOperationDescriptor { return { // Cipherstash trait identifiers (`cipherstash:equality`, ...) // intentionally live outside the framework`s closed `CodecTrait` // union; the runtime dispatcher widens to `readonly string[]` - // before matching, so the namespace round-trips unchanged. See + // before matching, so the namespace round-trips unchanged + // (`cipherstash:string` now shares this namespace too). See // `extension-metadata/constants.ts:CIPHERSTASH_CODEC_TRAITS` for // the full rationale; AGENTS.md requires the rationale comment - // alongside any `as unknown as` cast. + // alongside any `as unknown as` cast. The template is computed inside + // `impl` from the column's dialect (v2 vs v3) — same trait, two emissions. self: { traits: [trait] as unknown as readonly CodecTrait[] }, impl: (self: Expression, ...userArgs: unknown[]): Expression => { if (userArgs.length !== arity) { @@ -343,7 +417,9 @@ function envelopeOperator( } const selfCodec = requireSelfCodec(self, publicMethod); const selfAst = toExpr(self, selfCodec); - const argRefs = userArgs.map((value) => asEncryptedParam(selfAst, selfCodec, value)); + const argRefs = userArgs.map((value) => + asEncryptedParam(selfAst, selfCodec, value, { queryType, publicMethod }), + ); return buildOperation({ method: publicMethod, args: [selfAst, ...argRefs], @@ -351,7 +427,7 @@ function envelopeOperator( lowering: { targetFamily: 'sql', strategy: 'function', - template, + template: buildTemplate(dialectForCodecId(selfCodec.codecId)), }, }); }, @@ -385,7 +461,8 @@ function envelopeOperator( function variableArityEnvelopeOperator( publicMethod: string, trait: string, - buildTemplate: (arity: number) => string, + buildTemplate: (dialect: SqlDialect, arity: number) => string, + queryType: V3Index, ): SqlOperationDescriptor { return { // See `envelopeOperator` for the cast rationale. @@ -407,7 +484,9 @@ function variableArityEnvelopeOperator( } const selfCodec = requireSelfCodec(self, publicMethod); const selfAst = toExpr(self, selfCodec); - const argRefs = values.map((value) => asEncryptedParam(selfAst, selfCodec, value)); + const argRefs = values.map((value) => + asEncryptedParam(selfAst, selfCodec, value, { queryType, publicMethod }), + ); return buildOperation({ method: publicMethod, args: [selfAst, ...argRefs], @@ -415,7 +494,7 @@ function variableArityEnvelopeOperator( lowering: { targetFamily: 'sql', strategy: 'function', - template: buildTemplate(values.length), + template: buildTemplate(dialectForCodecId(selfCodec.codecId), values.length), }, }); }, @@ -423,21 +502,25 @@ function variableArityEnvelopeOperator( } /** - * Build the OR-of-equalities lowering template for an `n`-element - * array: `(eql_v2.eq({{self}}, {{arg0}}) OR eql_v2.eq({{self}}, {{arg1}}) OR ...)`. - * The single-element form collapses to one `eql_v2.eq` call with - * outer parentheses retained for shape stability. + * Build the OR-of-equalities lowering template for an `n`-element array: + * `(eql_v2.eq({{self}}, {{arg0}}) OR eql_v2.eq({{self}}, {{arg1}}) OR ...)` for v2, + * or `(eql_v3.eq_term({{self}}) = eql_v3.hmac_256({{arg0}}::jsonb) OR ...)` for v3. + * The single-element form collapses to one equality call with outer parentheses + * retained for shape stability. The per-element template is the dialect's + * `equality('eq')` with its `{{arg0}}` placeholder renumbered per element — the + * `SqlDialect` interface models single-arg equality, not the n-ary OR fan-out. */ -function buildInArrayTemplate(n: number): string { +function buildInArrayTemplate(dialect: SqlDialect, n: number): string { + const base = dialect.equality('eq'); const terms: string[] = []; for (let i = 0; i < n; i++) { - terms.push(`eql_v2.eq({{self}}, {{arg${i}}})`); + terms.push(base.replaceAll('{{arg0}}', `{{arg${i}}}`)); } return `(${terms.join(' OR ')})`; } -function buildNotInArrayTemplate(n: number): string { - return `NOT ${buildInArrayTemplate(n)}`; +function buildNotInArrayTemplate(dialect: SqlDialect, n: number): string { + return `NOT ${buildInArrayTemplate(dialect, n)}`; } /** @@ -533,59 +616,41 @@ export function cipherstashQueryOperations(): SqlOperationDescriptors { 'cipherstashNe', CIPHERSTASH_TRAIT_EQUALITY, 1, - 'NOT eql_v2.eq({{self}}, {{arg0}})', + (d) => d.equality('ne'), + 'equality', ), cipherstashInArray: variableArityEnvelopeOperator( 'cipherstashInArray', CIPHERSTASH_TRAIT_EQUALITY, buildInArrayTemplate, + 'equality', ), cipherstashNotInArray: variableArityEnvelopeOperator( 'cipherstashNotInArray', CIPHERSTASH_TRAIT_EQUALITY, buildNotInArrayTemplate, + 'equality', ), cipherstashNotIlike: envelopeOperator( 'cipherstashNotIlike', CIPHERSTASH_TRAIT_FREE_TEXT_SEARCH, 1, - 'NOT eql_v2.ilike({{self}}, {{arg0}})', - ), - cipherstashGt: envelopeOperator( - 'cipherstashGt', - CIPHERSTASH_TRAIT_ORDER_AND_RANGE, - 1, - 'eql_v2.gt({{self}}, {{arg0}})', - ), - cipherstashGte: envelopeOperator( - 'cipherstashGte', - CIPHERSTASH_TRAIT_ORDER_AND_RANGE, - 1, - 'eql_v2.gte({{self}}, {{arg0}})', - ), - cipherstashLt: envelopeOperator( - 'cipherstashLt', - CIPHERSTASH_TRAIT_ORDER_AND_RANGE, - 1, - 'eql_v2.lt({{self}}, {{arg0}})', - ), - cipherstashLte: envelopeOperator( - 'cipherstashLte', - CIPHERSTASH_TRAIT_ORDER_AND_RANGE, - 1, - 'eql_v2.lte({{self}}, {{arg0}})', - ), - cipherstashBetween: envelopeOperator( - 'cipherstashBetween', - CIPHERSTASH_TRAIT_ORDER_AND_RANGE, - 2, - 'eql_v2.gte({{self}}, {{arg0}}) AND eql_v2.lte({{self}}, {{arg1}})', + // v2: `NOT eql_v2.ilike(...)` (no parens — preserves byte-for-byte). v3: + // `NOT eql_v3.match_term(...) @> ...` (postgres binds `@>` tighter than NOT). + (d) => `NOT ${d.match('like')}`, + 'freeTextSearch', ), + cipherstashGt: envelopeOperator('cipherstashGt', CIPHERSTASH_TRAIT_ORDER_AND_RANGE, 1, (d) => d.comparison('gt'), 'orderAndRange'), + cipherstashGte: envelopeOperator('cipherstashGte', CIPHERSTASH_TRAIT_ORDER_AND_RANGE, 1, (d) => d.comparison('gte'), 'orderAndRange'), + cipherstashLt: envelopeOperator('cipherstashLt', CIPHERSTASH_TRAIT_ORDER_AND_RANGE, 1, (d) => d.comparison('lt'), 'orderAndRange'), + cipherstashLte: envelopeOperator('cipherstashLte', CIPHERSTASH_TRAIT_ORDER_AND_RANGE, 1, (d) => d.comparison('lte'), 'orderAndRange'), + cipherstashBetween: envelopeOperator('cipherstashBetween', CIPHERSTASH_TRAIT_ORDER_AND_RANGE, 2, (d) => d.range(), 'orderAndRange'), cipherstashNotBetween: envelopeOperator( 'cipherstashNotBetween', CIPHERSTASH_TRAIT_ORDER_AND_RANGE, 2, - 'NOT (eql_v2.gte({{self}}, {{arg0}}) AND eql_v2.lte({{self}}, {{arg1}}))', + (d) => `NOT (${d.range()})`, + 'orderAndRange', ), cipherstashJsonbPathExists: jsonbPathExistsOperator(), }; diff --git a/packages/prisma-next/src/execution/parameterized.ts b/packages/prisma-next/src/execution/parameterized.ts index ac925331..e8e56a34 100644 --- a/packages/prisma-next/src/execution/parameterized.ts +++ b/packages/prisma-next/src/execution/parameterized.ts @@ -159,7 +159,12 @@ const ENCRYPTED_META = { db: { sql: { postgres: { nativeType: 'eql_v2_encrypted' // expandNativeType (codec-hooks-v3.ts) narrows it to text_eq/text_match/text_ord // per column at migration time. const ENCRYPTED_V3_TARGET_TYPES = ['eql_v3.text', 'eql_v3.text_eq', 'eql_v3.text_match', 'eql_v3.text_ord'] as const; -const ENCRYPTED_V3_META = { db: { sql: { postgres: { nativeType: 'eql_v3.text' } } } } as const; +// meta.nativeType is the PARAM cast type (renderTypedParam emits `$N::`), +// NOT the column DDL type. v3 bind params are plain `jsonb` (a search term would +// fail the full-payload `eql_v3.text*` domain CHECK; a storage value casts jsonb→ +// domain implicitly on INSERT). The per-column DDL domain is emitted by the +// migration hook's expandNativeType (codec-hooks-v3.ts). See operators-v3.test.ts. +const ENCRYPTED_V3_META = { db: { sql: { postgres: { nativeType: 'jsonb' } } } } as const; // Per-codec traits live in `CIPHERSTASH_CODEC_TRAITS` and use the // `cipherstash:*` namespace so the cipherstash-namespaced operators // (`cipherstashEq`, `cipherstashGt`, etc.) can register against diff --git a/packages/prisma-next/test/operator-lowering.test.ts b/packages/prisma-next/test/operator-lowering.test.ts index a48ea02a..7e91f4a6 100644 --- a/packages/prisma-next/test/operator-lowering.test.ts +++ b/packages/prisma-next/test/operator-lowering.test.ts @@ -227,8 +227,14 @@ describe('createCipherstashRuntimeDescriptor — queryOperations registration', 'cipherstashNotIlike', 'cipherstashNotInArray', ]); + // cipherstashEq / cipherstashIlike were single-codec (`{ codecId: string@1 }`) + // until EQL v3 (ADR 214 / round-2 fix 9). They now dispatch on the shared + // `cipherstash:string` trait — carried ONLY by `cipherstash/string@1` and + // `cipherstash/string-v3@1` — so they attach to BOTH string versions while + // staying off double/bigint/date/boolean (v2 string-only visibility preserved). + // The emitted SQL is unchanged; only the `self` selector shape changed. for (const method of ['cipherstashEq', 'cipherstashIlike']) { - expect(ops[method]?.self).toEqual({ codecId: CIPHERSTASH_STRING_CODEC_ID }); + expect(ops[method]?.self).toEqual({ traits: ['cipherstash:string'] }); } for (const method of ['cipherstashNe', 'cipherstashInArray', 'cipherstashNotInArray']) { expect(ops[method]?.self).toEqual({ traits: ['cipherstash:equality'] }); diff --git a/packages/prisma-next/test/v3/operators-v2-unchanged.test.ts b/packages/prisma-next/test/v3/operators-v2-unchanged.test.ts new file mode 100644 index 00000000..6ac86e96 --- /dev/null +++ b/packages/prisma-next/test/v3/operators-v2-unchanged.test.ts @@ -0,0 +1,82 @@ +/** + * v2-unchanged regression guard for the EQL v3 work. + * + * The v3 changes reshaped the operator factories (template now computed inside + * `impl` via `dialectForCodecId`) and converted `cipherstashEq`/`cipherstashIlike` + * from single-codec to the `cipherstash:string` trait. This file pins that the v2 + * emission on a `cipherstash/string@1` column is byte-for-byte unchanged AND that + * v2 string-operator visibility is preserved. Complements the family-specific + * operator-lowering-*.test.ts snapshots. + */ +import { describe, expect, it } from 'vitest' +import { + CIPHERSTASH_STRING_CODEC_ID, + CIPHERSTASH_TRAIT_STRING, +} from '../../src/extension-metadata/constants' +import { + callOperator, + columnAccessor, + contract, + getOperator, + makeAdapter, + selectWithWhere, + TABLE, + COLUMN, +} from '../operator-lowering.helpers' + +function lowerV2(method: string, ...args: unknown[]): string { + const predicate = callOperator(getOperator(method), columnAccessor(TABLE, COLUMN, CIPHERSTASH_STRING_CODEC_ID), ...args) + return makeAdapter().lower(selectWithWhere(predicate), { contract }).sql +} + +const WHERE = `SELECT "user"."id" AS "id" FROM "user" WHERE ` + +describe('v2 string-column operator emission is byte-for-byte unchanged', () => { + it('cipherstashEq', () => { + expect(lowerV2('cipherstashEq', 'x')).toBe(`${WHERE}eql_v2.eq("user"."email", $1::eql_v2_encrypted)`) + }) + it('cipherstashNe', () => { + expect(lowerV2('cipherstashNe', 'x')).toBe(`${WHERE}NOT eql_v2.eq("user"."email", $1::eql_v2_encrypted)`) + }) + it('cipherstashIlike', () => { + expect(lowerV2('cipherstashIlike', '%x%')).toBe(`${WHERE}eql_v2.ilike("user"."email", $1::eql_v2_encrypted)`) + }) + it('cipherstashNotIlike', () => { + expect(lowerV2('cipherstashNotIlike', '%x%')).toBe(`${WHERE}NOT eql_v2.ilike("user"."email", $1::eql_v2_encrypted)`) + }) + it('cipherstashGt / Gte / Lt / Lte', () => { + expect(lowerV2('cipherstashGt', 'x')).toBe(`${WHERE}eql_v2.gt("user"."email", $1::eql_v2_encrypted)`) + expect(lowerV2('cipherstashGte', 'x')).toBe(`${WHERE}eql_v2.gte("user"."email", $1::eql_v2_encrypted)`) + expect(lowerV2('cipherstashLt', 'x')).toBe(`${WHERE}eql_v2.lt("user"."email", $1::eql_v2_encrypted)`) + expect(lowerV2('cipherstashLte', 'x')).toBe(`${WHERE}eql_v2.lte("user"."email", $1::eql_v2_encrypted)`) + }) + it('cipherstashBetween / NotBetween', () => { + expect(lowerV2('cipherstashBetween', 'a', 'b')).toBe( + `${WHERE}eql_v2.gte("user"."email", $1::eql_v2_encrypted) AND eql_v2.lte("user"."email", $2::eql_v2_encrypted)`, + ) + expect(lowerV2('cipherstashNotBetween', 'a', 'b')).toBe( + `${WHERE}NOT (eql_v2.gte("user"."email", $1::eql_v2_encrypted) AND eql_v2.lte("user"."email", $2::eql_v2_encrypted))`, + ) + }) + it('cipherstashInArray / NotInArray', () => { + expect(lowerV2('cipherstashInArray', ['a', 'b'])).toBe( + `${WHERE}(eql_v2.eq("user"."email", $1::eql_v2_encrypted) OR eql_v2.eq("user"."email", $2::eql_v2_encrypted))`, + ) + expect(lowerV2('cipherstashNotInArray', ['a', 'b'])).toBe( + `${WHERE}NOT (eql_v2.eq("user"."email", $1::eql_v2_encrypted) OR eql_v2.eq("user"."email", $2::eql_v2_encrypted))`, + ) + }) +}) + +describe('v2 operator registry self-shapes (visibility preserved)', () => { + it('cipherstashEq / cipherstashIlike dispatch on the cipherstash:string trait (both string codecs only)', () => { + expect(getOperator('cipherstashEq').self).toEqual({ traits: [CIPHERSTASH_TRAIT_STRING] }) + expect(getOperator('cipherstashIlike').self).toEqual({ traits: [CIPHERSTASH_TRAIT_STRING] }) + }) + it('trait-based operators keep their single v2 traits', () => { + expect(getOperator('cipherstashNe').self).toEqual({ traits: ['cipherstash:equality'] }) + expect(getOperator('cipherstashGt').self).toEqual({ traits: ['cipherstash:order-and-range'] }) + expect(getOperator('cipherstashNotIlike').self).toEqual({ traits: ['cipherstash:free-text-search'] }) + expect(getOperator('cipherstashJsonbPathExists').self).toEqual({ traits: ['cipherstash:searchable-json'] }) + }) +}) diff --git a/packages/prisma-next/test/v3/operators-v3.test.ts b/packages/prisma-next/test/v3/operators-v3.test.ts new file mode 100644 index 00000000..6ffb2ec1 --- /dev/null +++ b/packages/prisma-next/test/v3/operators-v3.test.ts @@ -0,0 +1,171 @@ +/** + * v3 operator lowering — mirrors the v2 operator-lowering harness but builds the + * `self` as a `cipherstash/string-v3@1` column with `typeParams.index` set, so the + * operator impls select the v3 dialect (extracted-index-term SQL) and the + * index/operator mismatch guard is exercised. + */ +import type { PostgresContract } from '@prisma-next/adapter-postgres/types' +import { emptyCodecLookup } from '@prisma-next/framework-components/codec' +import { validateContract } from '@prisma-next/sql-contract/validate' +import { + type AnyExpression, + ColumnRef, + ProjectionItem, + SelectAst, + TableSource, +} from '@prisma-next/sql-relational-core/ast' +import { describe, expect, it } from 'vitest' +import { readHandleQueryType } from '../../src/execution/envelope-base' +import type { EncryptedEnvelopeBase } from '../../src/execution/envelope-base' +import { cipherstashQueryOperations, queryTypeForIndex } from '../../src/execution/operators' +import { CIPHERSTASH_STRING_V3_CODEC_ID } from '../../src/extension-metadata/constants' +import type { V3Index } from '../../src/v3/domain-map' +import { makeAdapter } from '../operator-lowering.helpers' + +const TABLE = 'user_v3' +const V3_COLUMNS: Record = { email: 'equality', bio: 'freeTextSearch', name: 'orderAndRange' } +const DOMAIN: Record = { + equality: 'eql_v3.text_eq', + freeTextSearch: 'eql_v3.text_match', + orderAndRange: 'eql_v3.text_ord', +} + +const contract = validateContract( + { + target: 'postgres', + targetFamily: 'sql', + profileHash: 'sha256:cipherstash-v3-operator-lowering-test', + roots: {}, + capabilities: {}, + extensionPacks: {}, + meta: {}, + storage: { + storageHash: 'sha256:cipherstash-v3-operator-lowering-test-storage', + tables: { + [TABLE]: { + columns: { + id: { codecId: 'pg/text@1', nativeType: 'text', nullable: false }, + ...Object.fromEntries( + Object.entries(V3_COLUMNS).map(([col, index]) => [ + col, + { + codecId: CIPHERSTASH_STRING_V3_CODEC_ID, + nativeType: DOMAIN[index], + typeParams: { index }, + nullable: true, + }, + ]), + ), + }, + uniques: [], + indexes: [], + foreignKeys: [], + }, + }, + }, + models: {}, + }, + emptyCodecLookup, +) + +const ops = cipherstashQueryOperations() + +// Column accessor whose CodecRef carries the v3 codec id + typeParams.index, so +// the operator's mismatch guard can read the column's single index. +function v3Column(column: string, index: V3Index) { + const ref = ColumnRef.of(TABLE, column) + return { + returnType: { codecId: CIPHERSTASH_STRING_V3_CODEC_ID, nullable: true }, + codec: { codecId: CIPHERSTASH_STRING_V3_CODEC_ID, typeParams: { index } }, + buildAst: () => ref, + } +} + +function predicateAst(method: string, column: string, index: V3Index, ...args: unknown[]): AnyExpression { + const op = ops[method] + if (!op) throw new Error(`no operator ${method}`) + const impl = op.impl as unknown as (...a: unknown[]) => { buildAst(): AnyExpression } + return impl(v3Column(column, index), ...args).buildAst() +} + +function lowerSql(method: string, column: string, index: V3Index, ...args: unknown[]): string { + const ast = SelectAst.from(TableSource.named(TABLE)) + .withProjection([ProjectionItem.of('id', ColumnRef.of(TABLE, 'id'))]) + .withWhere(predicateAst(method, column, index, ...args)) + return makeAdapter().lower(ast, { contract }).sql +} + +describe('v3 operator lowering (cipherstash/string-v3@1)', () => { + it('cipherstashEq on text_eq → eq_term = hmac_256(arg::jsonb)', () => { + const sql = lowerSql('cipherstashEq', 'email', 'equality', 'alice') + expect(sql).toContain('eql_v3.eq_term("user_v3"."email") = eql_v3.hmac_256($1::jsonb') + // crucial: the param must NOT be coerced into the full-payload domain + // (eql_v3.text_eq / eql_v3.text), or a search term fails the domain CHECK. + expect(sql).not.toContain('::eql_v3.text') + }) + + it('cipherstashNe on text_eq → eq_term <> hmac_256', () => { + const sql = lowerSql('cipherstashNe', 'email', 'equality', 'alice') + expect(sql).toContain('eql_v3.eq_term("user_v3"."email") <> eql_v3.hmac_256($1::jsonb') + }) + + it('cipherstashLt on text_ord → ord_term < ore_block', () => { + const sql = lowerSql('cipherstashLt', 'name', 'orderAndRange', 'm') + expect(sql).toContain('eql_v3.ord_term("user_v3"."name") < eql_v3.ore_block_u64_8_256($1::jsonb') + }) + + it('cipherstashIlike on text_match → match_term @> bloom_filter', () => { + const sql = lowerSql('cipherstashIlike', 'bio', 'freeTextSearch', '%dev%') + expect(sql).toContain('eql_v3.match_term("user_v3"."bio") @> eql_v3.bloom_filter($1::jsonb') + }) + + it('cipherstashNotIlike on text_match → NOT (match_term @> bloom_filter)', () => { + const sql = lowerSql('cipherstashNotIlike', 'bio', 'freeTextSearch', '%dev%') + expect(sql).toContain('NOT eql_v3.match_term("user_v3"."bio") @> eql_v3.bloom_filter($1::jsonb') + }) + + it('cipherstashBetween on text_ord → ord_term >= … AND ord_term <= …', () => { + const sql = lowerSql('cipherstashBetween', 'name', 'orderAndRange', 'a', 'z') + expect(sql).toContain('eql_v3.ord_term("user_v3"."name") >= eql_v3.ore_block_u64_8_256($1::jsonb') + expect(sql).toContain('AND eql_v3.ord_term("user_v3"."name") <= eql_v3.ore_block_u64_8_256($2::jsonb') + }) + + it('cipherstashInArray on text_eq → OR of eq_term=hmac_256 per element', () => { + const sql = lowerSql('cipherstashInArray', 'email', 'equality', ['a', 'b']) + expect(sql).toContain( + '(eql_v3.eq_term("user_v3"."email") = eql_v3.hmac_256($1::jsonb::jsonb) OR ' + + 'eql_v3.eq_term("user_v3"."email") = eql_v3.hmac_256($2::jsonb::jsonb))', + ) + }) + + it('rejects index/operator mismatch with a clear TypeError', () => { + // cipherstashGt needs orderAndRange; the email column is text_eq (equality). + expect(() => lowerSql('cipherstashGt', 'email', 'equality', 'x')).toThrow(/orderAndRange/) + // cipherstashIlike needs freeTextSearch; email is text_eq. + expect(() => lowerSql('cipherstashIlike', 'email', 'equality', '%x%')).toThrow(/freeTextSearch/) + }) + + it('stamps the protect queryType on the v3 search-term param', () => { + const node = predicateAst('cipherstashEq', 'email', 'equality', 'alice') as unknown as { + args: ReadonlyArray<{ value: unknown }> + } + const envelope = node.args[0]?.value as EncryptedEnvelopeBase + expect(readHandleQueryType(envelope)).toBe('equality') + }) + + it('stamps orderAndRange on an ord-column search param', () => { + const node = predicateAst('cipherstashLt', 'name', 'orderAndRange', 'm') as unknown as { + args: ReadonlyArray<{ value: unknown }> + } + const envelope = node.args[0]?.value as EncryptedEnvelopeBase + expect(readHandleQueryType(envelope)).toBe('orderAndRange') + }) +}) + +describe('queryTypeForIndex', () => { + it('maps the column index to the protect query type (identity narrowing)', () => { + expect(queryTypeForIndex('equality')).toBe('equality') + expect(queryTypeForIndex('orderAndRange')).toBe('orderAndRange') + expect(queryTypeForIndex('freeTextSearch')).toBe('freeTextSearch') + }) +}) From b014d0cd5c4647548871dcc76f1fe6a002aff0d4 Mon Sep 17 00:00:00 2001 From: Toby Hede Date: Wed, 17 Jun 2026 09:11:38 +1000 Subject: [PATCH 11/21] feat(prisma-next): add bulkEncryptQuery (encryptQuery search terms) to the SDK --- packages/prisma-next/src/execution/sdk.ts | 25 ++++++++++ packages/prisma-next/src/stack/sdk-adapter.ts | 21 ++++++++ .../test/v3/sdk-adapter-query.test.ts | 49 +++++++++++++++++++ 3 files changed, 95 insertions(+) create mode 100644 packages/prisma-next/test/v3/sdk-adapter-query.test.ts diff --git a/packages/prisma-next/src/execution/sdk.ts b/packages/prisma-next/src/execution/sdk.ts index 260fe92b..516f711e 100644 --- a/packages/prisma-next/src/execution/sdk.ts +++ b/packages/prisma-next/src/execution/sdk.ts @@ -61,6 +61,21 @@ export interface CipherstashBulkDecryptArgs { readonly signal?: AbortSignal; } +/** + * EQL v3 search-term batch encrypt. Distinct from `bulkEncrypt`: v3 WHERE clauses + * compare extracted index terms, so a WHERE needle is a SEARCH TERM (index-only, + * NO ciphertext `c`) produced by the stack client's `encryptQuery`, not a stored + * value. The `queryType` selects which index term to extract + * (`equality`/`freeTextSearch`/`orderAndRange`). Used only by + * `bulkEncryptV3Middleware`. + */ +export interface CipherstashBulkEncryptQueryArgs { + readonly routingKey: CipherstashRoutingKey; + readonly queryType: string; + readonly values: ReadonlyArray; + readonly signal?: AbortSignal; +} + /** * The framework-native CipherStash SDK contract consumed by the envelope, * codec, middleware, and `decryptAll` surfaces. Real implementations wrap @@ -71,4 +86,14 @@ export interface CipherstashSdk { decrypt(args: CipherstashSingleDecryptArgs): Promise; bulkEncrypt(args: CipherstashBulkEncryptArgs): Promise>; bulkDecrypt(args: CipherstashBulkDecryptArgs): Promise>; + /** + * EQL v3 search-term batch encrypt (maps to the stack client's + * `encryptQuery(terms: ScalarQueryTerm[])`). Returns the search-term array + * directly — unlike `bulkEncrypt`, the terms are NOT wrapped in `{ data }`. + * + * OPTIONAL: a v2-only SDK (and the many v2 test stubs) need not implement it. + * `bulkEncryptV3Middleware` asserts its presence before routing any v3 search + * param; the real `createCipherstashSdk` adapter always provides it. + */ + bulkEncryptQuery?(args: CipherstashBulkEncryptQueryArgs): Promise>; } diff --git a/packages/prisma-next/src/stack/sdk-adapter.ts b/packages/prisma-next/src/stack/sdk-adapter.ts index 7cf11df3..5bae843d 100644 --- a/packages/prisma-next/src/stack/sdk-adapter.ts +++ b/packages/prisma-next/src/stack/sdk-adapter.ts @@ -33,6 +33,7 @@ import { type EncryptedTable, type EncryptedTableColumn, } from '@cipherstash/stack/schema' +import type { QueryTypeName, ScalarQueryTerm } from '@cipherstash/stack/types' import type { CipherstashRoutingKey, @@ -83,6 +84,26 @@ export function createCipherstashSdk( return unwrap(result, 'bulkEncrypt').map((entry) => entry.data) }, + async bulkEncryptQuery({ values, routingKey, queryType }) { + const { table, column } = lookup(registry, routingKey) + // `column` is always an EncryptedColumn for v3 scalar columns (EncryptedField + // is for nested JSON paths, which v3 String never produces); ScalarQueryTerm + // requires EncryptedColumn specifically. + const terms: ScalarQueryTerm[] = values.map((plaintext) => ({ + value: toJsPlaintext(plaintext), + column: column as EncryptedColumn, + table, + queryType: queryType as QueryTypeName, + // 'eql' → the search term is returned as the bare plain-jsonb Encrypted + // shape (no composite-literal wrapping), which v3's plain-jsonb wire wants. + returnType: 'eql', + })) + const result = await encryptionClient.encryptQuery(terms) + // NO `.data` map here (unlike bulkEncrypt): `encryptQuery` returns the search + // terms directly — a search term IS the result, not wrapped in `{ data }`. + return unwrap(result, 'bulkEncryptQuery') + }, + async bulkDecrypt({ ciphertexts }) { const payload = ciphertexts.map((data, index) => ({ data: ensureEncryptedEnvelope(data, 'bulkDecrypt', index), diff --git a/packages/prisma-next/test/v3/sdk-adapter-query.test.ts b/packages/prisma-next/test/v3/sdk-adapter-query.test.ts new file mode 100644 index 00000000..63dd4a51 --- /dev/null +++ b/packages/prisma-next/test/v3/sdk-adapter-query.test.ts @@ -0,0 +1,49 @@ +/** + * Behaviour pins for `createCipherstashSdk(...).bulkEncryptQuery` — the v3 + * search-term path that maps to the stack client's `encryptQuery`. + */ +import type { EncryptionClient } from '@cipherstash/stack/client' +import { encryptedColumn, encryptedTable } from '@cipherstash/stack/schema' +import { describe, expect, it, vi } from 'vitest' +import { createCipherstashSdk } from '../../src/stack/sdk-adapter' + +describe('CipherstashSdk.bulkEncryptQuery', () => { + it('delegates to encryptQuery with column/table + queryType=eql returnType, returning the term array directly', async () => { + const searchTerm = { v: 2, i: { t: 'users', c: 'email' }, hm: 'h' } + const encryptQuery = vi.fn(async (terms: ReadonlyArray) => ({ + failure: null, + // encryptQuery returns the search terms DIRECTLY (no `{ data }` wrapper per term). + data: terms.map(() => searchTerm), + })) + const client = { encryptQuery } as unknown as EncryptionClient + + const users = encryptedTable('users', { email: encryptedColumn('email').equality() }) + const sdk = createCipherstashSdk(client, [users]) + + const terms = await sdk.bulkEncryptQuery!({ + routingKey: { table: 'users', column: 'email' }, + queryType: 'equality', + values: ['alice'], + }) + + expect(encryptQuery).toHaveBeenCalledOnce() + const passed = encryptQuery.mock.calls[0]![0] as ReadonlyArray> + expect(passed).toHaveLength(1) + expect(passed[0]).toMatchObject({ value: 'alice', queryType: 'equality', returnType: 'eql' }) + // column/table are the resolved typed schema objects, not the routing-key strings. + expect((passed[0]!.column as { columnName?: string }).columnName ?? passed[0]!.column).toBeDefined() + expect(passed[0]!.table).toBe(users) + // returned array is the bare term list — NO `.data` unwrap layer. + expect(terms).toEqual([searchTerm]) + }) + + it("uses the queryType verbatim against the protect query-type union ('equality'|'orderAndRange'|'freeTextSearch')", async () => { + const encryptQuery = vi.fn(async (terms: ReadonlyArray) => ({ failure: null, data: terms.map(() => ({})) })) + const client = { encryptQuery } as unknown as EncryptionClient + const users = encryptedTable('users', { name: encryptedColumn('name').orderAndRange() }) + const sdk = createCipherstashSdk(client, [users]) + await sdk.bulkEncryptQuery!({ routingKey: { table: 'users', column: 'name' }, queryType: 'orderAndRange', values: ['m'] }) + const passed = encryptQuery.mock.calls[0]![0] as ReadonlyArray> + expect(passed[0]!.queryType).toBe('orderAndRange') + }) +}) From 543add3cacfbc5423df0716e3bc540d91e91b3ce Mon Sep 17 00:00:00 2001 From: Toby Hede Date: Wed, 17 Jun 2026 09:17:30 +1000 Subject: [PATCH 12/21] feat(prisma-next): add v3 bulk-encrypt middleware (storage vs query-term split) --- .../src/middleware/bulk-encrypt-v3.ts | 173 +++++++++++++++++ .../src/middleware/bulk-encrypt.ts | 5 +- .../test/v3/bulk-encrypt-v3.test.ts | 181 ++++++++++++++++++ 3 files changed, 358 insertions(+), 1 deletion(-) create mode 100644 packages/prisma-next/src/middleware/bulk-encrypt-v3.ts create mode 100644 packages/prisma-next/test/v3/bulk-encrypt-v3.test.ts diff --git a/packages/prisma-next/src/middleware/bulk-encrypt-v3.ts b/packages/prisma-next/src/middleware/bulk-encrypt-v3.ts new file mode 100644 index 00000000..2c8d5d47 --- /dev/null +++ b/packages/prisma-next/src/middleware/bulk-encrypt-v3.ts @@ -0,0 +1,173 @@ +/** + * EQL v3 bulk-encrypt middleware. + * + * Like {@link bulkEncryptMiddleware} but for `cipherstash/string-v3@1` params, + * with one extra concern: v3 splits the param path by CONTEXT. + * + * - **Storage values** (INSERT/UPDATE writes, no `queryType` marker) → + * `sdk.bulkEncrypt` → a full payload `{v,i,c,…}` → plain-jsonb wire. + * - **Search terms** (WHERE needles, stamped with a `queryType` by the v3 + * operators) → `sdk.bulkEncryptQuery` → an index-only term (NO ciphertext + * `c`) → plain-jsonb wire. + * + * Both encode through {@link encodeEqlV3Wire} (plain jsonb), NOT the v2 + * composite literal. The two middlewares (v2 + v3) coexist over one sdk: each + * filters a DISJOINT codec-id set, so order is irrelevant and each ignores the + * other's params. + */ + +import type { ParamRefHandle, SqlParamRefMutator } from '@prisma-next/sql-relational-core/middleware'; +import type { SqlMiddleware } from '@prisma-next/sql-runtime'; +import { ifDefined } from '@prisma-next/utils/defined'; +import { checkCipherstashAborted, raceCipherstashAbort } from '../execution/abort'; +import { + EncryptedEnvelopeBase, + readHandleQueryType, + setHandleCiphertext, +} from '../execution/envelope-base'; +import { markBulkEncryptMiddlewareRegistered } from '../execution/middleware-registry'; +import { type BulkEncryptTarget, groupByRoutingKey } from '../execution/routing'; +import type { CipherstashSdk } from '../execution/sdk'; +import { encodeEqlV3Wire } from '../v3/wire-codec'; +import { CIPHERSTASH_V3_CODEC_ID_SET } from '../extension-metadata/constants'; +import { stampRoutingKeysFromAst } from './bulk-encrypt'; + +// v3 target = a v2 target plus the optional query-type marker (undefined ⇒ a +// storage value; set ⇒ a search term routed to encryptQuery). +type V3Target = BulkEncryptTarget> & { readonly queryType: string | undefined }; + +export function bulkEncryptV3Middleware(sdk: CipherstashSdk): SqlMiddleware { + // Same sdk-keyed WeakSet as v2 (idempotent if both middlewares share an sdk); + // the v3 codec's encode sentinel consults it to distinguish "middleware will + // fill ciphertext" from a misconfig. + markBulkEncryptMiddlewareRegistered(sdk); + return { + name: 'cipherstash.bulk-encrypt-v3', + familyId: 'sql', + async beforeExecute(plan, ctx, params) { + if (!params) return; + + // Storage writes need the INSERT/UPDATE routing stamp (search params were + // already stamped at lowering time by the v3 operators). + stampRoutingKeysFromAst(plan.ast); + + const { storage, query } = collectV3Targets(params); + if (storage.length === 0 && query.length === 0) return; + + // --- storage values → bulkEncrypt ------------------------------------- + // groupByRoutingKey is generic over TRef and widens its return to + // BulkEncryptTarget (dropping our queryType field); the elements are the + // V3Targets we passed in, so the re-narrow is sound. + for (const [groupKey, group] of groupByRoutingKey(storage) as Map) { + const routingKey = group[0]?.routingKey; + if (!routingKey) continue; + checkCipherstashAborted(ctx.signal, 'bulk-encrypt'); + const results = await raceCipherstashAbort( + sdk.bulkEncrypt({ + routingKey, + values: group.map((t) => t.plaintext), + ...ifDefined('signal', ctx.signal), + }), + ctx.signal, + 'bulk-encrypt', + ); + applyResults(params, group, results, groupKey, 'bulkEncrypt'); + } + + // --- search terms → bulkEncryptQuery ---------------------------------- + for (const [groupKey, group] of groupByRoutingKey(query) as Map) { + const routingKey = group[0]?.routingKey; + const queryType = group[0]?.queryType; + if (!routingKey || queryType === undefined) continue; + if (group.some((t) => t.queryType !== queryType)) { + throw new Error( + `cipherstash bulk-encrypt-v3: routing key ${groupKey} mixes queryTypes ` + + `(${[...new Set(group.map((t) => String(t.queryType)))].join(', ')}); ` + + 'a single (table, column) search group must share one queryType.', + ); + } + if (typeof sdk.bulkEncryptQuery !== 'function') { + throw new Error( + 'cipherstash bulk-encrypt-v3: a v3 search term needs `sdk.bulkEncryptQuery`, but the ' + + 'configured SDK does not implement it. Use `createCipherstashSdk(...)` (the stack adapter), ' + + 'which maps it to the client\'s `encryptQuery`.', + ); + } + checkCipherstashAborted(ctx.signal, 'bulk-encrypt'); + const results = await raceCipherstashAbort( + sdk.bulkEncryptQuery({ + routingKey, + queryType, + values: group.map((t) => t.plaintext), + ...ifDefined('signal', ctx.signal), + }), + ctx.signal, + 'bulk-encrypt', + ); + applyResults(params, group, results, groupKey, 'bulkEncryptQuery'); + } + }, + }; +} + +function applyResults( + params: SqlParamRefMutator, + group: ReadonlyArray, + results: ReadonlyArray, + groupKey: string, + op: string, +): void { + if (results.length !== group.length) { + throw new Error( + `cipherstash bulk-encrypt-v3: ${op} returned ${results.length} results for routing key ${groupKey} ` + + `but ${group.length} were requested.`, + ); + } + params.replaceValues( + group.map((t, i) => { + const result = results[i]; + // Storage values carry a ciphertext we cache back onto the handle; search + // terms have none, but caching the term is harmless and keeps the slot shape + // uniform. The wire is plain jsonb for both. + setHandleCiphertext(t.envelope, result); + return { ref: t.ref, newValue: encodeEqlV3Wire(result) }; + }), + ); +} + +function collectV3Targets(params: SqlParamRefMutator): { + storage: V3Target[]; + query: V3Target[]; +} { + const storage: V3Target[] = []; + const query: V3Target[] = []; + for (const entry of params.entries()) { + if (entry.codecId === undefined || !CIPHERSTASH_V3_CODEC_ID_SET.has(entry.codecId)) continue; + const value = entry.value; + if (!(value instanceof EncryptedEnvelopeBase)) continue; + const handle = value.expose(); + if (handle.plaintext === undefined) { + throw new Error( + 'cipherstash bulk-encrypt-v3: encountered an envelope with no plaintext on the write/search path. ' + + 'Use `EncryptedString.from(plaintext)` to construct envelopes.', + ); + } + if (handle.table === undefined || handle.column === undefined) { + throw new Error( + 'cipherstash bulk-encrypt-v3: envelope reached the bulk-encrypt phase without a (table, column) ' + + 'routing context. Storage writes are stamped from the INSERT/UPDATE AST; search params are stamped ' + + 'by the v3 operators at lowering time.', + ); + } + const target: V3Target = { + ref: entry.ref, + plaintext: handle.plaintext, + envelope: value, + routingKey: { table: handle.table, column: handle.column }, + queryType: readHandleQueryType(value), + }; + if (target.queryType === undefined) storage.push(target); + else query.push(target); + } + return { storage, query }; +} diff --git a/packages/prisma-next/src/middleware/bulk-encrypt.ts b/packages/prisma-next/src/middleware/bulk-encrypt.ts index d8ead0be..23ed1321 100644 --- a/packages/prisma-next/src/middleware/bulk-encrypt.ts +++ b/packages/prisma-next/src/middleware/bulk-encrypt.ts @@ -185,7 +185,10 @@ function collectTargets( return targets; } -function stampRoutingKeysFromAst(ast: AnyQueryAst | undefined): void { +// Exported for reuse by `bulkEncryptV3Middleware` — the v3 storage-write path +// needs the identical INSERT/UPDATE routing stamp (v3 search params are stamped +// at lowering time by the operators, not here). +export function stampRoutingKeysFromAst(ast: AnyQueryAst | undefined): void { if (!ast) return; switch (ast.kind) { case 'insert': diff --git a/packages/prisma-next/test/v3/bulk-encrypt-v3.test.ts b/packages/prisma-next/test/v3/bulk-encrypt-v3.test.ts new file mode 100644 index 00000000..9c1857b3 --- /dev/null +++ b/packages/prisma-next/test/v3/bulk-encrypt-v3.test.ts @@ -0,0 +1,181 @@ +/** + * Drives `bulkEncryptV3Middleware(sdk).beforeExecute(plan, ctx, params)` over a + * hand-built plan + param mutator, asserting the storage-vs-search split. + */ +import type { Contract, PlanMeta } from '@prisma-next/contract/types' +import { + type AnyExpression, + ColumnRef, + InsertAst, + ParamRef, + ProjectionItem, + SelectAst, + TableSource, +} from '@prisma-next/sql-relational-core/ast' +import { createSqlParamRefMutator } from '@prisma-next/sql-relational-core/middleware' +import type { SqlExecutionPlan } from '@prisma-next/sql-relational-core/plan' +import type { SqlStorage } from '@prisma-next/sql-contract/types' +import type { SqlMiddlewareContext } from '@prisma-next/sql-runtime' +import { describe, expect, it, vi } from 'vitest' +import { cipherstashQueryOperations } from '../../src/execution/operators' +import { + EncryptedString, + setHandleQueryType, +} from '../../src/execution/envelope-string' +import type { EncryptedEnvelopeBase } from '../../src/execution/envelope-base' +import { CIPHERSTASH_STRING_V3_CODEC_ID } from '../../src/extension-metadata/constants' +import type { V3Index } from '../../src/v3/domain-map' +import { bulkEncryptV3Middleware } from '../../src/middleware/bulk-encrypt-v3' +import { makeFakeSdk } from './helpers/fake-sdk' + +const ops = cipherstashQueryOperations() + +// A v3 column accessor whose CodecRef carries the index, so the operator stamps +// routing + queryType on the envelope (the real search path). +function v3Column(table: string, column: string, index: V3Index) { + const ref = ColumnRef.of(table, column) + return { + returnType: { codecId: CIPHERSTASH_STRING_V3_CODEC_ID, nullable: true }, + codec: { codecId: CIPHERSTASH_STRING_V3_CODEC_ID, typeParams: { index } }, + buildAst: () => ref, + } +} + +// Build a SELECT plan whose WHERE carries a v3 search ParamRef produced by the +// real operator (envelope stamped with routing + queryType at lowering time). +function buildV3SearchPlan(table: string, column: string, index: V3Index, method: string, value: unknown) { + const op = ops[method] + if (!op) throw new Error(`no operator ${method}`) + const impl = op.impl as unknown as (...a: unknown[]) => { buildAst(): AnyExpression } + const predicate = impl(v3Column(table, column, index), value).buildAst() + const env = (predicate as unknown as { args: ReadonlyArray<{ value: unknown }> }).args[0]!.value + const ast = SelectAst.from(TableSource.named(table)) + .withProjection([ProjectionItem.of('id', ColumnRef.of(table, 'id'))]) + .withWhere(predicate) + return { + plan: { sql: 'SELECT ... WHERE ...', params: [env], meta: { ...baseMeta }, ast } as SqlExecutionPlan, + env: env as EncryptedEnvelopeBase, + } +} + +const baseMeta = { invariants: [], capabilities: {} } as unknown as PlanMeta + +function createCtx(overrides?: Partial): SqlMiddlewareContext { + return { + contract: {} as Contract, + mode: 'strict' as const, + scope: 'runtime' as const, + now: () => 0, + log: { info: vi.fn(), warn: vi.fn(), error: vi.fn() }, + contentHash: async () => 'mock-hash', + ...overrides, + } +} + +// Build an INSERT plan whose rows carry v3-codec ParamRefs (storage path: the AST +// walk stamps routing; no queryType). +function buildV3InsertPlan(table: string, row: Record): SqlExecutionPlan { + const params: unknown[] = [] + const out: Record = {} + for (const [column, value] of Object.entries(row)) { + const ref = ParamRef.of(value, { codec: { codecId: CIPHERSTASH_STRING_V3_CODEC_ID } }) + out[column] = ref + params.push(value) + } + const ast = new InsertAst(TableSource.named(table), [out]) + return { sql: `INSERT INTO "${table}" (...) VALUES (...)`, params, meta: { ...baseMeta }, ast } as SqlExecutionPlan +} + +describe('bulkEncryptV3Middleware', () => { + it('routes query-term params (queryType marker) to bulkEncryptQuery, NOT bulkEncrypt', async () => { + const bulkEncryptQuery = vi.fn(makeFakeSdk().bulkEncryptQuery) + const bulkEncrypt = vi.fn(makeFakeSdk().bulkEncrypt) + const sdk = makeFakeSdk({ bulkEncryptQuery, bulkEncrypt }) + const { plan } = buildV3SearchPlan('user_v3', 'email', 'equality', 'cipherstashEq', 'alice') + const params = createSqlParamRefMutator(plan) + + await bulkEncryptV3Middleware(sdk).beforeExecute?.(plan, createCtx(), params) + + expect(bulkEncryptQuery).toHaveBeenCalledOnce() + expect(bulkEncrypt).not.toHaveBeenCalled() + expect(bulkEncryptQuery.mock.calls[0]![0]).toMatchObject({ + routingKey: { table: 'user_v3', column: 'email' }, + queryType: 'equality', + values: ['alice'], + }) + const current = params.currentParams()[0] as string + expect(typeof current).toBe('string') + expect(current.startsWith('{')).toBe(true) + }) + + it('routes storage params (no queryType) to bulkEncrypt → plain-jsonb wire', async () => { + const bulkEncryptQuery = vi.fn(makeFakeSdk().bulkEncryptQuery) + const bulkEncrypt = vi.fn(makeFakeSdk().bulkEncrypt) + const sdk = makeFakeSdk({ bulkEncryptQuery, bulkEncrypt }) + const plan = buildV3InsertPlan('user_v3', { email: EncryptedString.from('stored') }) + const params = createSqlParamRefMutator(plan) + + await bulkEncryptV3Middleware(sdk).beforeExecute?.(plan, createCtx(), params) + + expect(bulkEncrypt).toHaveBeenCalledOnce() + expect(bulkEncryptQuery).not.toHaveBeenCalled() + const current = params.currentParams()[0] as string + expect(current.startsWith('{')).toBe(true) + }) + + it('ignores v2 params (cipherstash/string@1 left untouched)', async () => { + const bulkEncrypt = vi.fn(makeFakeSdk().bulkEncrypt) + const sdk = makeFakeSdk({ bulkEncrypt }) + // A v2-codec ParamRef: the v3 middleware filters CIPHERSTASH_V3_CODEC_ID_SET, + // which excludes cipherstash/string@1, so it must not touch this. + const v2env = EncryptedString.from('v2') + const ref = ParamRef.of(v2env, { codec: { codecId: 'cipherstash/string@1' } }) + const ast = new InsertAst(TableSource.named('user'), [{ email: ref }]) + const plan = { sql: 'INSERT', params: [v2env], meta: { ...baseMeta }, ast } as SqlExecutionPlan + const params = createSqlParamRefMutator(plan) + + await bulkEncryptV3Middleware(sdk).beforeExecute?.(plan, createCtx(), params) + + expect(bulkEncrypt).not.toHaveBeenCalled() + // param slot is unchanged (still the envelope, not a wire string) + expect(params.currentParams()[0]).toBe(v2env) + }) + + it('throws if a query group mixes queryTypes', async () => { + // The operator mismatch guard prevents two different query-types on one + // column upstream, so construct the defensive scenario directly: two rows on + // the same (table,column) routing key, each envelope manually stamped with a + // DIFFERENT queryType. The INSERT walk stamps the shared routing key. + const sdk = makeFakeSdk() + const a = EncryptedString.from('a') + setHandleQueryType(a, 'equality') + const b = EncryptedString.from('b') + setHandleQueryType(b, 'orderAndRange') + const ast = new InsertAst(TableSource.named('user_v3'), [ + { email: ParamRef.of(a, { codec: { codecId: CIPHERSTASH_STRING_V3_CODEC_ID } }) }, + { email: ParamRef.of(b, { codec: { codecId: CIPHERSTASH_STRING_V3_CODEC_ID } }) }, + ]) + const plan = { sql: 'INSERT', params: [a, b], meta: { ...baseMeta }, ast } as SqlExecutionPlan + const params = createSqlParamRefMutator(plan) + + await expect(bulkEncryptV3Middleware(sdk).beforeExecute?.(plan, createCtx(), params)).rejects.toThrow( + /mixes queryTypes/, + ) + }) + + it('forwards ctx.signal to the SDK calls', async () => { + const seen: (AbortSignal | undefined)[] = [] + const sdk = makeFakeSdk({ + bulkEncryptQuery: async ({ signal, values }) => { + seen.push(signal) + return values.map(() => ({ v: 2, i: { t: 't', c: 'c' }, hm: 'h' })) + }, + }) + const { plan } = buildV3SearchPlan('user_v3', 'email', 'equality', 'cipherstashEq', 'alice') + const params = createSqlParamRefMutator(plan) + const controller = new AbortController() + + await bulkEncryptV3Middleware(sdk).beforeExecute?.(plan, createCtx({ signal: controller.signal }), params) + expect(seen[0]).toBe(controller.signal) + }) +}) From 63707c556708560b3f463c529ce93181fd096dc9 Mon Sep 17 00:00:00 2001 From: Toby Hede Date: Wed, 17 Jun 2026 09:19:18 +1000 Subject: [PATCH 13/21] feat(prisma-next): derive stack schema for v3 string columns --- .../prisma-next/src/stack/derive-schemas.ts | 46 ++++++++++++++++++- .../test/v3/derive-schemas-v3.test.ts | 43 +++++++++++++++++ 2 files changed, 88 insertions(+), 1 deletion(-) create mode 100644 packages/prisma-next/test/v3/derive-schemas-v3.test.ts diff --git a/packages/prisma-next/src/stack/derive-schemas.ts b/packages/prisma-next/src/stack/derive-schemas.ts index 582f8199..d680a2b8 100644 --- a/packages/prisma-next/src/stack/derive-schemas.ts +++ b/packages/prisma-next/src/stack/derive-schemas.ts @@ -31,7 +31,9 @@ import { CIPHERSTASH_JSON_CODEC_ID, CIPHERSTASH_STRING_CODEC_ID, isCipherstashCodecId, + isCipherstashV3CodecId, } from '../extension-metadata/constants' +import { type V3Index, v3CastAs } from '../v3/domain-map' /** * Structural shape of the subset of `contract.json` this derivation @@ -98,7 +100,19 @@ export function deriveStackSchemas( const builders: Record = {} for (const [columnName, column] of Object.entries(columns)) { const codecId = column.codecId - if (codecId == null || !isCipherstashCodecId(codecId)) continue + if (codecId == null || !(isCipherstashCodecId(codecId) || isCipherstashV3CodecId(codecId))) continue + + // v3 columns take a SINGLE index (one domain per column), carried as + // `typeParams.index`; the v2 boolean-flag walk does not apply. + if (isCipherstashV3CodecId(codecId)) { + builders[columnName] = applyV3Index( + encryptedColumn(columnName).dataType(v3CastAs('text')), + column.typeParams, + tableName, + columnName, + ) + continue + } const dataType = CODEC_ID_TO_DATA_TYPE[codecId] builders[columnName] = applyTypeParams( @@ -140,3 +154,33 @@ function applyTypeParams( function isCipherstashFlag(value: string): value is CipherstashFlag { return value in FLAG_DISPATCH } + +const V3_INDEX_VALUES = ['equality', 'freeTextSearch', 'orderAndRange'] as const + +function isV3Index(value: unknown): value is V3Index { + return typeof value === 'string' && (V3_INDEX_VALUES as readonly string[]).includes(value) +} + +/** + * Apply a v3 column's single index. `typeParams.index` is `unknown` (the contract + * view types typeParams as `Record | null`), so narrow with + * `isV3Index` before dispatching. A v3 column is exactly one domain ⇒ exactly one + * index builder. + */ +function applyV3Index( + builder: EncryptedColumn, + typeParams: Readonly> | null | undefined, + tableName: string, + columnName: string, +): EncryptedColumn { + const index = typeParams?.['index'] + if (!isV3Index(index)) { + throw new Error( + `deriveStackSchemas: v3 column "${tableName}"."${columnName}" requires a valid 'index' typeParam ` + + `(one of ${V3_INDEX_VALUES.join(', ')}), got ${String(index)}.`, + ) + } + if (index === 'equality') return builder.equality() + if (index === 'freeTextSearch') return builder.freeTextSearch() + return builder.orderAndRange() +} diff --git a/packages/prisma-next/test/v3/derive-schemas-v3.test.ts b/packages/prisma-next/test/v3/derive-schemas-v3.test.ts new file mode 100644 index 00000000..42150636 --- /dev/null +++ b/packages/prisma-next/test/v3/derive-schemas-v3.test.ts @@ -0,0 +1,43 @@ +import { describe, expect, it } from 'vitest' +import { deriveStackSchemas } from '../../src/stack/derive-schemas' +import { CIPHERSTASH_STRING_V3_CODEC_ID } from '../../src/extension-metadata/constants' + +function makeContract(tables: Record>) { + return { + storage: { + tables: Object.fromEntries( + Object.entries(tables).map(([name, cols]) => [name, { columns: cols }]), + ), + }, + } as never +} + +describe('deriveStackSchemas (v3)', () => { + it('maps each v3 string column to a string-cast column with exactly its one index', () => { + const contract = makeContract({ + user_v3: { + email: { codecId: CIPHERSTASH_STRING_V3_CODEC_ID, typeParams: { index: 'equality' } }, + bio: { codecId: CIPHERSTASH_STRING_V3_CODEC_ID, typeParams: { index: 'freeTextSearch' } }, + name: { codecId: CIPHERSTASH_STRING_V3_CODEC_ID, typeParams: { index: 'orderAndRange' } }, + }, + }) + const schemas = deriveStackSchemas(contract) + expect(schemas).toHaveLength(1) + const built = schemas[0]!.build() + + // dataType is the string cast for every v3 text column. + expect(built.columns.email?.cast_as).toBe('string') + + // equality → unique only; freeTextSearch → match only; orderAndRange → ore only. + expect(Object.keys(built.columns.email?.indexes ?? {})).toEqual(['unique']) + expect(Object.keys(built.columns.bio?.indexes ?? {})).toEqual(['match']) + expect(Object.keys(built.columns.name?.indexes ?? {})).toEqual(['ore']) + }) + + it('throws on a v3 column with a missing/invalid index typeParam', () => { + const missing = makeContract({ t: { c: { codecId: CIPHERSTASH_STRING_V3_CODEC_ID, typeParams: {} } } }) + expect(() => deriveStackSchemas(missing)).toThrow(/index/) + const bad = makeContract({ t: { c: { codecId: CIPHERSTASH_STRING_V3_CODEC_ID, typeParams: { index: 'nope' } } } }) + expect(() => deriveStackSchemas(bad)).toThrow(/index/) + }) +}) From 907576c86fc60ba7b2eb70c4baa03f2d73256963 Mon Sep 17 00:00:00 2001 From: Toby Hede Date: Wed, 17 Jun 2026 09:20:19 +1000 Subject: [PATCH 14/21] test(prisma-next): pin v3 read-path decrypt (decryptAll over v3 envelopes) --- .../test/v3/decrypt-all-v3.test.ts | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 packages/prisma-next/test/v3/decrypt-all-v3.test.ts diff --git a/packages/prisma-next/test/v3/decrypt-all-v3.test.ts b/packages/prisma-next/test/v3/decrypt-all-v3.test.ts new file mode 100644 index 00000000..8af43ce9 --- /dev/null +++ b/packages/prisma-next/test/v3/decrypt-all-v3.test.ts @@ -0,0 +1,40 @@ +/** + * v3 read-path pin. v3 reuses the EncryptedString envelope and the v2 decrypt + * path verbatim: a v3 STORED payload `{v, i:{t,c}, c}` is exactly the protect-ffi + * Encrypted shape, so it passes `isEncryptedPayload` / `ensureEncryptedEnvelope` + * unchanged, and `decryptAll` / `EncryptedString#decrypt()` are version-agnostic. + * No decrypt code change was needed (Round-3 §B1) — this test pins it as a + * regression. + */ +import { isEncryptedPayload } from '@cipherstash/stack' +import { describe, expect, it, vi } from 'vitest' +import { createCipherstashStringV3Codec } from '../../src/execution/codec-v3' +import { decryptAll } from '../../src/execution/decrypt-all' +import { EncryptedString } from '../../src/execution/envelope-string' +import { makeFakeSdk } from './helpers/fake-sdk' + +const ctx = (table: string, name: string) => ({ column: { table, name } }) as never + +describe('decryptAll over v3 envelopes', () => { + it('groups v3 read-side envelopes by (table,column) and bulk-decrypts once per group', async () => { + const bulkDecrypt = vi.fn(makeFakeSdk().bulkDecrypt) + const sdk = makeFakeSdk({ bulkDecrypt }) + const codec = createCipherstashStringV3Codec(sdk) + const env = await codec.decode('{"v":2,"i":{"t":"users","c":"email"},"c":"ct"}', ctx('users', 'email')) + const rows = [{ email: env }] + + await decryptAll(rows) + + expect(bulkDecrypt).toHaveBeenCalledOnce() + expect(await (rows[0]!.email as EncryptedString).decrypt()).toBe('plaintext') + }) + + it('a v3 stored payload satisfies isEncryptedPayload (the v2 read-path gate)', () => { + // A v3 STORED value is a full payload; the stack helper that the v2 decrypt + // path uses must accept it unchanged. + expect(isEncryptedPayload({ v: 2, i: { t: 'users', c: 'email' }, c: 'ct' })).toBe(true) + // A v3 SEARCH term (no ciphertext `c`) is NOT a stored value and must never be + // routed into decrypt; it correctly fails the stored-payload gate. + expect(isEncryptedPayload({ v: 2, i: { t: 'users', c: 'email' }, hm: 'h' })).toBe(false) + }) +}) From b729110a808d1d6e93eb8d40b304bb47c3c3dbf8 Mon Sep 17 00:00:00 2001 From: Toby Hede Date: Wed, 17 Jun 2026 09:23:21 +1000 Subject: [PATCH 15/21] feat(prisma-next): add v3 baseline migration + expandNativeType domain hook migration.json/end-contract.* are regenerated by the framework contract-emit CLI during e2e setup (Task 15); ops.json is generated here from the operations getter. --- .../migration.ts | 56 +++++++++++++++++++ .../ops.json | 28 ++++++++++ .../src/migration/codec-hooks-v3.ts | 38 +++++++++++++ .../test/v3/codec-hooks-v3.test.ts | 27 +++++++++ .../prisma-next/test/v3/migration-v3.test.ts | 24 ++++++++ 5 files changed, 173 insertions(+) create mode 100644 packages/prisma-next/migrations/20260601T0100_install_eql_v3_bundle/migration.ts create mode 100644 packages/prisma-next/migrations/20260601T0100_install_eql_v3_bundle/ops.json create mode 100644 packages/prisma-next/src/migration/codec-hooks-v3.ts create mode 100644 packages/prisma-next/test/v3/codec-hooks-v3.test.ts create mode 100644 packages/prisma-next/test/v3/migration-v3.test.ts diff --git a/packages/prisma-next/migrations/20260601T0100_install_eql_v3_bundle/migration.ts b/packages/prisma-next/migrations/20260601T0100_install_eql_v3_bundle/migration.ts new file mode 100644 index 00000000..01e8cdb1 --- /dev/null +++ b/packages/prisma-next/migrations/20260601T0100_install_eql_v3_bundle/migration.ts @@ -0,0 +1,56 @@ +#!/usr/bin/env -S node +/** + * CipherStash EQL v3 baseline migration — install the vendored eql_v3 bundle. + * + * Mirrors the v2 baseline (`../20260601T0000_install_eql_bundle/migration.ts`) + * but installs the **eql_v3** bundle: the `eql_v3` schema, the `eql_v3.text*` + * domains (`text`, `text_eq`, `text_match`, `text_ord`), and the index-term + * extractor functions. The bundle flows in byte-for-byte under the + * `cipherstash:install-eql-v3-bundle-v1` invariant. + * + * Unlike v2, v3 emits NO `add_search_config` rows — the per-column domain type + * (applied via the codec hook's `expandNativeType`) encodes the index capability. + * + * Authoring loop: hand-edited; re-emit `ops.json` / `migration.json` after edits + * via `node migration.ts`. + */ +import { Migration, MigrationCLI, rawSql } from '@prisma-next/target-postgres/migration'; +import { CIPHERSTASH_INVARIANTS } from '../../src/extension-metadata/constants'; +import { EQL_V3_BUNDLE_SQL } from '../../src/migration/eql-v3-bundle'; + +const INSTALL_LABEL = 'Install EQL v3 bundle (eql_v3 schema, text domains, index-term extractors)'; + +export default class M extends Migration { + override describe() { + return { + from: null, + to: 'cipherstash:eql-v3-baseline', + }; + } + + override get operations() { + return [ + rawSql({ + id: 'cipherstash.install-eql-v3-bundle', + label: INSTALL_LABEL, + operationClass: 'additive', + invariantId: CIPHERSTASH_INVARIANTS.installBundleV3, + target: { id: 'postgres' }, + precheck: [], + execute: [{ description: INSTALL_LABEL, sql: EQL_V3_BUNDLE_SQL }], + postcheck: [ + { + description: 'verify "eql_v3" schema exists', + sql: "SELECT EXISTS (SELECT 1 FROM pg_namespace WHERE nspname = 'eql_v3')", + }, + { + description: 'verify "eql_v3.text_eq" domain exists', + sql: "SELECT EXISTS (SELECT 1 FROM pg_type t JOIN pg_namespace n ON n.oid = t.typnamespace WHERE n.nspname = 'eql_v3' AND t.typname = 'text_eq')", + }, + ], + }), + ]; + } +} + +MigrationCLI.run(import.meta.url, M); diff --git a/packages/prisma-next/migrations/20260601T0100_install_eql_v3_bundle/ops.json b/packages/prisma-next/migrations/20260601T0100_install_eql_v3_bundle/ops.json new file mode 100644 index 00000000..b254c544 --- /dev/null +++ b/packages/prisma-next/migrations/20260601T0100_install_eql_v3_bundle/ops.json @@ -0,0 +1,28 @@ +[ + { + "id": "cipherstash.install-eql-v3-bundle", + "label": "Install EQL v3 bundle (eql_v3 schema, text domains, index-term extractors)", + "operationClass": "additive", + "invariantId": "cipherstash:install-eql-v3-bundle-v1", + "target": { + "id": "postgres" + }, + "precheck": [], + "execute": [ + { + "description": "Install EQL v3 bundle (eql_v3 schema, text domains, index-term extractors)", + "sql": "--! @file v3/schema.sql\n--! @brief EQL v3 schema creation\n--!\n--! Creates the eql_v3 schema, which houses the self-contained encrypted-domain\n--! type families (eql_v3.int4, eql_v3.int8, and future scalar domains): their\n--! jsonb-backed domains, the searchable-encrypted-metadata (SEM) index-term\n--! types they use (eql_v3.hmac_256, eql_v3.ore_block_u64_8_256), the index-term\n--! extractors, comparison wrappers, blockers, and aggregates. The v3 surface is\n--! self-contained — it owns every type it needs and has no runtime dependency\n--! on another EQL schema.\n--!\n--! Drops existing schema if present to support clean reinstallation.\n--!\n--! @warning DROP SCHEMA CASCADE will remove all objects in the schema\n--! @note eql_v3 is a new, additional schema for the encrypted-domain families.\n\n--! @brief Drop existing EQL v3 schema\n--! @warning CASCADE will drop all dependent objects\nDROP SCHEMA IF EXISTS eql_v3 CASCADE;\n\n--! @brief Create EQL v3 schema\n--! @note Houses the encrypted-domain type families\nCREATE SCHEMA eql_v3;\n\n--! @file v3/sem/ore_block_u64_8_256/types.sql\n--! @brief ORE block index-term types (eql_v3 SEM).\n--!\n--! Self-contained eql_v3 copies of the Order-Revealing Encryption block types\n--! (design D1/D3). The eql_v2 originals are unchanged.\n\n--! @brief ORE block term type for Order-Revealing Encryption\n--!\n--! Composite type representing a single ORE block term. Stores encrypted data\n--! as bytea that enables range comparisons without decryption.\nCREATE TYPE eql_v3.ore_block_u64_8_256_term AS (\n bytes bytea\n);\n\n\n--! @brief ORE block index term type for range queries\n--!\n--! Composite type containing an array of ORE block terms. The array is stored\n--! in the 'ob' field of encrypted data payloads.\n--!\n--! @note Transient type used only during query execution.\nCREATE TYPE eql_v3.ore_block_u64_8_256 AS (\n terms eql_v3.ore_block_u64_8_256_term[]\n);\n\n--! @file v3/crypto.sql\n--! @brief PostgreSQL pgcrypto extension enablement (eql_v3 fork)\n--!\n--! Forked from src/crypto.sql (design D8) so the entire eql_v3 dependency\n--! closure lives under src/v3/. Enables the pgcrypto extension which provides\n--! cryptographic functions used by the eql_v3 ORE comparison path.\n--!\n--! Installs pgcrypto into the `extensions` schema (Supabase convention) to\n--! avoid the `extension_in_public` lint. Every EQL function that uses pgcrypto\n--! has `pg_catalog, extensions, public` on its `search_path`, so a pre-existing\n--! install in `public` keeps working — and a pre-existing install anywhere else\n--! will be rejected at install time. The body is idempotent\n--! (`CREATE SCHEMA IF NOT EXISTS`, `pg_extension` guard), so running it\n--! alongside the eql_v2 copy in a combined install is safe.\n--!\n--! @note pgcrypto provides functions like digest(), hmac(), gen_random_bytes()\n\n--! @brief Create extensions schema (Supabase convention)\nCREATE SCHEMA IF NOT EXISTS extensions;\n\n--! @brief Enable pgcrypto extension and validate its schema\nDO $$\nDECLARE\n pgcrypto_schema name;\nBEGIN\n IF NOT EXISTS (SELECT 1 FROM pg_extension WHERE extname = 'pgcrypto') THEN\n CREATE EXTENSION pgcrypto WITH SCHEMA extensions;\n END IF;\n\n SELECT n.nspname INTO pgcrypto_schema\n FROM pg_extension e\n JOIN pg_namespace n ON n.oid = e.extnamespace\n WHERE e.extname = 'pgcrypto';\n\n IF pgcrypto_schema = 'extensions' THEN\n -- expected location, nothing to say\n NULL;\n ELSIF pgcrypto_schema = 'public' THEN\n RAISE NOTICE\n 'pgcrypto is installed in the `public` schema. EQL works against this layout, '\n 'but Supabase splinter will flag it as `extension_in_public`. Move it with: '\n 'ALTER EXTENSION pgcrypto SET SCHEMA extensions';\n ELSE\n RAISE EXCEPTION\n 'pgcrypto is installed in schema `%`, which is not on the EQL function search_path '\n '(pg_catalog, extensions, public). EQL cryptographic operations would fail at '\n 'runtime. Relocate the extension before installing EQL: '\n 'ALTER EXTENSION pgcrypto SET SCHEMA extensions',\n pgcrypto_schema;\n END IF;\nEND $$;\n\n--! @file v3/common.sql\n--! @brief Common utility functions for the self-contained eql_v3 surface.\n--!\n--! Forked from src/common.sql (design D7) so the eql_v3 ORE constructor owns the\n--! one transitive helper it needs without reaching into another schema. The\n--! eql_v2 original is unchanged.\n\n--! @brief Convert JSONB hex array to bytea array\n--! @internal\n--!\n--! Converts a JSONB array of hex-encoded strings into a PostgreSQL bytea array.\n--! Used for deserializing binary data (like ORE terms) from JSONB storage.\n--!\n--! @param val jsonb JSONB array of hex-encoded strings\n--! @return bytea[] Array of decoded binary values\n--!\n--! @note Returns NULL if input is JSON null\n--! @note Each array element is hex-decoded to bytea\n--! @note Inlinable `LANGUAGE sql` IMMUTABLE form (no `SET search_path`) so the\n--! planner can fold this per-encrypted-value helper into the calling query.\n--! This deliberately diverges from the v2 plpgsql equivalent (intentionally\n--! left unchanged): the `CASE WHEN jsonb_typeof(val) = 'array'` guard only\n--! evaluates the set-returning `jsonb_array_elements_text` for an array, so a\n--! non-array JSON scalar returns NULL here instead of raising \"cannot extract\n--! elements from a scalar\". Both callers only ever pass an array or JSON null\n--! (`val->'ob'`), so the divergence is unreachable in practice; JSON null and\n--! empty array still return NULL exactly as before.\nCREATE FUNCTION eql_v3.jsonb_array_to_bytea_array(val jsonb)\nRETURNS bytea[]\n IMMUTABLE\nAS $$\n SELECT CASE WHEN jsonb_typeof(val) = 'array'\n THEN (\n SELECT array_agg(decode(value::text, 'hex')::bytea)\n FROM jsonb_array_elements_text(val) AS value\n )\n ELSE NULL\n END;\n$$ LANGUAGE sql;\n\n--! @internal Mark this hand-written helper inline-critical so the post-install\n--! pin_search_path pass leaves it unpinned (no `SET search_path`), preserving\n--! SQL-function inlining. It takes a bare `jsonb` arg (not a jsonb-backed\n--! encrypted DOMAIN), so the structural skip in tasks/pin_search_path.sql does\n--! not recognise it; this marker is the documented manual opt-in.\nCOMMENT ON FUNCTION eql_v3.jsonb_array_to_bytea_array(jsonb) IS\n 'eql-inline-critical: per-encrypted-value ORE helper; must stay inlinable (unpinned search_path)';\n\n--! @file v3/sem/hmac_256/types.sql\n--! @brief HMAC-SHA256 index term type (eql_v3 SEM)\n--!\n--! Domain type representing HMAC-SHA256 hash values. Used for exact-match\n--! encrypted searches. The hash is stored in the 'hm' field of encrypted data\n--! payloads. Self-contained eql_v3 copy (design D1/D3); the eql_v2 original is\n--! unchanged.\n--!\n--! @note Transient type used only during query execution.\nCREATE DOMAIN eql_v3.hmac_256 AS text;\n\n--! @file v3/sem/bloom_filter/types.sql\n--! @brief Self-contained eql_v3 Bloom-filter SEM index-term type.\n\n--! @brief Bloom-filter index term: a bit array stored as smallint[].\n--!\n--! Backs the `match` capability (`@>` / `<@`) on `eql_v3.text_match`. The\n--! filter is read from the `bf` field of an encrypted jsonb payload. Native\n--! `smallint[]` array-containment (`@>`/`<@`) is inherited through the domain,\n--! so this type needs no custom operators.\n--!\n--! @note Self-contained: references no eql_v2 symbol.\nCREATE DOMAIN eql_v3.bloom_filter AS smallint[];\n\n--! @file v3/scalars/functions.sql\n--! @brief Shared blocker helper for the eql_v3 encrypted-domain families.\n--!\n--! Per-domain wrapper functions live in src/v3/scalars//.\n--! Blockers in those files delegate to encrypted_domain_unsupported_bool\n--! so every domain raises a uniform domain-specific error rather than\n--! letting an unsupported operator fall through to native jsonb\n--! behaviour.\n\n--! @brief Shared blocker helper. Raises 'operator X is not supported\n--! for TYPE' so unsupported domain operators surface a clear\n--! error rather than fall through to native jsonb behaviour.\n--! @param type_name Domain type name (eql_v3.*)\n--! @param operator_name Operator symbol (=, <, @>, ->, etc.)\n--! @return boolean (never returns; always raises)\nCREATE FUNCTION eql_v3.encrypted_domain_unsupported_bool(type_name text, operator_name text)\nRETURNS boolean\nIMMUTABLE PARALLEL SAFE\nSET search_path = pg_catalog, extensions, public\nAS $$\nBEGIN\n RAISE EXCEPTION 'operator % is not supported for %', operator_name, type_name;\nEND;\n$$ LANGUAGE plpgsql;\n\n--! @file v3/sem/ore_block_u64_8_256/functions.sql\n--! @brief ORE block construction, extraction, and comparison (eql_v3 SEM).\n--!\n--! jsonb-only subset of src/ore_block_u64_8_256/functions.sql. The\n--! encrypted-column overloads are omitted; the helper jsonb_array_to_bytea_array\n--! and pgcrypto encrypt() are reached via the forked src/v3/common.sql and\n--! src/v3/crypto.sql so the whole closure stays under src/v3. (Doc comments\n--! deliberately avoid naming eql_v2 symbols so the self-containment grep stays\n--! clean.)\n\n--! @brief Convert JSONB array to ORE block composite type\n--! @internal\n--! @param val jsonb Array of hex-encoded ORE block terms\n--! @return eql_v3.ore_block_u64_8_256 ORE block composite, or NULL if input is null\n--! @note Inlinable `LANGUAGE sql` IMMUTABLE form (no `SET search_path`) so the\n--! planner can fold this per-encrypted-value helper into the calling query.\n--! This deliberately diverges from the v2 plpgsql equivalent (intentionally\n--! left unchanged): the `CASE WHEN jsonb_typeof(val) = 'array'` guard only\n--! evaluates the array path for an array, so a non-array JSON scalar returns\n--! NULL here instead of raising. The sole caller passes `val->'ob'`, always an\n--! array or JSON null, so the divergence is unreachable in practice; JSON null\n--! and empty array still return NULL exactly as before.\nCREATE FUNCTION eql_v3.jsonb_array_to_ore_block_u64_8_256(val jsonb)\nRETURNS eql_v3.ore_block_u64_8_256\n IMMUTABLE\nAS $$\n SELECT CASE WHEN jsonb_typeof(val) = 'array'\n THEN ROW((\n SELECT array_agg(ROW(b)::eql_v3.ore_block_u64_8_256_term)\n FROM unnest(eql_v3.jsonb_array_to_bytea_array(val)) AS b\n ))::eql_v3.ore_block_u64_8_256\n ELSE NULL\n END;\n$$ LANGUAGE sql;\n\n--! @internal Mark this hand-written helper inline-critical so the post-install\n--! pin_search_path pass leaves it unpinned (no `SET search_path`), preserving\n--! SQL-function inlining. It takes a bare `jsonb` arg (not a jsonb-backed\n--! encrypted DOMAIN), so the structural skip in tasks/pin_search_path.sql does\n--! not recognise it; this marker is the documented manual opt-in.\nCOMMENT ON FUNCTION eql_v3.jsonb_array_to_ore_block_u64_8_256(jsonb) IS\n 'eql-inline-critical: per-encrypted-value ORE helper; must stay inlinable (unpinned search_path)';\n\n\n--! @brief Extract ORE block index term from JSONB payload\n--! @param val jsonb containing encrypted EQL payload\n--! @return eql_v3.ore_block_u64_8_256 ORE block index term\n--! @throws Exception if 'ob' field is missing\nCREATE FUNCTION eql_v3.ore_block_u64_8_256(val jsonb)\n RETURNS eql_v3.ore_block_u64_8_256\n IMMUTABLE STRICT PARALLEL SAFE\n SET search_path = pg_catalog, extensions, public\nAS $$\n BEGIN\n -- Declared STRICT: PostgreSQL returns NULL for a NULL argument without\n -- entering the body, so no explicit `val IS NULL` guard is needed.\n IF eql_v3.has_ore_block_u64_8_256(val) THEN\n RETURN eql_v3.jsonb_array_to_ore_block_u64_8_256(val->'ob');\n END IF;\n RAISE 'Expected an ore index (ob) value in json: %', val;\n END;\n$$ LANGUAGE plpgsql;\n\n\n--! @brief Check if JSONB payload contains ORE block index term\n--! @param val jsonb containing encrypted EQL payload\n--! @return boolean True if 'ob' field is present and non-null\nCREATE FUNCTION eql_v3.has_ore_block_u64_8_256(val jsonb)\n RETURNS boolean\n IMMUTABLE STRICT PARALLEL SAFE\n SET search_path = pg_catalog, extensions, public\nAS $$\n BEGIN\n RETURN val ->> 'ob' IS NOT NULL;\n END;\n$$ LANGUAGE plpgsql;\n\n\n--! @brief Compare two ORE block terms using cryptographic comparison\n--! @internal\n--! @param a eql_v3.ore_block_u64_8_256_term First ORE term\n--! @param b eql_v3.ore_block_u64_8_256_term Second ORE term\n--! @return integer -1 if a < b, 0 if a = b, 1 if a > b\n--! @throws Exception if ciphertexts are different lengths\n--! @note Marked `IMMUTABLE` (the three `compare_ore_block_u64_8_256_term(s)`\n--! overloads all are). This deliberately diverges from the v2 originals,\n--! which carry no volatility marker and so default to `VOLATILE`. The\n--! comparison is deterministic — its only crypto call, pgcrypto `encrypt()`,\n--! is itself `IMMUTABLE STRICT PARALLEL SAFE` — so `IMMUTABLE` lets the\n--! planner fold/cache these in ordering and index contexts. NOT `STRICT`:\n--! the NULL-handling branches below are load-bearing for the array overload.\nCREATE FUNCTION eql_v3.compare_ore_block_u64_8_256_term(a eql_v3.ore_block_u64_8_256_term, b eql_v3.ore_block_u64_8_256_term)\n RETURNS integer\n IMMUTABLE\n SET search_path = pg_catalog, extensions, public\nAS $$\n DECLARE\n eq boolean := true;\n unequal_block smallint := 0;\n hash_key bytea;\n data_block bytea;\n encrypt_block bytea;\n target_block bytea;\n\n left_block_size CONSTANT smallint := 16;\n right_block_size CONSTANT smallint := 32;\n right_offset CONSTANT smallint := 136; -- 8 * 17\n\n indicator smallint := 0;\n BEGIN\n IF a IS NULL AND b IS NULL THEN\n RETURN 0;\n END IF;\n\n IF a IS NULL THEN\n RETURN -1;\n END IF;\n\n IF b IS NULL THEN\n RETURN 1;\n END IF;\n\n IF bit_length(a.bytes) != bit_length(b.bytes) THEN\n RAISE EXCEPTION 'Ciphertexts are different lengths';\n END IF;\n\n FOR block IN 0..7 LOOP\n IF\n substr(a.bytes, 1 + block, 1) != substr(b.bytes, 1 + block, 1)\n OR substr(a.bytes, 9 + left_block_size * block, left_block_size) != substr(b.bytes, 9 + left_block_size * BLOCK, left_block_size)\n THEN\n IF eq THEN\n unequal_block := block;\n END IF;\n eq = false;\n END IF;\n END LOOP;\n\n IF eq THEN\n RETURN 0::integer;\n END IF;\n\n hash_key := substr(b.bytes, right_offset + 1, 16);\n\n target_block := substr(b.bytes, right_offset + 17 + (unequal_block * right_block_size), right_block_size);\n\n data_block := substr(a.bytes, 9 + (left_block_size * unequal_block), left_block_size);\n\n encrypt_block := encrypt(data_block::bytea, hash_key::bytea, 'aes-ecb');\n\n indicator := (\n get_bit(\n encrypt_block,\n 0\n ) + get_bit(target_block, get_byte(a.bytes, unequal_block))) % 2;\n\n IF indicator = 1 THEN\n RETURN 1::integer;\n ELSE\n RETURN -1::integer;\n END IF;\n END;\n$$ LANGUAGE plpgsql;\n\n\n--! @brief Compare arrays of ORE block terms recursively\n--! @internal\n--! @param a eql_v3.ore_block_u64_8_256_term[] First array\n--! @param b eql_v3.ore_block_u64_8_256_term[] Second array\n--! @return integer -1/0/1, or NULL if either array is NULL\nCREATE FUNCTION eql_v3.compare_ore_block_u64_8_256_terms(a eql_v3.ore_block_u64_8_256_term[], b eql_v3.ore_block_u64_8_256_term[])\nRETURNS integer\n IMMUTABLE\n SET search_path = pg_catalog, extensions, public\nAS $$\n DECLARE\n cmp_result integer;\n BEGIN\n IF a IS NULL OR b IS NULL THEN\n RETURN NULL;\n END IF;\n\n IF cardinality(a) = 0 AND cardinality(b) = 0 THEN\n RETURN 0;\n END IF;\n\n IF (cardinality(a) = 0) AND cardinality(b) > 0 THEN\n RETURN -1;\n END IF;\n\n IF cardinality(a) > 0 AND (cardinality(b) = 0) THEN\n RETURN 1;\n END IF;\n\n cmp_result := eql_v3.compare_ore_block_u64_8_256_term(a[1], b[1]);\n\n IF cmp_result = 0 THEN\n RETURN eql_v3.compare_ore_block_u64_8_256_terms(a[2:array_length(a,1)], b[2:array_length(b,1)]);\n END IF;\n\n RETURN cmp_result;\n END\n$$ LANGUAGE plpgsql;\n\n\n--! @brief Compare ORE block composite types\n--! @internal\n--! @param a eql_v3.ore_block_u64_8_256 First ORE block\n--! @param b eql_v3.ore_block_u64_8_256 Second ORE block\n--! @return integer -1/0/1\nCREATE FUNCTION eql_v3.compare_ore_block_u64_8_256_terms(a eql_v3.ore_block_u64_8_256, b eql_v3.ore_block_u64_8_256)\nRETURNS integer\n IMMUTABLE\n SET search_path = pg_catalog, extensions, public\nAS $$\n BEGIN\n RETURN eql_v3.compare_ore_block_u64_8_256_terms(a.terms, b.terms);\n END\n$$ LANGUAGE plpgsql;\n\n--! @file v3/sem/ore_block_u64_8_256/operators.sql\n--! @brief Comparison operators on eql_v3.ore_block_u64_8_256.\n--!\n--! The six backing functions are inlinable single-statement SQL so the planner\n--! can fold the eql_v3 comparison wrappers through to functional-index matching.\n\n--! @brief Equality backing function for ORE block types\n--! @internal\n--!\n--! @param a eql_v3.ore_block_u64_8_256 Left operand\n--! @param b eql_v3.ore_block_u64_8_256 Right operand\n--! @return boolean True if the ORE blocks are equal\n--!\n--! @see eql_v3.compare_ore_block_u64_8_256_terms\nCREATE FUNCTION eql_v3.ore_block_u64_8_256_eq(a eql_v3.ore_block_u64_8_256, b eql_v3.ore_block_u64_8_256)\nRETURNS boolean\n LANGUAGE sql\n IMMUTABLE STRICT PARALLEL SAFE\nAS $$\n SELECT eql_v3.compare_ore_block_u64_8_256_terms(a, b) = 0\n$$;\n\n--! @brief Not-equal backing function for ORE block types\n--! @internal\n--!\n--! @param a eql_v3.ore_block_u64_8_256 Left operand\n--! @param b eql_v3.ore_block_u64_8_256 Right operand\n--! @return boolean True if the ORE blocks are not equal\n--!\n--! @see eql_v3.compare_ore_block_u64_8_256_terms\nCREATE FUNCTION eql_v3.ore_block_u64_8_256_neq(a eql_v3.ore_block_u64_8_256, b eql_v3.ore_block_u64_8_256)\nRETURNS boolean\n LANGUAGE sql\n IMMUTABLE STRICT PARALLEL SAFE\nAS $$\n SELECT eql_v3.compare_ore_block_u64_8_256_terms(a, b) <> 0\n$$;\n\n--! @brief Less-than backing function for ORE block types\n--! @internal\n--!\n--! @param a eql_v3.ore_block_u64_8_256 Left operand\n--! @param b eql_v3.ore_block_u64_8_256 Right operand\n--! @return boolean True if the left operand is less than the right operand\n--!\n--! @see eql_v3.compare_ore_block_u64_8_256_terms\nCREATE FUNCTION eql_v3.ore_block_u64_8_256_lt(a eql_v3.ore_block_u64_8_256, b eql_v3.ore_block_u64_8_256)\nRETURNS boolean\n LANGUAGE sql\n IMMUTABLE STRICT PARALLEL SAFE\nAS $$\n SELECT eql_v3.compare_ore_block_u64_8_256_terms(a, b) = -1\n$$;\n\n--! @brief Less-than-or-equal backing function for ORE block types\n--! @internal\n--!\n--! @param a eql_v3.ore_block_u64_8_256 Left operand\n--! @param b eql_v3.ore_block_u64_8_256 Right operand\n--! @return boolean True if the left operand is less than or equal to the right operand\n--!\n--! @see eql_v3.compare_ore_block_u64_8_256_terms\nCREATE FUNCTION eql_v3.ore_block_u64_8_256_lte(a eql_v3.ore_block_u64_8_256, b eql_v3.ore_block_u64_8_256)\nRETURNS boolean\n LANGUAGE sql\n IMMUTABLE STRICT PARALLEL SAFE\nAS $$\n SELECT eql_v3.compare_ore_block_u64_8_256_terms(a, b) != 1\n$$;\n\n--! @brief Greater-than backing function for ORE block types\n--! @internal\n--!\n--! @param a eql_v3.ore_block_u64_8_256 Left operand\n--! @param b eql_v3.ore_block_u64_8_256 Right operand\n--! @return boolean True if the left operand is greater than the right operand\n--!\n--! @see eql_v3.compare_ore_block_u64_8_256_terms\nCREATE FUNCTION eql_v3.ore_block_u64_8_256_gt(a eql_v3.ore_block_u64_8_256, b eql_v3.ore_block_u64_8_256)\nRETURNS boolean\n LANGUAGE sql\n IMMUTABLE STRICT PARALLEL SAFE\nAS $$\n SELECT eql_v3.compare_ore_block_u64_8_256_terms(a, b) = 1\n$$;\n\n--! @brief Greater-than-or-equal backing function for ORE block types\n--! @internal\n--!\n--! @param a eql_v3.ore_block_u64_8_256 Left operand\n--! @param b eql_v3.ore_block_u64_8_256 Right operand\n--! @return boolean True if the left operand is greater than or equal to the right operand\n--!\n--! @see eql_v3.compare_ore_block_u64_8_256_terms\nCREATE FUNCTION eql_v3.ore_block_u64_8_256_gte(a eql_v3.ore_block_u64_8_256, b eql_v3.ore_block_u64_8_256)\nRETURNS boolean\n LANGUAGE sql\n IMMUTABLE STRICT PARALLEL SAFE\nAS $$\n SELECT eql_v3.compare_ore_block_u64_8_256_terms(a, b) != -1\n$$;\n\n\n--! @brief = operator for ORE block types\n--!\n--! COMMUTATOR is the operator itself: equality is symmetric. Required for the\n--! MERGES flag — without it the planner raises \"could not find commutator\" the\n--! first time an ore_block equality is used as a join qual (e.g. via the inlined\n--! eql_v3._ord_ore equality wrappers).\nCREATE OPERATOR = (\n FUNCTION=eql_v3.ore_block_u64_8_256_eq,\n LEFTARG=eql_v3.ore_block_u64_8_256,\n RIGHTARG=eql_v3.ore_block_u64_8_256,\n COMMUTATOR = =,\n NEGATOR = <>,\n RESTRICT = eqsel,\n JOIN = eqjoinsel,\n HASHES,\n MERGES\n);\n\n--! @brief <> operator for ORE block types\nCREATE OPERATOR <> (\n FUNCTION=eql_v3.ore_block_u64_8_256_neq,\n LEFTARG=eql_v3.ore_block_u64_8_256,\n RIGHTARG=eql_v3.ore_block_u64_8_256,\n COMMUTATOR = <>,\n NEGATOR = =,\n RESTRICT = eqsel,\n JOIN = eqjoinsel,\n HASHES,\n MERGES\n);\n\n--! @brief > operator for ORE block types\nCREATE OPERATOR > (\n FUNCTION=eql_v3.ore_block_u64_8_256_gt,\n LEFTARG=eql_v3.ore_block_u64_8_256,\n RIGHTARG=eql_v3.ore_block_u64_8_256,\n COMMUTATOR = <,\n NEGATOR = <=,\n RESTRICT = scalargtsel,\n JOIN = scalargtjoinsel\n);\n\n--! @brief < operator for ORE block types\nCREATE OPERATOR < (\n FUNCTION=eql_v3.ore_block_u64_8_256_lt,\n LEFTARG=eql_v3.ore_block_u64_8_256,\n RIGHTARG=eql_v3.ore_block_u64_8_256,\n COMMUTATOR = >,\n NEGATOR = >=,\n RESTRICT = scalarltsel,\n JOIN = scalarltjoinsel\n);\n\n--! @brief <= operator for ORE block types\nCREATE OPERATOR <= (\n FUNCTION=eql_v3.ore_block_u64_8_256_lte,\n LEFTARG=eql_v3.ore_block_u64_8_256,\n RIGHTARG=eql_v3.ore_block_u64_8_256,\n COMMUTATOR = >=,\n NEGATOR = >,\n RESTRICT = scalarlesel,\n JOIN = scalarlejoinsel\n);\n\n--! @brief >= operator for ORE block types\nCREATE OPERATOR >= (\n FUNCTION=eql_v3.ore_block_u64_8_256_gte,\n LEFTARG=eql_v3.ore_block_u64_8_256,\n RIGHTARG=eql_v3.ore_block_u64_8_256,\n COMMUTATOR = <=,\n NEGATOR = <,\n RESTRICT = scalargesel,\n JOIN = scalargejoinsel\n);\n\n--! @file v3/sem/hmac_256/functions.sql\n--! @brief HMAC-SHA256 index-term extraction from a jsonb payload (eql_v3 SEM).\n--!\n--! jsonb-only subset of src/hmac_256/functions.sql. The encrypted-column and\n--! ste_vec-entry overloads are intentionally omitted — the eql_v3 scalar\n--! domains extract from the jsonb payload directly via a cast to the domain.\n--! (Doc comments deliberately avoid naming eql_v2 symbols so the\n--! self-containment grep stays clean.)\n\n--! @brief Extract HMAC-SHA256 index term from JSONB payload\n--!\n--! Inlinable single-statement SQL — the planner can fold this into the calling\n--! query so functional hash/btree indexes built on `eql_v3.eq_term(col)`\n--! (which calls this) engage structurally.\n--!\n--! @param val jsonb containing encrypted EQL payload\n--! @return eql_v3.hmac_256 HMAC-SHA256 hash value, or NULL when `hm` is absent\nCREATE FUNCTION eql_v3.hmac_256(val jsonb)\n RETURNS eql_v3.hmac_256\n LANGUAGE sql\n IMMUTABLE STRICT PARALLEL SAFE\nAS $$\n SELECT (val ->> 'hm')::eql_v3.hmac_256\n$$;\n\n\n--! @brief Check if JSONB payload contains HMAC-SHA256 index term\n--!\n--! @param val jsonb containing encrypted EQL payload\n--! @return boolean True if 'hm' field is present and non-null\nCREATE FUNCTION eql_v3.has_hmac_256(val jsonb)\n RETURNS boolean\n IMMUTABLE STRICT PARALLEL SAFE\n SET search_path = pg_catalog, extensions, public\nAS $$\n BEGIN\n RETURN val ->> 'hm' IS NOT NULL;\n END;\n$$ LANGUAGE plpgsql;\n\n--! @file v3/sem/bloom_filter/functions.sql\n--! @brief Extractor for the eql_v3 Bloom-filter SEM index term.\n--!\n--! jsonb-only subset of src/bloom_filter/functions.sql. The encrypted-column\n--! overloads are intentionally omitted — the eql_v3 scalar domains extract from\n--! the jsonb payload directly via a cast to the domain. (Doc comments\n--! deliberately avoid naming eql_v2 symbols so the self-containment grep stays\n--! clean.)\n\n--! @brief Test whether a jsonb payload carries a Bloom-filter (`bf`) term.\n--!\n--! @param val jsonb The encrypted payload.\n--! @return boolean True when the `bf` key is present and non-null.\n--!\n--! @internal Defined for parity with the eql_v3 SEM index-term predicates\n--! (`has_hmac_256` / `has_ore_block_u64_8_256`); it is not currently called by\n--! the extractor below, which gates on value-shape inline, nor by the generated\n--! domain CHECK, which tests `bf` presence via the envelope-key skeleton. Kept\n--! as the canonical presence test for callers that need one.\nCREATE FUNCTION eql_v3.has_bloom_filter(val jsonb)\n RETURNS boolean\n IMMUTABLE STRICT PARALLEL SAFE\n SET search_path = pg_catalog, extensions, public\nAS $$\n BEGIN\n RETURN val ? 'bf' AND val ->> 'bf' IS NOT NULL;\n END;\n$$ LANGUAGE plpgsql;\n\n--! @brief Extract the Bloom-filter index term from a jsonb payload.\n--!\n--! Inlinable single-statement SQL — the planner can fold this into the calling\n--! query so the functional GIN index built on `eql_v3.match_term(col)` (which\n--! calls this) engages structurally. Mirrors `eql_v3.hmac_256(jsonb)`: no RAISE\n--! and no pinned `search_path`. Returns NULL when `bf` is absent or present but\n--! not a json array, rather than raising. The `text_match` domain CHECK\n--! guarantees the `bf` *key* is present but not that it is an array, so a\n--! non-array `bf` (e.g. `{\"bf\": null}`) can reach here even on a typed value;\n--! gating on `jsonb_typeof(...) = 'array'` returns NULL for that case — and for\n--! raw jsonb outside the domain — instead of erroring inside\n--! `jsonb_array_elements`. NULL, like the HMAC extractor, is the right answer. An\n--! empty `bf` array yields an empty filter (contains nothing, contained by\n--! everything), matching set-containment semantics.\n--!\n--! @param val jsonb The encrypted payload.\n--! @return eql_v3.bloom_filter The `bf` array as a smallint[] domain value, or\n--! NULL when `bf` is absent or not a json array.\nCREATE FUNCTION eql_v3.bloom_filter(val jsonb)\n RETURNS eql_v3.bloom_filter\n LANGUAGE sql\n IMMUTABLE STRICT PARALLEL SAFE\nAS $$\n SELECT CASE WHEN jsonb_typeof(val -> 'bf') = 'array'\n THEN ARRAY(SELECT jsonb_array_elements(val -> 'bf'))::eql_v3.bloom_filter\n END\n$$;\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file v3/scalars/int4/int4_types.sql\n--! @brief Encrypted-domain types for int4.\n\nDO $$\nBEGIN\n --! @brief Encrypted domain eql_v3.int4.\n IF NOT EXISTS (\n SELECT 1 FROM pg_type\n WHERE typname = 'int4' AND typnamespace = 'eql_v3'::regnamespace\n ) THEN\n CREATE DOMAIN eql_v3.int4 AS jsonb\n CHECK (\n jsonb_typeof(VALUE) = 'object'\n AND VALUE ? 'v'\n AND VALUE ? 'i'\n AND VALUE ? 'c'\n AND VALUE->>'v' = '2'\n );\n END IF;\n\n --! @brief Encrypted domain eql_v3.int4_eq.\n IF NOT EXISTS (\n SELECT 1 FROM pg_type\n WHERE typname = 'int4_eq' AND typnamespace = 'eql_v3'::regnamespace\n ) THEN\n CREATE DOMAIN eql_v3.int4_eq AS jsonb\n CHECK (\n jsonb_typeof(VALUE) = 'object'\n AND VALUE ? 'v'\n AND VALUE ? 'i'\n AND VALUE ? 'c'\n AND VALUE ? 'hm'\n AND VALUE->>'v' = '2'\n );\n END IF;\n\n --! @brief Encrypted domain eql_v3.int4_ord_ore.\n IF NOT EXISTS (\n SELECT 1 FROM pg_type\n WHERE typname = 'int4_ord_ore' AND typnamespace = 'eql_v3'::regnamespace\n ) THEN\n CREATE DOMAIN eql_v3.int4_ord_ore AS jsonb\n CHECK (\n jsonb_typeof(VALUE) = 'object'\n AND VALUE ? 'v'\n AND VALUE ? 'i'\n AND VALUE ? 'c'\n AND VALUE ? 'ob'\n AND VALUE->>'v' = '2'\n );\n END IF;\n\n --! @brief Encrypted domain eql_v3.int4_ord.\n IF NOT EXISTS (\n SELECT 1 FROM pg_type\n WHERE typname = 'int4_ord' AND typnamespace = 'eql_v3'::regnamespace\n ) THEN\n CREATE DOMAIN eql_v3.int4_ord AS jsonb\n CHECK (\n jsonb_typeof(VALUE) = 'object'\n AND VALUE ? 'v'\n AND VALUE ? 'i'\n AND VALUE ? 'c'\n AND VALUE ? 'ob'\n AND VALUE->>'v' = '2'\n );\n END IF;\nEND\n$$;\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/int4/int4_ord_functions.sql\n--! @brief Functions for eql_v3.int4_ord.\n\n--! @brief Index extractor for eql_v3.int4_ord.\n--! @param a eql_v3.int4_ord\n--! @return eql_v3.ore_block_u64_8_256\nCREATE FUNCTION eql_v3.ord_term(a eql_v3.int4_ord)\nRETURNS eql_v3.ore_block_u64_8_256\nLANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ore_block_u64_8_256(a::jsonb) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord.\n--! @param a eql_v3.int4_ord\n--! @param b eql_v3.int4_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.int4_ord, b eql_v3.int4_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord.\n--! @param a eql_v3.int4_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.int4_ord, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b::eql_v3.int4_ord) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord.\n--! @param a jsonb\n--! @param b eql_v3.int4_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.int4_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int4_ord) = eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord.\n--! @param a eql_v3.int4_ord\n--! @param b eql_v3.int4_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.int4_ord, b eql_v3.int4_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord.\n--! @param a eql_v3.int4_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.int4_ord, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b::eql_v3.int4_ord) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord.\n--! @param a jsonb\n--! @param b eql_v3.int4_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.int4_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int4_ord) <> eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord.\n--! @param a eql_v3.int4_ord\n--! @param b eql_v3.int4_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.int4_ord, b eql_v3.int4_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord.\n--! @param a eql_v3.int4_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.int4_ord, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b::eql_v3.int4_ord) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord.\n--! @param a jsonb\n--! @param b eql_v3.int4_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.int4_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int4_ord) < eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord.\n--! @param a eql_v3.int4_ord\n--! @param b eql_v3.int4_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.int4_ord, b eql_v3.int4_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord.\n--! @param a eql_v3.int4_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.int4_ord, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b::eql_v3.int4_ord) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord.\n--! @param a jsonb\n--! @param b eql_v3.int4_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.int4_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int4_ord) <= eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord.\n--! @param a eql_v3.int4_ord\n--! @param b eql_v3.int4_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.int4_ord, b eql_v3.int4_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord.\n--! @param a eql_v3.int4_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.int4_ord, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b::eql_v3.int4_ord) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord.\n--! @param a jsonb\n--! @param b eql_v3.int4_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.int4_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int4_ord) > eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord.\n--! @param a eql_v3.int4_ord\n--! @param b eql_v3.int4_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.int4_ord, b eql_v3.int4_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord.\n--! @param a eql_v3.int4_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.int4_ord, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b::eql_v3.int4_ord) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord.\n--! @param a jsonb\n--! @param b eql_v3.int4_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.int4_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int4_ord) >= eql_v3.ord_term(b) $$;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord.\n--! @param a eql_v3.int4_ord\n--! @param b eql_v3.int4_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.int4_ord, b eql_v3.int4_ord)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int4_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord.\n--! @param a eql_v3.int4_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.int4_ord, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int4_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord.\n--! @param a jsonb\n--! @param b eql_v3.int4_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.int4_ord)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int4_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord.\n--! @param a eql_v3.int4_ord\n--! @param b eql_v3.int4_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.int4_ord, b eql_v3.int4_ord)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int4_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord.\n--! @param a eql_v3.int4_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.int4_ord, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int4_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord.\n--! @param a jsonb\n--! @param b eql_v3.int4_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.int4_ord)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int4_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord.\n--! @param a eql_v3.int4_ord\n--! @param selector text\n--! @return eql_v3.int4_ord\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.int4_ord, selector text)\nRETURNS eql_v3.int4_ord IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int4_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord.\n--! @param a eql_v3.int4_ord\n--! @param selector integer\n--! @return eql_v3.int4_ord\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.int4_ord, selector integer)\nRETURNS eql_v3.int4_ord IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int4_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord.\n--! @param a jsonb\n--! @param selector eql_v3.int4_ord\n--! @return eql_v3.int4_ord\nCREATE FUNCTION eql_v3.\"->\"(a jsonb, selector eql_v3.int4_ord)\nRETURNS eql_v3.int4_ord IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int4_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord.\n--! @param a eql_v3.int4_ord\n--! @param selector text\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.int4_ord, selector text)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int4_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord.\n--! @param a eql_v3.int4_ord\n--! @param selector integer\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.int4_ord, selector integer)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int4_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord.\n--! @param a jsonb\n--! @param selector eql_v3.int4_ord\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a jsonb, selector eql_v3.int4_ord)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int4_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord.\n--! @param a eql_v3.int4_ord\n--! @param b text\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?\"(a eql_v3.int4_ord, b text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.int4_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord.\n--! @param a eql_v3.int4_ord\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?|\"(a eql_v3.int4_ord, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.int4_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord.\n--! @param a eql_v3.int4_ord\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?&\"(a eql_v3.int4_ord, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.int4_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord.\n--! @param a eql_v3.int4_ord\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@?\"(a eql_v3.int4_ord, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.int4_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord.\n--! @param a eql_v3.int4_ord\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@@\"(a eql_v3.int4_ord, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.int4_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord.\n--! @param a eql_v3.int4_ord\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#>\"(a eql_v3.int4_ord, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.int4_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord.\n--! @param a eql_v3.int4_ord\n--! @param b text[]\n--! @return text\nCREATE FUNCTION eql_v3.\"#>>\"(a eql_v3.int4_ord, b text[])\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.int4_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord.\n--! @param a eql_v3.int4_ord\n--! @param b text\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int4_ord, b text)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int4_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord.\n--! @param a eql_v3.int4_ord\n--! @param b integer\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int4_ord, b integer)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int4_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord.\n--! @param a eql_v3.int4_ord\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int4_ord, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int4_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord.\n--! @param a eql_v3.int4_ord\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#-\"(a eql_v3.int4_ord, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.int4_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord.\n--! @param a eql_v3.int4_ord\n--! @param b eql_v3.int4_ord\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.int4_ord, b eql_v3.int4_ord)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int4_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord.\n--! @param a eql_v3.int4_ord\n--! @param b jsonb\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.int4_ord, b jsonb)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int4_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord.\n--! @param a jsonb\n--! @param b eql_v3.int4_ord\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a jsonb, b eql_v3.int4_ord)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int4_ord'; END; $$\nLANGUAGE plpgsql;\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/int4/int4_ord_operators.sql\n--! @brief Operators for eql_v3.int4_ord.\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.int4_ord, RIGHTARG = eql_v3.int4_ord,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.int4_ord, RIGHTARG = jsonb,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.int4_ord, RIGHTARG = eql_v3.int4_ord,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.int4_ord, RIGHTARG = jsonb,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.int4_ord, RIGHTARG = eql_v3.int4_ord,\n COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.int4_ord, RIGHTARG = jsonb,\n COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord,\n COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.int4_ord, RIGHTARG = eql_v3.int4_ord,\n COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.int4_ord, RIGHTARG = jsonb,\n COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord,\n COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.int4_ord, RIGHTARG = eql_v3.int4_ord,\n COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.int4_ord, RIGHTARG = jsonb,\n COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord,\n COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.int4_ord, RIGHTARG = eql_v3.int4_ord,\n COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.int4_ord, RIGHTARG = jsonb,\n COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord,\n COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.int4_ord, RIGHTARG = eql_v3.int4_ord\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.int4_ord, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.int4_ord, RIGHTARG = eql_v3.int4_ord\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.int4_ord, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.int4_ord, RIGHTARG = text\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.int4_ord, RIGHTARG = integer\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.int4_ord, RIGHTARG = text\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.int4_ord, RIGHTARG = integer\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord\n);\n\nCREATE OPERATOR ? (\n FUNCTION = eql_v3.\"?\",\n LEFTARG = eql_v3.int4_ord, RIGHTARG = text\n);\n\nCREATE OPERATOR ?| (\n FUNCTION = eql_v3.\"?|\",\n LEFTARG = eql_v3.int4_ord, RIGHTARG = text[]\n);\n\nCREATE OPERATOR ?& (\n FUNCTION = eql_v3.\"?&\",\n LEFTARG = eql_v3.int4_ord, RIGHTARG = text[]\n);\n\nCREATE OPERATOR @? (\n FUNCTION = eql_v3.\"@?\",\n LEFTARG = eql_v3.int4_ord, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR @@ (\n FUNCTION = eql_v3.\"@@\",\n LEFTARG = eql_v3.int4_ord, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR #> (\n FUNCTION = eql_v3.\"#>\",\n LEFTARG = eql_v3.int4_ord, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #>> (\n FUNCTION = eql_v3.\"#>>\",\n LEFTARG = eql_v3.int4_ord, RIGHTARG = text[]\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int4_ord, RIGHTARG = text\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int4_ord, RIGHTARG = integer\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int4_ord, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #- (\n FUNCTION = eql_v3.\"#-\",\n LEFTARG = eql_v3.int4_ord, RIGHTARG = text[]\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.int4_ord, RIGHTARG = eql_v3.int4_ord\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.int4_ord, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord\n);\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/int4/int4_eq_functions.sql\n--! @brief Functions for eql_v3.int4_eq.\n\n--! @brief Index extractor for eql_v3.int4_eq.\n--! @param a eql_v3.int4_eq\n--! @return eql_v3.hmac_256\nCREATE FUNCTION eql_v3.eq_term(a eql_v3.int4_eq)\nRETURNS eql_v3.hmac_256\nLANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.hmac_256(a::jsonb) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_eq.\n--! @param a eql_v3.int4_eq\n--! @param b eql_v3.int4_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.int4_eq, b eql_v3.int4_eq)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a) = eql_v3.eq_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_eq.\n--! @param a eql_v3.int4_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.int4_eq, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a) = eql_v3.eq_term(b::eql_v3.int4_eq) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_eq.\n--! @param a jsonb\n--! @param b eql_v3.int4_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.int4_eq)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a::eql_v3.int4_eq) = eql_v3.eq_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_eq.\n--! @param a eql_v3.int4_eq\n--! @param b eql_v3.int4_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.int4_eq, b eql_v3.int4_eq)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a) <> eql_v3.eq_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_eq.\n--! @param a eql_v3.int4_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.int4_eq, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a) <> eql_v3.eq_term(b::eql_v3.int4_eq) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_eq.\n--! @param a jsonb\n--! @param b eql_v3.int4_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.int4_eq)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a::eql_v3.int4_eq) <> eql_v3.eq_term(b) $$;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a eql_v3.int4_eq\n--! @param b eql_v3.int4_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.int4_eq, b eql_v3.int4_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a eql_v3.int4_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.int4_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a jsonb\n--! @param b eql_v3.int4_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.int4_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a eql_v3.int4_eq\n--! @param b eql_v3.int4_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.int4_eq, b eql_v3.int4_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a eql_v3.int4_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.int4_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a jsonb\n--! @param b eql_v3.int4_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.int4_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a eql_v3.int4_eq\n--! @param b eql_v3.int4_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.int4_eq, b eql_v3.int4_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a eql_v3.int4_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.int4_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a jsonb\n--! @param b eql_v3.int4_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.int4_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a eql_v3.int4_eq\n--! @param b eql_v3.int4_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.int4_eq, b eql_v3.int4_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a eql_v3.int4_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.int4_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a jsonb\n--! @param b eql_v3.int4_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.int4_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a eql_v3.int4_eq\n--! @param b eql_v3.int4_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.int4_eq, b eql_v3.int4_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a eql_v3.int4_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.int4_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a jsonb\n--! @param b eql_v3.int4_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.int4_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a eql_v3.int4_eq\n--! @param b eql_v3.int4_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.int4_eq, b eql_v3.int4_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a eql_v3.int4_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.int4_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a jsonb\n--! @param b eql_v3.int4_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.int4_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a eql_v3.int4_eq\n--! @param selector text\n--! @return eql_v3.int4_eq\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.int4_eq, selector text)\nRETURNS eql_v3.int4_eq IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a eql_v3.int4_eq\n--! @param selector integer\n--! @return eql_v3.int4_eq\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.int4_eq, selector integer)\nRETURNS eql_v3.int4_eq IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a jsonb\n--! @param selector eql_v3.int4_eq\n--! @return eql_v3.int4_eq\nCREATE FUNCTION eql_v3.\"->\"(a jsonb, selector eql_v3.int4_eq)\nRETURNS eql_v3.int4_eq IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a eql_v3.int4_eq\n--! @param selector text\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.int4_eq, selector text)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a eql_v3.int4_eq\n--! @param selector integer\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.int4_eq, selector integer)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a jsonb\n--! @param selector eql_v3.int4_eq\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a jsonb, selector eql_v3.int4_eq)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a eql_v3.int4_eq\n--! @param b text\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?\"(a eql_v3.int4_eq, b text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a eql_v3.int4_eq\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?|\"(a eql_v3.int4_eq, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a eql_v3.int4_eq\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?&\"(a eql_v3.int4_eq, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a eql_v3.int4_eq\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@?\"(a eql_v3.int4_eq, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a eql_v3.int4_eq\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@@\"(a eql_v3.int4_eq, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a eql_v3.int4_eq\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#>\"(a eql_v3.int4_eq, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a eql_v3.int4_eq\n--! @param b text[]\n--! @return text\nCREATE FUNCTION eql_v3.\"#>>\"(a eql_v3.int4_eq, b text[])\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a eql_v3.int4_eq\n--! @param b text\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int4_eq, b text)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a eql_v3.int4_eq\n--! @param b integer\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int4_eq, b integer)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a eql_v3.int4_eq\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int4_eq, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a eql_v3.int4_eq\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#-\"(a eql_v3.int4_eq, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a eql_v3.int4_eq\n--! @param b eql_v3.int4_eq\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.int4_eq, b eql_v3.int4_eq)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a eql_v3.int4_eq\n--! @param b jsonb\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.int4_eq, b jsonb)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a jsonb\n--! @param b eql_v3.int4_eq\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a jsonb, b eql_v3.int4_eq)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file v3/scalars/timestamptz/timestamptz_types.sql\n--! @brief Encrypted-domain types for timestamptz.\n\nDO $$\nBEGIN\n --! @brief Encrypted domain eql_v3.timestamptz.\n IF NOT EXISTS (\n SELECT 1 FROM pg_type\n WHERE typname = 'timestamptz' AND typnamespace = 'eql_v3'::regnamespace\n ) THEN\n CREATE DOMAIN eql_v3.timestamptz AS jsonb\n CHECK (\n jsonb_typeof(VALUE) = 'object'\n AND VALUE ? 'v'\n AND VALUE ? 'i'\n AND VALUE ? 'c'\n AND VALUE->>'v' = '2'\n );\n END IF;\n\n --! @brief Encrypted domain eql_v3.timestamptz_eq.\n IF NOT EXISTS (\n SELECT 1 FROM pg_type\n WHERE typname = 'timestamptz_eq' AND typnamespace = 'eql_v3'::regnamespace\n ) THEN\n CREATE DOMAIN eql_v3.timestamptz_eq AS jsonb\n CHECK (\n jsonb_typeof(VALUE) = 'object'\n AND VALUE ? 'v'\n AND VALUE ? 'i'\n AND VALUE ? 'c'\n AND VALUE ? 'hm'\n AND VALUE->>'v' = '2'\n );\n END IF;\nEND\n$$;\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/timestamptz/timestamptz_eq_functions.sql\n--! @brief Functions for eql_v3.timestamptz_eq.\n\n--! @brief Index extractor for eql_v3.timestamptz_eq.\n--! @param a eql_v3.timestamptz_eq\n--! @return eql_v3.hmac_256\nCREATE FUNCTION eql_v3.eq_term(a eql_v3.timestamptz_eq)\nRETURNS eql_v3.hmac_256\nLANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.hmac_256(a::jsonb) $$;\n\n--! @brief Operator wrapper for eql_v3.timestamptz_eq.\n--! @param a eql_v3.timestamptz_eq\n--! @param b eql_v3.timestamptz_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.timestamptz_eq, b eql_v3.timestamptz_eq)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a) = eql_v3.eq_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.timestamptz_eq.\n--! @param a eql_v3.timestamptz_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.timestamptz_eq, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a) = eql_v3.eq_term(b::eql_v3.timestamptz_eq) $$;\n\n--! @brief Operator wrapper for eql_v3.timestamptz_eq.\n--! @param a jsonb\n--! @param b eql_v3.timestamptz_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.timestamptz_eq)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a::eql_v3.timestamptz_eq) = eql_v3.eq_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.timestamptz_eq.\n--! @param a eql_v3.timestamptz_eq\n--! @param b eql_v3.timestamptz_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.timestamptz_eq, b eql_v3.timestamptz_eq)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a) <> eql_v3.eq_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.timestamptz_eq.\n--! @param a eql_v3.timestamptz_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.timestamptz_eq, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a) <> eql_v3.eq_term(b::eql_v3.timestamptz_eq) $$;\n\n--! @brief Operator wrapper for eql_v3.timestamptz_eq.\n--! @param a jsonb\n--! @param b eql_v3.timestamptz_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.timestamptz_eq)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a::eql_v3.timestamptz_eq) <> eql_v3.eq_term(b) $$;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a eql_v3.timestamptz_eq\n--! @param b eql_v3.timestamptz_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.timestamptz_eq, b eql_v3.timestamptz_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a eql_v3.timestamptz_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.timestamptz_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a jsonb\n--! @param b eql_v3.timestamptz_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.timestamptz_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a eql_v3.timestamptz_eq\n--! @param b eql_v3.timestamptz_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.timestamptz_eq, b eql_v3.timestamptz_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a eql_v3.timestamptz_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.timestamptz_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a jsonb\n--! @param b eql_v3.timestamptz_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.timestamptz_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a eql_v3.timestamptz_eq\n--! @param b eql_v3.timestamptz_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.timestamptz_eq, b eql_v3.timestamptz_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a eql_v3.timestamptz_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.timestamptz_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a jsonb\n--! @param b eql_v3.timestamptz_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.timestamptz_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a eql_v3.timestamptz_eq\n--! @param b eql_v3.timestamptz_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.timestamptz_eq, b eql_v3.timestamptz_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a eql_v3.timestamptz_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.timestamptz_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a jsonb\n--! @param b eql_v3.timestamptz_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.timestamptz_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a eql_v3.timestamptz_eq\n--! @param b eql_v3.timestamptz_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.timestamptz_eq, b eql_v3.timestamptz_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a eql_v3.timestamptz_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.timestamptz_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a jsonb\n--! @param b eql_v3.timestamptz_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.timestamptz_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a eql_v3.timestamptz_eq\n--! @param b eql_v3.timestamptz_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.timestamptz_eq, b eql_v3.timestamptz_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a eql_v3.timestamptz_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.timestamptz_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a jsonb\n--! @param b eql_v3.timestamptz_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.timestamptz_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a eql_v3.timestamptz_eq\n--! @param selector text\n--! @return eql_v3.timestamptz_eq\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.timestamptz_eq, selector text)\nRETURNS eql_v3.timestamptz_eq IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a eql_v3.timestamptz_eq\n--! @param selector integer\n--! @return eql_v3.timestamptz_eq\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.timestamptz_eq, selector integer)\nRETURNS eql_v3.timestamptz_eq IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a jsonb\n--! @param selector eql_v3.timestamptz_eq\n--! @return eql_v3.timestamptz_eq\nCREATE FUNCTION eql_v3.\"->\"(a jsonb, selector eql_v3.timestamptz_eq)\nRETURNS eql_v3.timestamptz_eq IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a eql_v3.timestamptz_eq\n--! @param selector text\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.timestamptz_eq, selector text)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a eql_v3.timestamptz_eq\n--! @param selector integer\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.timestamptz_eq, selector integer)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a jsonb\n--! @param selector eql_v3.timestamptz_eq\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a jsonb, selector eql_v3.timestamptz_eq)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a eql_v3.timestamptz_eq\n--! @param b text\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?\"(a eql_v3.timestamptz_eq, b text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a eql_v3.timestamptz_eq\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?|\"(a eql_v3.timestamptz_eq, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a eql_v3.timestamptz_eq\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?&\"(a eql_v3.timestamptz_eq, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a eql_v3.timestamptz_eq\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@?\"(a eql_v3.timestamptz_eq, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a eql_v3.timestamptz_eq\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@@\"(a eql_v3.timestamptz_eq, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a eql_v3.timestamptz_eq\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#>\"(a eql_v3.timestamptz_eq, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a eql_v3.timestamptz_eq\n--! @param b text[]\n--! @return text\nCREATE FUNCTION eql_v3.\"#>>\"(a eql_v3.timestamptz_eq, b text[])\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a eql_v3.timestamptz_eq\n--! @param b text\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.timestamptz_eq, b text)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a eql_v3.timestamptz_eq\n--! @param b integer\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.timestamptz_eq, b integer)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a eql_v3.timestamptz_eq\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.timestamptz_eq, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a eql_v3.timestamptz_eq\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#-\"(a eql_v3.timestamptz_eq, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a eql_v3.timestamptz_eq\n--! @param b eql_v3.timestamptz_eq\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.timestamptz_eq, b eql_v3.timestamptz_eq)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a eql_v3.timestamptz_eq\n--! @param b jsonb\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.timestamptz_eq, b jsonb)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a jsonb\n--! @param b eql_v3.timestamptz_eq\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a jsonb, b eql_v3.timestamptz_eq)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file v3/scalars/int2/int2_types.sql\n--! @brief Encrypted-domain types for int2.\n\nDO $$\nBEGIN\n --! @brief Encrypted domain eql_v3.int2.\n IF NOT EXISTS (\n SELECT 1 FROM pg_type\n WHERE typname = 'int2' AND typnamespace = 'eql_v3'::regnamespace\n ) THEN\n CREATE DOMAIN eql_v3.int2 AS jsonb\n CHECK (\n jsonb_typeof(VALUE) = 'object'\n AND VALUE ? 'v'\n AND VALUE ? 'i'\n AND VALUE ? 'c'\n AND VALUE->>'v' = '2'\n );\n END IF;\n\n --! @brief Encrypted domain eql_v3.int2_eq.\n IF NOT EXISTS (\n SELECT 1 FROM pg_type\n WHERE typname = 'int2_eq' AND typnamespace = 'eql_v3'::regnamespace\n ) THEN\n CREATE DOMAIN eql_v3.int2_eq AS jsonb\n CHECK (\n jsonb_typeof(VALUE) = 'object'\n AND VALUE ? 'v'\n AND VALUE ? 'i'\n AND VALUE ? 'c'\n AND VALUE ? 'hm'\n AND VALUE->>'v' = '2'\n );\n END IF;\n\n --! @brief Encrypted domain eql_v3.int2_ord_ore.\n IF NOT EXISTS (\n SELECT 1 FROM pg_type\n WHERE typname = 'int2_ord_ore' AND typnamespace = 'eql_v3'::regnamespace\n ) THEN\n CREATE DOMAIN eql_v3.int2_ord_ore AS jsonb\n CHECK (\n jsonb_typeof(VALUE) = 'object'\n AND VALUE ? 'v'\n AND VALUE ? 'i'\n AND VALUE ? 'c'\n AND VALUE ? 'ob'\n AND VALUE->>'v' = '2'\n );\n END IF;\n\n --! @brief Encrypted domain eql_v3.int2_ord.\n IF NOT EXISTS (\n SELECT 1 FROM pg_type\n WHERE typname = 'int2_ord' AND typnamespace = 'eql_v3'::regnamespace\n ) THEN\n CREATE DOMAIN eql_v3.int2_ord AS jsonb\n CHECK (\n jsonb_typeof(VALUE) = 'object'\n AND VALUE ? 'v'\n AND VALUE ? 'i'\n AND VALUE ? 'c'\n AND VALUE ? 'ob'\n AND VALUE->>'v' = '2'\n );\n END IF;\nEND\n$$;\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/int2/int2_ord_ore_functions.sql\n--! @brief Functions for eql_v3.int2_ord_ore.\n\n--! @brief Index extractor for eql_v3.int2_ord_ore.\n--! @param a eql_v3.int2_ord_ore\n--! @return eql_v3.ore_block_u64_8_256\nCREATE FUNCTION eql_v3.ord_term(a eql_v3.int2_ord_ore)\nRETURNS eql_v3.ore_block_u64_8_256\nLANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ore_block_u64_8_256(a::jsonb) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord_ore.\n--! @param a eql_v3.int2_ord_ore\n--! @param b eql_v3.int2_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.int2_ord_ore, b eql_v3.int2_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord_ore.\n--! @param a eql_v3.int2_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.int2_ord_ore, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b::eql_v3.int2_ord_ore) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.int2_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.int2_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int2_ord_ore) = eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord_ore.\n--! @param a eql_v3.int2_ord_ore\n--! @param b eql_v3.int2_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.int2_ord_ore, b eql_v3.int2_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord_ore.\n--! @param a eql_v3.int2_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.int2_ord_ore, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b::eql_v3.int2_ord_ore) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.int2_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.int2_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int2_ord_ore) <> eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord_ore.\n--! @param a eql_v3.int2_ord_ore\n--! @param b eql_v3.int2_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.int2_ord_ore, b eql_v3.int2_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord_ore.\n--! @param a eql_v3.int2_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.int2_ord_ore, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b::eql_v3.int2_ord_ore) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.int2_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.int2_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int2_ord_ore) < eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord_ore.\n--! @param a eql_v3.int2_ord_ore\n--! @param b eql_v3.int2_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.int2_ord_ore, b eql_v3.int2_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord_ore.\n--! @param a eql_v3.int2_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.int2_ord_ore, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b::eql_v3.int2_ord_ore) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.int2_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.int2_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int2_ord_ore) <= eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord_ore.\n--! @param a eql_v3.int2_ord_ore\n--! @param b eql_v3.int2_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.int2_ord_ore, b eql_v3.int2_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord_ore.\n--! @param a eql_v3.int2_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.int2_ord_ore, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b::eql_v3.int2_ord_ore) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.int2_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.int2_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int2_ord_ore) > eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord_ore.\n--! @param a eql_v3.int2_ord_ore\n--! @param b eql_v3.int2_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.int2_ord_ore, b eql_v3.int2_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord_ore.\n--! @param a eql_v3.int2_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.int2_ord_ore, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b::eql_v3.int2_ord_ore) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.int2_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.int2_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int2_ord_ore) >= eql_v3.ord_term(b) $$;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore.\n--! @param a eql_v3.int2_ord_ore\n--! @param b eql_v3.int2_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.int2_ord_ore, b eql_v3.int2_ord_ore)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int2_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore.\n--! @param a eql_v3.int2_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.int2_ord_ore, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int2_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.int2_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.int2_ord_ore)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int2_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore.\n--! @param a eql_v3.int2_ord_ore\n--! @param b eql_v3.int2_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.int2_ord_ore, b eql_v3.int2_ord_ore)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int2_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore.\n--! @param a eql_v3.int2_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.int2_ord_ore, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int2_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.int2_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.int2_ord_ore)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int2_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore.\n--! @param a eql_v3.int2_ord_ore\n--! @param selector text\n--! @return eql_v3.int2_ord_ore\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.int2_ord_ore, selector text)\nRETURNS eql_v3.int2_ord_ore IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int2_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore.\n--! @param a eql_v3.int2_ord_ore\n--! @param selector integer\n--! @return eql_v3.int2_ord_ore\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.int2_ord_ore, selector integer)\nRETURNS eql_v3.int2_ord_ore IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int2_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore.\n--! @param a jsonb\n--! @param selector eql_v3.int2_ord_ore\n--! @return eql_v3.int2_ord_ore\nCREATE FUNCTION eql_v3.\"->\"(a jsonb, selector eql_v3.int2_ord_ore)\nRETURNS eql_v3.int2_ord_ore IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int2_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore.\n--! @param a eql_v3.int2_ord_ore\n--! @param selector text\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.int2_ord_ore, selector text)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int2_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore.\n--! @param a eql_v3.int2_ord_ore\n--! @param selector integer\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.int2_ord_ore, selector integer)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int2_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore.\n--! @param a jsonb\n--! @param selector eql_v3.int2_ord_ore\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a jsonb, selector eql_v3.int2_ord_ore)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int2_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore.\n--! @param a eql_v3.int2_ord_ore\n--! @param b text\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?\"(a eql_v3.int2_ord_ore, b text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.int2_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore.\n--! @param a eql_v3.int2_ord_ore\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?|\"(a eql_v3.int2_ord_ore, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.int2_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore.\n--! @param a eql_v3.int2_ord_ore\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?&\"(a eql_v3.int2_ord_ore, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.int2_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore.\n--! @param a eql_v3.int2_ord_ore\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@?\"(a eql_v3.int2_ord_ore, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.int2_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore.\n--! @param a eql_v3.int2_ord_ore\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@@\"(a eql_v3.int2_ord_ore, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.int2_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore.\n--! @param a eql_v3.int2_ord_ore\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#>\"(a eql_v3.int2_ord_ore, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.int2_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore.\n--! @param a eql_v3.int2_ord_ore\n--! @param b text[]\n--! @return text\nCREATE FUNCTION eql_v3.\"#>>\"(a eql_v3.int2_ord_ore, b text[])\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.int2_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore.\n--! @param a eql_v3.int2_ord_ore\n--! @param b text\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int2_ord_ore, b text)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int2_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore.\n--! @param a eql_v3.int2_ord_ore\n--! @param b integer\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int2_ord_ore, b integer)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int2_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore.\n--! @param a eql_v3.int2_ord_ore\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int2_ord_ore, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int2_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore.\n--! @param a eql_v3.int2_ord_ore\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#-\"(a eql_v3.int2_ord_ore, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.int2_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore.\n--! @param a eql_v3.int2_ord_ore\n--! @param b eql_v3.int2_ord_ore\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.int2_ord_ore, b eql_v3.int2_ord_ore)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int2_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore.\n--! @param a eql_v3.int2_ord_ore\n--! @param b jsonb\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.int2_ord_ore, b jsonb)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int2_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.int2_ord_ore\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a jsonb, b eql_v3.int2_ord_ore)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int2_ord_ore'; END; $$\nLANGUAGE plpgsql;\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/int2/int2_ord_functions.sql\n--! @brief Functions for eql_v3.int2_ord.\n\n--! @brief Index extractor for eql_v3.int2_ord.\n--! @param a eql_v3.int2_ord\n--! @return eql_v3.ore_block_u64_8_256\nCREATE FUNCTION eql_v3.ord_term(a eql_v3.int2_ord)\nRETURNS eql_v3.ore_block_u64_8_256\nLANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ore_block_u64_8_256(a::jsonb) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord.\n--! @param a eql_v3.int2_ord\n--! @param b eql_v3.int2_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.int2_ord, b eql_v3.int2_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord.\n--! @param a eql_v3.int2_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.int2_ord, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b::eql_v3.int2_ord) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord.\n--! @param a jsonb\n--! @param b eql_v3.int2_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.int2_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int2_ord) = eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord.\n--! @param a eql_v3.int2_ord\n--! @param b eql_v3.int2_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.int2_ord, b eql_v3.int2_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord.\n--! @param a eql_v3.int2_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.int2_ord, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b::eql_v3.int2_ord) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord.\n--! @param a jsonb\n--! @param b eql_v3.int2_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.int2_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int2_ord) <> eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord.\n--! @param a eql_v3.int2_ord\n--! @param b eql_v3.int2_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.int2_ord, b eql_v3.int2_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord.\n--! @param a eql_v3.int2_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.int2_ord, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b::eql_v3.int2_ord) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord.\n--! @param a jsonb\n--! @param b eql_v3.int2_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.int2_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int2_ord) < eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord.\n--! @param a eql_v3.int2_ord\n--! @param b eql_v3.int2_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.int2_ord, b eql_v3.int2_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord.\n--! @param a eql_v3.int2_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.int2_ord, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b::eql_v3.int2_ord) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord.\n--! @param a jsonb\n--! @param b eql_v3.int2_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.int2_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int2_ord) <= eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord.\n--! @param a eql_v3.int2_ord\n--! @param b eql_v3.int2_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.int2_ord, b eql_v3.int2_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord.\n--! @param a eql_v3.int2_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.int2_ord, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b::eql_v3.int2_ord) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord.\n--! @param a jsonb\n--! @param b eql_v3.int2_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.int2_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int2_ord) > eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord.\n--! @param a eql_v3.int2_ord\n--! @param b eql_v3.int2_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.int2_ord, b eql_v3.int2_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord.\n--! @param a eql_v3.int2_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.int2_ord, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b::eql_v3.int2_ord) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord.\n--! @param a jsonb\n--! @param b eql_v3.int2_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.int2_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int2_ord) >= eql_v3.ord_term(b) $$;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord.\n--! @param a eql_v3.int2_ord\n--! @param b eql_v3.int2_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.int2_ord, b eql_v3.int2_ord)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int2_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord.\n--! @param a eql_v3.int2_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.int2_ord, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int2_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord.\n--! @param a jsonb\n--! @param b eql_v3.int2_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.int2_ord)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int2_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord.\n--! @param a eql_v3.int2_ord\n--! @param b eql_v3.int2_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.int2_ord, b eql_v3.int2_ord)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int2_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord.\n--! @param a eql_v3.int2_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.int2_ord, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int2_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord.\n--! @param a jsonb\n--! @param b eql_v3.int2_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.int2_ord)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int2_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord.\n--! @param a eql_v3.int2_ord\n--! @param selector text\n--! @return eql_v3.int2_ord\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.int2_ord, selector text)\nRETURNS eql_v3.int2_ord IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int2_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord.\n--! @param a eql_v3.int2_ord\n--! @param selector integer\n--! @return eql_v3.int2_ord\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.int2_ord, selector integer)\nRETURNS eql_v3.int2_ord IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int2_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord.\n--! @param a jsonb\n--! @param selector eql_v3.int2_ord\n--! @return eql_v3.int2_ord\nCREATE FUNCTION eql_v3.\"->\"(a jsonb, selector eql_v3.int2_ord)\nRETURNS eql_v3.int2_ord IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int2_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord.\n--! @param a eql_v3.int2_ord\n--! @param selector text\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.int2_ord, selector text)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int2_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord.\n--! @param a eql_v3.int2_ord\n--! @param selector integer\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.int2_ord, selector integer)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int2_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord.\n--! @param a jsonb\n--! @param selector eql_v3.int2_ord\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a jsonb, selector eql_v3.int2_ord)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int2_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord.\n--! @param a eql_v3.int2_ord\n--! @param b text\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?\"(a eql_v3.int2_ord, b text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.int2_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord.\n--! @param a eql_v3.int2_ord\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?|\"(a eql_v3.int2_ord, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.int2_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord.\n--! @param a eql_v3.int2_ord\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?&\"(a eql_v3.int2_ord, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.int2_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord.\n--! @param a eql_v3.int2_ord\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@?\"(a eql_v3.int2_ord, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.int2_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord.\n--! @param a eql_v3.int2_ord\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@@\"(a eql_v3.int2_ord, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.int2_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord.\n--! @param a eql_v3.int2_ord\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#>\"(a eql_v3.int2_ord, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.int2_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord.\n--! @param a eql_v3.int2_ord\n--! @param b text[]\n--! @return text\nCREATE FUNCTION eql_v3.\"#>>\"(a eql_v3.int2_ord, b text[])\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.int2_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord.\n--! @param a eql_v3.int2_ord\n--! @param b text\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int2_ord, b text)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int2_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord.\n--! @param a eql_v3.int2_ord\n--! @param b integer\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int2_ord, b integer)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int2_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord.\n--! @param a eql_v3.int2_ord\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int2_ord, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int2_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord.\n--! @param a eql_v3.int2_ord\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#-\"(a eql_v3.int2_ord, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.int2_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord.\n--! @param a eql_v3.int2_ord\n--! @param b eql_v3.int2_ord\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.int2_ord, b eql_v3.int2_ord)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int2_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord.\n--! @param a eql_v3.int2_ord\n--! @param b jsonb\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.int2_ord, b jsonb)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int2_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord.\n--! @param a jsonb\n--! @param b eql_v3.int2_ord\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a jsonb, b eql_v3.int2_ord)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int2_ord'; END; $$\nLANGUAGE plpgsql;\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/int2/int2_ord_operators.sql\n--! @brief Operators for eql_v3.int2_ord.\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.int2_ord, RIGHTARG = eql_v3.int2_ord,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.int2_ord, RIGHTARG = jsonb,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.int2_ord, RIGHTARG = eql_v3.int2_ord,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.int2_ord, RIGHTARG = jsonb,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.int2_ord, RIGHTARG = eql_v3.int2_ord,\n COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.int2_ord, RIGHTARG = jsonb,\n COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord,\n COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.int2_ord, RIGHTARG = eql_v3.int2_ord,\n COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.int2_ord, RIGHTARG = jsonb,\n COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord,\n COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.int2_ord, RIGHTARG = eql_v3.int2_ord,\n COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.int2_ord, RIGHTARG = jsonb,\n COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord,\n COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.int2_ord, RIGHTARG = eql_v3.int2_ord,\n COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.int2_ord, RIGHTARG = jsonb,\n COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord,\n COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.int2_ord, RIGHTARG = eql_v3.int2_ord\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.int2_ord, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.int2_ord, RIGHTARG = eql_v3.int2_ord\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.int2_ord, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.int2_ord, RIGHTARG = text\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.int2_ord, RIGHTARG = integer\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.int2_ord, RIGHTARG = text\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.int2_ord, RIGHTARG = integer\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord\n);\n\nCREATE OPERATOR ? (\n FUNCTION = eql_v3.\"?\",\n LEFTARG = eql_v3.int2_ord, RIGHTARG = text\n);\n\nCREATE OPERATOR ?| (\n FUNCTION = eql_v3.\"?|\",\n LEFTARG = eql_v3.int2_ord, RIGHTARG = text[]\n);\n\nCREATE OPERATOR ?& (\n FUNCTION = eql_v3.\"?&\",\n LEFTARG = eql_v3.int2_ord, RIGHTARG = text[]\n);\n\nCREATE OPERATOR @? (\n FUNCTION = eql_v3.\"@?\",\n LEFTARG = eql_v3.int2_ord, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR @@ (\n FUNCTION = eql_v3.\"@@\",\n LEFTARG = eql_v3.int2_ord, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR #> (\n FUNCTION = eql_v3.\"#>\",\n LEFTARG = eql_v3.int2_ord, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #>> (\n FUNCTION = eql_v3.\"#>>\",\n LEFTARG = eql_v3.int2_ord, RIGHTARG = text[]\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int2_ord, RIGHTARG = text\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int2_ord, RIGHTARG = integer\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int2_ord, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #- (\n FUNCTION = eql_v3.\"#-\",\n LEFTARG = eql_v3.int2_ord, RIGHTARG = text[]\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.int2_ord, RIGHTARG = eql_v3.int2_ord\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.int2_ord, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord\n);\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/int2/int2_functions.sql\n--! @brief Functions for eql_v3.int2.\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a eql_v3.int2\n--! @param b eql_v3.int2\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.int2, b eql_v3.int2)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a eql_v3.int2\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.int2, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a jsonb\n--! @param b eql_v3.int2\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.int2)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a eql_v3.int2\n--! @param b eql_v3.int2\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.int2, b eql_v3.int2)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a eql_v3.int2\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.int2, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a jsonb\n--! @param b eql_v3.int2\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.int2)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a eql_v3.int2\n--! @param b eql_v3.int2\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.int2, b eql_v3.int2)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a eql_v3.int2\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.int2, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a jsonb\n--! @param b eql_v3.int2\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.int2)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a eql_v3.int2\n--! @param b eql_v3.int2\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.int2, b eql_v3.int2)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a eql_v3.int2\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.int2, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a jsonb\n--! @param b eql_v3.int2\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.int2)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a eql_v3.int2\n--! @param b eql_v3.int2\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.int2, b eql_v3.int2)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a eql_v3.int2\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.int2, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a jsonb\n--! @param b eql_v3.int2\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.int2)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a eql_v3.int2\n--! @param b eql_v3.int2\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.int2, b eql_v3.int2)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a eql_v3.int2\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.int2, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a jsonb\n--! @param b eql_v3.int2\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.int2)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a eql_v3.int2\n--! @param b eql_v3.int2\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.int2, b eql_v3.int2)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a eql_v3.int2\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.int2, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a jsonb\n--! @param b eql_v3.int2\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.int2)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a eql_v3.int2\n--! @param b eql_v3.int2\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.int2, b eql_v3.int2)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a eql_v3.int2\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.int2, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a jsonb\n--! @param b eql_v3.int2\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.int2)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a eql_v3.int2\n--! @param selector text\n--! @return eql_v3.int2\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.int2, selector text)\nRETURNS eql_v3.int2 IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a eql_v3.int2\n--! @param selector integer\n--! @return eql_v3.int2\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.int2, selector integer)\nRETURNS eql_v3.int2 IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a jsonb\n--! @param selector eql_v3.int2\n--! @return eql_v3.int2\nCREATE FUNCTION eql_v3.\"->\"(a jsonb, selector eql_v3.int2)\nRETURNS eql_v3.int2 IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a eql_v3.int2\n--! @param selector text\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.int2, selector text)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a eql_v3.int2\n--! @param selector integer\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.int2, selector integer)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a jsonb\n--! @param selector eql_v3.int2\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a jsonb, selector eql_v3.int2)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a eql_v3.int2\n--! @param b text\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?\"(a eql_v3.int2, b text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a eql_v3.int2\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?|\"(a eql_v3.int2, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a eql_v3.int2\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?&\"(a eql_v3.int2, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a eql_v3.int2\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@?\"(a eql_v3.int2, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a eql_v3.int2\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@@\"(a eql_v3.int2, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a eql_v3.int2\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#>\"(a eql_v3.int2, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a eql_v3.int2\n--! @param b text[]\n--! @return text\nCREATE FUNCTION eql_v3.\"#>>\"(a eql_v3.int2, b text[])\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a eql_v3.int2\n--! @param b text\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int2, b text)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a eql_v3.int2\n--! @param b integer\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int2, b integer)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a eql_v3.int2\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int2, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a eql_v3.int2\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#-\"(a eql_v3.int2, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a eql_v3.int2\n--! @param b eql_v3.int2\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.int2, b eql_v3.int2)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a eql_v3.int2\n--! @param b jsonb\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.int2, b jsonb)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a jsonb\n--! @param b eql_v3.int2\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a jsonb, b eql_v3.int2)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/int2/int2_ord_ore_operators.sql\n--! @brief Operators for eql_v3.int2_ord_ore.\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = eql_v3.int2_ord_ore,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = jsonb,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord_ore,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = eql_v3.int2_ord_ore,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = jsonb,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord_ore,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = eql_v3.int2_ord_ore,\n COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = jsonb,\n COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord_ore,\n COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = eql_v3.int2_ord_ore,\n COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = jsonb,\n COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord_ore,\n COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = eql_v3.int2_ord_ore,\n COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = jsonb,\n COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord_ore,\n COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = eql_v3.int2_ord_ore,\n COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = jsonb,\n COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord_ore,\n COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = eql_v3.int2_ord_ore\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord_ore\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = eql_v3.int2_ord_ore\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord_ore\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = text\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = integer\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord_ore\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = text\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = integer\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord_ore\n);\n\nCREATE OPERATOR ? (\n FUNCTION = eql_v3.\"?\",\n LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = text\n);\n\nCREATE OPERATOR ?| (\n FUNCTION = eql_v3.\"?|\",\n LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = text[]\n);\n\nCREATE OPERATOR ?& (\n FUNCTION = eql_v3.\"?&\",\n LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = text[]\n);\n\nCREATE OPERATOR @? (\n FUNCTION = eql_v3.\"@?\",\n LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR @@ (\n FUNCTION = eql_v3.\"@@\",\n LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR #> (\n FUNCTION = eql_v3.\"#>\",\n LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #>> (\n FUNCTION = eql_v3.\"#>>\",\n LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = text[]\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = text\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = integer\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #- (\n FUNCTION = eql_v3.\"#-\",\n LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = text[]\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = eql_v3.int2_ord_ore\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord_ore\n);\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file v3/scalars/date/date_types.sql\n--! @brief Encrypted-domain types for date.\n\nDO $$\nBEGIN\n --! @brief Encrypted domain eql_v3.date.\n IF NOT EXISTS (\n SELECT 1 FROM pg_type\n WHERE typname = 'date' AND typnamespace = 'eql_v3'::regnamespace\n ) THEN\n CREATE DOMAIN eql_v3.date AS jsonb\n CHECK (\n jsonb_typeof(VALUE) = 'object'\n AND VALUE ? 'v'\n AND VALUE ? 'i'\n AND VALUE ? 'c'\n AND VALUE->>'v' = '2'\n );\n END IF;\n\n --! @brief Encrypted domain eql_v3.date_eq.\n IF NOT EXISTS (\n SELECT 1 FROM pg_type\n WHERE typname = 'date_eq' AND typnamespace = 'eql_v3'::regnamespace\n ) THEN\n CREATE DOMAIN eql_v3.date_eq AS jsonb\n CHECK (\n jsonb_typeof(VALUE) = 'object'\n AND VALUE ? 'v'\n AND VALUE ? 'i'\n AND VALUE ? 'c'\n AND VALUE ? 'hm'\n AND VALUE->>'v' = '2'\n );\n END IF;\n\n --! @brief Encrypted domain eql_v3.date_ord_ore.\n IF NOT EXISTS (\n SELECT 1 FROM pg_type\n WHERE typname = 'date_ord_ore' AND typnamespace = 'eql_v3'::regnamespace\n ) THEN\n CREATE DOMAIN eql_v3.date_ord_ore AS jsonb\n CHECK (\n jsonb_typeof(VALUE) = 'object'\n AND VALUE ? 'v'\n AND VALUE ? 'i'\n AND VALUE ? 'c'\n AND VALUE ? 'ob'\n AND VALUE->>'v' = '2'\n );\n END IF;\n\n --! @brief Encrypted domain eql_v3.date_ord.\n IF NOT EXISTS (\n SELECT 1 FROM pg_type\n WHERE typname = 'date_ord' AND typnamespace = 'eql_v3'::regnamespace\n ) THEN\n CREATE DOMAIN eql_v3.date_ord AS jsonb\n CHECK (\n jsonb_typeof(VALUE) = 'object'\n AND VALUE ? 'v'\n AND VALUE ? 'i'\n AND VALUE ? 'c'\n AND VALUE ? 'ob'\n AND VALUE->>'v' = '2'\n );\n END IF;\nEND\n$$;\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/date/date_ord_ore_functions.sql\n--! @brief Functions for eql_v3.date_ord_ore.\n\n--! @brief Index extractor for eql_v3.date_ord_ore.\n--! @param a eql_v3.date_ord_ore\n--! @return eql_v3.ore_block_u64_8_256\nCREATE FUNCTION eql_v3.ord_term(a eql_v3.date_ord_ore)\nRETURNS eql_v3.ore_block_u64_8_256\nLANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ore_block_u64_8_256(a::jsonb) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord_ore.\n--! @param a eql_v3.date_ord_ore\n--! @param b eql_v3.date_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.date_ord_ore, b eql_v3.date_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord_ore.\n--! @param a eql_v3.date_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.date_ord_ore, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b::eql_v3.date_ord_ore) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.date_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.date_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.date_ord_ore) = eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord_ore.\n--! @param a eql_v3.date_ord_ore\n--! @param b eql_v3.date_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.date_ord_ore, b eql_v3.date_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord_ore.\n--! @param a eql_v3.date_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.date_ord_ore, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b::eql_v3.date_ord_ore) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.date_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.date_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.date_ord_ore) <> eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord_ore.\n--! @param a eql_v3.date_ord_ore\n--! @param b eql_v3.date_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.date_ord_ore, b eql_v3.date_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord_ore.\n--! @param a eql_v3.date_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.date_ord_ore, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b::eql_v3.date_ord_ore) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.date_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.date_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.date_ord_ore) < eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord_ore.\n--! @param a eql_v3.date_ord_ore\n--! @param b eql_v3.date_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.date_ord_ore, b eql_v3.date_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord_ore.\n--! @param a eql_v3.date_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.date_ord_ore, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b::eql_v3.date_ord_ore) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.date_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.date_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.date_ord_ore) <= eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord_ore.\n--! @param a eql_v3.date_ord_ore\n--! @param b eql_v3.date_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.date_ord_ore, b eql_v3.date_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord_ore.\n--! @param a eql_v3.date_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.date_ord_ore, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b::eql_v3.date_ord_ore) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.date_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.date_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.date_ord_ore) > eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord_ore.\n--! @param a eql_v3.date_ord_ore\n--! @param b eql_v3.date_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.date_ord_ore, b eql_v3.date_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord_ore.\n--! @param a eql_v3.date_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.date_ord_ore, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b::eql_v3.date_ord_ore) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.date_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.date_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.date_ord_ore) >= eql_v3.ord_term(b) $$;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord_ore.\n--! @param a eql_v3.date_ord_ore\n--! @param b eql_v3.date_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.date_ord_ore, b eql_v3.date_ord_ore)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.date_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord_ore.\n--! @param a eql_v3.date_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.date_ord_ore, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.date_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.date_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.date_ord_ore)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.date_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord_ore.\n--! @param a eql_v3.date_ord_ore\n--! @param b eql_v3.date_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.date_ord_ore, b eql_v3.date_ord_ore)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.date_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord_ore.\n--! @param a eql_v3.date_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.date_ord_ore, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.date_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.date_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.date_ord_ore)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.date_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord_ore.\n--! @param a eql_v3.date_ord_ore\n--! @param selector text\n--! @return eql_v3.date_ord_ore\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.date_ord_ore, selector text)\nRETURNS eql_v3.date_ord_ore IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.date_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord_ore.\n--! @param a eql_v3.date_ord_ore\n--! @param selector integer\n--! @return eql_v3.date_ord_ore\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.date_ord_ore, selector integer)\nRETURNS eql_v3.date_ord_ore IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.date_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord_ore.\n--! @param a jsonb\n--! @param selector eql_v3.date_ord_ore\n--! @return eql_v3.date_ord_ore\nCREATE FUNCTION eql_v3.\"->\"(a jsonb, selector eql_v3.date_ord_ore)\nRETURNS eql_v3.date_ord_ore IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.date_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord_ore.\n--! @param a eql_v3.date_ord_ore\n--! @param selector text\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.date_ord_ore, selector text)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.date_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord_ore.\n--! @param a eql_v3.date_ord_ore\n--! @param selector integer\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.date_ord_ore, selector integer)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.date_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord_ore.\n--! @param a jsonb\n--! @param selector eql_v3.date_ord_ore\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a jsonb, selector eql_v3.date_ord_ore)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.date_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord_ore.\n--! @param a eql_v3.date_ord_ore\n--! @param b text\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?\"(a eql_v3.date_ord_ore, b text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.date_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord_ore.\n--! @param a eql_v3.date_ord_ore\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?|\"(a eql_v3.date_ord_ore, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.date_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord_ore.\n--! @param a eql_v3.date_ord_ore\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?&\"(a eql_v3.date_ord_ore, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.date_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord_ore.\n--! @param a eql_v3.date_ord_ore\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@?\"(a eql_v3.date_ord_ore, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.date_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord_ore.\n--! @param a eql_v3.date_ord_ore\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@@\"(a eql_v3.date_ord_ore, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.date_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord_ore.\n--! @param a eql_v3.date_ord_ore\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#>\"(a eql_v3.date_ord_ore, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.date_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord_ore.\n--! @param a eql_v3.date_ord_ore\n--! @param b text[]\n--! @return text\nCREATE FUNCTION eql_v3.\"#>>\"(a eql_v3.date_ord_ore, b text[])\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.date_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord_ore.\n--! @param a eql_v3.date_ord_ore\n--! @param b text\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.date_ord_ore, b text)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.date_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord_ore.\n--! @param a eql_v3.date_ord_ore\n--! @param b integer\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.date_ord_ore, b integer)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.date_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord_ore.\n--! @param a eql_v3.date_ord_ore\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.date_ord_ore, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.date_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord_ore.\n--! @param a eql_v3.date_ord_ore\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#-\"(a eql_v3.date_ord_ore, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.date_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord_ore.\n--! @param a eql_v3.date_ord_ore\n--! @param b eql_v3.date_ord_ore\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.date_ord_ore, b eql_v3.date_ord_ore)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.date_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord_ore.\n--! @param a eql_v3.date_ord_ore\n--! @param b jsonb\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.date_ord_ore, b jsonb)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.date_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.date_ord_ore\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a jsonb, b eql_v3.date_ord_ore)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.date_ord_ore'; END; $$\nLANGUAGE plpgsql;\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/date/date_eq_functions.sql\n--! @brief Functions for eql_v3.date_eq.\n\n--! @brief Index extractor for eql_v3.date_eq.\n--! @param a eql_v3.date_eq\n--! @return eql_v3.hmac_256\nCREATE FUNCTION eql_v3.eq_term(a eql_v3.date_eq)\nRETURNS eql_v3.hmac_256\nLANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.hmac_256(a::jsonb) $$;\n\n--! @brief Operator wrapper for eql_v3.date_eq.\n--! @param a eql_v3.date_eq\n--! @param b eql_v3.date_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.date_eq, b eql_v3.date_eq)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a) = eql_v3.eq_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.date_eq.\n--! @param a eql_v3.date_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.date_eq, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a) = eql_v3.eq_term(b::eql_v3.date_eq) $$;\n\n--! @brief Operator wrapper for eql_v3.date_eq.\n--! @param a jsonb\n--! @param b eql_v3.date_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.date_eq)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a::eql_v3.date_eq) = eql_v3.eq_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.date_eq.\n--! @param a eql_v3.date_eq\n--! @param b eql_v3.date_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.date_eq, b eql_v3.date_eq)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a) <> eql_v3.eq_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.date_eq.\n--! @param a eql_v3.date_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.date_eq, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a) <> eql_v3.eq_term(b::eql_v3.date_eq) $$;\n\n--! @brief Operator wrapper for eql_v3.date_eq.\n--! @param a jsonb\n--! @param b eql_v3.date_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.date_eq)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a::eql_v3.date_eq) <> eql_v3.eq_term(b) $$;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a eql_v3.date_eq\n--! @param b eql_v3.date_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.date_eq, b eql_v3.date_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a eql_v3.date_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.date_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a jsonb\n--! @param b eql_v3.date_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.date_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a eql_v3.date_eq\n--! @param b eql_v3.date_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.date_eq, b eql_v3.date_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a eql_v3.date_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.date_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a jsonb\n--! @param b eql_v3.date_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.date_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a eql_v3.date_eq\n--! @param b eql_v3.date_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.date_eq, b eql_v3.date_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a eql_v3.date_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.date_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a jsonb\n--! @param b eql_v3.date_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.date_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a eql_v3.date_eq\n--! @param b eql_v3.date_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.date_eq, b eql_v3.date_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a eql_v3.date_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.date_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a jsonb\n--! @param b eql_v3.date_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.date_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a eql_v3.date_eq\n--! @param b eql_v3.date_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.date_eq, b eql_v3.date_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a eql_v3.date_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.date_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a jsonb\n--! @param b eql_v3.date_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.date_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a eql_v3.date_eq\n--! @param b eql_v3.date_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.date_eq, b eql_v3.date_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a eql_v3.date_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.date_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a jsonb\n--! @param b eql_v3.date_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.date_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a eql_v3.date_eq\n--! @param selector text\n--! @return eql_v3.date_eq\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.date_eq, selector text)\nRETURNS eql_v3.date_eq IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a eql_v3.date_eq\n--! @param selector integer\n--! @return eql_v3.date_eq\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.date_eq, selector integer)\nRETURNS eql_v3.date_eq IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a jsonb\n--! @param selector eql_v3.date_eq\n--! @return eql_v3.date_eq\nCREATE FUNCTION eql_v3.\"->\"(a jsonb, selector eql_v3.date_eq)\nRETURNS eql_v3.date_eq IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a eql_v3.date_eq\n--! @param selector text\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.date_eq, selector text)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a eql_v3.date_eq\n--! @param selector integer\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.date_eq, selector integer)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a jsonb\n--! @param selector eql_v3.date_eq\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a jsonb, selector eql_v3.date_eq)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a eql_v3.date_eq\n--! @param b text\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?\"(a eql_v3.date_eq, b text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a eql_v3.date_eq\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?|\"(a eql_v3.date_eq, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a eql_v3.date_eq\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?&\"(a eql_v3.date_eq, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a eql_v3.date_eq\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@?\"(a eql_v3.date_eq, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a eql_v3.date_eq\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@@\"(a eql_v3.date_eq, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a eql_v3.date_eq\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#>\"(a eql_v3.date_eq, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a eql_v3.date_eq\n--! @param b text[]\n--! @return text\nCREATE FUNCTION eql_v3.\"#>>\"(a eql_v3.date_eq, b text[])\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a eql_v3.date_eq\n--! @param b text\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.date_eq, b text)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a eql_v3.date_eq\n--! @param b integer\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.date_eq, b integer)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a eql_v3.date_eq\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.date_eq, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a eql_v3.date_eq\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#-\"(a eql_v3.date_eq, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a eql_v3.date_eq\n--! @param b eql_v3.date_eq\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.date_eq, b eql_v3.date_eq)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a eql_v3.date_eq\n--! @param b jsonb\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.date_eq, b jsonb)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a jsonb\n--! @param b eql_v3.date_eq\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a jsonb, b eql_v3.date_eq)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/date/date_functions.sql\n--! @brief Functions for eql_v3.date.\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a eql_v3.date\n--! @param b eql_v3.date\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.date, b eql_v3.date)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a eql_v3.date\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.date, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a jsonb\n--! @param b eql_v3.date\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.date)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a eql_v3.date\n--! @param b eql_v3.date\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.date, b eql_v3.date)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a eql_v3.date\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.date, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a jsonb\n--! @param b eql_v3.date\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.date)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a eql_v3.date\n--! @param b eql_v3.date\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.date, b eql_v3.date)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a eql_v3.date\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.date, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a jsonb\n--! @param b eql_v3.date\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.date)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a eql_v3.date\n--! @param b eql_v3.date\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.date, b eql_v3.date)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a eql_v3.date\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.date, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a jsonb\n--! @param b eql_v3.date\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.date)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a eql_v3.date\n--! @param b eql_v3.date\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.date, b eql_v3.date)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a eql_v3.date\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.date, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a jsonb\n--! @param b eql_v3.date\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.date)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a eql_v3.date\n--! @param b eql_v3.date\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.date, b eql_v3.date)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a eql_v3.date\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.date, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a jsonb\n--! @param b eql_v3.date\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.date)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a eql_v3.date\n--! @param b eql_v3.date\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.date, b eql_v3.date)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a eql_v3.date\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.date, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a jsonb\n--! @param b eql_v3.date\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.date)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a eql_v3.date\n--! @param b eql_v3.date\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.date, b eql_v3.date)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a eql_v3.date\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.date, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a jsonb\n--! @param b eql_v3.date\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.date)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a eql_v3.date\n--! @param selector text\n--! @return eql_v3.date\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.date, selector text)\nRETURNS eql_v3.date IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a eql_v3.date\n--! @param selector integer\n--! @return eql_v3.date\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.date, selector integer)\nRETURNS eql_v3.date IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a jsonb\n--! @param selector eql_v3.date\n--! @return eql_v3.date\nCREATE FUNCTION eql_v3.\"->\"(a jsonb, selector eql_v3.date)\nRETURNS eql_v3.date IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a eql_v3.date\n--! @param selector text\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.date, selector text)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a eql_v3.date\n--! @param selector integer\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.date, selector integer)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a jsonb\n--! @param selector eql_v3.date\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a jsonb, selector eql_v3.date)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a eql_v3.date\n--! @param b text\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?\"(a eql_v3.date, b text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a eql_v3.date\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?|\"(a eql_v3.date, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a eql_v3.date\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?&\"(a eql_v3.date, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a eql_v3.date\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@?\"(a eql_v3.date, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a eql_v3.date\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@@\"(a eql_v3.date, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a eql_v3.date\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#>\"(a eql_v3.date, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a eql_v3.date\n--! @param b text[]\n--! @return text\nCREATE FUNCTION eql_v3.\"#>>\"(a eql_v3.date, b text[])\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a eql_v3.date\n--! @param b text\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.date, b text)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a eql_v3.date\n--! @param b integer\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.date, b integer)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a eql_v3.date\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.date, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a eql_v3.date\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#-\"(a eql_v3.date, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a eql_v3.date\n--! @param b eql_v3.date\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.date, b eql_v3.date)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a eql_v3.date\n--! @param b jsonb\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.date, b jsonb)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a jsonb\n--! @param b eql_v3.date\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a jsonb, b eql_v3.date)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/date/date_ord_ore_operators.sql\n--! @brief Operators for eql_v3.date_ord_ore.\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.date_ord_ore, RIGHTARG = eql_v3.date_ord_ore,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.date_ord_ore, RIGHTARG = jsonb,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord_ore,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.date_ord_ore, RIGHTARG = eql_v3.date_ord_ore,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.date_ord_ore, RIGHTARG = jsonb,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord_ore,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.date_ord_ore, RIGHTARG = eql_v3.date_ord_ore,\n COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.date_ord_ore, RIGHTARG = jsonb,\n COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord_ore,\n COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.date_ord_ore, RIGHTARG = eql_v3.date_ord_ore,\n COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.date_ord_ore, RIGHTARG = jsonb,\n COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord_ore,\n COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.date_ord_ore, RIGHTARG = eql_v3.date_ord_ore,\n COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.date_ord_ore, RIGHTARG = jsonb,\n COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord_ore,\n COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.date_ord_ore, RIGHTARG = eql_v3.date_ord_ore,\n COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.date_ord_ore, RIGHTARG = jsonb,\n COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord_ore,\n COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.date_ord_ore, RIGHTARG = eql_v3.date_ord_ore\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.date_ord_ore, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord_ore\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.date_ord_ore, RIGHTARG = eql_v3.date_ord_ore\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.date_ord_ore, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord_ore\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.date_ord_ore, RIGHTARG = text\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.date_ord_ore, RIGHTARG = integer\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord_ore\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.date_ord_ore, RIGHTARG = text\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.date_ord_ore, RIGHTARG = integer\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord_ore\n);\n\nCREATE OPERATOR ? (\n FUNCTION = eql_v3.\"?\",\n LEFTARG = eql_v3.date_ord_ore, RIGHTARG = text\n);\n\nCREATE OPERATOR ?| (\n FUNCTION = eql_v3.\"?|\",\n LEFTARG = eql_v3.date_ord_ore, RIGHTARG = text[]\n);\n\nCREATE OPERATOR ?& (\n FUNCTION = eql_v3.\"?&\",\n LEFTARG = eql_v3.date_ord_ore, RIGHTARG = text[]\n);\n\nCREATE OPERATOR @? (\n FUNCTION = eql_v3.\"@?\",\n LEFTARG = eql_v3.date_ord_ore, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR @@ (\n FUNCTION = eql_v3.\"@@\",\n LEFTARG = eql_v3.date_ord_ore, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR #> (\n FUNCTION = eql_v3.\"#>\",\n LEFTARG = eql_v3.date_ord_ore, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #>> (\n FUNCTION = eql_v3.\"#>>\",\n LEFTARG = eql_v3.date_ord_ore, RIGHTARG = text[]\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.date_ord_ore, RIGHTARG = text\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.date_ord_ore, RIGHTARG = integer\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.date_ord_ore, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #- (\n FUNCTION = eql_v3.\"#-\",\n LEFTARG = eql_v3.date_ord_ore, RIGHTARG = text[]\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.date_ord_ore, RIGHTARG = eql_v3.date_ord_ore\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.date_ord_ore, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord_ore\n);\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file v3/scalars/int8/int8_types.sql\n--! @brief Encrypted-domain types for int8.\n\nDO $$\nBEGIN\n --! @brief Encrypted domain eql_v3.int8.\n IF NOT EXISTS (\n SELECT 1 FROM pg_type\n WHERE typname = 'int8' AND typnamespace = 'eql_v3'::regnamespace\n ) THEN\n CREATE DOMAIN eql_v3.int8 AS jsonb\n CHECK (\n jsonb_typeof(VALUE) = 'object'\n AND VALUE ? 'v'\n AND VALUE ? 'i'\n AND VALUE ? 'c'\n AND VALUE->>'v' = '2'\n );\n END IF;\n\n --! @brief Encrypted domain eql_v3.int8_eq.\n IF NOT EXISTS (\n SELECT 1 FROM pg_type\n WHERE typname = 'int8_eq' AND typnamespace = 'eql_v3'::regnamespace\n ) THEN\n CREATE DOMAIN eql_v3.int8_eq AS jsonb\n CHECK (\n jsonb_typeof(VALUE) = 'object'\n AND VALUE ? 'v'\n AND VALUE ? 'i'\n AND VALUE ? 'c'\n AND VALUE ? 'hm'\n AND VALUE->>'v' = '2'\n );\n END IF;\n\n --! @brief Encrypted domain eql_v3.int8_ord_ore.\n IF NOT EXISTS (\n SELECT 1 FROM pg_type\n WHERE typname = 'int8_ord_ore' AND typnamespace = 'eql_v3'::regnamespace\n ) THEN\n CREATE DOMAIN eql_v3.int8_ord_ore AS jsonb\n CHECK (\n jsonb_typeof(VALUE) = 'object'\n AND VALUE ? 'v'\n AND VALUE ? 'i'\n AND VALUE ? 'c'\n AND VALUE ? 'ob'\n AND VALUE->>'v' = '2'\n );\n END IF;\n\n --! @brief Encrypted domain eql_v3.int8_ord.\n IF NOT EXISTS (\n SELECT 1 FROM pg_type\n WHERE typname = 'int8_ord' AND typnamespace = 'eql_v3'::regnamespace\n ) THEN\n CREATE DOMAIN eql_v3.int8_ord AS jsonb\n CHECK (\n jsonb_typeof(VALUE) = 'object'\n AND VALUE ? 'v'\n AND VALUE ? 'i'\n AND VALUE ? 'c'\n AND VALUE ? 'ob'\n AND VALUE->>'v' = '2'\n );\n END IF;\nEND\n$$;\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/int8/int8_functions.sql\n--! @brief Functions for eql_v3.int8.\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a eql_v3.int8\n--! @param b eql_v3.int8\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.int8, b eql_v3.int8)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a eql_v3.int8\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.int8, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a jsonb\n--! @param b eql_v3.int8\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.int8)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a eql_v3.int8\n--! @param b eql_v3.int8\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.int8, b eql_v3.int8)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a eql_v3.int8\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.int8, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a jsonb\n--! @param b eql_v3.int8\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.int8)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a eql_v3.int8\n--! @param b eql_v3.int8\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.int8, b eql_v3.int8)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a eql_v3.int8\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.int8, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a jsonb\n--! @param b eql_v3.int8\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.int8)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a eql_v3.int8\n--! @param b eql_v3.int8\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.int8, b eql_v3.int8)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a eql_v3.int8\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.int8, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a jsonb\n--! @param b eql_v3.int8\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.int8)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a eql_v3.int8\n--! @param b eql_v3.int8\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.int8, b eql_v3.int8)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a eql_v3.int8\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.int8, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a jsonb\n--! @param b eql_v3.int8\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.int8)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a eql_v3.int8\n--! @param b eql_v3.int8\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.int8, b eql_v3.int8)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a eql_v3.int8\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.int8, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a jsonb\n--! @param b eql_v3.int8\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.int8)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a eql_v3.int8\n--! @param b eql_v3.int8\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.int8, b eql_v3.int8)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a eql_v3.int8\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.int8, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a jsonb\n--! @param b eql_v3.int8\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.int8)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a eql_v3.int8\n--! @param b eql_v3.int8\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.int8, b eql_v3.int8)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a eql_v3.int8\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.int8, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a jsonb\n--! @param b eql_v3.int8\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.int8)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a eql_v3.int8\n--! @param selector text\n--! @return eql_v3.int8\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.int8, selector text)\nRETURNS eql_v3.int8 IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a eql_v3.int8\n--! @param selector integer\n--! @return eql_v3.int8\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.int8, selector integer)\nRETURNS eql_v3.int8 IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a jsonb\n--! @param selector eql_v3.int8\n--! @return eql_v3.int8\nCREATE FUNCTION eql_v3.\"->\"(a jsonb, selector eql_v3.int8)\nRETURNS eql_v3.int8 IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a eql_v3.int8\n--! @param selector text\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.int8, selector text)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a eql_v3.int8\n--! @param selector integer\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.int8, selector integer)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a jsonb\n--! @param selector eql_v3.int8\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a jsonb, selector eql_v3.int8)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a eql_v3.int8\n--! @param b text\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?\"(a eql_v3.int8, b text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a eql_v3.int8\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?|\"(a eql_v3.int8, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a eql_v3.int8\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?&\"(a eql_v3.int8, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a eql_v3.int8\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@?\"(a eql_v3.int8, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a eql_v3.int8\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@@\"(a eql_v3.int8, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a eql_v3.int8\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#>\"(a eql_v3.int8, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a eql_v3.int8\n--! @param b text[]\n--! @return text\nCREATE FUNCTION eql_v3.\"#>>\"(a eql_v3.int8, b text[])\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a eql_v3.int8\n--! @param b text\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int8, b text)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a eql_v3.int8\n--! @param b integer\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int8, b integer)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a eql_v3.int8\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int8, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a eql_v3.int8\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#-\"(a eql_v3.int8, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a eql_v3.int8\n--! @param b eql_v3.int8\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.int8, b eql_v3.int8)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a eql_v3.int8\n--! @param b jsonb\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.int8, b jsonb)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a jsonb\n--! @param b eql_v3.int8\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a jsonb, b eql_v3.int8)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/int8/int8_ord_functions.sql\n--! @brief Functions for eql_v3.int8_ord.\n\n--! @brief Index extractor for eql_v3.int8_ord.\n--! @param a eql_v3.int8_ord\n--! @return eql_v3.ore_block_u64_8_256\nCREATE FUNCTION eql_v3.ord_term(a eql_v3.int8_ord)\nRETURNS eql_v3.ore_block_u64_8_256\nLANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ore_block_u64_8_256(a::jsonb) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord.\n--! @param a eql_v3.int8_ord\n--! @param b eql_v3.int8_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.int8_ord, b eql_v3.int8_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord.\n--! @param a eql_v3.int8_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.int8_ord, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b::eql_v3.int8_ord) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord.\n--! @param a jsonb\n--! @param b eql_v3.int8_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.int8_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int8_ord) = eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord.\n--! @param a eql_v3.int8_ord\n--! @param b eql_v3.int8_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.int8_ord, b eql_v3.int8_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord.\n--! @param a eql_v3.int8_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.int8_ord, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b::eql_v3.int8_ord) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord.\n--! @param a jsonb\n--! @param b eql_v3.int8_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.int8_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int8_ord) <> eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord.\n--! @param a eql_v3.int8_ord\n--! @param b eql_v3.int8_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.int8_ord, b eql_v3.int8_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord.\n--! @param a eql_v3.int8_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.int8_ord, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b::eql_v3.int8_ord) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord.\n--! @param a jsonb\n--! @param b eql_v3.int8_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.int8_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int8_ord) < eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord.\n--! @param a eql_v3.int8_ord\n--! @param b eql_v3.int8_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.int8_ord, b eql_v3.int8_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord.\n--! @param a eql_v3.int8_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.int8_ord, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b::eql_v3.int8_ord) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord.\n--! @param a jsonb\n--! @param b eql_v3.int8_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.int8_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int8_ord) <= eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord.\n--! @param a eql_v3.int8_ord\n--! @param b eql_v3.int8_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.int8_ord, b eql_v3.int8_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord.\n--! @param a eql_v3.int8_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.int8_ord, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b::eql_v3.int8_ord) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord.\n--! @param a jsonb\n--! @param b eql_v3.int8_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.int8_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int8_ord) > eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord.\n--! @param a eql_v3.int8_ord\n--! @param b eql_v3.int8_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.int8_ord, b eql_v3.int8_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord.\n--! @param a eql_v3.int8_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.int8_ord, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b::eql_v3.int8_ord) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord.\n--! @param a jsonb\n--! @param b eql_v3.int8_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.int8_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int8_ord) >= eql_v3.ord_term(b) $$;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord.\n--! @param a eql_v3.int8_ord\n--! @param b eql_v3.int8_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.int8_ord, b eql_v3.int8_ord)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int8_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord.\n--! @param a eql_v3.int8_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.int8_ord, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int8_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord.\n--! @param a jsonb\n--! @param b eql_v3.int8_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.int8_ord)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int8_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord.\n--! @param a eql_v3.int8_ord\n--! @param b eql_v3.int8_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.int8_ord, b eql_v3.int8_ord)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int8_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord.\n--! @param a eql_v3.int8_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.int8_ord, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int8_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord.\n--! @param a jsonb\n--! @param b eql_v3.int8_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.int8_ord)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int8_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord.\n--! @param a eql_v3.int8_ord\n--! @param selector text\n--! @return eql_v3.int8_ord\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.int8_ord, selector text)\nRETURNS eql_v3.int8_ord IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int8_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord.\n--! @param a eql_v3.int8_ord\n--! @param selector integer\n--! @return eql_v3.int8_ord\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.int8_ord, selector integer)\nRETURNS eql_v3.int8_ord IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int8_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord.\n--! @param a jsonb\n--! @param selector eql_v3.int8_ord\n--! @return eql_v3.int8_ord\nCREATE FUNCTION eql_v3.\"->\"(a jsonb, selector eql_v3.int8_ord)\nRETURNS eql_v3.int8_ord IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int8_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord.\n--! @param a eql_v3.int8_ord\n--! @param selector text\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.int8_ord, selector text)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int8_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord.\n--! @param a eql_v3.int8_ord\n--! @param selector integer\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.int8_ord, selector integer)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int8_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord.\n--! @param a jsonb\n--! @param selector eql_v3.int8_ord\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a jsonb, selector eql_v3.int8_ord)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int8_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord.\n--! @param a eql_v3.int8_ord\n--! @param b text\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?\"(a eql_v3.int8_ord, b text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.int8_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord.\n--! @param a eql_v3.int8_ord\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?|\"(a eql_v3.int8_ord, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.int8_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord.\n--! @param a eql_v3.int8_ord\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?&\"(a eql_v3.int8_ord, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.int8_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord.\n--! @param a eql_v3.int8_ord\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@?\"(a eql_v3.int8_ord, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.int8_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord.\n--! @param a eql_v3.int8_ord\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@@\"(a eql_v3.int8_ord, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.int8_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord.\n--! @param a eql_v3.int8_ord\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#>\"(a eql_v3.int8_ord, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.int8_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord.\n--! @param a eql_v3.int8_ord\n--! @param b text[]\n--! @return text\nCREATE FUNCTION eql_v3.\"#>>\"(a eql_v3.int8_ord, b text[])\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.int8_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord.\n--! @param a eql_v3.int8_ord\n--! @param b text\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int8_ord, b text)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int8_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord.\n--! @param a eql_v3.int8_ord\n--! @param b integer\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int8_ord, b integer)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int8_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord.\n--! @param a eql_v3.int8_ord\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int8_ord, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int8_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord.\n--! @param a eql_v3.int8_ord\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#-\"(a eql_v3.int8_ord, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.int8_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord.\n--! @param a eql_v3.int8_ord\n--! @param b eql_v3.int8_ord\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.int8_ord, b eql_v3.int8_ord)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int8_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord.\n--! @param a eql_v3.int8_ord\n--! @param b jsonb\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.int8_ord, b jsonb)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int8_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord.\n--! @param a jsonb\n--! @param b eql_v3.int8_ord\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a jsonb, b eql_v3.int8_ord)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int8_ord'; END; $$\nLANGUAGE plpgsql;\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file v3/scalars/text/text_types.sql\n--! @brief Encrypted-domain types for text.\n\nDO $$\nBEGIN\n --! @brief Encrypted domain eql_v3.text.\n IF NOT EXISTS (\n SELECT 1 FROM pg_type\n WHERE typname = 'text' AND typnamespace = 'eql_v3'::regnamespace\n ) THEN\n CREATE DOMAIN eql_v3.text AS jsonb\n CHECK (\n jsonb_typeof(VALUE) = 'object'\n AND VALUE ? 'v'\n AND VALUE ? 'i'\n AND VALUE ? 'c'\n AND VALUE->>'v' = '2'\n );\n END IF;\n\n --! @brief Encrypted domain eql_v3.text_eq.\n IF NOT EXISTS (\n SELECT 1 FROM pg_type\n WHERE typname = 'text_eq' AND typnamespace = 'eql_v3'::regnamespace\n ) THEN\n CREATE DOMAIN eql_v3.text_eq AS jsonb\n CHECK (\n jsonb_typeof(VALUE) = 'object'\n AND VALUE ? 'v'\n AND VALUE ? 'i'\n AND VALUE ? 'c'\n AND VALUE ? 'hm'\n AND VALUE->>'v' = '2'\n );\n END IF;\n\n --! @brief Encrypted domain eql_v3.text_match.\n IF NOT EXISTS (\n SELECT 1 FROM pg_type\n WHERE typname = 'text_match' AND typnamespace = 'eql_v3'::regnamespace\n ) THEN\n CREATE DOMAIN eql_v3.text_match AS jsonb\n CHECK (\n jsonb_typeof(VALUE) = 'object'\n AND VALUE ? 'v'\n AND VALUE ? 'i'\n AND VALUE ? 'c'\n AND VALUE ? 'bf'\n AND VALUE->>'v' = '2'\n );\n END IF;\n\n --! @brief Encrypted domain eql_v3.text_ord_ore.\n IF NOT EXISTS (\n SELECT 1 FROM pg_type\n WHERE typname = 'text_ord_ore' AND typnamespace = 'eql_v3'::regnamespace\n ) THEN\n CREATE DOMAIN eql_v3.text_ord_ore AS jsonb\n CHECK (\n jsonb_typeof(VALUE) = 'object'\n AND VALUE ? 'v'\n AND VALUE ? 'i'\n AND VALUE ? 'c'\n AND VALUE ? 'ob'\n AND VALUE->>'v' = '2'\n );\n END IF;\n\n --! @brief Encrypted domain eql_v3.text_ord.\n IF NOT EXISTS (\n SELECT 1 FROM pg_type\n WHERE typname = 'text_ord' AND typnamespace = 'eql_v3'::regnamespace\n ) THEN\n CREATE DOMAIN eql_v3.text_ord AS jsonb\n CHECK (\n jsonb_typeof(VALUE) = 'object'\n AND VALUE ? 'v'\n AND VALUE ? 'i'\n AND VALUE ? 'c'\n AND VALUE ? 'ob'\n AND VALUE->>'v' = '2'\n );\n END IF;\nEND\n$$;\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/text/text_ord_functions.sql\n--! @brief Functions for eql_v3.text_ord.\n\n--! @brief Index extractor for eql_v3.text_ord.\n--! @param a eql_v3.text_ord\n--! @return eql_v3.ore_block_u64_8_256\nCREATE FUNCTION eql_v3.ord_term(a eql_v3.text_ord)\nRETURNS eql_v3.ore_block_u64_8_256\nLANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ore_block_u64_8_256(a::jsonb) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord.\n--! @param a eql_v3.text_ord\n--! @param b eql_v3.text_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.text_ord, b eql_v3.text_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord.\n--! @param a eql_v3.text_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.text_ord, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b::eql_v3.text_ord) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord.\n--! @param a jsonb\n--! @param b eql_v3.text_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.text_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.text_ord) = eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord.\n--! @param a eql_v3.text_ord\n--! @param b eql_v3.text_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.text_ord, b eql_v3.text_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord.\n--! @param a eql_v3.text_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.text_ord, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b::eql_v3.text_ord) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord.\n--! @param a jsonb\n--! @param b eql_v3.text_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.text_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.text_ord) <> eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord.\n--! @param a eql_v3.text_ord\n--! @param b eql_v3.text_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.text_ord, b eql_v3.text_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord.\n--! @param a eql_v3.text_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.text_ord, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b::eql_v3.text_ord) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord.\n--! @param a jsonb\n--! @param b eql_v3.text_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.text_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.text_ord) < eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord.\n--! @param a eql_v3.text_ord\n--! @param b eql_v3.text_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.text_ord, b eql_v3.text_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord.\n--! @param a eql_v3.text_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.text_ord, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b::eql_v3.text_ord) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord.\n--! @param a jsonb\n--! @param b eql_v3.text_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.text_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.text_ord) <= eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord.\n--! @param a eql_v3.text_ord\n--! @param b eql_v3.text_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.text_ord, b eql_v3.text_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord.\n--! @param a eql_v3.text_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.text_ord, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b::eql_v3.text_ord) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord.\n--! @param a jsonb\n--! @param b eql_v3.text_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.text_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.text_ord) > eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord.\n--! @param a eql_v3.text_ord\n--! @param b eql_v3.text_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.text_ord, b eql_v3.text_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord.\n--! @param a eql_v3.text_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.text_ord, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b::eql_v3.text_ord) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord.\n--! @param a jsonb\n--! @param b eql_v3.text_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.text_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.text_ord) >= eql_v3.ord_term(b) $$;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord.\n--! @param a eql_v3.text_ord\n--! @param b eql_v3.text_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.text_ord, b eql_v3.text_ord)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.text_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord.\n--! @param a eql_v3.text_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.text_ord, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.text_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord.\n--! @param a jsonb\n--! @param b eql_v3.text_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.text_ord)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.text_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord.\n--! @param a eql_v3.text_ord\n--! @param b eql_v3.text_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.text_ord, b eql_v3.text_ord)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.text_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord.\n--! @param a eql_v3.text_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.text_ord, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.text_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord.\n--! @param a jsonb\n--! @param b eql_v3.text_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.text_ord)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.text_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord.\n--! @param a eql_v3.text_ord\n--! @param selector text\n--! @return eql_v3.text_ord\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.text_ord, selector text)\nRETURNS eql_v3.text_ord IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.text_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord.\n--! @param a eql_v3.text_ord\n--! @param selector integer\n--! @return eql_v3.text_ord\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.text_ord, selector integer)\nRETURNS eql_v3.text_ord IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.text_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord.\n--! @param a jsonb\n--! @param selector eql_v3.text_ord\n--! @return eql_v3.text_ord\nCREATE FUNCTION eql_v3.\"->\"(a jsonb, selector eql_v3.text_ord)\nRETURNS eql_v3.text_ord IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.text_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord.\n--! @param a eql_v3.text_ord\n--! @param selector text\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.text_ord, selector text)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.text_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord.\n--! @param a eql_v3.text_ord\n--! @param selector integer\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.text_ord, selector integer)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.text_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord.\n--! @param a jsonb\n--! @param selector eql_v3.text_ord\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a jsonb, selector eql_v3.text_ord)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.text_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord.\n--! @param a eql_v3.text_ord\n--! @param b text\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?\"(a eql_v3.text_ord, b text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.text_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord.\n--! @param a eql_v3.text_ord\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?|\"(a eql_v3.text_ord, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.text_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord.\n--! @param a eql_v3.text_ord\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?&\"(a eql_v3.text_ord, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.text_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord.\n--! @param a eql_v3.text_ord\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@?\"(a eql_v3.text_ord, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.text_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord.\n--! @param a eql_v3.text_ord\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@@\"(a eql_v3.text_ord, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.text_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord.\n--! @param a eql_v3.text_ord\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#>\"(a eql_v3.text_ord, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.text_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord.\n--! @param a eql_v3.text_ord\n--! @param b text[]\n--! @return text\nCREATE FUNCTION eql_v3.\"#>>\"(a eql_v3.text_ord, b text[])\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.text_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord.\n--! @param a eql_v3.text_ord\n--! @param b text\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.text_ord, b text)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.text_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord.\n--! @param a eql_v3.text_ord\n--! @param b integer\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.text_ord, b integer)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.text_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord.\n--! @param a eql_v3.text_ord\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.text_ord, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.text_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord.\n--! @param a eql_v3.text_ord\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#-\"(a eql_v3.text_ord, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.text_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord.\n--! @param a eql_v3.text_ord\n--! @param b eql_v3.text_ord\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.text_ord, b eql_v3.text_ord)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.text_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord.\n--! @param a eql_v3.text_ord\n--! @param b jsonb\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.text_ord, b jsonb)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.text_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord.\n--! @param a jsonb\n--! @param b eql_v3.text_ord\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a jsonb, b eql_v3.text_ord)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.text_ord'; END; $$\nLANGUAGE plpgsql;\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/text/text_ord_ore_functions.sql\n--! @brief Functions for eql_v3.text_ord_ore.\n\n--! @brief Index extractor for eql_v3.text_ord_ore.\n--! @param a eql_v3.text_ord_ore\n--! @return eql_v3.ore_block_u64_8_256\nCREATE FUNCTION eql_v3.ord_term(a eql_v3.text_ord_ore)\nRETURNS eql_v3.ore_block_u64_8_256\nLANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ore_block_u64_8_256(a::jsonb) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord_ore.\n--! @param a eql_v3.text_ord_ore\n--! @param b eql_v3.text_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.text_ord_ore, b eql_v3.text_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord_ore.\n--! @param a eql_v3.text_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.text_ord_ore, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b::eql_v3.text_ord_ore) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.text_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.text_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.text_ord_ore) = eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord_ore.\n--! @param a eql_v3.text_ord_ore\n--! @param b eql_v3.text_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.text_ord_ore, b eql_v3.text_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord_ore.\n--! @param a eql_v3.text_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.text_ord_ore, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b::eql_v3.text_ord_ore) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.text_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.text_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.text_ord_ore) <> eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord_ore.\n--! @param a eql_v3.text_ord_ore\n--! @param b eql_v3.text_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.text_ord_ore, b eql_v3.text_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord_ore.\n--! @param a eql_v3.text_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.text_ord_ore, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b::eql_v3.text_ord_ore) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.text_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.text_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.text_ord_ore) < eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord_ore.\n--! @param a eql_v3.text_ord_ore\n--! @param b eql_v3.text_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.text_ord_ore, b eql_v3.text_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord_ore.\n--! @param a eql_v3.text_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.text_ord_ore, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b::eql_v3.text_ord_ore) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.text_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.text_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.text_ord_ore) <= eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord_ore.\n--! @param a eql_v3.text_ord_ore\n--! @param b eql_v3.text_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.text_ord_ore, b eql_v3.text_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord_ore.\n--! @param a eql_v3.text_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.text_ord_ore, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b::eql_v3.text_ord_ore) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.text_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.text_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.text_ord_ore) > eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord_ore.\n--! @param a eql_v3.text_ord_ore\n--! @param b eql_v3.text_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.text_ord_ore, b eql_v3.text_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord_ore.\n--! @param a eql_v3.text_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.text_ord_ore, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b::eql_v3.text_ord_ore) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.text_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.text_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.text_ord_ore) >= eql_v3.ord_term(b) $$;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord_ore.\n--! @param a eql_v3.text_ord_ore\n--! @param b eql_v3.text_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.text_ord_ore, b eql_v3.text_ord_ore)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.text_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord_ore.\n--! @param a eql_v3.text_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.text_ord_ore, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.text_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.text_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.text_ord_ore)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.text_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord_ore.\n--! @param a eql_v3.text_ord_ore\n--! @param b eql_v3.text_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.text_ord_ore, b eql_v3.text_ord_ore)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.text_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord_ore.\n--! @param a eql_v3.text_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.text_ord_ore, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.text_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.text_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.text_ord_ore)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.text_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord_ore.\n--! @param a eql_v3.text_ord_ore\n--! @param selector text\n--! @return eql_v3.text_ord_ore\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.text_ord_ore, selector text)\nRETURNS eql_v3.text_ord_ore IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.text_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord_ore.\n--! @param a eql_v3.text_ord_ore\n--! @param selector integer\n--! @return eql_v3.text_ord_ore\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.text_ord_ore, selector integer)\nRETURNS eql_v3.text_ord_ore IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.text_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord_ore.\n--! @param a jsonb\n--! @param selector eql_v3.text_ord_ore\n--! @return eql_v3.text_ord_ore\nCREATE FUNCTION eql_v3.\"->\"(a jsonb, selector eql_v3.text_ord_ore)\nRETURNS eql_v3.text_ord_ore IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.text_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord_ore.\n--! @param a eql_v3.text_ord_ore\n--! @param selector text\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.text_ord_ore, selector text)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.text_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord_ore.\n--! @param a eql_v3.text_ord_ore\n--! @param selector integer\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.text_ord_ore, selector integer)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.text_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord_ore.\n--! @param a jsonb\n--! @param selector eql_v3.text_ord_ore\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a jsonb, selector eql_v3.text_ord_ore)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.text_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord_ore.\n--! @param a eql_v3.text_ord_ore\n--! @param b text\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?\"(a eql_v3.text_ord_ore, b text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.text_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord_ore.\n--! @param a eql_v3.text_ord_ore\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?|\"(a eql_v3.text_ord_ore, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.text_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord_ore.\n--! @param a eql_v3.text_ord_ore\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?&\"(a eql_v3.text_ord_ore, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.text_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord_ore.\n--! @param a eql_v3.text_ord_ore\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@?\"(a eql_v3.text_ord_ore, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.text_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord_ore.\n--! @param a eql_v3.text_ord_ore\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@@\"(a eql_v3.text_ord_ore, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.text_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord_ore.\n--! @param a eql_v3.text_ord_ore\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#>\"(a eql_v3.text_ord_ore, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.text_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord_ore.\n--! @param a eql_v3.text_ord_ore\n--! @param b text[]\n--! @return text\nCREATE FUNCTION eql_v3.\"#>>\"(a eql_v3.text_ord_ore, b text[])\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.text_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord_ore.\n--! @param a eql_v3.text_ord_ore\n--! @param b text\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.text_ord_ore, b text)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.text_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord_ore.\n--! @param a eql_v3.text_ord_ore\n--! @param b integer\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.text_ord_ore, b integer)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.text_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord_ore.\n--! @param a eql_v3.text_ord_ore\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.text_ord_ore, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.text_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord_ore.\n--! @param a eql_v3.text_ord_ore\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#-\"(a eql_v3.text_ord_ore, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.text_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord_ore.\n--! @param a eql_v3.text_ord_ore\n--! @param b eql_v3.text_ord_ore\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.text_ord_ore, b eql_v3.text_ord_ore)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.text_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord_ore.\n--! @param a eql_v3.text_ord_ore\n--! @param b jsonb\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.text_ord_ore, b jsonb)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.text_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.text_ord_ore\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a jsonb, b eql_v3.text_ord_ore)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.text_ord_ore'; END; $$\nLANGUAGE plpgsql;\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/text/text_match_functions.sql\n--! @brief Functions for eql_v3.text_match.\n\n--! @brief Index extractor for eql_v3.text_match.\n--! @param a eql_v3.text_match\n--! @return eql_v3.bloom_filter\nCREATE FUNCTION eql_v3.match_term(a eql_v3.text_match)\nRETURNS eql_v3.bloom_filter\nLANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.bloom_filter(a::jsonb) $$;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a eql_v3.text_match\n--! @param b eql_v3.text_match\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.text_match, b eql_v3.text_match)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a eql_v3.text_match\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.text_match, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a jsonb\n--! @param b eql_v3.text_match\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.text_match)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a eql_v3.text_match\n--! @param b eql_v3.text_match\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.text_match, b eql_v3.text_match)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a eql_v3.text_match\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.text_match, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a jsonb\n--! @param b eql_v3.text_match\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.text_match)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a eql_v3.text_match\n--! @param b eql_v3.text_match\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.text_match, b eql_v3.text_match)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a eql_v3.text_match\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.text_match, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a jsonb\n--! @param b eql_v3.text_match\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.text_match)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a eql_v3.text_match\n--! @param b eql_v3.text_match\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.text_match, b eql_v3.text_match)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a eql_v3.text_match\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.text_match, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a jsonb\n--! @param b eql_v3.text_match\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.text_match)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a eql_v3.text_match\n--! @param b eql_v3.text_match\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.text_match, b eql_v3.text_match)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a eql_v3.text_match\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.text_match, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a jsonb\n--! @param b eql_v3.text_match\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.text_match)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a eql_v3.text_match\n--! @param b eql_v3.text_match\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.text_match, b eql_v3.text_match)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a eql_v3.text_match\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.text_match, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a jsonb\n--! @param b eql_v3.text_match\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.text_match)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Operator wrapper for eql_v3.text_match.\n--! @param a eql_v3.text_match\n--! @param b eql_v3.text_match\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.text_match, b eql_v3.text_match)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.match_term(a) @> eql_v3.match_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.text_match.\n--! @param a eql_v3.text_match\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.text_match, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.match_term(a) @> eql_v3.match_term(b::eql_v3.text_match) $$;\n\n--! @brief Operator wrapper for eql_v3.text_match.\n--! @param a jsonb\n--! @param b eql_v3.text_match\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.text_match)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.match_term(a::eql_v3.text_match) @> eql_v3.match_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.text_match.\n--! @param a eql_v3.text_match\n--! @param b eql_v3.text_match\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.text_match, b eql_v3.text_match)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.match_term(a) <@ eql_v3.match_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.text_match.\n--! @param a eql_v3.text_match\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.text_match, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.match_term(a) <@ eql_v3.match_term(b::eql_v3.text_match) $$;\n\n--! @brief Operator wrapper for eql_v3.text_match.\n--! @param a jsonb\n--! @param b eql_v3.text_match\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.text_match)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.match_term(a::eql_v3.text_match) <@ eql_v3.match_term(b) $$;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a eql_v3.text_match\n--! @param selector text\n--! @return eql_v3.text_match\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.text_match, selector text)\nRETURNS eql_v3.text_match IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a eql_v3.text_match\n--! @param selector integer\n--! @return eql_v3.text_match\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.text_match, selector integer)\nRETURNS eql_v3.text_match IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a jsonb\n--! @param selector eql_v3.text_match\n--! @return eql_v3.text_match\nCREATE FUNCTION eql_v3.\"->\"(a jsonb, selector eql_v3.text_match)\nRETURNS eql_v3.text_match IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a eql_v3.text_match\n--! @param selector text\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.text_match, selector text)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a eql_v3.text_match\n--! @param selector integer\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.text_match, selector integer)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a jsonb\n--! @param selector eql_v3.text_match\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a jsonb, selector eql_v3.text_match)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a eql_v3.text_match\n--! @param b text\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?\"(a eql_v3.text_match, b text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a eql_v3.text_match\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?|\"(a eql_v3.text_match, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a eql_v3.text_match\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?&\"(a eql_v3.text_match, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a eql_v3.text_match\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@?\"(a eql_v3.text_match, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a eql_v3.text_match\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@@\"(a eql_v3.text_match, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a eql_v3.text_match\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#>\"(a eql_v3.text_match, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a eql_v3.text_match\n--! @param b text[]\n--! @return text\nCREATE FUNCTION eql_v3.\"#>>\"(a eql_v3.text_match, b text[])\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a eql_v3.text_match\n--! @param b text\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.text_match, b text)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a eql_v3.text_match\n--! @param b integer\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.text_match, b integer)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a eql_v3.text_match\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.text_match, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a eql_v3.text_match\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#-\"(a eql_v3.text_match, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a eql_v3.text_match\n--! @param b eql_v3.text_match\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.text_match, b eql_v3.text_match)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a eql_v3.text_match\n--! @param b jsonb\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.text_match, b jsonb)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a jsonb\n--! @param b eql_v3.text_match\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a jsonb, b eql_v3.text_match)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/text/text_eq_functions.sql\n--! @brief Functions for eql_v3.text_eq.\n\n--! @brief Index extractor for eql_v3.text_eq.\n--! @param a eql_v3.text_eq\n--! @return eql_v3.hmac_256\nCREATE FUNCTION eql_v3.eq_term(a eql_v3.text_eq)\nRETURNS eql_v3.hmac_256\nLANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.hmac_256(a::jsonb) $$;\n\n--! @brief Operator wrapper for eql_v3.text_eq.\n--! @param a eql_v3.text_eq\n--! @param b eql_v3.text_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.text_eq, b eql_v3.text_eq)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a) = eql_v3.eq_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.text_eq.\n--! @param a eql_v3.text_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.text_eq, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a) = eql_v3.eq_term(b::eql_v3.text_eq) $$;\n\n--! @brief Operator wrapper for eql_v3.text_eq.\n--! @param a jsonb\n--! @param b eql_v3.text_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.text_eq)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a::eql_v3.text_eq) = eql_v3.eq_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.text_eq.\n--! @param a eql_v3.text_eq\n--! @param b eql_v3.text_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.text_eq, b eql_v3.text_eq)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a) <> eql_v3.eq_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.text_eq.\n--! @param a eql_v3.text_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.text_eq, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a) <> eql_v3.eq_term(b::eql_v3.text_eq) $$;\n\n--! @brief Operator wrapper for eql_v3.text_eq.\n--! @param a jsonb\n--! @param b eql_v3.text_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.text_eq)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a::eql_v3.text_eq) <> eql_v3.eq_term(b) $$;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a eql_v3.text_eq\n--! @param b eql_v3.text_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.text_eq, b eql_v3.text_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a eql_v3.text_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.text_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a jsonb\n--! @param b eql_v3.text_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.text_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a eql_v3.text_eq\n--! @param b eql_v3.text_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.text_eq, b eql_v3.text_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a eql_v3.text_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.text_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a jsonb\n--! @param b eql_v3.text_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.text_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a eql_v3.text_eq\n--! @param b eql_v3.text_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.text_eq, b eql_v3.text_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a eql_v3.text_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.text_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a jsonb\n--! @param b eql_v3.text_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.text_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a eql_v3.text_eq\n--! @param b eql_v3.text_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.text_eq, b eql_v3.text_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a eql_v3.text_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.text_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a jsonb\n--! @param b eql_v3.text_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.text_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a eql_v3.text_eq\n--! @param b eql_v3.text_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.text_eq, b eql_v3.text_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a eql_v3.text_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.text_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a jsonb\n--! @param b eql_v3.text_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.text_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a eql_v3.text_eq\n--! @param b eql_v3.text_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.text_eq, b eql_v3.text_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a eql_v3.text_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.text_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a jsonb\n--! @param b eql_v3.text_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.text_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a eql_v3.text_eq\n--! @param selector text\n--! @return eql_v3.text_eq\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.text_eq, selector text)\nRETURNS eql_v3.text_eq IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a eql_v3.text_eq\n--! @param selector integer\n--! @return eql_v3.text_eq\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.text_eq, selector integer)\nRETURNS eql_v3.text_eq IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a jsonb\n--! @param selector eql_v3.text_eq\n--! @return eql_v3.text_eq\nCREATE FUNCTION eql_v3.\"->\"(a jsonb, selector eql_v3.text_eq)\nRETURNS eql_v3.text_eq IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a eql_v3.text_eq\n--! @param selector text\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.text_eq, selector text)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a eql_v3.text_eq\n--! @param selector integer\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.text_eq, selector integer)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a jsonb\n--! @param selector eql_v3.text_eq\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a jsonb, selector eql_v3.text_eq)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a eql_v3.text_eq\n--! @param b text\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?\"(a eql_v3.text_eq, b text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a eql_v3.text_eq\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?|\"(a eql_v3.text_eq, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a eql_v3.text_eq\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?&\"(a eql_v3.text_eq, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a eql_v3.text_eq\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@?\"(a eql_v3.text_eq, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a eql_v3.text_eq\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@@\"(a eql_v3.text_eq, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a eql_v3.text_eq\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#>\"(a eql_v3.text_eq, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a eql_v3.text_eq\n--! @param b text[]\n--! @return text\nCREATE FUNCTION eql_v3.\"#>>\"(a eql_v3.text_eq, b text[])\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a eql_v3.text_eq\n--! @param b text\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.text_eq, b text)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a eql_v3.text_eq\n--! @param b integer\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.text_eq, b integer)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a eql_v3.text_eq\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.text_eq, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a eql_v3.text_eq\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#-\"(a eql_v3.text_eq, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a eql_v3.text_eq\n--! @param b eql_v3.text_eq\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.text_eq, b eql_v3.text_eq)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a eql_v3.text_eq\n--! @param b jsonb\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.text_eq, b jsonb)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a jsonb\n--! @param b eql_v3.text_eq\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a jsonb, b eql_v3.text_eq)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/text/text_ord_ore_operators.sql\n--! @brief Operators for eql_v3.text_ord_ore.\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.text_ord_ore, RIGHTARG = eql_v3.text_ord_ore,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.text_ord_ore, RIGHTARG = jsonb,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord_ore,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.text_ord_ore, RIGHTARG = eql_v3.text_ord_ore,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.text_ord_ore, RIGHTARG = jsonb,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord_ore,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.text_ord_ore, RIGHTARG = eql_v3.text_ord_ore,\n COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.text_ord_ore, RIGHTARG = jsonb,\n COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord_ore,\n COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.text_ord_ore, RIGHTARG = eql_v3.text_ord_ore,\n COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.text_ord_ore, RIGHTARG = jsonb,\n COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord_ore,\n COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.text_ord_ore, RIGHTARG = eql_v3.text_ord_ore,\n COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.text_ord_ore, RIGHTARG = jsonb,\n COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord_ore,\n COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.text_ord_ore, RIGHTARG = eql_v3.text_ord_ore,\n COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.text_ord_ore, RIGHTARG = jsonb,\n COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord_ore,\n COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.text_ord_ore, RIGHTARG = eql_v3.text_ord_ore\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.text_ord_ore, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord_ore\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.text_ord_ore, RIGHTARG = eql_v3.text_ord_ore\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.text_ord_ore, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord_ore\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.text_ord_ore, RIGHTARG = text\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.text_ord_ore, RIGHTARG = integer\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord_ore\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.text_ord_ore, RIGHTARG = text\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.text_ord_ore, RIGHTARG = integer\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord_ore\n);\n\nCREATE OPERATOR ? (\n FUNCTION = eql_v3.\"?\",\n LEFTARG = eql_v3.text_ord_ore, RIGHTARG = text\n);\n\nCREATE OPERATOR ?| (\n FUNCTION = eql_v3.\"?|\",\n LEFTARG = eql_v3.text_ord_ore, RIGHTARG = text[]\n);\n\nCREATE OPERATOR ?& (\n FUNCTION = eql_v3.\"?&\",\n LEFTARG = eql_v3.text_ord_ore, RIGHTARG = text[]\n);\n\nCREATE OPERATOR @? (\n FUNCTION = eql_v3.\"@?\",\n LEFTARG = eql_v3.text_ord_ore, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR @@ (\n FUNCTION = eql_v3.\"@@\",\n LEFTARG = eql_v3.text_ord_ore, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR #> (\n FUNCTION = eql_v3.\"#>\",\n LEFTARG = eql_v3.text_ord_ore, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #>> (\n FUNCTION = eql_v3.\"#>>\",\n LEFTARG = eql_v3.text_ord_ore, RIGHTARG = text[]\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.text_ord_ore, RIGHTARG = text\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.text_ord_ore, RIGHTARG = integer\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.text_ord_ore, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #- (\n FUNCTION = eql_v3.\"#-\",\n LEFTARG = eql_v3.text_ord_ore, RIGHTARG = text[]\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.text_ord_ore, RIGHTARG = eql_v3.text_ord_ore\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.text_ord_ore, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord_ore\n);\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/text/text_ord_operators.sql\n--! @brief Operators for eql_v3.text_ord.\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.text_ord, RIGHTARG = eql_v3.text_ord,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.text_ord, RIGHTARG = jsonb,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.text_ord, RIGHTARG = eql_v3.text_ord,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.text_ord, RIGHTARG = jsonb,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.text_ord, RIGHTARG = eql_v3.text_ord,\n COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.text_ord, RIGHTARG = jsonb,\n COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord,\n COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.text_ord, RIGHTARG = eql_v3.text_ord,\n COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.text_ord, RIGHTARG = jsonb,\n COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord,\n COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.text_ord, RIGHTARG = eql_v3.text_ord,\n COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.text_ord, RIGHTARG = jsonb,\n COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord,\n COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.text_ord, RIGHTARG = eql_v3.text_ord,\n COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.text_ord, RIGHTARG = jsonb,\n COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord,\n COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.text_ord, RIGHTARG = eql_v3.text_ord\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.text_ord, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.text_ord, RIGHTARG = eql_v3.text_ord\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.text_ord, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.text_ord, RIGHTARG = text\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.text_ord, RIGHTARG = integer\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.text_ord, RIGHTARG = text\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.text_ord, RIGHTARG = integer\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord\n);\n\nCREATE OPERATOR ? (\n FUNCTION = eql_v3.\"?\",\n LEFTARG = eql_v3.text_ord, RIGHTARG = text\n);\n\nCREATE OPERATOR ?| (\n FUNCTION = eql_v3.\"?|\",\n LEFTARG = eql_v3.text_ord, RIGHTARG = text[]\n);\n\nCREATE OPERATOR ?& (\n FUNCTION = eql_v3.\"?&\",\n LEFTARG = eql_v3.text_ord, RIGHTARG = text[]\n);\n\nCREATE OPERATOR @? (\n FUNCTION = eql_v3.\"@?\",\n LEFTARG = eql_v3.text_ord, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR @@ (\n FUNCTION = eql_v3.\"@@\",\n LEFTARG = eql_v3.text_ord, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR #> (\n FUNCTION = eql_v3.\"#>\",\n LEFTARG = eql_v3.text_ord, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #>> (\n FUNCTION = eql_v3.\"#>>\",\n LEFTARG = eql_v3.text_ord, RIGHTARG = text[]\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.text_ord, RIGHTARG = text\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.text_ord, RIGHTARG = integer\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.text_ord, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #- (\n FUNCTION = eql_v3.\"#-\",\n LEFTARG = eql_v3.text_ord, RIGHTARG = text[]\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.text_ord, RIGHTARG = eql_v3.text_ord\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.text_ord, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord\n);\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/int4/int4_ord_aggregates.sql\n--! @brief Aggregates for eql_v3.int4_ord.\n\n--! @brief State function for min on eql_v3.int4_ord.\n--! @param state eql_v3.int4_ord\n--! @param value eql_v3.int4_ord\n--! @return eql_v3.int4_ord\nCREATE FUNCTION eql_v3.min_sfunc(state eql_v3.int4_ord, value eql_v3.int4_ord)\nRETURNS eql_v3.int4_ord\nLANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE\nSET search_path = pg_catalog, extensions, public\nAS $$\nBEGIN\n IF value < state THEN\n RETURN value;\n END IF;\n RETURN state;\nEND;\n$$;\n\n--! @brief min aggregate for eql_v3.int4_ord.\n--! @param input eql_v3.int4_ord\n--! @return eql_v3.int4_ord\nCREATE AGGREGATE eql_v3.min(eql_v3.int4_ord) (\n sfunc = eql_v3.min_sfunc,\n stype = eql_v3.int4_ord,\n combinefunc = eql_v3.min_sfunc,\n parallel = safe\n);\n\n--! @brief State function for max on eql_v3.int4_ord.\n--! @param state eql_v3.int4_ord\n--! @param value eql_v3.int4_ord\n--! @return eql_v3.int4_ord\nCREATE FUNCTION eql_v3.max_sfunc(state eql_v3.int4_ord, value eql_v3.int4_ord)\nRETURNS eql_v3.int4_ord\nLANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE\nSET search_path = pg_catalog, extensions, public\nAS $$\nBEGIN\n IF value > state THEN\n RETURN value;\n END IF;\n RETURN state;\nEND;\n$$;\n\n--! @brief max aggregate for eql_v3.int4_ord.\n--! @param input eql_v3.int4_ord\n--! @return eql_v3.int4_ord\nCREATE AGGREGATE eql_v3.max(eql_v3.int4_ord) (\n sfunc = eql_v3.max_sfunc,\n stype = eql_v3.int4_ord,\n combinefunc = eql_v3.max_sfunc,\n parallel = safe\n);\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/int4/int4_functions.sql\n--! @brief Functions for eql_v3.int4.\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a eql_v3.int4\n--! @param b eql_v3.int4\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.int4, b eql_v3.int4)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a eql_v3.int4\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.int4, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a jsonb\n--! @param b eql_v3.int4\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.int4)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a eql_v3.int4\n--! @param b eql_v3.int4\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.int4, b eql_v3.int4)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a eql_v3.int4\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.int4, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a jsonb\n--! @param b eql_v3.int4\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.int4)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a eql_v3.int4\n--! @param b eql_v3.int4\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.int4, b eql_v3.int4)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a eql_v3.int4\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.int4, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a jsonb\n--! @param b eql_v3.int4\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.int4)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a eql_v3.int4\n--! @param b eql_v3.int4\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.int4, b eql_v3.int4)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a eql_v3.int4\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.int4, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a jsonb\n--! @param b eql_v3.int4\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.int4)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a eql_v3.int4\n--! @param b eql_v3.int4\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.int4, b eql_v3.int4)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a eql_v3.int4\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.int4, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a jsonb\n--! @param b eql_v3.int4\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.int4)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a eql_v3.int4\n--! @param b eql_v3.int4\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.int4, b eql_v3.int4)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a eql_v3.int4\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.int4, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a jsonb\n--! @param b eql_v3.int4\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.int4)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a eql_v3.int4\n--! @param b eql_v3.int4\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.int4, b eql_v3.int4)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a eql_v3.int4\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.int4, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a jsonb\n--! @param b eql_v3.int4\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.int4)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a eql_v3.int4\n--! @param b eql_v3.int4\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.int4, b eql_v3.int4)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a eql_v3.int4\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.int4, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a jsonb\n--! @param b eql_v3.int4\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.int4)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a eql_v3.int4\n--! @param selector text\n--! @return eql_v3.int4\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.int4, selector text)\nRETURNS eql_v3.int4 IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a eql_v3.int4\n--! @param selector integer\n--! @return eql_v3.int4\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.int4, selector integer)\nRETURNS eql_v3.int4 IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a jsonb\n--! @param selector eql_v3.int4\n--! @return eql_v3.int4\nCREATE FUNCTION eql_v3.\"->\"(a jsonb, selector eql_v3.int4)\nRETURNS eql_v3.int4 IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a eql_v3.int4\n--! @param selector text\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.int4, selector text)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a eql_v3.int4\n--! @param selector integer\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.int4, selector integer)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a jsonb\n--! @param selector eql_v3.int4\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a jsonb, selector eql_v3.int4)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a eql_v3.int4\n--! @param b text\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?\"(a eql_v3.int4, b text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a eql_v3.int4\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?|\"(a eql_v3.int4, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a eql_v3.int4\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?&\"(a eql_v3.int4, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a eql_v3.int4\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@?\"(a eql_v3.int4, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a eql_v3.int4\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@@\"(a eql_v3.int4, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a eql_v3.int4\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#>\"(a eql_v3.int4, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a eql_v3.int4\n--! @param b text[]\n--! @return text\nCREATE FUNCTION eql_v3.\"#>>\"(a eql_v3.int4, b text[])\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a eql_v3.int4\n--! @param b text\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int4, b text)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a eql_v3.int4\n--! @param b integer\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int4, b integer)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a eql_v3.int4\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int4, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a eql_v3.int4\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#-\"(a eql_v3.int4, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a eql_v3.int4\n--! @param b eql_v3.int4\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.int4, b eql_v3.int4)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a eql_v3.int4\n--! @param b jsonb\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.int4, b jsonb)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a jsonb\n--! @param b eql_v3.int4\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a jsonb, b eql_v3.int4)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/int4/int4_eq_operators.sql\n--! @brief Operators for eql_v3.int4_eq.\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.int4_eq, RIGHTARG = eql_v3.int4_eq,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.int4_eq, RIGHTARG = jsonb,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4_eq,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.int4_eq, RIGHTARG = eql_v3.int4_eq,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.int4_eq, RIGHTARG = jsonb,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4_eq,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.int4_eq, RIGHTARG = eql_v3.int4_eq\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.int4_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4_eq\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.int4_eq, RIGHTARG = eql_v3.int4_eq\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.int4_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4_eq\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.int4_eq, RIGHTARG = eql_v3.int4_eq\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.int4_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4_eq\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.int4_eq, RIGHTARG = eql_v3.int4_eq\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.int4_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4_eq\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.int4_eq, RIGHTARG = eql_v3.int4_eq\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.int4_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4_eq\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.int4_eq, RIGHTARG = eql_v3.int4_eq\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.int4_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4_eq\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.int4_eq, RIGHTARG = text\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.int4_eq, RIGHTARG = integer\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4_eq\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.int4_eq, RIGHTARG = text\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.int4_eq, RIGHTARG = integer\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4_eq\n);\n\nCREATE OPERATOR ? (\n FUNCTION = eql_v3.\"?\",\n LEFTARG = eql_v3.int4_eq, RIGHTARG = text\n);\n\nCREATE OPERATOR ?| (\n FUNCTION = eql_v3.\"?|\",\n LEFTARG = eql_v3.int4_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR ?& (\n FUNCTION = eql_v3.\"?&\",\n LEFTARG = eql_v3.int4_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR @? (\n FUNCTION = eql_v3.\"@?\",\n LEFTARG = eql_v3.int4_eq, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR @@ (\n FUNCTION = eql_v3.\"@@\",\n LEFTARG = eql_v3.int4_eq, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR #> (\n FUNCTION = eql_v3.\"#>\",\n LEFTARG = eql_v3.int4_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #>> (\n FUNCTION = eql_v3.\"#>>\",\n LEFTARG = eql_v3.int4_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int4_eq, RIGHTARG = text\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int4_eq, RIGHTARG = integer\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int4_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #- (\n FUNCTION = eql_v3.\"#-\",\n LEFTARG = eql_v3.int4_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.int4_eq, RIGHTARG = eql_v3.int4_eq\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.int4_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4_eq\n);\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/int4/int4_ord_ore_functions.sql\n--! @brief Functions for eql_v3.int4_ord_ore.\n\n--! @brief Index extractor for eql_v3.int4_ord_ore.\n--! @param a eql_v3.int4_ord_ore\n--! @return eql_v3.ore_block_u64_8_256\nCREATE FUNCTION eql_v3.ord_term(a eql_v3.int4_ord_ore)\nRETURNS eql_v3.ore_block_u64_8_256\nLANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ore_block_u64_8_256(a::jsonb) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord_ore.\n--! @param a eql_v3.int4_ord_ore\n--! @param b eql_v3.int4_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.int4_ord_ore, b eql_v3.int4_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord_ore.\n--! @param a eql_v3.int4_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.int4_ord_ore, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b::eql_v3.int4_ord_ore) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.int4_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.int4_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int4_ord_ore) = eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord_ore.\n--! @param a eql_v3.int4_ord_ore\n--! @param b eql_v3.int4_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.int4_ord_ore, b eql_v3.int4_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord_ore.\n--! @param a eql_v3.int4_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.int4_ord_ore, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b::eql_v3.int4_ord_ore) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.int4_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.int4_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int4_ord_ore) <> eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord_ore.\n--! @param a eql_v3.int4_ord_ore\n--! @param b eql_v3.int4_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.int4_ord_ore, b eql_v3.int4_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord_ore.\n--! @param a eql_v3.int4_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.int4_ord_ore, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b::eql_v3.int4_ord_ore) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.int4_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.int4_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int4_ord_ore) < eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord_ore.\n--! @param a eql_v3.int4_ord_ore\n--! @param b eql_v3.int4_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.int4_ord_ore, b eql_v3.int4_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord_ore.\n--! @param a eql_v3.int4_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.int4_ord_ore, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b::eql_v3.int4_ord_ore) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.int4_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.int4_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int4_ord_ore) <= eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord_ore.\n--! @param a eql_v3.int4_ord_ore\n--! @param b eql_v3.int4_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.int4_ord_ore, b eql_v3.int4_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord_ore.\n--! @param a eql_v3.int4_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.int4_ord_ore, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b::eql_v3.int4_ord_ore) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.int4_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.int4_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int4_ord_ore) > eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord_ore.\n--! @param a eql_v3.int4_ord_ore\n--! @param b eql_v3.int4_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.int4_ord_ore, b eql_v3.int4_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord_ore.\n--! @param a eql_v3.int4_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.int4_ord_ore, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b::eql_v3.int4_ord_ore) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.int4_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.int4_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int4_ord_ore) >= eql_v3.ord_term(b) $$;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore.\n--! @param a eql_v3.int4_ord_ore\n--! @param b eql_v3.int4_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.int4_ord_ore, b eql_v3.int4_ord_ore)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int4_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore.\n--! @param a eql_v3.int4_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.int4_ord_ore, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int4_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.int4_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.int4_ord_ore)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int4_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore.\n--! @param a eql_v3.int4_ord_ore\n--! @param b eql_v3.int4_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.int4_ord_ore, b eql_v3.int4_ord_ore)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int4_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore.\n--! @param a eql_v3.int4_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.int4_ord_ore, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int4_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.int4_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.int4_ord_ore)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int4_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore.\n--! @param a eql_v3.int4_ord_ore\n--! @param selector text\n--! @return eql_v3.int4_ord_ore\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.int4_ord_ore, selector text)\nRETURNS eql_v3.int4_ord_ore IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int4_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore.\n--! @param a eql_v3.int4_ord_ore\n--! @param selector integer\n--! @return eql_v3.int4_ord_ore\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.int4_ord_ore, selector integer)\nRETURNS eql_v3.int4_ord_ore IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int4_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore.\n--! @param a jsonb\n--! @param selector eql_v3.int4_ord_ore\n--! @return eql_v3.int4_ord_ore\nCREATE FUNCTION eql_v3.\"->\"(a jsonb, selector eql_v3.int4_ord_ore)\nRETURNS eql_v3.int4_ord_ore IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int4_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore.\n--! @param a eql_v3.int4_ord_ore\n--! @param selector text\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.int4_ord_ore, selector text)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int4_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore.\n--! @param a eql_v3.int4_ord_ore\n--! @param selector integer\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.int4_ord_ore, selector integer)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int4_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore.\n--! @param a jsonb\n--! @param selector eql_v3.int4_ord_ore\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a jsonb, selector eql_v3.int4_ord_ore)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int4_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore.\n--! @param a eql_v3.int4_ord_ore\n--! @param b text\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?\"(a eql_v3.int4_ord_ore, b text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.int4_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore.\n--! @param a eql_v3.int4_ord_ore\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?|\"(a eql_v3.int4_ord_ore, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.int4_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore.\n--! @param a eql_v3.int4_ord_ore\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?&\"(a eql_v3.int4_ord_ore, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.int4_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore.\n--! @param a eql_v3.int4_ord_ore\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@?\"(a eql_v3.int4_ord_ore, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.int4_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore.\n--! @param a eql_v3.int4_ord_ore\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@@\"(a eql_v3.int4_ord_ore, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.int4_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore.\n--! @param a eql_v3.int4_ord_ore\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#>\"(a eql_v3.int4_ord_ore, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.int4_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore.\n--! @param a eql_v3.int4_ord_ore\n--! @param b text[]\n--! @return text\nCREATE FUNCTION eql_v3.\"#>>\"(a eql_v3.int4_ord_ore, b text[])\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.int4_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore.\n--! @param a eql_v3.int4_ord_ore\n--! @param b text\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int4_ord_ore, b text)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int4_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore.\n--! @param a eql_v3.int4_ord_ore\n--! @param b integer\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int4_ord_ore, b integer)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int4_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore.\n--! @param a eql_v3.int4_ord_ore\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int4_ord_ore, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int4_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore.\n--! @param a eql_v3.int4_ord_ore\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#-\"(a eql_v3.int4_ord_ore, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.int4_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore.\n--! @param a eql_v3.int4_ord_ore\n--! @param b eql_v3.int4_ord_ore\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.int4_ord_ore, b eql_v3.int4_ord_ore)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int4_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore.\n--! @param a eql_v3.int4_ord_ore\n--! @param b jsonb\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.int4_ord_ore, b jsonb)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int4_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.int4_ord_ore\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a jsonb, b eql_v3.int4_ord_ore)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int4_ord_ore'; END; $$\nLANGUAGE plpgsql;\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/int4/int4_ord_ore_operators.sql\n--! @brief Operators for eql_v3.int4_ord_ore.\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = eql_v3.int4_ord_ore,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = jsonb,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord_ore,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = eql_v3.int4_ord_ore,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = jsonb,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord_ore,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = eql_v3.int4_ord_ore,\n COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = jsonb,\n COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord_ore,\n COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = eql_v3.int4_ord_ore,\n COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = jsonb,\n COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord_ore,\n COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = eql_v3.int4_ord_ore,\n COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = jsonb,\n COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord_ore,\n COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = eql_v3.int4_ord_ore,\n COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = jsonb,\n COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord_ore,\n COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = eql_v3.int4_ord_ore\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord_ore\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = eql_v3.int4_ord_ore\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord_ore\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = text\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = integer\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord_ore\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = text\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = integer\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord_ore\n);\n\nCREATE OPERATOR ? (\n FUNCTION = eql_v3.\"?\",\n LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = text\n);\n\nCREATE OPERATOR ?| (\n FUNCTION = eql_v3.\"?|\",\n LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = text[]\n);\n\nCREATE OPERATOR ?& (\n FUNCTION = eql_v3.\"?&\",\n LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = text[]\n);\n\nCREATE OPERATOR @? (\n FUNCTION = eql_v3.\"@?\",\n LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR @@ (\n FUNCTION = eql_v3.\"@@\",\n LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR #> (\n FUNCTION = eql_v3.\"#>\",\n LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #>> (\n FUNCTION = eql_v3.\"#>>\",\n LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = text[]\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = text\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = integer\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #- (\n FUNCTION = eql_v3.\"#-\",\n LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = text[]\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = eql_v3.int4_ord_ore\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord_ore\n);\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/int4/int4_operators.sql\n--! @brief Operators for eql_v3.int4.\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.int4, RIGHTARG = eql_v3.int4\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.int4, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.int4, RIGHTARG = eql_v3.int4\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.int4, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.int4, RIGHTARG = eql_v3.int4\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.int4, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.int4, RIGHTARG = eql_v3.int4\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.int4, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.int4, RIGHTARG = eql_v3.int4\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.int4, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.int4, RIGHTARG = eql_v3.int4\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.int4, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.int4, RIGHTARG = eql_v3.int4\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.int4, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.int4, RIGHTARG = eql_v3.int4\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.int4, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.int4, RIGHTARG = text\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.int4, RIGHTARG = integer\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.int4, RIGHTARG = text\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.int4, RIGHTARG = integer\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4\n);\n\nCREATE OPERATOR ? (\n FUNCTION = eql_v3.\"?\",\n LEFTARG = eql_v3.int4, RIGHTARG = text\n);\n\nCREATE OPERATOR ?| (\n FUNCTION = eql_v3.\"?|\",\n LEFTARG = eql_v3.int4, RIGHTARG = text[]\n);\n\nCREATE OPERATOR ?& (\n FUNCTION = eql_v3.\"?&\",\n LEFTARG = eql_v3.int4, RIGHTARG = text[]\n);\n\nCREATE OPERATOR @? (\n FUNCTION = eql_v3.\"@?\",\n LEFTARG = eql_v3.int4, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR @@ (\n FUNCTION = eql_v3.\"@@\",\n LEFTARG = eql_v3.int4, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR #> (\n FUNCTION = eql_v3.\"#>\",\n LEFTARG = eql_v3.int4, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #>> (\n FUNCTION = eql_v3.\"#>>\",\n LEFTARG = eql_v3.int4, RIGHTARG = text[]\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int4, RIGHTARG = text\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int4, RIGHTARG = integer\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int4, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #- (\n FUNCTION = eql_v3.\"#-\",\n LEFTARG = eql_v3.int4, RIGHTARG = text[]\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.int4, RIGHTARG = eql_v3.int4\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.int4, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4\n);\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/int4/int4_ord_ore_aggregates.sql\n--! @brief Aggregates for eql_v3.int4_ord_ore.\n\n--! @brief State function for min on eql_v3.int4_ord_ore.\n--! @param state eql_v3.int4_ord_ore\n--! @param value eql_v3.int4_ord_ore\n--! @return eql_v3.int4_ord_ore\nCREATE FUNCTION eql_v3.min_sfunc(state eql_v3.int4_ord_ore, value eql_v3.int4_ord_ore)\nRETURNS eql_v3.int4_ord_ore\nLANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE\nSET search_path = pg_catalog, extensions, public\nAS $$\nBEGIN\n IF value < state THEN\n RETURN value;\n END IF;\n RETURN state;\nEND;\n$$;\n\n--! @brief min aggregate for eql_v3.int4_ord_ore.\n--! @param input eql_v3.int4_ord_ore\n--! @return eql_v3.int4_ord_ore\nCREATE AGGREGATE eql_v3.min(eql_v3.int4_ord_ore) (\n sfunc = eql_v3.min_sfunc,\n stype = eql_v3.int4_ord_ore,\n combinefunc = eql_v3.min_sfunc,\n parallel = safe\n);\n\n--! @brief State function for max on eql_v3.int4_ord_ore.\n--! @param state eql_v3.int4_ord_ore\n--! @param value eql_v3.int4_ord_ore\n--! @return eql_v3.int4_ord_ore\nCREATE FUNCTION eql_v3.max_sfunc(state eql_v3.int4_ord_ore, value eql_v3.int4_ord_ore)\nRETURNS eql_v3.int4_ord_ore\nLANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE\nSET search_path = pg_catalog, extensions, public\nAS $$\nBEGIN\n IF value > state THEN\n RETURN value;\n END IF;\n RETURN state;\nEND;\n$$;\n\n--! @brief max aggregate for eql_v3.int4_ord_ore.\n--! @param input eql_v3.int4_ord_ore\n--! @return eql_v3.int4_ord_ore\nCREATE AGGREGATE eql_v3.max(eql_v3.int4_ord_ore) (\n sfunc = eql_v3.max_sfunc,\n stype = eql_v3.int4_ord_ore,\n combinefunc = eql_v3.max_sfunc,\n parallel = safe\n);\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/timestamptz/timestamptz_functions.sql\n--! @brief Functions for eql_v3.timestamptz.\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a eql_v3.timestamptz\n--! @param b eql_v3.timestamptz\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.timestamptz, b eql_v3.timestamptz)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a eql_v3.timestamptz\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.timestamptz, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a jsonb\n--! @param b eql_v3.timestamptz\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.timestamptz)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a eql_v3.timestamptz\n--! @param b eql_v3.timestamptz\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.timestamptz, b eql_v3.timestamptz)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a eql_v3.timestamptz\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.timestamptz, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a jsonb\n--! @param b eql_v3.timestamptz\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.timestamptz)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a eql_v3.timestamptz\n--! @param b eql_v3.timestamptz\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.timestamptz, b eql_v3.timestamptz)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a eql_v3.timestamptz\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.timestamptz, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a jsonb\n--! @param b eql_v3.timestamptz\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.timestamptz)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a eql_v3.timestamptz\n--! @param b eql_v3.timestamptz\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.timestamptz, b eql_v3.timestamptz)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a eql_v3.timestamptz\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.timestamptz, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a jsonb\n--! @param b eql_v3.timestamptz\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.timestamptz)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a eql_v3.timestamptz\n--! @param b eql_v3.timestamptz\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.timestamptz, b eql_v3.timestamptz)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a eql_v3.timestamptz\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.timestamptz, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a jsonb\n--! @param b eql_v3.timestamptz\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.timestamptz)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a eql_v3.timestamptz\n--! @param b eql_v3.timestamptz\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.timestamptz, b eql_v3.timestamptz)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a eql_v3.timestamptz\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.timestamptz, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a jsonb\n--! @param b eql_v3.timestamptz\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.timestamptz)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a eql_v3.timestamptz\n--! @param b eql_v3.timestamptz\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.timestamptz, b eql_v3.timestamptz)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a eql_v3.timestamptz\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.timestamptz, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a jsonb\n--! @param b eql_v3.timestamptz\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.timestamptz)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a eql_v3.timestamptz\n--! @param b eql_v3.timestamptz\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.timestamptz, b eql_v3.timestamptz)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a eql_v3.timestamptz\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.timestamptz, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a jsonb\n--! @param b eql_v3.timestamptz\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.timestamptz)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a eql_v3.timestamptz\n--! @param selector text\n--! @return eql_v3.timestamptz\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.timestamptz, selector text)\nRETURNS eql_v3.timestamptz IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a eql_v3.timestamptz\n--! @param selector integer\n--! @return eql_v3.timestamptz\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.timestamptz, selector integer)\nRETURNS eql_v3.timestamptz IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a jsonb\n--! @param selector eql_v3.timestamptz\n--! @return eql_v3.timestamptz\nCREATE FUNCTION eql_v3.\"->\"(a jsonb, selector eql_v3.timestamptz)\nRETURNS eql_v3.timestamptz IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a eql_v3.timestamptz\n--! @param selector text\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.timestamptz, selector text)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a eql_v3.timestamptz\n--! @param selector integer\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.timestamptz, selector integer)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a jsonb\n--! @param selector eql_v3.timestamptz\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a jsonb, selector eql_v3.timestamptz)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a eql_v3.timestamptz\n--! @param b text\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?\"(a eql_v3.timestamptz, b text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a eql_v3.timestamptz\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?|\"(a eql_v3.timestamptz, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a eql_v3.timestamptz\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?&\"(a eql_v3.timestamptz, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a eql_v3.timestamptz\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@?\"(a eql_v3.timestamptz, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a eql_v3.timestamptz\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@@\"(a eql_v3.timestamptz, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a eql_v3.timestamptz\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#>\"(a eql_v3.timestamptz, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a eql_v3.timestamptz\n--! @param b text[]\n--! @return text\nCREATE FUNCTION eql_v3.\"#>>\"(a eql_v3.timestamptz, b text[])\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a eql_v3.timestamptz\n--! @param b text\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.timestamptz, b text)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a eql_v3.timestamptz\n--! @param b integer\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.timestamptz, b integer)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a eql_v3.timestamptz\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.timestamptz, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a eql_v3.timestamptz\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#-\"(a eql_v3.timestamptz, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a eql_v3.timestamptz\n--! @param b eql_v3.timestamptz\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.timestamptz, b eql_v3.timestamptz)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a eql_v3.timestamptz\n--! @param b jsonb\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.timestamptz, b jsonb)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a jsonb\n--! @param b eql_v3.timestamptz\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a jsonb, b eql_v3.timestamptz)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/timestamptz/timestamptz_eq_operators.sql\n--! @brief Operators for eql_v3.timestamptz_eq.\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = eql_v3.timestamptz_eq,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = jsonb,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz_eq,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = eql_v3.timestamptz_eq,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = jsonb,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz_eq,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = eql_v3.timestamptz_eq\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz_eq\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = eql_v3.timestamptz_eq\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz_eq\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = eql_v3.timestamptz_eq\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz_eq\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = eql_v3.timestamptz_eq\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz_eq\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = eql_v3.timestamptz_eq\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz_eq\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = eql_v3.timestamptz_eq\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz_eq\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = text\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = integer\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz_eq\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = text\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = integer\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz_eq\n);\n\nCREATE OPERATOR ? (\n FUNCTION = eql_v3.\"?\",\n LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = text\n);\n\nCREATE OPERATOR ?| (\n FUNCTION = eql_v3.\"?|\",\n LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR ?& (\n FUNCTION = eql_v3.\"?&\",\n LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR @? (\n FUNCTION = eql_v3.\"@?\",\n LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR @@ (\n FUNCTION = eql_v3.\"@@\",\n LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR #> (\n FUNCTION = eql_v3.\"#>\",\n LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #>> (\n FUNCTION = eql_v3.\"#>>\",\n LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = text\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = integer\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #- (\n FUNCTION = eql_v3.\"#-\",\n LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = eql_v3.timestamptz_eq\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz_eq\n);\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/timestamptz/timestamptz_operators.sql\n--! @brief Operators for eql_v3.timestamptz.\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.timestamptz, RIGHTARG = eql_v3.timestamptz\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.timestamptz, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.timestamptz, RIGHTARG = eql_v3.timestamptz\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.timestamptz, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.timestamptz, RIGHTARG = eql_v3.timestamptz\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.timestamptz, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.timestamptz, RIGHTARG = eql_v3.timestamptz\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.timestamptz, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.timestamptz, RIGHTARG = eql_v3.timestamptz\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.timestamptz, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.timestamptz, RIGHTARG = eql_v3.timestamptz\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.timestamptz, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.timestamptz, RIGHTARG = eql_v3.timestamptz\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.timestamptz, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.timestamptz, RIGHTARG = eql_v3.timestamptz\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.timestamptz, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.timestamptz, RIGHTARG = text\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.timestamptz, RIGHTARG = integer\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.timestamptz, RIGHTARG = text\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.timestamptz, RIGHTARG = integer\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz\n);\n\nCREATE OPERATOR ? (\n FUNCTION = eql_v3.\"?\",\n LEFTARG = eql_v3.timestamptz, RIGHTARG = text\n);\n\nCREATE OPERATOR ?| (\n FUNCTION = eql_v3.\"?|\",\n LEFTARG = eql_v3.timestamptz, RIGHTARG = text[]\n);\n\nCREATE OPERATOR ?& (\n FUNCTION = eql_v3.\"?&\",\n LEFTARG = eql_v3.timestamptz, RIGHTARG = text[]\n);\n\nCREATE OPERATOR @? (\n FUNCTION = eql_v3.\"@?\",\n LEFTARG = eql_v3.timestamptz, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR @@ (\n FUNCTION = eql_v3.\"@@\",\n LEFTARG = eql_v3.timestamptz, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR #> (\n FUNCTION = eql_v3.\"#>\",\n LEFTARG = eql_v3.timestamptz, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #>> (\n FUNCTION = eql_v3.\"#>>\",\n LEFTARG = eql_v3.timestamptz, RIGHTARG = text[]\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.timestamptz, RIGHTARG = text\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.timestamptz, RIGHTARG = integer\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.timestamptz, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #- (\n FUNCTION = eql_v3.\"#-\",\n LEFTARG = eql_v3.timestamptz, RIGHTARG = text[]\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.timestamptz, RIGHTARG = eql_v3.timestamptz\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.timestamptz, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz\n);\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/int2/int2_eq_functions.sql\n--! @brief Functions for eql_v3.int2_eq.\n\n--! @brief Index extractor for eql_v3.int2_eq.\n--! @param a eql_v3.int2_eq\n--! @return eql_v3.hmac_256\nCREATE FUNCTION eql_v3.eq_term(a eql_v3.int2_eq)\nRETURNS eql_v3.hmac_256\nLANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.hmac_256(a::jsonb) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_eq.\n--! @param a eql_v3.int2_eq\n--! @param b eql_v3.int2_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.int2_eq, b eql_v3.int2_eq)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a) = eql_v3.eq_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_eq.\n--! @param a eql_v3.int2_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.int2_eq, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a) = eql_v3.eq_term(b::eql_v3.int2_eq) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_eq.\n--! @param a jsonb\n--! @param b eql_v3.int2_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.int2_eq)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a::eql_v3.int2_eq) = eql_v3.eq_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_eq.\n--! @param a eql_v3.int2_eq\n--! @param b eql_v3.int2_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.int2_eq, b eql_v3.int2_eq)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a) <> eql_v3.eq_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_eq.\n--! @param a eql_v3.int2_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.int2_eq, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a) <> eql_v3.eq_term(b::eql_v3.int2_eq) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_eq.\n--! @param a jsonb\n--! @param b eql_v3.int2_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.int2_eq)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a::eql_v3.int2_eq) <> eql_v3.eq_term(b) $$;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a eql_v3.int2_eq\n--! @param b eql_v3.int2_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.int2_eq, b eql_v3.int2_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a eql_v3.int2_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.int2_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a jsonb\n--! @param b eql_v3.int2_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.int2_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a eql_v3.int2_eq\n--! @param b eql_v3.int2_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.int2_eq, b eql_v3.int2_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a eql_v3.int2_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.int2_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a jsonb\n--! @param b eql_v3.int2_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.int2_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a eql_v3.int2_eq\n--! @param b eql_v3.int2_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.int2_eq, b eql_v3.int2_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a eql_v3.int2_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.int2_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a jsonb\n--! @param b eql_v3.int2_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.int2_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a eql_v3.int2_eq\n--! @param b eql_v3.int2_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.int2_eq, b eql_v3.int2_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a eql_v3.int2_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.int2_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a jsonb\n--! @param b eql_v3.int2_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.int2_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a eql_v3.int2_eq\n--! @param b eql_v3.int2_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.int2_eq, b eql_v3.int2_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a eql_v3.int2_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.int2_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a jsonb\n--! @param b eql_v3.int2_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.int2_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a eql_v3.int2_eq\n--! @param b eql_v3.int2_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.int2_eq, b eql_v3.int2_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a eql_v3.int2_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.int2_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a jsonb\n--! @param b eql_v3.int2_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.int2_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a eql_v3.int2_eq\n--! @param selector text\n--! @return eql_v3.int2_eq\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.int2_eq, selector text)\nRETURNS eql_v3.int2_eq IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a eql_v3.int2_eq\n--! @param selector integer\n--! @return eql_v3.int2_eq\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.int2_eq, selector integer)\nRETURNS eql_v3.int2_eq IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a jsonb\n--! @param selector eql_v3.int2_eq\n--! @return eql_v3.int2_eq\nCREATE FUNCTION eql_v3.\"->\"(a jsonb, selector eql_v3.int2_eq)\nRETURNS eql_v3.int2_eq IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a eql_v3.int2_eq\n--! @param selector text\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.int2_eq, selector text)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a eql_v3.int2_eq\n--! @param selector integer\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.int2_eq, selector integer)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a jsonb\n--! @param selector eql_v3.int2_eq\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a jsonb, selector eql_v3.int2_eq)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a eql_v3.int2_eq\n--! @param b text\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?\"(a eql_v3.int2_eq, b text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a eql_v3.int2_eq\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?|\"(a eql_v3.int2_eq, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a eql_v3.int2_eq\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?&\"(a eql_v3.int2_eq, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a eql_v3.int2_eq\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@?\"(a eql_v3.int2_eq, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a eql_v3.int2_eq\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@@\"(a eql_v3.int2_eq, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a eql_v3.int2_eq\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#>\"(a eql_v3.int2_eq, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a eql_v3.int2_eq\n--! @param b text[]\n--! @return text\nCREATE FUNCTION eql_v3.\"#>>\"(a eql_v3.int2_eq, b text[])\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a eql_v3.int2_eq\n--! @param b text\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int2_eq, b text)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a eql_v3.int2_eq\n--! @param b integer\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int2_eq, b integer)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a eql_v3.int2_eq\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int2_eq, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a eql_v3.int2_eq\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#-\"(a eql_v3.int2_eq, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a eql_v3.int2_eq\n--! @param b eql_v3.int2_eq\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.int2_eq, b eql_v3.int2_eq)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a eql_v3.int2_eq\n--! @param b jsonb\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.int2_eq, b jsonb)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a jsonb\n--! @param b eql_v3.int2_eq\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a jsonb, b eql_v3.int2_eq)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/int2/int2_ord_aggregates.sql\n--! @brief Aggregates for eql_v3.int2_ord.\n\n--! @brief State function for min on eql_v3.int2_ord.\n--! @param state eql_v3.int2_ord\n--! @param value eql_v3.int2_ord\n--! @return eql_v3.int2_ord\nCREATE FUNCTION eql_v3.min_sfunc(state eql_v3.int2_ord, value eql_v3.int2_ord)\nRETURNS eql_v3.int2_ord\nLANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE\nSET search_path = pg_catalog, extensions, public\nAS $$\nBEGIN\n IF value < state THEN\n RETURN value;\n END IF;\n RETURN state;\nEND;\n$$;\n\n--! @brief min aggregate for eql_v3.int2_ord.\n--! @param input eql_v3.int2_ord\n--! @return eql_v3.int2_ord\nCREATE AGGREGATE eql_v3.min(eql_v3.int2_ord) (\n sfunc = eql_v3.min_sfunc,\n stype = eql_v3.int2_ord,\n combinefunc = eql_v3.min_sfunc,\n parallel = safe\n);\n\n--! @brief State function for max on eql_v3.int2_ord.\n--! @param state eql_v3.int2_ord\n--! @param value eql_v3.int2_ord\n--! @return eql_v3.int2_ord\nCREATE FUNCTION eql_v3.max_sfunc(state eql_v3.int2_ord, value eql_v3.int2_ord)\nRETURNS eql_v3.int2_ord\nLANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE\nSET search_path = pg_catalog, extensions, public\nAS $$\nBEGIN\n IF value > state THEN\n RETURN value;\n END IF;\n RETURN state;\nEND;\n$$;\n\n--! @brief max aggregate for eql_v3.int2_ord.\n--! @param input eql_v3.int2_ord\n--! @return eql_v3.int2_ord\nCREATE AGGREGATE eql_v3.max(eql_v3.int2_ord) (\n sfunc = eql_v3.max_sfunc,\n stype = eql_v3.int2_ord,\n combinefunc = eql_v3.max_sfunc,\n parallel = safe\n);\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/int2/int2_operators.sql\n--! @brief Operators for eql_v3.int2.\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.int2, RIGHTARG = eql_v3.int2\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.int2, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.int2, RIGHTARG = eql_v3.int2\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.int2, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.int2, RIGHTARG = eql_v3.int2\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.int2, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.int2, RIGHTARG = eql_v3.int2\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.int2, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.int2, RIGHTARG = eql_v3.int2\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.int2, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.int2, RIGHTARG = eql_v3.int2\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.int2, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.int2, RIGHTARG = eql_v3.int2\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.int2, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.int2, RIGHTARG = eql_v3.int2\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.int2, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.int2, RIGHTARG = text\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.int2, RIGHTARG = integer\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.int2, RIGHTARG = text\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.int2, RIGHTARG = integer\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2\n);\n\nCREATE OPERATOR ? (\n FUNCTION = eql_v3.\"?\",\n LEFTARG = eql_v3.int2, RIGHTARG = text\n);\n\nCREATE OPERATOR ?| (\n FUNCTION = eql_v3.\"?|\",\n LEFTARG = eql_v3.int2, RIGHTARG = text[]\n);\n\nCREATE OPERATOR ?& (\n FUNCTION = eql_v3.\"?&\",\n LEFTARG = eql_v3.int2, RIGHTARG = text[]\n);\n\nCREATE OPERATOR @? (\n FUNCTION = eql_v3.\"@?\",\n LEFTARG = eql_v3.int2, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR @@ (\n FUNCTION = eql_v3.\"@@\",\n LEFTARG = eql_v3.int2, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR #> (\n FUNCTION = eql_v3.\"#>\",\n LEFTARG = eql_v3.int2, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #>> (\n FUNCTION = eql_v3.\"#>>\",\n LEFTARG = eql_v3.int2, RIGHTARG = text[]\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int2, RIGHTARG = text\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int2, RIGHTARG = integer\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int2, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #- (\n FUNCTION = eql_v3.\"#-\",\n LEFTARG = eql_v3.int2, RIGHTARG = text[]\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.int2, RIGHTARG = eql_v3.int2\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.int2, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2\n);\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/int2/int2_eq_operators.sql\n--! @brief Operators for eql_v3.int2_eq.\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.int2_eq, RIGHTARG = eql_v3.int2_eq,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.int2_eq, RIGHTARG = jsonb,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2_eq,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.int2_eq, RIGHTARG = eql_v3.int2_eq,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.int2_eq, RIGHTARG = jsonb,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2_eq,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.int2_eq, RIGHTARG = eql_v3.int2_eq\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.int2_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2_eq\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.int2_eq, RIGHTARG = eql_v3.int2_eq\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.int2_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2_eq\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.int2_eq, RIGHTARG = eql_v3.int2_eq\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.int2_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2_eq\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.int2_eq, RIGHTARG = eql_v3.int2_eq\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.int2_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2_eq\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.int2_eq, RIGHTARG = eql_v3.int2_eq\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.int2_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2_eq\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.int2_eq, RIGHTARG = eql_v3.int2_eq\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.int2_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2_eq\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.int2_eq, RIGHTARG = text\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.int2_eq, RIGHTARG = integer\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2_eq\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.int2_eq, RIGHTARG = text\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.int2_eq, RIGHTARG = integer\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2_eq\n);\n\nCREATE OPERATOR ? (\n FUNCTION = eql_v3.\"?\",\n LEFTARG = eql_v3.int2_eq, RIGHTARG = text\n);\n\nCREATE OPERATOR ?| (\n FUNCTION = eql_v3.\"?|\",\n LEFTARG = eql_v3.int2_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR ?& (\n FUNCTION = eql_v3.\"?&\",\n LEFTARG = eql_v3.int2_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR @? (\n FUNCTION = eql_v3.\"@?\",\n LEFTARG = eql_v3.int2_eq, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR @@ (\n FUNCTION = eql_v3.\"@@\",\n LEFTARG = eql_v3.int2_eq, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR #> (\n FUNCTION = eql_v3.\"#>\",\n LEFTARG = eql_v3.int2_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #>> (\n FUNCTION = eql_v3.\"#>>\",\n LEFTARG = eql_v3.int2_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int2_eq, RIGHTARG = text\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int2_eq, RIGHTARG = integer\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int2_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #- (\n FUNCTION = eql_v3.\"#-\",\n LEFTARG = eql_v3.int2_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.int2_eq, RIGHTARG = eql_v3.int2_eq\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.int2_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2_eq\n);\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/int2/int2_ord_ore_aggregates.sql\n--! @brief Aggregates for eql_v3.int2_ord_ore.\n\n--! @brief State function for min on eql_v3.int2_ord_ore.\n--! @param state eql_v3.int2_ord_ore\n--! @param value eql_v3.int2_ord_ore\n--! @return eql_v3.int2_ord_ore\nCREATE FUNCTION eql_v3.min_sfunc(state eql_v3.int2_ord_ore, value eql_v3.int2_ord_ore)\nRETURNS eql_v3.int2_ord_ore\nLANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE\nSET search_path = pg_catalog, extensions, public\nAS $$\nBEGIN\n IF value < state THEN\n RETURN value;\n END IF;\n RETURN state;\nEND;\n$$;\n\n--! @brief min aggregate for eql_v3.int2_ord_ore.\n--! @param input eql_v3.int2_ord_ore\n--! @return eql_v3.int2_ord_ore\nCREATE AGGREGATE eql_v3.min(eql_v3.int2_ord_ore) (\n sfunc = eql_v3.min_sfunc,\n stype = eql_v3.int2_ord_ore,\n combinefunc = eql_v3.min_sfunc,\n parallel = safe\n);\n\n--! @brief State function for max on eql_v3.int2_ord_ore.\n--! @param state eql_v3.int2_ord_ore\n--! @param value eql_v3.int2_ord_ore\n--! @return eql_v3.int2_ord_ore\nCREATE FUNCTION eql_v3.max_sfunc(state eql_v3.int2_ord_ore, value eql_v3.int2_ord_ore)\nRETURNS eql_v3.int2_ord_ore\nLANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE\nSET search_path = pg_catalog, extensions, public\nAS $$\nBEGIN\n IF value > state THEN\n RETURN value;\n END IF;\n RETURN state;\nEND;\n$$;\n\n--! @brief max aggregate for eql_v3.int2_ord_ore.\n--! @param input eql_v3.int2_ord_ore\n--! @return eql_v3.int2_ord_ore\nCREATE AGGREGATE eql_v3.max(eql_v3.int2_ord_ore) (\n sfunc = eql_v3.max_sfunc,\n stype = eql_v3.int2_ord_ore,\n combinefunc = eql_v3.max_sfunc,\n parallel = safe\n);\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/date/date_ord_functions.sql\n--! @brief Functions for eql_v3.date_ord.\n\n--! @brief Index extractor for eql_v3.date_ord.\n--! @param a eql_v3.date_ord\n--! @return eql_v3.ore_block_u64_8_256\nCREATE FUNCTION eql_v3.ord_term(a eql_v3.date_ord)\nRETURNS eql_v3.ore_block_u64_8_256\nLANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ore_block_u64_8_256(a::jsonb) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord.\n--! @param a eql_v3.date_ord\n--! @param b eql_v3.date_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.date_ord, b eql_v3.date_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord.\n--! @param a eql_v3.date_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.date_ord, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b::eql_v3.date_ord) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord.\n--! @param a jsonb\n--! @param b eql_v3.date_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.date_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.date_ord) = eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord.\n--! @param a eql_v3.date_ord\n--! @param b eql_v3.date_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.date_ord, b eql_v3.date_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord.\n--! @param a eql_v3.date_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.date_ord, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b::eql_v3.date_ord) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord.\n--! @param a jsonb\n--! @param b eql_v3.date_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.date_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.date_ord) <> eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord.\n--! @param a eql_v3.date_ord\n--! @param b eql_v3.date_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.date_ord, b eql_v3.date_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord.\n--! @param a eql_v3.date_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.date_ord, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b::eql_v3.date_ord) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord.\n--! @param a jsonb\n--! @param b eql_v3.date_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.date_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.date_ord) < eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord.\n--! @param a eql_v3.date_ord\n--! @param b eql_v3.date_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.date_ord, b eql_v3.date_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord.\n--! @param a eql_v3.date_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.date_ord, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b::eql_v3.date_ord) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord.\n--! @param a jsonb\n--! @param b eql_v3.date_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.date_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.date_ord) <= eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord.\n--! @param a eql_v3.date_ord\n--! @param b eql_v3.date_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.date_ord, b eql_v3.date_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord.\n--! @param a eql_v3.date_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.date_ord, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b::eql_v3.date_ord) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord.\n--! @param a jsonb\n--! @param b eql_v3.date_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.date_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.date_ord) > eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord.\n--! @param a eql_v3.date_ord\n--! @param b eql_v3.date_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.date_ord, b eql_v3.date_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord.\n--! @param a eql_v3.date_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.date_ord, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b::eql_v3.date_ord) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord.\n--! @param a jsonb\n--! @param b eql_v3.date_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.date_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.date_ord) >= eql_v3.ord_term(b) $$;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord.\n--! @param a eql_v3.date_ord\n--! @param b eql_v3.date_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.date_ord, b eql_v3.date_ord)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.date_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord.\n--! @param a eql_v3.date_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.date_ord, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.date_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord.\n--! @param a jsonb\n--! @param b eql_v3.date_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.date_ord)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.date_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord.\n--! @param a eql_v3.date_ord\n--! @param b eql_v3.date_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.date_ord, b eql_v3.date_ord)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.date_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord.\n--! @param a eql_v3.date_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.date_ord, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.date_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord.\n--! @param a jsonb\n--! @param b eql_v3.date_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.date_ord)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.date_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord.\n--! @param a eql_v3.date_ord\n--! @param selector text\n--! @return eql_v3.date_ord\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.date_ord, selector text)\nRETURNS eql_v3.date_ord IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.date_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord.\n--! @param a eql_v3.date_ord\n--! @param selector integer\n--! @return eql_v3.date_ord\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.date_ord, selector integer)\nRETURNS eql_v3.date_ord IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.date_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord.\n--! @param a jsonb\n--! @param selector eql_v3.date_ord\n--! @return eql_v3.date_ord\nCREATE FUNCTION eql_v3.\"->\"(a jsonb, selector eql_v3.date_ord)\nRETURNS eql_v3.date_ord IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.date_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord.\n--! @param a eql_v3.date_ord\n--! @param selector text\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.date_ord, selector text)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.date_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord.\n--! @param a eql_v3.date_ord\n--! @param selector integer\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.date_ord, selector integer)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.date_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord.\n--! @param a jsonb\n--! @param selector eql_v3.date_ord\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a jsonb, selector eql_v3.date_ord)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.date_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord.\n--! @param a eql_v3.date_ord\n--! @param b text\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?\"(a eql_v3.date_ord, b text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.date_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord.\n--! @param a eql_v3.date_ord\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?|\"(a eql_v3.date_ord, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.date_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord.\n--! @param a eql_v3.date_ord\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?&\"(a eql_v3.date_ord, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.date_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord.\n--! @param a eql_v3.date_ord\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@?\"(a eql_v3.date_ord, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.date_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord.\n--! @param a eql_v3.date_ord\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@@\"(a eql_v3.date_ord, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.date_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord.\n--! @param a eql_v3.date_ord\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#>\"(a eql_v3.date_ord, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.date_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord.\n--! @param a eql_v3.date_ord\n--! @param b text[]\n--! @return text\nCREATE FUNCTION eql_v3.\"#>>\"(a eql_v3.date_ord, b text[])\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.date_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord.\n--! @param a eql_v3.date_ord\n--! @param b text\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.date_ord, b text)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.date_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord.\n--! @param a eql_v3.date_ord\n--! @param b integer\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.date_ord, b integer)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.date_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord.\n--! @param a eql_v3.date_ord\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.date_ord, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.date_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord.\n--! @param a eql_v3.date_ord\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#-\"(a eql_v3.date_ord, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.date_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord.\n--! @param a eql_v3.date_ord\n--! @param b eql_v3.date_ord\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.date_ord, b eql_v3.date_ord)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.date_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord.\n--! @param a eql_v3.date_ord\n--! @param b jsonb\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.date_ord, b jsonb)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.date_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord.\n--! @param a jsonb\n--! @param b eql_v3.date_ord\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a jsonb, b eql_v3.date_ord)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.date_ord'; END; $$\nLANGUAGE plpgsql;\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/date/date_eq_operators.sql\n--! @brief Operators for eql_v3.date_eq.\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.date_eq, RIGHTARG = eql_v3.date_eq,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.date_eq, RIGHTARG = jsonb,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.date_eq,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.date_eq, RIGHTARG = eql_v3.date_eq,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.date_eq, RIGHTARG = jsonb,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.date_eq,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.date_eq, RIGHTARG = eql_v3.date_eq\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.date_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.date_eq\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.date_eq, RIGHTARG = eql_v3.date_eq\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.date_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.date_eq\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.date_eq, RIGHTARG = eql_v3.date_eq\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.date_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.date_eq\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.date_eq, RIGHTARG = eql_v3.date_eq\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.date_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.date_eq\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.date_eq, RIGHTARG = eql_v3.date_eq\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.date_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = jsonb, RIGHTARG = eql_v3.date_eq\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.date_eq, RIGHTARG = eql_v3.date_eq\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.date_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = jsonb, RIGHTARG = eql_v3.date_eq\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.date_eq, RIGHTARG = text\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.date_eq, RIGHTARG = integer\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.date_eq\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.date_eq, RIGHTARG = text\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.date_eq, RIGHTARG = integer\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.date_eq\n);\n\nCREATE OPERATOR ? (\n FUNCTION = eql_v3.\"?\",\n LEFTARG = eql_v3.date_eq, RIGHTARG = text\n);\n\nCREATE OPERATOR ?| (\n FUNCTION = eql_v3.\"?|\",\n LEFTARG = eql_v3.date_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR ?& (\n FUNCTION = eql_v3.\"?&\",\n LEFTARG = eql_v3.date_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR @? (\n FUNCTION = eql_v3.\"@?\",\n LEFTARG = eql_v3.date_eq, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR @@ (\n FUNCTION = eql_v3.\"@@\",\n LEFTARG = eql_v3.date_eq, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR #> (\n FUNCTION = eql_v3.\"#>\",\n LEFTARG = eql_v3.date_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #>> (\n FUNCTION = eql_v3.\"#>>\",\n LEFTARG = eql_v3.date_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.date_eq, RIGHTARG = text\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.date_eq, RIGHTARG = integer\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.date_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #- (\n FUNCTION = eql_v3.\"#-\",\n LEFTARG = eql_v3.date_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.date_eq, RIGHTARG = eql_v3.date_eq\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.date_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.date_eq\n);\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/date/date_operators.sql\n--! @brief Operators for eql_v3.date.\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.date, RIGHTARG = eql_v3.date\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.date, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.date\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.date, RIGHTARG = eql_v3.date\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.date, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.date\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.date, RIGHTARG = eql_v3.date\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.date, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.date\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.date, RIGHTARG = eql_v3.date\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.date, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.date\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.date, RIGHTARG = eql_v3.date\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.date, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.date\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.date, RIGHTARG = eql_v3.date\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.date, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.date\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.date, RIGHTARG = eql_v3.date\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.date, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = jsonb, RIGHTARG = eql_v3.date\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.date, RIGHTARG = eql_v3.date\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.date, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = jsonb, RIGHTARG = eql_v3.date\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.date, RIGHTARG = text\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.date, RIGHTARG = integer\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.date\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.date, RIGHTARG = text\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.date, RIGHTARG = integer\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.date\n);\n\nCREATE OPERATOR ? (\n FUNCTION = eql_v3.\"?\",\n LEFTARG = eql_v3.date, RIGHTARG = text\n);\n\nCREATE OPERATOR ?| (\n FUNCTION = eql_v3.\"?|\",\n LEFTARG = eql_v3.date, RIGHTARG = text[]\n);\n\nCREATE OPERATOR ?& (\n FUNCTION = eql_v3.\"?&\",\n LEFTARG = eql_v3.date, RIGHTARG = text[]\n);\n\nCREATE OPERATOR @? (\n FUNCTION = eql_v3.\"@?\",\n LEFTARG = eql_v3.date, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR @@ (\n FUNCTION = eql_v3.\"@@\",\n LEFTARG = eql_v3.date, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR #> (\n FUNCTION = eql_v3.\"#>\",\n LEFTARG = eql_v3.date, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #>> (\n FUNCTION = eql_v3.\"#>>\",\n LEFTARG = eql_v3.date, RIGHTARG = text[]\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.date, RIGHTARG = text\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.date, RIGHTARG = integer\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.date, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #- (\n FUNCTION = eql_v3.\"#-\",\n LEFTARG = eql_v3.date, RIGHTARG = text[]\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.date, RIGHTARG = eql_v3.date\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.date, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.date\n);\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/date/date_ord_ore_aggregates.sql\n--! @brief Aggregates for eql_v3.date_ord_ore.\n\n--! @brief State function for min on eql_v3.date_ord_ore.\n--! @param state eql_v3.date_ord_ore\n--! @param value eql_v3.date_ord_ore\n--! @return eql_v3.date_ord_ore\nCREATE FUNCTION eql_v3.min_sfunc(state eql_v3.date_ord_ore, value eql_v3.date_ord_ore)\nRETURNS eql_v3.date_ord_ore\nLANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE\nSET search_path = pg_catalog, extensions, public\nAS $$\nBEGIN\n IF value < state THEN\n RETURN value;\n END IF;\n RETURN state;\nEND;\n$$;\n\n--! @brief min aggregate for eql_v3.date_ord_ore.\n--! @param input eql_v3.date_ord_ore\n--! @return eql_v3.date_ord_ore\nCREATE AGGREGATE eql_v3.min(eql_v3.date_ord_ore) (\n sfunc = eql_v3.min_sfunc,\n stype = eql_v3.date_ord_ore,\n combinefunc = eql_v3.min_sfunc,\n parallel = safe\n);\n\n--! @brief State function for max on eql_v3.date_ord_ore.\n--! @param state eql_v3.date_ord_ore\n--! @param value eql_v3.date_ord_ore\n--! @return eql_v3.date_ord_ore\nCREATE FUNCTION eql_v3.max_sfunc(state eql_v3.date_ord_ore, value eql_v3.date_ord_ore)\nRETURNS eql_v3.date_ord_ore\nLANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE\nSET search_path = pg_catalog, extensions, public\nAS $$\nBEGIN\n IF value > state THEN\n RETURN value;\n END IF;\n RETURN state;\nEND;\n$$;\n\n--! @brief max aggregate for eql_v3.date_ord_ore.\n--! @param input eql_v3.date_ord_ore\n--! @return eql_v3.date_ord_ore\nCREATE AGGREGATE eql_v3.max(eql_v3.date_ord_ore) (\n sfunc = eql_v3.max_sfunc,\n stype = eql_v3.date_ord_ore,\n combinefunc = eql_v3.max_sfunc,\n parallel = safe\n);\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/date/date_ord_operators.sql\n--! @brief Operators for eql_v3.date_ord.\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.date_ord, RIGHTARG = eql_v3.date_ord,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.date_ord, RIGHTARG = jsonb,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.date_ord, RIGHTARG = eql_v3.date_ord,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.date_ord, RIGHTARG = jsonb,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.date_ord, RIGHTARG = eql_v3.date_ord,\n COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.date_ord, RIGHTARG = jsonb,\n COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord,\n COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.date_ord, RIGHTARG = eql_v3.date_ord,\n COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.date_ord, RIGHTARG = jsonb,\n COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord,\n COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.date_ord, RIGHTARG = eql_v3.date_ord,\n COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.date_ord, RIGHTARG = jsonb,\n COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord,\n COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.date_ord, RIGHTARG = eql_v3.date_ord,\n COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.date_ord, RIGHTARG = jsonb,\n COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord,\n COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.date_ord, RIGHTARG = eql_v3.date_ord\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.date_ord, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.date_ord, RIGHTARG = eql_v3.date_ord\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.date_ord, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.date_ord, RIGHTARG = text\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.date_ord, RIGHTARG = integer\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.date_ord, RIGHTARG = text\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.date_ord, RIGHTARG = integer\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord\n);\n\nCREATE OPERATOR ? (\n FUNCTION = eql_v3.\"?\",\n LEFTARG = eql_v3.date_ord, RIGHTARG = text\n);\n\nCREATE OPERATOR ?| (\n FUNCTION = eql_v3.\"?|\",\n LEFTARG = eql_v3.date_ord, RIGHTARG = text[]\n);\n\nCREATE OPERATOR ?& (\n FUNCTION = eql_v3.\"?&\",\n LEFTARG = eql_v3.date_ord, RIGHTARG = text[]\n);\n\nCREATE OPERATOR @? (\n FUNCTION = eql_v3.\"@?\",\n LEFTARG = eql_v3.date_ord, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR @@ (\n FUNCTION = eql_v3.\"@@\",\n LEFTARG = eql_v3.date_ord, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR #> (\n FUNCTION = eql_v3.\"#>\",\n LEFTARG = eql_v3.date_ord, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #>> (\n FUNCTION = eql_v3.\"#>>\",\n LEFTARG = eql_v3.date_ord, RIGHTARG = text[]\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.date_ord, RIGHTARG = text\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.date_ord, RIGHTARG = integer\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.date_ord, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #- (\n FUNCTION = eql_v3.\"#-\",\n LEFTARG = eql_v3.date_ord, RIGHTARG = text[]\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.date_ord, RIGHTARG = eql_v3.date_ord\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.date_ord, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord\n);\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/date/date_ord_aggregates.sql\n--! @brief Aggregates for eql_v3.date_ord.\n\n--! @brief State function for min on eql_v3.date_ord.\n--! @param state eql_v3.date_ord\n--! @param value eql_v3.date_ord\n--! @return eql_v3.date_ord\nCREATE FUNCTION eql_v3.min_sfunc(state eql_v3.date_ord, value eql_v3.date_ord)\nRETURNS eql_v3.date_ord\nLANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE\nSET search_path = pg_catalog, extensions, public\nAS $$\nBEGIN\n IF value < state THEN\n RETURN value;\n END IF;\n RETURN state;\nEND;\n$$;\n\n--! @brief min aggregate for eql_v3.date_ord.\n--! @param input eql_v3.date_ord\n--! @return eql_v3.date_ord\nCREATE AGGREGATE eql_v3.min(eql_v3.date_ord) (\n sfunc = eql_v3.min_sfunc,\n stype = eql_v3.date_ord,\n combinefunc = eql_v3.min_sfunc,\n parallel = safe\n);\n\n--! @brief State function for max on eql_v3.date_ord.\n--! @param state eql_v3.date_ord\n--! @param value eql_v3.date_ord\n--! @return eql_v3.date_ord\nCREATE FUNCTION eql_v3.max_sfunc(state eql_v3.date_ord, value eql_v3.date_ord)\nRETURNS eql_v3.date_ord\nLANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE\nSET search_path = pg_catalog, extensions, public\nAS $$\nBEGIN\n IF value > state THEN\n RETURN value;\n END IF;\n RETURN state;\nEND;\n$$;\n\n--! @brief max aggregate for eql_v3.date_ord.\n--! @param input eql_v3.date_ord\n--! @return eql_v3.date_ord\nCREATE AGGREGATE eql_v3.max(eql_v3.date_ord) (\n sfunc = eql_v3.max_sfunc,\n stype = eql_v3.date_ord,\n combinefunc = eql_v3.max_sfunc,\n parallel = safe\n);\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/int8/int8_operators.sql\n--! @brief Operators for eql_v3.int8.\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.int8, RIGHTARG = eql_v3.int8\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.int8, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.int8, RIGHTARG = eql_v3.int8\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.int8, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.int8, RIGHTARG = eql_v3.int8\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.int8, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.int8, RIGHTARG = eql_v3.int8\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.int8, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.int8, RIGHTARG = eql_v3.int8\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.int8, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.int8, RIGHTARG = eql_v3.int8\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.int8, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.int8, RIGHTARG = eql_v3.int8\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.int8, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.int8, RIGHTARG = eql_v3.int8\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.int8, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.int8, RIGHTARG = text\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.int8, RIGHTARG = integer\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.int8, RIGHTARG = text\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.int8, RIGHTARG = integer\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8\n);\n\nCREATE OPERATOR ? (\n FUNCTION = eql_v3.\"?\",\n LEFTARG = eql_v3.int8, RIGHTARG = text\n);\n\nCREATE OPERATOR ?| (\n FUNCTION = eql_v3.\"?|\",\n LEFTARG = eql_v3.int8, RIGHTARG = text[]\n);\n\nCREATE OPERATOR ?& (\n FUNCTION = eql_v3.\"?&\",\n LEFTARG = eql_v3.int8, RIGHTARG = text[]\n);\n\nCREATE OPERATOR @? (\n FUNCTION = eql_v3.\"@?\",\n LEFTARG = eql_v3.int8, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR @@ (\n FUNCTION = eql_v3.\"@@\",\n LEFTARG = eql_v3.int8, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR #> (\n FUNCTION = eql_v3.\"#>\",\n LEFTARG = eql_v3.int8, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #>> (\n FUNCTION = eql_v3.\"#>>\",\n LEFTARG = eql_v3.int8, RIGHTARG = text[]\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int8, RIGHTARG = text\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int8, RIGHTARG = integer\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int8, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #- (\n FUNCTION = eql_v3.\"#-\",\n LEFTARG = eql_v3.int8, RIGHTARG = text[]\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.int8, RIGHTARG = eql_v3.int8\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.int8, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8\n);\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/int8/int8_eq_functions.sql\n--! @brief Functions for eql_v3.int8_eq.\n\n--! @brief Index extractor for eql_v3.int8_eq.\n--! @param a eql_v3.int8_eq\n--! @return eql_v3.hmac_256\nCREATE FUNCTION eql_v3.eq_term(a eql_v3.int8_eq)\nRETURNS eql_v3.hmac_256\nLANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.hmac_256(a::jsonb) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_eq.\n--! @param a eql_v3.int8_eq\n--! @param b eql_v3.int8_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.int8_eq, b eql_v3.int8_eq)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a) = eql_v3.eq_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_eq.\n--! @param a eql_v3.int8_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.int8_eq, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a) = eql_v3.eq_term(b::eql_v3.int8_eq) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_eq.\n--! @param a jsonb\n--! @param b eql_v3.int8_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.int8_eq)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a::eql_v3.int8_eq) = eql_v3.eq_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_eq.\n--! @param a eql_v3.int8_eq\n--! @param b eql_v3.int8_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.int8_eq, b eql_v3.int8_eq)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a) <> eql_v3.eq_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_eq.\n--! @param a eql_v3.int8_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.int8_eq, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a) <> eql_v3.eq_term(b::eql_v3.int8_eq) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_eq.\n--! @param a jsonb\n--! @param b eql_v3.int8_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.int8_eq)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a::eql_v3.int8_eq) <> eql_v3.eq_term(b) $$;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a eql_v3.int8_eq\n--! @param b eql_v3.int8_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.int8_eq, b eql_v3.int8_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a eql_v3.int8_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.int8_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a jsonb\n--! @param b eql_v3.int8_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.int8_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a eql_v3.int8_eq\n--! @param b eql_v3.int8_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.int8_eq, b eql_v3.int8_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a eql_v3.int8_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.int8_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a jsonb\n--! @param b eql_v3.int8_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.int8_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a eql_v3.int8_eq\n--! @param b eql_v3.int8_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.int8_eq, b eql_v3.int8_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a eql_v3.int8_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.int8_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a jsonb\n--! @param b eql_v3.int8_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.int8_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a eql_v3.int8_eq\n--! @param b eql_v3.int8_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.int8_eq, b eql_v3.int8_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a eql_v3.int8_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.int8_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a jsonb\n--! @param b eql_v3.int8_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.int8_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a eql_v3.int8_eq\n--! @param b eql_v3.int8_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.int8_eq, b eql_v3.int8_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a eql_v3.int8_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.int8_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a jsonb\n--! @param b eql_v3.int8_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.int8_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a eql_v3.int8_eq\n--! @param b eql_v3.int8_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.int8_eq, b eql_v3.int8_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a eql_v3.int8_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.int8_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a jsonb\n--! @param b eql_v3.int8_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.int8_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a eql_v3.int8_eq\n--! @param selector text\n--! @return eql_v3.int8_eq\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.int8_eq, selector text)\nRETURNS eql_v3.int8_eq IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a eql_v3.int8_eq\n--! @param selector integer\n--! @return eql_v3.int8_eq\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.int8_eq, selector integer)\nRETURNS eql_v3.int8_eq IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a jsonb\n--! @param selector eql_v3.int8_eq\n--! @return eql_v3.int8_eq\nCREATE FUNCTION eql_v3.\"->\"(a jsonb, selector eql_v3.int8_eq)\nRETURNS eql_v3.int8_eq IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a eql_v3.int8_eq\n--! @param selector text\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.int8_eq, selector text)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a eql_v3.int8_eq\n--! @param selector integer\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.int8_eq, selector integer)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a jsonb\n--! @param selector eql_v3.int8_eq\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a jsonb, selector eql_v3.int8_eq)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a eql_v3.int8_eq\n--! @param b text\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?\"(a eql_v3.int8_eq, b text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a eql_v3.int8_eq\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?|\"(a eql_v3.int8_eq, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a eql_v3.int8_eq\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?&\"(a eql_v3.int8_eq, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a eql_v3.int8_eq\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@?\"(a eql_v3.int8_eq, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a eql_v3.int8_eq\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@@\"(a eql_v3.int8_eq, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a eql_v3.int8_eq\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#>\"(a eql_v3.int8_eq, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a eql_v3.int8_eq\n--! @param b text[]\n--! @return text\nCREATE FUNCTION eql_v3.\"#>>\"(a eql_v3.int8_eq, b text[])\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a eql_v3.int8_eq\n--! @param b text\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int8_eq, b text)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a eql_v3.int8_eq\n--! @param b integer\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int8_eq, b integer)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a eql_v3.int8_eq\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int8_eq, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a eql_v3.int8_eq\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#-\"(a eql_v3.int8_eq, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a eql_v3.int8_eq\n--! @param b eql_v3.int8_eq\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.int8_eq, b eql_v3.int8_eq)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a eql_v3.int8_eq\n--! @param b jsonb\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.int8_eq, b jsonb)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a jsonb\n--! @param b eql_v3.int8_eq\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a jsonb, b eql_v3.int8_eq)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/int8/int8_ord_ore_functions.sql\n--! @brief Functions for eql_v3.int8_ord_ore.\n\n--! @brief Index extractor for eql_v3.int8_ord_ore.\n--! @param a eql_v3.int8_ord_ore\n--! @return eql_v3.ore_block_u64_8_256\nCREATE FUNCTION eql_v3.ord_term(a eql_v3.int8_ord_ore)\nRETURNS eql_v3.ore_block_u64_8_256\nLANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ore_block_u64_8_256(a::jsonb) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord_ore.\n--! @param a eql_v3.int8_ord_ore\n--! @param b eql_v3.int8_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.int8_ord_ore, b eql_v3.int8_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord_ore.\n--! @param a eql_v3.int8_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.int8_ord_ore, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b::eql_v3.int8_ord_ore) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.int8_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.int8_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int8_ord_ore) = eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord_ore.\n--! @param a eql_v3.int8_ord_ore\n--! @param b eql_v3.int8_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.int8_ord_ore, b eql_v3.int8_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord_ore.\n--! @param a eql_v3.int8_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.int8_ord_ore, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b::eql_v3.int8_ord_ore) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.int8_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.int8_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int8_ord_ore) <> eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord_ore.\n--! @param a eql_v3.int8_ord_ore\n--! @param b eql_v3.int8_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.int8_ord_ore, b eql_v3.int8_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord_ore.\n--! @param a eql_v3.int8_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.int8_ord_ore, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b::eql_v3.int8_ord_ore) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.int8_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.int8_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int8_ord_ore) < eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord_ore.\n--! @param a eql_v3.int8_ord_ore\n--! @param b eql_v3.int8_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.int8_ord_ore, b eql_v3.int8_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord_ore.\n--! @param a eql_v3.int8_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.int8_ord_ore, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b::eql_v3.int8_ord_ore) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.int8_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.int8_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int8_ord_ore) <= eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord_ore.\n--! @param a eql_v3.int8_ord_ore\n--! @param b eql_v3.int8_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.int8_ord_ore, b eql_v3.int8_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord_ore.\n--! @param a eql_v3.int8_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.int8_ord_ore, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b::eql_v3.int8_ord_ore) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.int8_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.int8_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int8_ord_ore) > eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord_ore.\n--! @param a eql_v3.int8_ord_ore\n--! @param b eql_v3.int8_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.int8_ord_ore, b eql_v3.int8_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord_ore.\n--! @param a eql_v3.int8_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.int8_ord_ore, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b::eql_v3.int8_ord_ore) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.int8_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.int8_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int8_ord_ore) >= eql_v3.ord_term(b) $$;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore.\n--! @param a eql_v3.int8_ord_ore\n--! @param b eql_v3.int8_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.int8_ord_ore, b eql_v3.int8_ord_ore)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int8_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore.\n--! @param a eql_v3.int8_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.int8_ord_ore, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int8_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.int8_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.int8_ord_ore)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int8_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore.\n--! @param a eql_v3.int8_ord_ore\n--! @param b eql_v3.int8_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.int8_ord_ore, b eql_v3.int8_ord_ore)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int8_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore.\n--! @param a eql_v3.int8_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.int8_ord_ore, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int8_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.int8_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.int8_ord_ore)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int8_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore.\n--! @param a eql_v3.int8_ord_ore\n--! @param selector text\n--! @return eql_v3.int8_ord_ore\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.int8_ord_ore, selector text)\nRETURNS eql_v3.int8_ord_ore IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int8_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore.\n--! @param a eql_v3.int8_ord_ore\n--! @param selector integer\n--! @return eql_v3.int8_ord_ore\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.int8_ord_ore, selector integer)\nRETURNS eql_v3.int8_ord_ore IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int8_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore.\n--! @param a jsonb\n--! @param selector eql_v3.int8_ord_ore\n--! @return eql_v3.int8_ord_ore\nCREATE FUNCTION eql_v3.\"->\"(a jsonb, selector eql_v3.int8_ord_ore)\nRETURNS eql_v3.int8_ord_ore IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int8_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore.\n--! @param a eql_v3.int8_ord_ore\n--! @param selector text\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.int8_ord_ore, selector text)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int8_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore.\n--! @param a eql_v3.int8_ord_ore\n--! @param selector integer\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.int8_ord_ore, selector integer)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int8_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore.\n--! @param a jsonb\n--! @param selector eql_v3.int8_ord_ore\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a jsonb, selector eql_v3.int8_ord_ore)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int8_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore.\n--! @param a eql_v3.int8_ord_ore\n--! @param b text\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?\"(a eql_v3.int8_ord_ore, b text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.int8_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore.\n--! @param a eql_v3.int8_ord_ore\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?|\"(a eql_v3.int8_ord_ore, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.int8_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore.\n--! @param a eql_v3.int8_ord_ore\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?&\"(a eql_v3.int8_ord_ore, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.int8_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore.\n--! @param a eql_v3.int8_ord_ore\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@?\"(a eql_v3.int8_ord_ore, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.int8_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore.\n--! @param a eql_v3.int8_ord_ore\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@@\"(a eql_v3.int8_ord_ore, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.int8_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore.\n--! @param a eql_v3.int8_ord_ore\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#>\"(a eql_v3.int8_ord_ore, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.int8_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore.\n--! @param a eql_v3.int8_ord_ore\n--! @param b text[]\n--! @return text\nCREATE FUNCTION eql_v3.\"#>>\"(a eql_v3.int8_ord_ore, b text[])\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.int8_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore.\n--! @param a eql_v3.int8_ord_ore\n--! @param b text\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int8_ord_ore, b text)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int8_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore.\n--! @param a eql_v3.int8_ord_ore\n--! @param b integer\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int8_ord_ore, b integer)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int8_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore.\n--! @param a eql_v3.int8_ord_ore\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int8_ord_ore, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int8_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore.\n--! @param a eql_v3.int8_ord_ore\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#-\"(a eql_v3.int8_ord_ore, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.int8_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore.\n--! @param a eql_v3.int8_ord_ore\n--! @param b eql_v3.int8_ord_ore\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.int8_ord_ore, b eql_v3.int8_ord_ore)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int8_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore.\n--! @param a eql_v3.int8_ord_ore\n--! @param b jsonb\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.int8_ord_ore, b jsonb)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int8_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.int8_ord_ore\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a jsonb, b eql_v3.int8_ord_ore)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int8_ord_ore'; END; $$\nLANGUAGE plpgsql;\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/int8/int8_ord_operators.sql\n--! @brief Operators for eql_v3.int8_ord.\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.int8_ord, RIGHTARG = eql_v3.int8_ord,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.int8_ord, RIGHTARG = jsonb,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.int8_ord, RIGHTARG = eql_v3.int8_ord,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.int8_ord, RIGHTARG = jsonb,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.int8_ord, RIGHTARG = eql_v3.int8_ord,\n COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.int8_ord, RIGHTARG = jsonb,\n COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord,\n COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.int8_ord, RIGHTARG = eql_v3.int8_ord,\n COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.int8_ord, RIGHTARG = jsonb,\n COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord,\n COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.int8_ord, RIGHTARG = eql_v3.int8_ord,\n COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.int8_ord, RIGHTARG = jsonb,\n COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord,\n COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.int8_ord, RIGHTARG = eql_v3.int8_ord,\n COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.int8_ord, RIGHTARG = jsonb,\n COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord,\n COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.int8_ord, RIGHTARG = eql_v3.int8_ord\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.int8_ord, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.int8_ord, RIGHTARG = eql_v3.int8_ord\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.int8_ord, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.int8_ord, RIGHTARG = text\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.int8_ord, RIGHTARG = integer\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.int8_ord, RIGHTARG = text\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.int8_ord, RIGHTARG = integer\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord\n);\n\nCREATE OPERATOR ? (\n FUNCTION = eql_v3.\"?\",\n LEFTARG = eql_v3.int8_ord, RIGHTARG = text\n);\n\nCREATE OPERATOR ?| (\n FUNCTION = eql_v3.\"?|\",\n LEFTARG = eql_v3.int8_ord, RIGHTARG = text[]\n);\n\nCREATE OPERATOR ?& (\n FUNCTION = eql_v3.\"?&\",\n LEFTARG = eql_v3.int8_ord, RIGHTARG = text[]\n);\n\nCREATE OPERATOR @? (\n FUNCTION = eql_v3.\"@?\",\n LEFTARG = eql_v3.int8_ord, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR @@ (\n FUNCTION = eql_v3.\"@@\",\n LEFTARG = eql_v3.int8_ord, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR #> (\n FUNCTION = eql_v3.\"#>\",\n LEFTARG = eql_v3.int8_ord, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #>> (\n FUNCTION = eql_v3.\"#>>\",\n LEFTARG = eql_v3.int8_ord, RIGHTARG = text[]\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int8_ord, RIGHTARG = text\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int8_ord, RIGHTARG = integer\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int8_ord, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #- (\n FUNCTION = eql_v3.\"#-\",\n LEFTARG = eql_v3.int8_ord, RIGHTARG = text[]\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.int8_ord, RIGHTARG = eql_v3.int8_ord\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.int8_ord, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord\n);\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/int8/int8_ord_ore_operators.sql\n--! @brief Operators for eql_v3.int8_ord_ore.\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = eql_v3.int8_ord_ore,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = jsonb,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord_ore,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = eql_v3.int8_ord_ore,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = jsonb,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord_ore,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = eql_v3.int8_ord_ore,\n COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = jsonb,\n COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord_ore,\n COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = eql_v3.int8_ord_ore,\n COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = jsonb,\n COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord_ore,\n COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = eql_v3.int8_ord_ore,\n COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = jsonb,\n COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord_ore,\n COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = eql_v3.int8_ord_ore,\n COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = jsonb,\n COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord_ore,\n COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = eql_v3.int8_ord_ore\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord_ore\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = eql_v3.int8_ord_ore\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord_ore\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = text\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = integer\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord_ore\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = text\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = integer\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord_ore\n);\n\nCREATE OPERATOR ? (\n FUNCTION = eql_v3.\"?\",\n LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = text\n);\n\nCREATE OPERATOR ?| (\n FUNCTION = eql_v3.\"?|\",\n LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = text[]\n);\n\nCREATE OPERATOR ?& (\n FUNCTION = eql_v3.\"?&\",\n LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = text[]\n);\n\nCREATE OPERATOR @? (\n FUNCTION = eql_v3.\"@?\",\n LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR @@ (\n FUNCTION = eql_v3.\"@@\",\n LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR #> (\n FUNCTION = eql_v3.\"#>\",\n LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #>> (\n FUNCTION = eql_v3.\"#>>\",\n LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = text[]\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = text\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = integer\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #- (\n FUNCTION = eql_v3.\"#-\",\n LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = text[]\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = eql_v3.int8_ord_ore\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord_ore\n);\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/int8/int8_ord_ore_aggregates.sql\n--! @brief Aggregates for eql_v3.int8_ord_ore.\n\n--! @brief State function for min on eql_v3.int8_ord_ore.\n--! @param state eql_v3.int8_ord_ore\n--! @param value eql_v3.int8_ord_ore\n--! @return eql_v3.int8_ord_ore\nCREATE FUNCTION eql_v3.min_sfunc(state eql_v3.int8_ord_ore, value eql_v3.int8_ord_ore)\nRETURNS eql_v3.int8_ord_ore\nLANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE\nSET search_path = pg_catalog, extensions, public\nAS $$\nBEGIN\n IF value < state THEN\n RETURN value;\n END IF;\n RETURN state;\nEND;\n$$;\n\n--! @brief min aggregate for eql_v3.int8_ord_ore.\n--! @param input eql_v3.int8_ord_ore\n--! @return eql_v3.int8_ord_ore\nCREATE AGGREGATE eql_v3.min(eql_v3.int8_ord_ore) (\n sfunc = eql_v3.min_sfunc,\n stype = eql_v3.int8_ord_ore,\n combinefunc = eql_v3.min_sfunc,\n parallel = safe\n);\n\n--! @brief State function for max on eql_v3.int8_ord_ore.\n--! @param state eql_v3.int8_ord_ore\n--! @param value eql_v3.int8_ord_ore\n--! @return eql_v3.int8_ord_ore\nCREATE FUNCTION eql_v3.max_sfunc(state eql_v3.int8_ord_ore, value eql_v3.int8_ord_ore)\nRETURNS eql_v3.int8_ord_ore\nLANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE\nSET search_path = pg_catalog, extensions, public\nAS $$\nBEGIN\n IF value > state THEN\n RETURN value;\n END IF;\n RETURN state;\nEND;\n$$;\n\n--! @brief max aggregate for eql_v3.int8_ord_ore.\n--! @param input eql_v3.int8_ord_ore\n--! @return eql_v3.int8_ord_ore\nCREATE AGGREGATE eql_v3.max(eql_v3.int8_ord_ore) (\n sfunc = eql_v3.max_sfunc,\n stype = eql_v3.int8_ord_ore,\n combinefunc = eql_v3.max_sfunc,\n parallel = safe\n);\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/int8/int8_ord_aggregates.sql\n--! @brief Aggregates for eql_v3.int8_ord.\n\n--! @brief State function for min on eql_v3.int8_ord.\n--! @param state eql_v3.int8_ord\n--! @param value eql_v3.int8_ord\n--! @return eql_v3.int8_ord\nCREATE FUNCTION eql_v3.min_sfunc(state eql_v3.int8_ord, value eql_v3.int8_ord)\nRETURNS eql_v3.int8_ord\nLANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE\nSET search_path = pg_catalog, extensions, public\nAS $$\nBEGIN\n IF value < state THEN\n RETURN value;\n END IF;\n RETURN state;\nEND;\n$$;\n\n--! @brief min aggregate for eql_v3.int8_ord.\n--! @param input eql_v3.int8_ord\n--! @return eql_v3.int8_ord\nCREATE AGGREGATE eql_v3.min(eql_v3.int8_ord) (\n sfunc = eql_v3.min_sfunc,\n stype = eql_v3.int8_ord,\n combinefunc = eql_v3.min_sfunc,\n parallel = safe\n);\n\n--! @brief State function for max on eql_v3.int8_ord.\n--! @param state eql_v3.int8_ord\n--! @param value eql_v3.int8_ord\n--! @return eql_v3.int8_ord\nCREATE FUNCTION eql_v3.max_sfunc(state eql_v3.int8_ord, value eql_v3.int8_ord)\nRETURNS eql_v3.int8_ord\nLANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE\nSET search_path = pg_catalog, extensions, public\nAS $$\nBEGIN\n IF value > state THEN\n RETURN value;\n END IF;\n RETURN state;\nEND;\n$$;\n\n--! @brief max aggregate for eql_v3.int8_ord.\n--! @param input eql_v3.int8_ord\n--! @return eql_v3.int8_ord\nCREATE AGGREGATE eql_v3.max(eql_v3.int8_ord) (\n sfunc = eql_v3.max_sfunc,\n stype = eql_v3.int8_ord,\n combinefunc = eql_v3.max_sfunc,\n parallel = safe\n);\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/int8/int8_eq_operators.sql\n--! @brief Operators for eql_v3.int8_eq.\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.int8_eq, RIGHTARG = eql_v3.int8_eq,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.int8_eq, RIGHTARG = jsonb,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8_eq,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.int8_eq, RIGHTARG = eql_v3.int8_eq,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.int8_eq, RIGHTARG = jsonb,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8_eq,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.int8_eq, RIGHTARG = eql_v3.int8_eq\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.int8_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8_eq\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.int8_eq, RIGHTARG = eql_v3.int8_eq\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.int8_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8_eq\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.int8_eq, RIGHTARG = eql_v3.int8_eq\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.int8_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8_eq\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.int8_eq, RIGHTARG = eql_v3.int8_eq\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.int8_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8_eq\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.int8_eq, RIGHTARG = eql_v3.int8_eq\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.int8_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8_eq\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.int8_eq, RIGHTARG = eql_v3.int8_eq\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.int8_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8_eq\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.int8_eq, RIGHTARG = text\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.int8_eq, RIGHTARG = integer\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8_eq\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.int8_eq, RIGHTARG = text\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.int8_eq, RIGHTARG = integer\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8_eq\n);\n\nCREATE OPERATOR ? (\n FUNCTION = eql_v3.\"?\",\n LEFTARG = eql_v3.int8_eq, RIGHTARG = text\n);\n\nCREATE OPERATOR ?| (\n FUNCTION = eql_v3.\"?|\",\n LEFTARG = eql_v3.int8_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR ?& (\n FUNCTION = eql_v3.\"?&\",\n LEFTARG = eql_v3.int8_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR @? (\n FUNCTION = eql_v3.\"@?\",\n LEFTARG = eql_v3.int8_eq, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR @@ (\n FUNCTION = eql_v3.\"@@\",\n LEFTARG = eql_v3.int8_eq, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR #> (\n FUNCTION = eql_v3.\"#>\",\n LEFTARG = eql_v3.int8_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #>> (\n FUNCTION = eql_v3.\"#>>\",\n LEFTARG = eql_v3.int8_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int8_eq, RIGHTARG = text\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int8_eq, RIGHTARG = integer\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int8_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #- (\n FUNCTION = eql_v3.\"#-\",\n LEFTARG = eql_v3.int8_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.int8_eq, RIGHTARG = eql_v3.int8_eq\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.int8_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8_eq\n);\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/text/text_functions.sql\n--! @brief Functions for eql_v3.text.\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a eql_v3.text\n--! @param b eql_v3.text\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.text, b eql_v3.text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a eql_v3.text\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.text, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a jsonb\n--! @param b eql_v3.text\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a eql_v3.text\n--! @param b eql_v3.text\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.text, b eql_v3.text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a eql_v3.text\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.text, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a jsonb\n--! @param b eql_v3.text\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a eql_v3.text\n--! @param b eql_v3.text\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.text, b eql_v3.text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a eql_v3.text\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.text, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a jsonb\n--! @param b eql_v3.text\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a eql_v3.text\n--! @param b eql_v3.text\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.text, b eql_v3.text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a eql_v3.text\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.text, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a jsonb\n--! @param b eql_v3.text\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a eql_v3.text\n--! @param b eql_v3.text\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.text, b eql_v3.text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a eql_v3.text\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.text, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a jsonb\n--! @param b eql_v3.text\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a eql_v3.text\n--! @param b eql_v3.text\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.text, b eql_v3.text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a eql_v3.text\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.text, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a jsonb\n--! @param b eql_v3.text\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a eql_v3.text\n--! @param b eql_v3.text\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.text, b eql_v3.text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a eql_v3.text\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.text, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a jsonb\n--! @param b eql_v3.text\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a eql_v3.text\n--! @param b eql_v3.text\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.text, b eql_v3.text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a eql_v3.text\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.text, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a jsonb\n--! @param b eql_v3.text\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a eql_v3.text\n--! @param selector text\n--! @return eql_v3.text\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.text, selector text)\nRETURNS eql_v3.text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a eql_v3.text\n--! @param selector integer\n--! @return eql_v3.text\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.text, selector integer)\nRETURNS eql_v3.text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a jsonb\n--! @param selector eql_v3.text\n--! @return eql_v3.text\nCREATE FUNCTION eql_v3.\"->\"(a jsonb, selector eql_v3.text)\nRETURNS eql_v3.text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a eql_v3.text\n--! @param selector text\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.text, selector text)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a eql_v3.text\n--! @param selector integer\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.text, selector integer)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a jsonb\n--! @param selector eql_v3.text\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a jsonb, selector eql_v3.text)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a eql_v3.text\n--! @param b text\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?\"(a eql_v3.text, b text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a eql_v3.text\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?|\"(a eql_v3.text, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a eql_v3.text\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?&\"(a eql_v3.text, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a eql_v3.text\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@?\"(a eql_v3.text, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a eql_v3.text\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@@\"(a eql_v3.text, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a eql_v3.text\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#>\"(a eql_v3.text, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a eql_v3.text\n--! @param b text[]\n--! @return text\nCREATE FUNCTION eql_v3.\"#>>\"(a eql_v3.text, b text[])\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a eql_v3.text\n--! @param b text\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.text, b text)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a eql_v3.text\n--! @param b integer\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.text, b integer)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a eql_v3.text\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.text, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a eql_v3.text\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#-\"(a eql_v3.text, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a eql_v3.text\n--! @param b eql_v3.text\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.text, b eql_v3.text)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a eql_v3.text\n--! @param b jsonb\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.text, b jsonb)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a jsonb\n--! @param b eql_v3.text\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a jsonb, b eql_v3.text)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/text/text_match_operators.sql\n--! @brief Operators for eql_v3.text_match.\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.text_match, RIGHTARG = eql_v3.text_match\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.text_match, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_match\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.text_match, RIGHTARG = eql_v3.text_match\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.text_match, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_match\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.text_match, RIGHTARG = eql_v3.text_match\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.text_match, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_match\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.text_match, RIGHTARG = eql_v3.text_match\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.text_match, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_match\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.text_match, RIGHTARG = eql_v3.text_match\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.text_match, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_match\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.text_match, RIGHTARG = eql_v3.text_match\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.text_match, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_match\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.text_match, RIGHTARG = eql_v3.text_match,\n COMMUTATOR = <@, RESTRICT = contsel, JOIN = contjoinsel\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.text_match, RIGHTARG = jsonb,\n COMMUTATOR = <@, RESTRICT = contsel, JOIN = contjoinsel\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_match,\n COMMUTATOR = <@, RESTRICT = contsel, JOIN = contjoinsel\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.text_match, RIGHTARG = eql_v3.text_match,\n COMMUTATOR = @>, RESTRICT = contsel, JOIN = contjoinsel\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.text_match, RIGHTARG = jsonb,\n COMMUTATOR = @>, RESTRICT = contsel, JOIN = contjoinsel\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_match,\n COMMUTATOR = @>, RESTRICT = contsel, JOIN = contjoinsel\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.text_match, RIGHTARG = text\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.text_match, RIGHTARG = integer\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_match\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.text_match, RIGHTARG = text\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.text_match, RIGHTARG = integer\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_match\n);\n\nCREATE OPERATOR ? (\n FUNCTION = eql_v3.\"?\",\n LEFTARG = eql_v3.text_match, RIGHTARG = text\n);\n\nCREATE OPERATOR ?| (\n FUNCTION = eql_v3.\"?|\",\n LEFTARG = eql_v3.text_match, RIGHTARG = text[]\n);\n\nCREATE OPERATOR ?& (\n FUNCTION = eql_v3.\"?&\",\n LEFTARG = eql_v3.text_match, RIGHTARG = text[]\n);\n\nCREATE OPERATOR @? (\n FUNCTION = eql_v3.\"@?\",\n LEFTARG = eql_v3.text_match, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR @@ (\n FUNCTION = eql_v3.\"@@\",\n LEFTARG = eql_v3.text_match, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR #> (\n FUNCTION = eql_v3.\"#>\",\n LEFTARG = eql_v3.text_match, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #>> (\n FUNCTION = eql_v3.\"#>>\",\n LEFTARG = eql_v3.text_match, RIGHTARG = text[]\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.text_match, RIGHTARG = text\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.text_match, RIGHTARG = integer\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.text_match, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #- (\n FUNCTION = eql_v3.\"#-\",\n LEFTARG = eql_v3.text_match, RIGHTARG = text[]\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.text_match, RIGHTARG = eql_v3.text_match\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.text_match, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_match\n);\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/text/text_eq_operators.sql\n--! @brief Operators for eql_v3.text_eq.\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.text_eq, RIGHTARG = eql_v3.text_eq,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.text_eq, RIGHTARG = jsonb,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_eq,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.text_eq, RIGHTARG = eql_v3.text_eq,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.text_eq, RIGHTARG = jsonb,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_eq,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.text_eq, RIGHTARG = eql_v3.text_eq\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.text_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_eq\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.text_eq, RIGHTARG = eql_v3.text_eq\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.text_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_eq\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.text_eq, RIGHTARG = eql_v3.text_eq\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.text_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_eq\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.text_eq, RIGHTARG = eql_v3.text_eq\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.text_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_eq\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.text_eq, RIGHTARG = eql_v3.text_eq\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.text_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_eq\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.text_eq, RIGHTARG = eql_v3.text_eq\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.text_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_eq\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.text_eq, RIGHTARG = text\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.text_eq, RIGHTARG = integer\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_eq\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.text_eq, RIGHTARG = text\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.text_eq, RIGHTARG = integer\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_eq\n);\n\nCREATE OPERATOR ? (\n FUNCTION = eql_v3.\"?\",\n LEFTARG = eql_v3.text_eq, RIGHTARG = text\n);\n\nCREATE OPERATOR ?| (\n FUNCTION = eql_v3.\"?|\",\n LEFTARG = eql_v3.text_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR ?& (\n FUNCTION = eql_v3.\"?&\",\n LEFTARG = eql_v3.text_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR @? (\n FUNCTION = eql_v3.\"@?\",\n LEFTARG = eql_v3.text_eq, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR @@ (\n FUNCTION = eql_v3.\"@@\",\n LEFTARG = eql_v3.text_eq, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR #> (\n FUNCTION = eql_v3.\"#>\",\n LEFTARG = eql_v3.text_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #>> (\n FUNCTION = eql_v3.\"#>>\",\n LEFTARG = eql_v3.text_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.text_eq, RIGHTARG = text\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.text_eq, RIGHTARG = integer\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.text_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #- (\n FUNCTION = eql_v3.\"#-\",\n LEFTARG = eql_v3.text_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.text_eq, RIGHTARG = eql_v3.text_eq\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.text_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_eq\n);\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/text/text_ord_ore_aggregates.sql\n--! @brief Aggregates for eql_v3.text_ord_ore.\n\n--! @brief State function for min on eql_v3.text_ord_ore.\n--! @param state eql_v3.text_ord_ore\n--! @param value eql_v3.text_ord_ore\n--! @return eql_v3.text_ord_ore\nCREATE FUNCTION eql_v3.min_sfunc(state eql_v3.text_ord_ore, value eql_v3.text_ord_ore)\nRETURNS eql_v3.text_ord_ore\nLANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE\nSET search_path = pg_catalog, extensions, public\nAS $$\nBEGIN\n IF value < state THEN\n RETURN value;\n END IF;\n RETURN state;\nEND;\n$$;\n\n--! @brief min aggregate for eql_v3.text_ord_ore.\n--! @param input eql_v3.text_ord_ore\n--! @return eql_v3.text_ord_ore\nCREATE AGGREGATE eql_v3.min(eql_v3.text_ord_ore) (\n sfunc = eql_v3.min_sfunc,\n stype = eql_v3.text_ord_ore,\n combinefunc = eql_v3.min_sfunc,\n parallel = safe\n);\n\n--! @brief State function for max on eql_v3.text_ord_ore.\n--! @param state eql_v3.text_ord_ore\n--! @param value eql_v3.text_ord_ore\n--! @return eql_v3.text_ord_ore\nCREATE FUNCTION eql_v3.max_sfunc(state eql_v3.text_ord_ore, value eql_v3.text_ord_ore)\nRETURNS eql_v3.text_ord_ore\nLANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE\nSET search_path = pg_catalog, extensions, public\nAS $$\nBEGIN\n IF value > state THEN\n RETURN value;\n END IF;\n RETURN state;\nEND;\n$$;\n\n--! @brief max aggregate for eql_v3.text_ord_ore.\n--! @param input eql_v3.text_ord_ore\n--! @return eql_v3.text_ord_ore\nCREATE AGGREGATE eql_v3.max(eql_v3.text_ord_ore) (\n sfunc = eql_v3.max_sfunc,\n stype = eql_v3.text_ord_ore,\n combinefunc = eql_v3.max_sfunc,\n parallel = safe\n);\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/text/text_ord_aggregates.sql\n--! @brief Aggregates for eql_v3.text_ord.\n\n--! @brief State function for min on eql_v3.text_ord.\n--! @param state eql_v3.text_ord\n--! @param value eql_v3.text_ord\n--! @return eql_v3.text_ord\nCREATE FUNCTION eql_v3.min_sfunc(state eql_v3.text_ord, value eql_v3.text_ord)\nRETURNS eql_v3.text_ord\nLANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE\nSET search_path = pg_catalog, extensions, public\nAS $$\nBEGIN\n IF value < state THEN\n RETURN value;\n END IF;\n RETURN state;\nEND;\n$$;\n\n--! @brief min aggregate for eql_v3.text_ord.\n--! @param input eql_v3.text_ord\n--! @return eql_v3.text_ord\nCREATE AGGREGATE eql_v3.min(eql_v3.text_ord) (\n sfunc = eql_v3.min_sfunc,\n stype = eql_v3.text_ord,\n combinefunc = eql_v3.min_sfunc,\n parallel = safe\n);\n\n--! @brief State function for max on eql_v3.text_ord.\n--! @param state eql_v3.text_ord\n--! @param value eql_v3.text_ord\n--! @return eql_v3.text_ord\nCREATE FUNCTION eql_v3.max_sfunc(state eql_v3.text_ord, value eql_v3.text_ord)\nRETURNS eql_v3.text_ord\nLANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE\nSET search_path = pg_catalog, extensions, public\nAS $$\nBEGIN\n IF value > state THEN\n RETURN value;\n END IF;\n RETURN state;\nEND;\n$$;\n\n--! @brief max aggregate for eql_v3.text_ord.\n--! @param input eql_v3.text_ord\n--! @return eql_v3.text_ord\nCREATE AGGREGATE eql_v3.max(eql_v3.text_ord) (\n sfunc = eql_v3.max_sfunc,\n stype = eql_v3.text_ord,\n combinefunc = eql_v3.max_sfunc,\n parallel = safe\n);\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/text/text_operators.sql\n--! @brief Operators for eql_v3.text.\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.text, RIGHTARG = eql_v3.text\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.text, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.text, RIGHTARG = eql_v3.text\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.text, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.text, RIGHTARG = eql_v3.text\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.text, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.text, RIGHTARG = eql_v3.text\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.text, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.text, RIGHTARG = eql_v3.text\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.text, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.text, RIGHTARG = eql_v3.text\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.text, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.text, RIGHTARG = eql_v3.text\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.text, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.text, RIGHTARG = eql_v3.text\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.text, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.text, RIGHTARG = text\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.text, RIGHTARG = integer\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.text\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.text, RIGHTARG = text\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.text, RIGHTARG = integer\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.text\n);\n\nCREATE OPERATOR ? (\n FUNCTION = eql_v3.\"?\",\n LEFTARG = eql_v3.text, RIGHTARG = text\n);\n\nCREATE OPERATOR ?| (\n FUNCTION = eql_v3.\"?|\",\n LEFTARG = eql_v3.text, RIGHTARG = text[]\n);\n\nCREATE OPERATOR ?& (\n FUNCTION = eql_v3.\"?&\",\n LEFTARG = eql_v3.text, RIGHTARG = text[]\n);\n\nCREATE OPERATOR @? (\n FUNCTION = eql_v3.\"@?\",\n LEFTARG = eql_v3.text, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR @@ (\n FUNCTION = eql_v3.\"@@\",\n LEFTARG = eql_v3.text, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR #> (\n FUNCTION = eql_v3.\"#>\",\n LEFTARG = eql_v3.text, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #>> (\n FUNCTION = eql_v3.\"#>>\",\n LEFTARG = eql_v3.text, RIGHTARG = text[]\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.text, RIGHTARG = text\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.text, RIGHTARG = integer\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.text, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #- (\n FUNCTION = eql_v3.\"#-\",\n LEFTARG = eql_v3.text, RIGHTARG = text[]\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.text, RIGHTARG = eql_v3.text\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.text, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.text\n);\n\n--! @file v3/sem/ore_block_u64_8_256/operator_class.sql\n--! @brief B-tree operator family + default class on eql_v3.ore_block_u64_8_256.\n--!\n--! Gives the composite type its DEFAULT btree opclass so the recommended\n--! functional index `CREATE INDEX ON t (eql_v3.ord_term(col))` engages without\n--! an explicit opclass annotation (design D4). Excluded from the Supabase build\n--! variant by the `**/*operator_class.sql` glob.\n\n--! @brief B-tree operator family for ORE block types\nCREATE OPERATOR FAMILY eql_v3.ore_block_u64_8_256_operator_family USING btree;\n\n--! @brief B-tree operator class for ORE block encrypted values\n--!\n--! Supports operators: <, <=, =, >=, >. Uses comparison function\n--! compare_ore_block_u64_8_256_terms.\nCREATE OPERATOR CLASS eql_v3.ore_block_u64_8_256_operator_class DEFAULT FOR TYPE eql_v3.ore_block_u64_8_256 USING btree FAMILY eql_v3.ore_block_u64_8_256_operator_family AS\n OPERATOR 1 <,\n OPERATOR 2 <=,\n OPERATOR 3 =,\n OPERATOR 4 >=,\n OPERATOR 5 >,\n FUNCTION 1 eql_v3.compare_ore_block_u64_8_256_terms(a eql_v3.ore_block_u64_8_256, b eql_v3.ore_block_u64_8_256);\n" + } + ], + "postcheck": [ + { + "description": "verify \"eql_v3\" schema exists", + "sql": "SELECT EXISTS (SELECT 1 FROM pg_namespace WHERE nspname = 'eql_v3')" + }, + { + "description": "verify \"eql_v3.text_eq\" domain exists", + "sql": "SELECT EXISTS (SELECT 1 FROM pg_type t JOIN pg_namespace n ON n.oid = t.typnamespace WHERE n.nspname = 'eql_v3' AND t.typname = 'text_eq')" + } + ] + } +] \ No newline at end of file diff --git a/packages/prisma-next/src/migration/codec-hooks-v3.ts b/packages/prisma-next/src/migration/codec-hooks-v3.ts new file mode 100644 index 00000000..becc5955 --- /dev/null +++ b/packages/prisma-next/src/migration/codec-hooks-v3.ts @@ -0,0 +1,38 @@ +/** + * `CodecControlHooks` for the EQL v3 string codec. + * + * v3 diverges from the v2 hooks factory in two ways: + * + * - **`expandNativeType` is NOT identity.** A v3 column's DDL type is the + * per-index domain (`eql_v3.text_eq` / `text_match` / `text_ord`), derived + * from `typeParams.index`. The base `eql_v3.text` is narrowed here at plan + * time — this is what makes the column's domain CHECK enforce the chosen + * index capability. + * - **`onFieldEvent` emits NO `add_search_config`.** In v2 the search capability + * is wired by `eql_v2.add_search_config` rows; in v3 the domain type itself + * encodes the capability (applied via `expandNativeType`), so no config rows + * are emitted on add/drop/alter. + */ + +import type { CodecControlHooks } from '@prisma-next/family-sql/control' +import { type V3Index, eqlV3Domain } from '../v3/domain-map' + +const V3_INDEX_VALUES = ['equality', 'freeTextSearch', 'orderAndRange'] as const + +function isV3Index(value: unknown): value is V3Index { + return typeof value === 'string' && (V3_INDEX_VALUES as readonly string[]).includes(value) +} + +const expandNativeType: NonNullable = ({ typeParams }) => { + const index = typeParams?.['index'] + // Per-index domain when the column declares one (it always does); fall back to + // the base storage domain otherwise so the hook never throws on a degenerate ctx. + return eqlV3Domain('text', isV3Index(index) ? index : undefined) +} + +export const cipherstashStringV3CodecHooks: CodecControlHooks = { + // v3 capability is encoded by the domain type (expandNativeType), not by + // add_search_config rows — so no field-event ops are emitted. + onFieldEvent: () => [], + expandNativeType, +} diff --git a/packages/prisma-next/test/v3/codec-hooks-v3.test.ts b/packages/prisma-next/test/v3/codec-hooks-v3.test.ts new file mode 100644 index 00000000..7b038e4f --- /dev/null +++ b/packages/prisma-next/test/v3/codec-hooks-v3.test.ts @@ -0,0 +1,27 @@ +import { describe, expect, it } from 'vitest' +import { cipherstashStringV3CodecHooks } from '../../src/migration/codec-hooks-v3' + +describe('cipherstashStringV3CodecHooks.expandNativeType', () => { + const expand = cipherstashStringV3CodecHooks.expandNativeType! + + it('returns the per-index domain for the column', () => { + expect(expand({ nativeType: 'eql_v3.text', typeParams: { index: 'equality' } })).toBe('eql_v3.text_eq') + expect(expand({ nativeType: 'eql_v3.text', typeParams: { index: 'freeTextSearch' } })).toBe('eql_v3.text_match') + expect(expand({ nativeType: 'eql_v3.text', typeParams: { index: 'orderAndRange' } })).toBe('eql_v3.text_ord') + }) + + it('falls back to the base storage domain when no index is present', () => { + expect(expand({ nativeType: 'eql_v3.text' })).toBe('eql_v3.text') + }) +}) + +describe('cipherstashStringV3CodecHooks.onFieldEvent', () => { + it('emits NO ops on field add (the domain encodes the capability — no add_search_config)', () => { + const ops = cipherstashStringV3CodecHooks.onFieldEvent!('added', { + tableName: 'user_v3', + fieldName: 'email', + newField: { typeParams: { index: 'equality' } }, + } as never) + expect(ops).toEqual([]) + }) +}) diff --git a/packages/prisma-next/test/v3/migration-v3.test.ts b/packages/prisma-next/test/v3/migration-v3.test.ts new file mode 100644 index 00000000..0ea2f8ce --- /dev/null +++ b/packages/prisma-next/test/v3/migration-v3.test.ts @@ -0,0 +1,24 @@ +import { describe, expect, it } from 'vitest' +import migrationV3 from '../../migrations/20260601T0100_install_eql_v3_bundle/migration' +import { CIPHERSTASH_INVARIANTS } from '../../src/extension-metadata/constants' +import { EQL_V3_BUNDLE_SQL } from '../../src/migration/eql-v3-bundle' + +describe('v3 baseline migration', () => { + it('installs the v3 bundle byte-for-byte under the v3 invariant', () => { + const ops = new (migrationV3 as unknown as new () => { operations: ReadonlyArray> })().operations + const op = ops[0] as { + invariantId: string + execute: ReadonlyArray<{ sql: string }> + } + expect(op.invariantId).toBe(CIPHERSTASH_INVARIANTS.installBundleV3) + expect(op.execute[0]!.sql).toBe(EQL_V3_BUNDLE_SQL) + }) + + it('postchecks the eql_v3 schema + text_eq domain', () => { + const ops = new (migrationV3 as unknown as new () => { operations: ReadonlyArray> })().operations + const op = ops[0] as { postcheck: ReadonlyArray<{ sql: string }> } + const sqls = op.postcheck.map((p) => p.sql).join('\n') + expect(sqls).toContain('eql_v3') + expect(sqls).toContain('text_eq') + }) +}) From 9f55cdc8a3c80c39daa3ce763e7c793da4a8dc6e Mon Sep 17 00:00:00 2001 From: Toby Hede Date: Wed, 17 Jun 2026 09:33:38 +1000 Subject: [PATCH 16/21] feat(prisma-next): wire v3 into runtime/control descriptors + exports Register the v3 codec hooks + v3 baseline migration in the control descriptor, add bulkEncryptV3Middleware to cipherstashFromStack, re-export the v3 surface from runtime/middleware, and advance the head ref to the union of baseline invariants. --- .../migration.json | 21 ++++++++++++ .../migration.ts | 8 ++++- .../prisma-next/migrations/refs/head.json | 2 +- packages/prisma-next/src/exports/control.ts | 17 ++++++++++ .../prisma-next/src/exports/middleware.ts | 3 ++ packages/prisma-next/src/exports/runtime.ts | 8 +++++ packages/prisma-next/src/stack/from-stack.ts | 6 +++- packages/prisma-next/test/descriptor.test.ts | 20 +++++++---- .../prisma-next/test/v3/control-v3.test.ts | 27 +++++++++++++++ packages/prisma-next/test/v3/exports.test.ts | 33 ++++++++++++++++++ .../prisma-next/test/v3/from-stack-v3.test.ts | 34 +++++++++++++++++++ 11 files changed, 170 insertions(+), 9 deletions(-) create mode 100644 packages/prisma-next/migrations/20260601T0100_install_eql_v3_bundle/migration.json create mode 100644 packages/prisma-next/test/v3/control-v3.test.ts create mode 100644 packages/prisma-next/test/v3/exports.test.ts create mode 100644 packages/prisma-next/test/v3/from-stack-v3.test.ts diff --git a/packages/prisma-next/migrations/20260601T0100_install_eql_v3_bundle/migration.json b/packages/prisma-next/migrations/20260601T0100_install_eql_v3_bundle/migration.json new file mode 100644 index 00000000..6beebf5b --- /dev/null +++ b/packages/prisma-next/migrations/20260601T0100_install_eql_v3_bundle/migration.json @@ -0,0 +1,21 @@ +{ + "from": null, + "to": "sha256:efa685171bebbb8f078f08d12be3578bb5d96b71669dccc6cc9e4be96af8cdb4", + "labels": [], + "providedInvariants": [ + "cipherstash:install-eql-v3-bundle-v1" + ], + "createdAt": "2026-06-16T23:32:09.463Z", + "fromContract": null, + "toContract": { + "storage": { + "storageHash": "sha256:efa685171bebbb8f078f08d12be3578bb5d96b71669dccc6cc9e4be96af8cdb4" + } + }, + "hints": { + "used": [], + "applied": [], + "plannerVersion": "2.0.0" + }, + "migrationHash": "sha256:997f0460ad5ad14530144f6c031104966b7cf90052ebf794cc2cf0f7c264e0ee" +} \ No newline at end of file diff --git a/packages/prisma-next/migrations/20260601T0100_install_eql_v3_bundle/migration.ts b/packages/prisma-next/migrations/20260601T0100_install_eql_v3_bundle/migration.ts index 01e8cdb1..18d70afc 100644 --- a/packages/prisma-next/migrations/20260601T0100_install_eql_v3_bundle/migration.ts +++ b/packages/prisma-next/migrations/20260601T0100_install_eql_v3_bundle/migration.ts @@ -22,9 +22,15 @@ const INSTALL_LABEL = 'Install EQL v3 bundle (eql_v3 schema, text domains, index export default class M extends Migration { override describe() { + // The v3 bundle installs the eql_v3 schema/domains/functions but adds NO + // contract-IR object (no tables modelled), so the resulting storage hash is + // unchanged from the v2 baseline — `to` equals the package's contract + // storageHash. v3 is therefore a parallel install baseline (from: null) + // satisfying its own invariant; the head ref's invariant set is the union of + // both baselines. return { from: null, - to: 'cipherstash:eql-v3-baseline', + to: 'sha256:efa685171bebbb8f078f08d12be3578bb5d96b71669dccc6cc9e4be96af8cdb4', }; } diff --git a/packages/prisma-next/migrations/refs/head.json b/packages/prisma-next/migrations/refs/head.json index 78f58089..774fd45f 100644 --- a/packages/prisma-next/migrations/refs/head.json +++ b/packages/prisma-next/migrations/refs/head.json @@ -1,4 +1,4 @@ { "hash": "sha256:efa685171bebbb8f078f08d12be3578bb5d96b71669dccc6cc9e4be96af8cdb4", - "invariants": ["cipherstash:install-eql-bundle-v1"] + "invariants": ["cipherstash:install-eql-bundle-v1", "cipherstash:install-eql-v3-bundle-v1"] } diff --git a/packages/prisma-next/src/exports/control.ts b/packages/prisma-next/src/exports/control.ts index 823de233..f838d4e7 100644 --- a/packages/prisma-next/src/exports/control.ts +++ b/packages/prisma-next/src/exports/control.ts @@ -38,6 +38,12 @@ import baselineMetadata from '../../migrations/20260601T0000_install_eql_bundle/ import baselineOps from '../../migrations/20260601T0000_install_eql_bundle/ops.json' with { type: 'json', }; +import baselineV3Metadata from '../../migrations/20260601T0100_install_eql_v3_bundle/migration.json' with { + type: 'json', +}; +import baselineV3Ops from '../../migrations/20260601T0100_install_eql_v3_bundle/ops.json' with { + type: 'json', +}; import headRef from '../../migrations/refs/head.json' with { type: 'json' }; import contractJson from '../contract.json' with { type: 'json' }; import { @@ -48,6 +54,8 @@ import { CIPHERSTASH_DOUBLE_CODEC_ID, CIPHERSTASH_JSON_CODEC_ID, CIPHERSTASH_STRING_CODEC_ID, + CIPHERSTASH_STRING_V3_CODEC_ID, + CIPHERSTASH_V3_BASELINE_MIGRATION_NAME, } from '../extension-metadata/constants'; import { cipherstashPackMeta } from '../extension-metadata/descriptor-meta'; import { @@ -58,6 +66,7 @@ import { cipherstashJsonCodecHooks, cipherstashStringCodecHooks, } from '../migration/cipherstash-codec'; +import { cipherstashStringV3CodecHooks } from '../migration/codec-hooks-v3'; const cipherstashContractSpace = contractSpaceFromJson>({ contractJson, @@ -67,6 +76,12 @@ const cipherstashContractSpace = contractSpaceFromJson>({ metadata: baselineMetadata, ops: baselineOps, }, + { + // EQL v3 baseline — installs the eql_v3 bundle. Sorts after the v2 baseline. + dirName: CIPHERSTASH_V3_BASELINE_MIGRATION_NAME, + metadata: baselineV3Metadata, + ops: baselineV3Ops, + }, ], headRef, }); @@ -98,6 +113,8 @@ const cipherstashExtensionDescriptor: SqlControlExtensionDescriptor<'postgres'> [CIPHERSTASH_DATE_CODEC_ID]: cipherstashDateCodecHooks, [CIPHERSTASH_BOOLEAN_CODEC_ID]: cipherstashBooleanCodecHooks, [CIPHERSTASH_JSON_CODEC_ID]: cipherstashJsonCodecHooks, + // v3: expandNativeType → per-index domain; onFieldEvent emits no search-config. + [CIPHERSTASH_STRING_V3_CODEC_ID]: cipherstashStringV3CodecHooks, }, }, }, diff --git a/packages/prisma-next/src/exports/middleware.ts b/packages/prisma-next/src/exports/middleware.ts index d608ba55..b0997aad 100644 --- a/packages/prisma-next/src/exports/middleware.ts +++ b/packages/prisma-next/src/exports/middleware.ts @@ -22,3 +22,6 @@ */ export { bulkEncryptMiddleware } from '../middleware/bulk-encrypt'; +// EQL v3 storage-vs-search-term split middleware. Register ALONGSIDE +// bulkEncryptMiddleware (disjoint codec-id sets — each ignores the other's params). +export { bulkEncryptV3Middleware } from '../middleware/bulk-encrypt-v3'; diff --git a/packages/prisma-next/src/exports/runtime.ts b/packages/prisma-next/src/exports/runtime.ts index 1260c844..38f575a2 100644 --- a/packages/prisma-next/src/exports/runtime.ts +++ b/packages/prisma-next/src/exports/runtime.ts @@ -43,6 +43,7 @@ export { createCipherstashDoubleCodec, createCipherstashJsonCodec, createCipherstashStringCodec, + createCipherstashStringV3Codec, } from '../execution/codec-runtime'; export type { DecryptAllOptions } from '../execution/decrypt-all'; export { decryptAll } from '../execution/decrypt-all'; @@ -82,6 +83,7 @@ export { cipherstashJsonbGet, cipherstashJsonbPathQueryFirst, } from '../execution/helpers'; +export { queryTypeForIndex } from '../execution/operators'; export type { CipherstashAnyParams, CipherstashBooleanParams, @@ -89,6 +91,7 @@ export type { CipherstashJsonParams, CipherstashNumericParams, CipherstashStringParams, + CipherstashStringV3Params, } from '../execution/parameterized'; export { createParameterizedCodecDescriptors, @@ -98,26 +101,31 @@ export { encryptedDoubleParamsSchema, encryptedJsonParamsSchema, encryptedStringParamsSchema, + encryptedStringV3ParamsSchema, renderEncryptedBigIntOutputType, renderEncryptedBooleanOutputType, renderEncryptedDateOutputType, renderEncryptedDoubleOutputType, renderEncryptedJsonOutputType, renderEncryptedStringOutputType, + renderEncryptedStringV3OutputType, } from '../execution/parameterized'; export type { CipherstashBulkDecryptArgs, CipherstashBulkEncryptArgs, + CipherstashBulkEncryptQueryArgs, CipherstashRoutingKey, CipherstashSdk, CipherstashSingleDecryptArgs, } from '../execution/sdk'; +export type { V3DataType, V3Index } from '../v3/domain-map'; export { CIPHERSTASH_BIGINT_CODEC_ID, CIPHERSTASH_BOOLEAN_CODEC_ID, CIPHERSTASH_DATE_CODEC_ID, CIPHERSTASH_DOUBLE_CODEC_ID, CIPHERSTASH_JSON_CODEC_ID, + CIPHERSTASH_STRING_V3_CODEC_ID, } from '../extension-metadata/constants'; export { CIPHERSTASH_EXTENSION_VERSION }; diff --git a/packages/prisma-next/src/stack/from-stack.ts b/packages/prisma-next/src/stack/from-stack.ts index d83b5d70..7602ac60 100644 --- a/packages/prisma-next/src/stack/from-stack.ts +++ b/packages/prisma-next/src/stack/from-stack.ts @@ -36,6 +36,7 @@ import type { SqlMiddleware, SqlRuntimeExtensionDescriptor } from '@prisma-next/ import { createCipherstashRuntimeDescriptor } from '../exports/runtime' import { bulkEncryptMiddleware } from '../middleware/bulk-encrypt' +import { bulkEncryptV3Middleware } from '../middleware/bulk-encrypt-v3' import { type ContractStorageView, deriveStackSchemas, @@ -91,7 +92,10 @@ export async function cipherstashFromStack( return { extensions: [createCipherstashRuntimeDescriptor({ sdk })], - middleware: [bulkEncryptMiddleware(sdk)], + // Two middlewares over one sdk: v2 filters CIPHERSTASH_CODEC_ID_SET, v3 filters + // CIPHERSTASH_V3_CODEC_ID_SET — disjoint, so order is irrelevant and each ignores + // the other's params. + middleware: [bulkEncryptMiddleware(sdk), bulkEncryptV3Middleware(sdk)], encryptionClient, } } diff --git a/packages/prisma-next/test/descriptor.test.ts b/packages/prisma-next/test/descriptor.test.ts index 77b8a052..48946b5e 100644 --- a/packages/prisma-next/test/descriptor.test.ts +++ b/packages/prisma-next/test/descriptor.test.ts @@ -29,6 +29,7 @@ import { CIPHERSTASH_BASELINE_MIGRATION_NAME, CIPHERSTASH_INVARIANTS, CIPHERSTASH_SPACE_ID, + CIPHERSTASH_V3_BASELINE_MIGRATION_NAME, EQL_V2_CONFIGURATION_TABLE, } from '../src/extension-metadata/constants'; import { EQL_BUNDLE_SQL } from '../src/migration/eql-bundle'; @@ -49,13 +50,19 @@ describe('cipherstash extension descriptor (contract-space package layout)', () expect(Object.keys(space!.contractJson.storage.tables)).toEqual([EQL_V2_CONFIGURATION_TABLE]); }); - it('publishes one baseline migration sourced from the on-disk emit pipeline', () => { + it('publishes the v2 + v3 baseline migrations sourced from the on-disk emit pipeline', () => { const space = cipherstashExtensionDescriptor.contractSpace!; - expect(space.migrations).toHaveLength(1); + expect(space.migrations).toHaveLength(2); const baseline = space.migrations[0]!; expect(baseline.dirName).toBe(CIPHERSTASH_BASELINE_MIGRATION_NAME); expect(baseline.metadata.from).toBeNull(); expect(baseline.metadata.to).toBe(space.contractJson.storage.storageHash); + // The v3 baseline installs the eql_v3 bundle; it adds no contract-IR object, + // so it resolves to the SAME storage hash (a parallel install baseline). + const v3 = space.migrations[1]!; + expect(v3.dirName).toBe(CIPHERSTASH_V3_BASELINE_MIGRATION_NAME); + expect(v3.metadata.from).toBeNull(); + expect(v3.metadata.to).toBe(space.contractJson.storage.storageHash); }); it('baseline ops carry the installEqlBundle op + structural create-* ops', () => { @@ -83,12 +90,13 @@ describe('cipherstash extension descriptor (contract-space package layout)', () expect(installOp?.execute?.[0]?.sql).toBe(EQL_BUNDLE_SQL); }); - it("points the head ref at the latest migration's destination hash", () => { + it("points the head ref at the baseline destination hash + the union of every baseline's invariants", () => { const space = cipherstashExtensionDescriptor.contractSpace!; + // Both baselines resolve to the same storage hash (v3 adds no IR object). expect(space.headRef.hash).toBe(space.migrations[0]!.metadata.to); - expect([...space.headRef.invariants].sort()).toEqual( - [...space.migrations[0]!.metadata.providedInvariants].sort(), - ); + // The head invariant set is the union of all applied baselines' invariants. + const union = space.migrations.flatMap((m) => [...m.metadata.providedInvariants]).sort(); + expect([...space.headRef.invariants].sort()).toEqual(union); }); it('self-consistency check passes — headRef.hash matches re-derived storage hash', () => { diff --git a/packages/prisma-next/test/v3/control-v3.test.ts b/packages/prisma-next/test/v3/control-v3.test.ts new file mode 100644 index 00000000..561e2ba6 --- /dev/null +++ b/packages/prisma-next/test/v3/control-v3.test.ts @@ -0,0 +1,27 @@ +import { describe, expect, it } from 'vitest' +import cipherstashExtensionDescriptor from '../../src/exports/control' +import { + CIPHERSTASH_STRING_V3_CODEC_ID, + CIPHERSTASH_V3_BASELINE_MIGRATION_NAME, +} from '../../src/extension-metadata/constants' +import { cipherstashStringV3CodecHooks } from '../../src/migration/codec-hooks-v3' + +describe('cipherstash control descriptor (v3)', () => { + it('registers cipherstashStringV3CodecHooks keyed by the v3 codec id', () => { + const hooks = ( + cipherstashExtensionDescriptor as unknown as { + types: { codecTypes: { controlPlaneHooks: Record } } + } + ).types.codecTypes.controlPlaneHooks + expect(hooks[CIPHERSTASH_STRING_V3_CODEC_ID]).toBe(cipherstashStringV3CodecHooks) + }) + + it('includes the v3 baseline migration in the contract space', () => { + const cs = ( + cipherstashExtensionDescriptor as unknown as { + contractSpace: { migrations: ReadonlyArray<{ dirName: string }> } + } + ).contractSpace + expect(cs.migrations.map((m) => m.dirName)).toContain(CIPHERSTASH_V3_BASELINE_MIGRATION_NAME) + }) +}) diff --git a/packages/prisma-next/test/v3/exports.test.ts b/packages/prisma-next/test/v3/exports.test.ts new file mode 100644 index 00000000..351cc7cd --- /dev/null +++ b/packages/prisma-next/test/v3/exports.test.ts @@ -0,0 +1,33 @@ +import { describe, expect, it } from 'vitest' +import { createCipherstashRuntimeDescriptor } from '../../src/exports/runtime' +import { makeFakeSdk } from './helpers/fake-sdk' + +describe('v3 runtime descriptor', () => { + it('advertises the v3 string codec and the v3-capable operators', () => { + const desc = createCipherstashRuntimeDescriptor({ sdk: makeFakeSdk() }) + expect(desc.codecs?.().map((c: { codecId: string }) => c.codecId)).toContain('cipherstash/string-v3@1') + // cipherstashEq attaches to the v3 codec via the shared cipherstash:string trait. + expect(Object.keys(desc.queryOperations?.() ?? {})).toContain('cipherstashEq') + }) +}) + +describe('v3 public re-exports', () => { + it('exposes the v3 surface from @cipherstash/prisma-next/runtime', async () => { + const runtime = await import('../../src/exports/runtime') + expect(typeof runtime.createCipherstashStringV3Codec).toBe('function') + expect(typeof runtime.queryTypeForIndex).toBe('function') + expect(runtime.CIPHERSTASH_STRING_V3_CODEC_ID).toBe('cipherstash/string-v3@1') + expect(typeof runtime.encryptedStringV3ParamsSchema).toBe('function') + expect(typeof runtime.renderEncryptedStringV3OutputType).toBe('function') + }) + + it('exposes encryptedStringV3 from @cipherstash/prisma-next/column-types', async () => { + const columnTypes = await import('../../src/exports/column-types') + expect(typeof columnTypes.encryptedStringV3).toBe('function') + }) + + it('exposes bulkEncryptV3Middleware from @cipherstash/prisma-next/middleware', async () => { + const mw = await import('../../src/exports/middleware') + expect(typeof mw.bulkEncryptV3Middleware).toBe('function') + }) +}) diff --git a/packages/prisma-next/test/v3/from-stack-v3.test.ts b/packages/prisma-next/test/v3/from-stack-v3.test.ts new file mode 100644 index 00000000..e81ee789 --- /dev/null +++ b/packages/prisma-next/test/v3/from-stack-v3.test.ts @@ -0,0 +1,34 @@ +import { describe, expect, it, vi } from 'vitest' + +// The full cipherstashFromStack path calls Encryption({ schemas }), which talks to +// ZeroKMS. Mock it to a minimal client so we can assert the wiring (both v2 + v3 +// middlewares returned over the same sdk). createCipherstashSdk builds a registry +// from the schemas and does not call client methods at construction, so {} suffices. +vi.mock('@cipherstash/stack', async (importOriginal) => { + const orig = (await importOriginal()) as Record + return { ...orig, Encryption: vi.fn(async () => ({})) } +}) + +import { CIPHERSTASH_STRING_V3_CODEC_ID } from '../../src/extension-metadata/constants' +import { cipherstashFromStack } from '../../src/stack/from-stack' + +describe('cipherstashFromStack (v3)', () => { + it('returns BOTH bulkEncryptMiddleware and bulkEncryptV3Middleware over the same sdk', async () => { + const contractJson = { + storage: { + tables: { + user_v3: { + columns: { + email: { codecId: CIPHERSTASH_STRING_V3_CODEC_ID, typeParams: { index: 'equality' } }, + }, + }, + }, + }, + } + const result = await cipherstashFromStack({ contractJson }) + const names = result.middleware.map((m) => m.name) + expect(names).toContain('cipherstash.bulk-encrypt') + expect(names).toContain('cipherstash.bulk-encrypt-v3') + expect(result.extensions).toHaveLength(1) + }) +}) From e9aca23aa4d0000a5dca9c8163e3077fa35b4535 Mon Sep 17 00:00:00 2001 From: Toby Hede Date: Wed, 17 Jun 2026 09:41:02 +1000 Subject: [PATCH 17/21] test(prisma-next): v3 String e2e domain matrix + example UserV3 model Adds the UserV3 model (validated end-to-end: contract emit + migration plan emit the per-index eql_v3.text_eq/text_match/text_ord domains via expandNativeType), the v3 seed/oracle helpers, the gated e2e matrix, and the user_v3 truncate. The e2e run requires live Postgres + ZeroKMS credentials (gated on DATABASE_URL). --- .../20260616T2336_migration/end-contract.d.ts | 572 +++++++++ .../20260616T2336_migration/end-contract.json | 569 +++++++++ .../20260616T2336_migration/migration.json | 1049 +++++++++++++++++ .../app/20260616T2336_migration/migration.ts | 29 + .../app/20260616T2336_migration/ops.json | 34 + .../start-contract.d.ts | 486 ++++++++ .../start-contract.json | 467 ++++++++ .../contract.json | 1 + .../migration.json | 21 + .../ops.json | 28 + .../migrations/cipherstash/refs/head.json | 2 +- examples/prisma/prisma/schema.prisma | 13 + examples/prisma/src/prisma/contract.d.ts | 90 +- examples/prisma/src/prisma/contract.json | 104 +- examples/prisma/test/e2e/global-setup.ts | 10 +- examples/prisma/test/e2e/harness.ts | 27 + .../prisma/test/e2e/helpers/eql-v3-seed.ts | 38 + examples/prisma/test/e2e/str-v3.e2e.test.ts | 110 ++ 18 files changed, 3641 insertions(+), 9 deletions(-) create mode 100644 examples/prisma/migrations/app/20260616T2336_migration/end-contract.d.ts create mode 100644 examples/prisma/migrations/app/20260616T2336_migration/end-contract.json create mode 100644 examples/prisma/migrations/app/20260616T2336_migration/migration.json create mode 100755 examples/prisma/migrations/app/20260616T2336_migration/migration.ts create mode 100644 examples/prisma/migrations/app/20260616T2336_migration/ops.json create mode 100644 examples/prisma/migrations/app/20260616T2336_migration/start-contract.d.ts create mode 100644 examples/prisma/migrations/app/20260616T2336_migration/start-contract.json create mode 100644 examples/prisma/migrations/cipherstash/20260601T0100_install_eql_v3_bundle/contract.json create mode 100644 examples/prisma/migrations/cipherstash/20260601T0100_install_eql_v3_bundle/migration.json create mode 100644 examples/prisma/migrations/cipherstash/20260601T0100_install_eql_v3_bundle/ops.json create mode 100644 examples/prisma/test/e2e/helpers/eql-v3-seed.ts create mode 100644 examples/prisma/test/e2e/str-v3.e2e.test.ts diff --git a/examples/prisma/migrations/app/20260616T2336_migration/end-contract.d.ts b/examples/prisma/migrations/app/20260616T2336_migration/end-contract.d.ts new file mode 100644 index 00000000..4e52586f --- /dev/null +++ b/examples/prisma/migrations/app/20260616T2336_migration/end-contract.d.ts @@ -0,0 +1,572 @@ +// ⚠️ GENERATED FILE - DO NOT EDIT +// This file is automatically generated by 'prisma-next contract emit'. +// To regenerate, run: prisma-next contract emit +import type { CodecTypes as PgTypes } from '@prisma-next/target-postgres/codec-types'; +import type { JsonValue } from '@prisma-next/target-postgres/codec-types'; +import type { Char } from '@prisma-next/target-postgres/codec-types'; +import type { Varchar } from '@prisma-next/target-postgres/codec-types'; +import type { Numeric } from '@prisma-next/target-postgres/codec-types'; +import type { Bit } from '@prisma-next/target-postgres/codec-types'; +import type { VarBit } from '@prisma-next/target-postgres/codec-types'; +import type { Timestamp } from '@prisma-next/target-postgres/codec-types'; +import type { Timestamptz } from '@prisma-next/target-postgres/codec-types'; +import type { Time } from '@prisma-next/target-postgres/codec-types'; +import type { Timetz } from '@prisma-next/target-postgres/codec-types'; +import type { Interval } from '@prisma-next/target-postgres/codec-types'; +import type { CodecTypes as CipherstashTypes } from '@prisma-next/extension-cipherstash/codec-types'; +import type { EncryptedString } from '@prisma-next/extension-cipherstash/runtime'; +import type { EncryptedDouble } from '@prisma-next/extension-cipherstash/runtime'; +import type { EncryptedBigInt } from '@prisma-next/extension-cipherstash/runtime'; +import type { EncryptedDate } from '@prisma-next/extension-cipherstash/runtime'; +import type { EncryptedBoolean } from '@prisma-next/extension-cipherstash/runtime'; +import type { EncryptedJson } from '@prisma-next/extension-cipherstash/runtime'; +import type { QueryOperationTypes as PgAdapterQueryOps } from '@prisma-next/adapter-postgres/operation-types'; +import type { QueryOperationTypes as CipherstashQueryOperationTypes } from '@prisma-next/extension-cipherstash/operation-types'; + +import type { + ContractWithTypeMaps, + TypeMaps as TypeMapsType, +} from '@prisma-next/sql-contract/types'; +import type { + Contract as ContractType, + ExecutionHashBase, + ProfileHashBase, + StorageHashBase, +} from '@prisma-next/contract/types'; + +export type StorageHash = + StorageHashBase<'sha256:4e951512096c6bb3dbfa55779a34474176fc6f925f97087ca341b28681a1e7e3'>; +export type ExecutionHash = ExecutionHashBase; +export type ProfileHash = + ProfileHashBase<'sha256:1a8dbe044289f30a1de958fe800cc5a8378b285d2e126a8c44b58864bac2c18e'>; + +export type CodecTypes = PgTypes & CipherstashTypes; +export type LaneCodecTypes = CodecTypes; +export type QueryOperationTypes = PgAdapterQueryOps & + CipherstashQueryOperationTypes; +type DefaultLiteralValue = CodecId extends keyof CodecTypes + ? CodecTypes[CodecId]['output'] + : _Encoded; + +export type FieldOutputTypes = { + readonly User: { + readonly id: CodecTypes['pg/text@1']['output']; + readonly email: CodecTypes['cipherstash/string@1']['output']; + readonly salary: CodecTypes['cipherstash/double@1']['output']; + readonly accountId: CodecTypes['cipherstash/bigint@1']['output']; + readonly birthday: CodecTypes['cipherstash/date@1']['output']; + readonly emailVerified: CodecTypes['cipherstash/boolean@1']['output']; + readonly preferences: CodecTypes['cipherstash/json@1']['output']; + }; + readonly UserV3: { + readonly id: CodecTypes['pg/text@1']['output']; + readonly email: CodecTypes['cipherstash/string-v3@1']['output']; + readonly bio: CodecTypes['cipherstash/string-v3@1']['output']; + readonly name: CodecTypes['cipherstash/string-v3@1']['output']; + }; +}; +export type FieldInputTypes = { + readonly User: { + readonly id: CodecTypes['pg/text@1']['input']; + readonly email: CodecTypes['cipherstash/string@1']['input']; + readonly salary: CodecTypes['cipherstash/double@1']['input']; + readonly accountId: CodecTypes['cipherstash/bigint@1']['input']; + readonly birthday: CodecTypes['cipherstash/date@1']['input']; + readonly emailVerified: CodecTypes['cipherstash/boolean@1']['input']; + readonly preferences: CodecTypes['cipherstash/json@1']['input']; + }; + readonly UserV3: { + readonly id: CodecTypes['pg/text@1']['input']; + readonly email: CodecTypes['cipherstash/string-v3@1']['input']; + readonly bio: CodecTypes['cipherstash/string-v3@1']['input']; + readonly name: CodecTypes['cipherstash/string-v3@1']['input']; + }; +}; +export type TypeMaps = TypeMapsType< + CodecTypes, + QueryOperationTypes, + FieldOutputTypes, + FieldInputTypes +>; + +type ContractBase = ContractType< + { + readonly tables: { + readonly user_v3: { + columns: { + readonly id: { + readonly nativeType: 'text'; + readonly codecId: 'pg/text@1'; + readonly nullable: false; + }; + readonly email: { + readonly nativeType: 'eql_v3.text'; + readonly codecId: 'cipherstash/string-v3@1'; + readonly nullable: false; + readonly typeParams: { readonly index: 'equality' }; + }; + readonly bio: { + readonly nativeType: 'eql_v3.text'; + readonly codecId: 'cipherstash/string-v3@1'; + readonly nullable: false; + readonly typeParams: { readonly index: 'freeTextSearch' }; + }; + readonly name: { + readonly nativeType: 'eql_v3.text'; + readonly codecId: 'cipherstash/string-v3@1'; + readonly nullable: false; + readonly typeParams: { readonly index: 'orderAndRange' }; + }; + }; + primaryKey: { readonly columns: readonly ['id'] }; + uniques: readonly []; + indexes: readonly []; + foreignKeys: readonly []; + }; + readonly users: { + columns: { + readonly id: { + readonly nativeType: 'text'; + readonly codecId: 'pg/text@1'; + readonly nullable: false; + }; + readonly email: { + readonly nativeType: 'eql_v2_encrypted'; + readonly codecId: 'cipherstash/string@1'; + readonly nullable: false; + readonly typeParams: { + readonly equality: true; + readonly freeTextSearch: true; + readonly orderAndRange: true; + }; + }; + readonly salary: { + readonly nativeType: 'eql_v2_encrypted'; + readonly codecId: 'cipherstash/double@1'; + readonly nullable: false; + readonly typeParams: { readonly equality: true; readonly orderAndRange: true }; + }; + readonly accountid: { + readonly nativeType: 'eql_v2_encrypted'; + readonly codecId: 'cipherstash/bigint@1'; + readonly nullable: false; + readonly typeParams: { readonly equality: true; readonly orderAndRange: true }; + }; + readonly birthday: { + readonly nativeType: 'eql_v2_encrypted'; + readonly codecId: 'cipherstash/date@1'; + readonly nullable: false; + readonly typeParams: { readonly equality: true; readonly orderAndRange: true }; + }; + readonly emailverified: { + readonly nativeType: 'eql_v2_encrypted'; + readonly codecId: 'cipherstash/boolean@1'; + readonly nullable: false; + readonly typeParams: { readonly equality: true }; + }; + readonly preferences: { + readonly nativeType: 'eql_v2_encrypted'; + readonly codecId: 'cipherstash/json@1'; + readonly nullable: false; + readonly typeParams: { readonly searchableJson: true }; + }; + }; + primaryKey: { readonly columns: readonly ['id'] }; + uniques: readonly []; + indexes: readonly []; + foreignKeys: readonly []; + }; + }; + readonly types: Record; + readonly storageHash: StorageHash; + }, + { + readonly User: { + readonly fields: { + readonly id: { + readonly nullable: false; + readonly type: { readonly kind: 'scalar'; readonly codecId: 'pg/text@1' }; + }; + readonly email: { + readonly nullable: false; + readonly type: { + readonly kind: 'scalar'; + readonly codecId: 'cipherstash/string@1'; + readonly typeParams: { + readonly equality: true; + readonly freeTextSearch: true; + readonly orderAndRange: true; + }; + }; + }; + readonly salary: { + readonly nullable: false; + readonly type: { + readonly kind: 'scalar'; + readonly codecId: 'cipherstash/double@1'; + readonly typeParams: { readonly equality: true; readonly orderAndRange: true }; + }; + }; + readonly accountId: { + readonly nullable: false; + readonly type: { + readonly kind: 'scalar'; + readonly codecId: 'cipherstash/bigint@1'; + readonly typeParams: { readonly equality: true; readonly orderAndRange: true }; + }; + }; + readonly birthday: { + readonly nullable: false; + readonly type: { + readonly kind: 'scalar'; + readonly codecId: 'cipherstash/date@1'; + readonly typeParams: { readonly equality: true; readonly orderAndRange: true }; + }; + }; + readonly emailVerified: { + readonly nullable: false; + readonly type: { + readonly kind: 'scalar'; + readonly codecId: 'cipherstash/boolean@1'; + readonly typeParams: { readonly equality: true }; + }; + }; + readonly preferences: { + readonly nullable: false; + readonly type: { + readonly kind: 'scalar'; + readonly codecId: 'cipherstash/json@1'; + readonly typeParams: { readonly searchableJson: true }; + }; + }; + }; + readonly relations: Record; + readonly storage: { + readonly table: 'users'; + readonly fields: { + readonly id: { readonly column: 'id' }; + readonly email: { readonly column: 'email' }; + readonly salary: { readonly column: 'salary' }; + readonly accountId: { readonly column: 'accountid' }; + readonly birthday: { readonly column: 'birthday' }; + readonly emailVerified: { readonly column: 'emailverified' }; + readonly preferences: { readonly column: 'preferences' }; + }; + }; + }; + readonly UserV3: { + readonly fields: { + readonly id: { + readonly nullable: false; + readonly type: { readonly kind: 'scalar'; readonly codecId: 'pg/text@1' }; + }; + readonly email: { + readonly nullable: false; + readonly type: { + readonly kind: 'scalar'; + readonly codecId: 'cipherstash/string-v3@1'; + readonly typeParams: { readonly index: 'equality' }; + }; + }; + readonly bio: { + readonly nullable: false; + readonly type: { + readonly kind: 'scalar'; + readonly codecId: 'cipherstash/string-v3@1'; + readonly typeParams: { readonly index: 'freeTextSearch' }; + }; + }; + readonly name: { + readonly nullable: false; + readonly type: { + readonly kind: 'scalar'; + readonly codecId: 'cipherstash/string-v3@1'; + readonly typeParams: { readonly index: 'orderAndRange' }; + }; + }; + }; + readonly relations: Record; + readonly storage: { + readonly table: 'user_v3'; + readonly fields: { + readonly id: { readonly column: 'id' }; + readonly email: { readonly column: 'email' }; + readonly bio: { readonly column: 'bio' }; + readonly name: { readonly column: 'name' }; + }; + }; + }; + } +> & { + readonly target: 'postgres'; + readonly targetFamily: 'sql'; + readonly roots: { readonly users: 'User'; readonly user_v3: 'UserV3' }; + readonly capabilities: { + readonly postgres: { + readonly jsonAgg: true; + readonly lateral: true; + readonly limit: true; + readonly orderBy: true; + readonly returning: true; + }; + readonly sql: { + readonly defaultInInsert: true; + readonly enums: true; + readonly returning: true; + }; + }; + readonly extensionPacks: { + readonly cipherstash: { + readonly familyId: 'sql'; + readonly id: 'cipherstash'; + readonly kind: 'extension'; + readonly targetId: 'postgres'; + readonly types: { + readonly codecTypes: { + readonly codecInstances: readonly [ + { + readonly descriptor: { + readonly codecId: 'cipherstash/string@1'; + readonly factory: unknown; + readonly isParameterized: false; + readonly meta: { + readonly db: { + readonly sql: { + readonly postgres: { readonly nativeType: 'eql_v2_encrypted' }; + }; + }; + }; + readonly paramsSchema: { + readonly '~standard': { + readonly validate: unknown; + readonly vendor: 'cipherstash'; + readonly version: 1; + }; + }; + readonly renderOutputType: unknown; + readonly targetTypes: readonly ['eql_v2_encrypted']; + readonly traits: readonly [ + 'cipherstash:string', + 'cipherstash:equality', + 'cipherstash:free-text-search', + 'cipherstash:order-and-range', + ]; + }; + }, + { + readonly descriptor: { + readonly codecId: 'cipherstash/double@1'; + readonly factory: unknown; + readonly isParameterized: false; + readonly meta: { + readonly db: { + readonly sql: { + readonly postgres: { readonly nativeType: 'eql_v2_encrypted' }; + }; + }; + }; + readonly paramsSchema: { + readonly '~standard': { + readonly validate: unknown; + readonly vendor: 'cipherstash'; + readonly version: 1; + }; + }; + readonly renderOutputType: unknown; + readonly targetTypes: readonly ['eql_v2_encrypted']; + readonly traits: readonly ['cipherstash:equality', 'cipherstash:order-and-range']; + }; + }, + { + readonly descriptor: { + readonly codecId: 'cipherstash/bigint@1'; + readonly factory: unknown; + readonly isParameterized: false; + readonly meta: { + readonly db: { + readonly sql: { + readonly postgres: { readonly nativeType: 'eql_v2_encrypted' }; + }; + }; + }; + readonly paramsSchema: { + readonly '~standard': { + readonly validate: unknown; + readonly vendor: 'cipherstash'; + readonly version: 1; + }; + }; + readonly renderOutputType: unknown; + readonly targetTypes: readonly ['eql_v2_encrypted']; + readonly traits: readonly ['cipherstash:equality', 'cipherstash:order-and-range']; + }; + }, + { + readonly descriptor: { + readonly codecId: 'cipherstash/date@1'; + readonly factory: unknown; + readonly isParameterized: false; + readonly meta: { + readonly db: { + readonly sql: { + readonly postgres: { readonly nativeType: 'eql_v2_encrypted' }; + }; + }; + }; + readonly paramsSchema: { + readonly '~standard': { + readonly validate: unknown; + readonly vendor: 'cipherstash'; + readonly version: 1; + }; + }; + readonly renderOutputType: unknown; + readonly targetTypes: readonly ['eql_v2_encrypted']; + readonly traits: readonly ['cipherstash:equality', 'cipherstash:order-and-range']; + }; + }, + { + readonly descriptor: { + readonly codecId: 'cipherstash/boolean@1'; + readonly factory: unknown; + readonly isParameterized: false; + readonly meta: { + readonly db: { + readonly sql: { + readonly postgres: { readonly nativeType: 'eql_v2_encrypted' }; + }; + }; + }; + readonly paramsSchema: { + readonly '~standard': { + readonly validate: unknown; + readonly vendor: 'cipherstash'; + readonly version: 1; + }; + }; + readonly renderOutputType: unknown; + readonly targetTypes: readonly ['eql_v2_encrypted']; + readonly traits: readonly ['cipherstash:equality']; + }; + }, + { + readonly descriptor: { + readonly codecId: 'cipherstash/json@1'; + readonly factory: unknown; + readonly isParameterized: false; + readonly meta: { + readonly db: { + readonly sql: { + readonly postgres: { readonly nativeType: 'eql_v2_encrypted' }; + }; + }; + }; + readonly paramsSchema: { + readonly '~standard': { + readonly validate: unknown; + readonly vendor: 'cipherstash'; + readonly version: 1; + }; + }; + readonly renderOutputType: unknown; + readonly targetTypes: readonly ['eql_v2_encrypted']; + readonly traits: readonly ['cipherstash:searchable-json']; + }; + }, + ]; + readonly import: { + readonly alias: 'CipherstashTypes'; + readonly named: 'CodecTypes'; + readonly package: '@prisma-next/extension-cipherstash/codec-types'; + }; + readonly typeImports: readonly [ + { + readonly alias: 'EncryptedString'; + readonly named: 'EncryptedString'; + readonly package: '@prisma-next/extension-cipherstash/runtime'; + }, + { + readonly alias: 'EncryptedDouble'; + readonly named: 'EncryptedDouble'; + readonly package: '@prisma-next/extension-cipherstash/runtime'; + }, + { + readonly alias: 'EncryptedBigInt'; + readonly named: 'EncryptedBigInt'; + readonly package: '@prisma-next/extension-cipherstash/runtime'; + }, + { + readonly alias: 'EncryptedDate'; + readonly named: 'EncryptedDate'; + readonly package: '@prisma-next/extension-cipherstash/runtime'; + }, + { + readonly alias: 'EncryptedBoolean'; + readonly named: 'EncryptedBoolean'; + readonly package: '@prisma-next/extension-cipherstash/runtime'; + }, + { + readonly alias: 'EncryptedJson'; + readonly named: 'EncryptedJson'; + readonly package: '@prisma-next/extension-cipherstash/runtime'; + }, + ]; + }; + readonly queryOperationTypes: { + readonly import: { + readonly alias: 'CipherstashQueryOperationTypes'; + readonly named: 'QueryOperationTypes'; + readonly package: '@prisma-next/extension-cipherstash/operation-types'; + }; + }; + readonly storage: readonly [ + { + readonly familyId: 'sql'; + readonly nativeType: 'eql_v2_encrypted'; + readonly targetId: 'postgres'; + readonly typeId: 'cipherstash/string@1'; + }, + { + readonly familyId: 'sql'; + readonly nativeType: 'eql_v2_encrypted'; + readonly targetId: 'postgres'; + readonly typeId: 'cipherstash/double@1'; + }, + { + readonly familyId: 'sql'; + readonly nativeType: 'eql_v2_encrypted'; + readonly targetId: 'postgres'; + readonly typeId: 'cipherstash/bigint@1'; + }, + { + readonly familyId: 'sql'; + readonly nativeType: 'eql_v2_encrypted'; + readonly targetId: 'postgres'; + readonly typeId: 'cipherstash/date@1'; + }, + { + readonly familyId: 'sql'; + readonly nativeType: 'eql_v2_encrypted'; + readonly targetId: 'postgres'; + readonly typeId: 'cipherstash/boolean@1'; + }, + { + readonly familyId: 'sql'; + readonly nativeType: 'eql_v2_encrypted'; + readonly targetId: 'postgres'; + readonly typeId: 'cipherstash/json@1'; + }, + ]; + }; + readonly version: '0.0.1'; + }; + }; + readonly meta: {}; + + readonly profileHash: ProfileHash; +}; + +export type Contract = ContractWithTypeMaps; + +export type Tables = Contract['storage']['tables']; +export type Models = Contract['models']; diff --git a/examples/prisma/migrations/app/20260616T2336_migration/end-contract.json b/examples/prisma/migrations/app/20260616T2336_migration/end-contract.json new file mode 100644 index 00000000..a0310e80 --- /dev/null +++ b/examples/prisma/migrations/app/20260616T2336_migration/end-contract.json @@ -0,0 +1,569 @@ +{ + "schemaVersion": "1", + "targetFamily": "sql", + "target": "postgres", + "profileHash": "sha256:1a8dbe044289f30a1de958fe800cc5a8378b285d2e126a8c44b58864bac2c18e", + "roots": { + "user_v3": "UserV3", + "users": "User" + }, + "models": { + "User": { + "fields": { + "accountId": { + "nullable": false, + "type": { + "codecId": "cipherstash/bigint@1", + "kind": "scalar", + "typeParams": { + "equality": true, + "orderAndRange": true + } + } + }, + "birthday": { + "nullable": false, + "type": { + "codecId": "cipherstash/date@1", + "kind": "scalar", + "typeParams": { + "equality": true, + "orderAndRange": true + } + } + }, + "email": { + "nullable": false, + "type": { + "codecId": "cipherstash/string@1", + "kind": "scalar", + "typeParams": { + "equality": true, + "freeTextSearch": true, + "orderAndRange": true + } + } + }, + "emailVerified": { + "nullable": false, + "type": { + "codecId": "cipherstash/boolean@1", + "kind": "scalar", + "typeParams": { + "equality": true + } + } + }, + "id": { + "nullable": false, + "type": { + "codecId": "pg/text@1", + "kind": "scalar" + } + }, + "preferences": { + "nullable": false, + "type": { + "codecId": "cipherstash/json@1", + "kind": "scalar", + "typeParams": { + "searchableJson": true + } + } + }, + "salary": { + "nullable": false, + "type": { + "codecId": "cipherstash/double@1", + "kind": "scalar", + "typeParams": { + "equality": true, + "orderAndRange": true + } + } + } + }, + "relations": {}, + "storage": { + "fields": { + "accountId": { + "column": "accountid" + }, + "birthday": { + "column": "birthday" + }, + "email": { + "column": "email" + }, + "emailVerified": { + "column": "emailverified" + }, + "id": { + "column": "id" + }, + "preferences": { + "column": "preferences" + }, + "salary": { + "column": "salary" + } + }, + "table": "users" + } + }, + "UserV3": { + "fields": { + "bio": { + "nullable": false, + "type": { + "codecId": "cipherstash/string-v3@1", + "kind": "scalar", + "typeParams": { + "index": "freeTextSearch" + } + } + }, + "email": { + "nullable": false, + "type": { + "codecId": "cipherstash/string-v3@1", + "kind": "scalar", + "typeParams": { + "index": "equality" + } + } + }, + "id": { + "nullable": false, + "type": { + "codecId": "pg/text@1", + "kind": "scalar" + } + }, + "name": { + "nullable": false, + "type": { + "codecId": "cipherstash/string-v3@1", + "kind": "scalar", + "typeParams": { + "index": "orderAndRange" + } + } + } + }, + "relations": {}, + "storage": { + "fields": { + "bio": { + "column": "bio" + }, + "email": { + "column": "email" + }, + "id": { + "column": "id" + }, + "name": { + "column": "name" + } + }, + "table": "user_v3" + } + } + }, + "storage": { + "storageHash": "sha256:4e951512096c6bb3dbfa55779a34474176fc6f925f97087ca341b28681a1e7e3", + "tables": { + "user_v3": { + "columns": { + "bio": { + "codecId": "cipherstash/string-v3@1", + "nativeType": "eql_v3.text", + "nullable": false, + "typeParams": { + "index": "freeTextSearch" + } + }, + "email": { + "codecId": "cipherstash/string-v3@1", + "nativeType": "eql_v3.text", + "nullable": false, + "typeParams": { + "index": "equality" + } + }, + "id": { + "codecId": "pg/text@1", + "nativeType": "text", + "nullable": false + }, + "name": { + "codecId": "cipherstash/string-v3@1", + "nativeType": "eql_v3.text", + "nullable": false, + "typeParams": { + "index": "orderAndRange" + } + } + }, + "foreignKeys": [], + "indexes": [], + "primaryKey": { + "columns": [ + "id" + ] + }, + "uniques": [] + }, + "users": { + "columns": { + "accountid": { + "codecId": "cipherstash/bigint@1", + "nativeType": "eql_v2_encrypted", + "nullable": false, + "typeParams": { + "equality": true, + "orderAndRange": true + } + }, + "birthday": { + "codecId": "cipherstash/date@1", + "nativeType": "eql_v2_encrypted", + "nullable": false, + "typeParams": { + "equality": true, + "orderAndRange": true + } + }, + "email": { + "codecId": "cipherstash/string@1", + "nativeType": "eql_v2_encrypted", + "nullable": false, + "typeParams": { + "equality": true, + "freeTextSearch": true, + "orderAndRange": true + } + }, + "emailverified": { + "codecId": "cipherstash/boolean@1", + "nativeType": "eql_v2_encrypted", + "nullable": false, + "typeParams": { + "equality": true + } + }, + "id": { + "codecId": "pg/text@1", + "nativeType": "text", + "nullable": false + }, + "preferences": { + "codecId": "cipherstash/json@1", + "nativeType": "eql_v2_encrypted", + "nullable": false, + "typeParams": { + "searchableJson": true + } + }, + "salary": { + "codecId": "cipherstash/double@1", + "nativeType": "eql_v2_encrypted", + "nullable": false, + "typeParams": { + "equality": true, + "orderAndRange": true + } + } + }, + "foreignKeys": [], + "indexes": [], + "primaryKey": { + "columns": [ + "id" + ] + }, + "uniques": [] + } + } + }, + "capabilities": { + "postgres": { + "jsonAgg": true, + "lateral": true, + "limit": true, + "orderBy": true, + "returning": true + }, + "sql": { + "defaultInInsert": true, + "enums": true, + "returning": true + } + }, + "extensionPacks": { + "cipherstash": { + "familyId": "sql", + "id": "cipherstash", + "kind": "extension", + "targetId": "postgres", + "types": { + "codecTypes": { + "codecInstances": [ + { + "descriptor": { + "codecId": "cipherstash/string@1", + "meta": { + "db": { + "sql": { + "postgres": { + "nativeType": "eql_v2_encrypted" + } + } + } + }, + "paramsSchema": { + "~standard": { + "vendor": "cipherstash", + "version": 1 + } + }, + "targetTypes": [ + "eql_v2_encrypted" + ], + "traits": [ + "cipherstash:string", + "cipherstash:equality", + "cipherstash:free-text-search", + "cipherstash:order-and-range" + ] + } + }, + { + "descriptor": { + "codecId": "cipherstash/double@1", + "meta": { + "db": { + "sql": { + "postgres": { + "nativeType": "eql_v2_encrypted" + } + } + } + }, + "paramsSchema": { + "~standard": { + "vendor": "cipherstash", + "version": 1 + } + }, + "targetTypes": [ + "eql_v2_encrypted" + ], + "traits": [ + "cipherstash:equality", + "cipherstash:order-and-range" + ] + } + }, + { + "descriptor": { + "codecId": "cipherstash/bigint@1", + "meta": { + "db": { + "sql": { + "postgres": { + "nativeType": "eql_v2_encrypted" + } + } + } + }, + "paramsSchema": { + "~standard": { + "vendor": "cipherstash", + "version": 1 + } + }, + "targetTypes": [ + "eql_v2_encrypted" + ], + "traits": [ + "cipherstash:equality", + "cipherstash:order-and-range" + ] + } + }, + { + "descriptor": { + "codecId": "cipherstash/date@1", + "meta": { + "db": { + "sql": { + "postgres": { + "nativeType": "eql_v2_encrypted" + } + } + } + }, + "paramsSchema": { + "~standard": { + "vendor": "cipherstash", + "version": 1 + } + }, + "targetTypes": [ + "eql_v2_encrypted" + ], + "traits": [ + "cipherstash:equality", + "cipherstash:order-and-range" + ] + } + }, + { + "descriptor": { + "codecId": "cipherstash/boolean@1", + "meta": { + "db": { + "sql": { + "postgres": { + "nativeType": "eql_v2_encrypted" + } + } + } + }, + "paramsSchema": { + "~standard": { + "vendor": "cipherstash", + "version": 1 + } + }, + "targetTypes": [ + "eql_v2_encrypted" + ], + "traits": [ + "cipherstash:equality" + ] + } + }, + { + "descriptor": { + "codecId": "cipherstash/json@1", + "meta": { + "db": { + "sql": { + "postgres": { + "nativeType": "eql_v2_encrypted" + } + } + } + }, + "paramsSchema": { + "~standard": { + "vendor": "cipherstash", + "version": 1 + } + }, + "targetTypes": [ + "eql_v2_encrypted" + ], + "traits": [ + "cipherstash:searchable-json" + ] + } + } + ], + "import": { + "alias": "CipherstashTypes", + "named": "CodecTypes", + "package": "@prisma-next/extension-cipherstash/codec-types" + }, + "typeImports": [ + { + "alias": "EncryptedString", + "named": "EncryptedString", + "package": "@prisma-next/extension-cipherstash/runtime" + }, + { + "alias": "EncryptedDouble", + "named": "EncryptedDouble", + "package": "@prisma-next/extension-cipherstash/runtime" + }, + { + "alias": "EncryptedBigInt", + "named": "EncryptedBigInt", + "package": "@prisma-next/extension-cipherstash/runtime" + }, + { + "alias": "EncryptedDate", + "named": "EncryptedDate", + "package": "@prisma-next/extension-cipherstash/runtime" + }, + { + "alias": "EncryptedBoolean", + "named": "EncryptedBoolean", + "package": "@prisma-next/extension-cipherstash/runtime" + }, + { + "alias": "EncryptedJson", + "named": "EncryptedJson", + "package": "@prisma-next/extension-cipherstash/runtime" + } + ] + }, + "queryOperationTypes": { + "import": { + "alias": "CipherstashQueryOperationTypes", + "named": "QueryOperationTypes", + "package": "@prisma-next/extension-cipherstash/operation-types" + } + }, + "storage": [ + { + "familyId": "sql", + "nativeType": "eql_v2_encrypted", + "targetId": "postgres", + "typeId": "cipherstash/string@1" + }, + { + "familyId": "sql", + "nativeType": "eql_v2_encrypted", + "targetId": "postgres", + "typeId": "cipherstash/double@1" + }, + { + "familyId": "sql", + "nativeType": "eql_v2_encrypted", + "targetId": "postgres", + "typeId": "cipherstash/bigint@1" + }, + { + "familyId": "sql", + "nativeType": "eql_v2_encrypted", + "targetId": "postgres", + "typeId": "cipherstash/date@1" + }, + { + "familyId": "sql", + "nativeType": "eql_v2_encrypted", + "targetId": "postgres", + "typeId": "cipherstash/boolean@1" + }, + { + "familyId": "sql", + "nativeType": "eql_v2_encrypted", + "targetId": "postgres", + "typeId": "cipherstash/json@1" + } + ] + }, + "version": "0.0.1" + } + }, + "meta": {}, + "_generated": { + "warning": "⚠️ GENERATED FILE - DO NOT EDIT", + "message": "This file is automatically generated by \"prisma-next contract emit\".", + "regenerate": "To regenerate, run: prisma-next contract emit" + } +} \ No newline at end of file diff --git a/examples/prisma/migrations/app/20260616T2336_migration/migration.json b/examples/prisma/migrations/app/20260616T2336_migration/migration.json new file mode 100644 index 00000000..95495d3c --- /dev/null +++ b/examples/prisma/migrations/app/20260616T2336_migration/migration.json @@ -0,0 +1,1049 @@ +{ + "from": "sha256:7475191ce0d78258ce5586265bcdfd12202f5daf90690b902890e58eb7508373", + "to": "sha256:4e951512096c6bb3dbfa55779a34474176fc6f925f97087ca341b28681a1e7e3", + "fromContract": { + "schemaVersion": "1", + "targetFamily": "sql", + "target": "postgres", + "profileHash": "sha256:1a8dbe044289f30a1de958fe800cc5a8378b285d2e126a8c44b58864bac2c18e", + "roots": { + "users": "User" + }, + "models": { + "User": { + "fields": { + "accountId": { + "nullable": false, + "type": { + "codecId": "cipherstash/bigint@1", + "kind": "scalar", + "typeParams": { + "equality": true, + "orderAndRange": true + } + } + }, + "birthday": { + "nullable": false, + "type": { + "codecId": "cipherstash/date@1", + "kind": "scalar", + "typeParams": { + "equality": true, + "orderAndRange": true + } + } + }, + "email": { + "nullable": false, + "type": { + "codecId": "cipherstash/string@1", + "kind": "scalar", + "typeParams": { + "equality": true, + "freeTextSearch": true, + "orderAndRange": true + } + } + }, + "emailVerified": { + "nullable": false, + "type": { + "codecId": "cipherstash/boolean@1", + "kind": "scalar", + "typeParams": { + "equality": true + } + } + }, + "id": { + "nullable": false, + "type": { + "codecId": "pg/text@1", + "kind": "scalar" + } + }, + "preferences": { + "nullable": false, + "type": { + "codecId": "cipherstash/json@1", + "kind": "scalar", + "typeParams": { + "searchableJson": true + } + } + }, + "salary": { + "nullable": false, + "type": { + "codecId": "cipherstash/double@1", + "kind": "scalar", + "typeParams": { + "equality": true, + "orderAndRange": true + } + } + } + }, + "relations": {}, + "storage": { + "fields": { + "accountId": { + "column": "accountid" + }, + "birthday": { + "column": "birthday" + }, + "email": { + "column": "email" + }, + "emailVerified": { + "column": "emailverified" + }, + "id": { + "column": "id" + }, + "preferences": { + "column": "preferences" + }, + "salary": { + "column": "salary" + } + }, + "table": "users" + } + } + }, + "storage": { + "storageHash": "sha256:7475191ce0d78258ce5586265bcdfd12202f5daf90690b902890e58eb7508373", + "tables": { + "users": { + "columns": { + "accountid": { + "codecId": "cipherstash/bigint@1", + "nativeType": "eql_v2_encrypted", + "nullable": false, + "typeParams": { + "equality": true, + "orderAndRange": true + } + }, + "birthday": { + "codecId": "cipherstash/date@1", + "nativeType": "eql_v2_encrypted", + "nullable": false, + "typeParams": { + "equality": true, + "orderAndRange": true + } + }, + "email": { + "codecId": "cipherstash/string@1", + "nativeType": "eql_v2_encrypted", + "nullable": false, + "typeParams": { + "equality": true, + "freeTextSearch": true, + "orderAndRange": true + } + }, + "emailverified": { + "codecId": "cipherstash/boolean@1", + "nativeType": "eql_v2_encrypted", + "nullable": false, + "typeParams": { + "equality": true + } + }, + "id": { + "codecId": "pg/text@1", + "nativeType": "text", + "nullable": false + }, + "preferences": { + "codecId": "cipherstash/json@1", + "nativeType": "eql_v2_encrypted", + "nullable": false, + "typeParams": { + "searchableJson": true + } + }, + "salary": { + "codecId": "cipherstash/double@1", + "nativeType": "eql_v2_encrypted", + "nullable": false, + "typeParams": { + "equality": true, + "orderAndRange": true + } + } + }, + "foreignKeys": [], + "indexes": [], + "primaryKey": { + "columns": [ + "id" + ] + }, + "uniques": [] + } + } + }, + "capabilities": { + "postgres": { + "jsonAgg": true, + "lateral": true, + "limit": true, + "orderBy": true, + "returning": true + }, + "sql": { + "defaultInInsert": true, + "enums": true, + "returning": true + } + }, + "extensionPacks": { + "cipherstash": { + "familyId": "sql", + "id": "cipherstash", + "kind": "extension", + "targetId": "postgres", + "types": { + "codecTypes": { + "codecInstances": [ + { + "descriptor": { + "codecId": "cipherstash/string@1", + "meta": { + "db": { + "sql": { + "postgres": { + "nativeType": "eql_v2_encrypted" + } + } + } + }, + "paramsSchema": { + "~standard": { + "vendor": "cipherstash", + "version": 1 + } + }, + "targetTypes": [ + "eql_v2_encrypted" + ], + "traits": [ + "cipherstash:equality", + "cipherstash:free-text-search", + "cipherstash:order-and-range" + ] + } + }, + { + "descriptor": { + "codecId": "cipherstash/double@1", + "meta": { + "db": { + "sql": { + "postgres": { + "nativeType": "eql_v2_encrypted" + } + } + } + }, + "paramsSchema": { + "~standard": { + "vendor": "cipherstash", + "version": 1 + } + }, + "targetTypes": [ + "eql_v2_encrypted" + ], + "traits": [ + "cipherstash:equality", + "cipherstash:order-and-range" + ] + } + }, + { + "descriptor": { + "codecId": "cipherstash/bigint@1", + "meta": { + "db": { + "sql": { + "postgres": { + "nativeType": "eql_v2_encrypted" + } + } + } + }, + "paramsSchema": { + "~standard": { + "vendor": "cipherstash", + "version": 1 + } + }, + "targetTypes": [ + "eql_v2_encrypted" + ], + "traits": [ + "cipherstash:equality", + "cipherstash:order-and-range" + ] + } + }, + { + "descriptor": { + "codecId": "cipherstash/date@1", + "meta": { + "db": { + "sql": { + "postgres": { + "nativeType": "eql_v2_encrypted" + } + } + } + }, + "paramsSchema": { + "~standard": { + "vendor": "cipherstash", + "version": 1 + } + }, + "targetTypes": [ + "eql_v2_encrypted" + ], + "traits": [ + "cipherstash:equality", + "cipherstash:order-and-range" + ] + } + }, + { + "descriptor": { + "codecId": "cipherstash/boolean@1", + "meta": { + "db": { + "sql": { + "postgres": { + "nativeType": "eql_v2_encrypted" + } + } + } + }, + "paramsSchema": { + "~standard": { + "vendor": "cipherstash", + "version": 1 + } + }, + "targetTypes": [ + "eql_v2_encrypted" + ], + "traits": [ + "cipherstash:equality" + ] + } + }, + { + "descriptor": { + "codecId": "cipherstash/json@1", + "meta": { + "db": { + "sql": { + "postgres": { + "nativeType": "eql_v2_encrypted" + } + } + } + }, + "paramsSchema": { + "~standard": { + "vendor": "cipherstash", + "version": 1 + } + }, + "targetTypes": [ + "eql_v2_encrypted" + ], + "traits": [ + "cipherstash:searchable-json" + ] + } + } + ], + "import": { + "alias": "CipherstashTypes", + "named": "CodecTypes", + "package": "@prisma-next/extension-cipherstash/codec-types" + }, + "typeImports": [ + { + "alias": "EncryptedString", + "named": "EncryptedString", + "package": "@prisma-next/extension-cipherstash/runtime" + }, + { + "alias": "EncryptedDouble", + "named": "EncryptedDouble", + "package": "@prisma-next/extension-cipherstash/runtime" + }, + { + "alias": "EncryptedBigInt", + "named": "EncryptedBigInt", + "package": "@prisma-next/extension-cipherstash/runtime" + }, + { + "alias": "EncryptedDate", + "named": "EncryptedDate", + "package": "@prisma-next/extension-cipherstash/runtime" + }, + { + "alias": "EncryptedBoolean", + "named": "EncryptedBoolean", + "package": "@prisma-next/extension-cipherstash/runtime" + }, + { + "alias": "EncryptedJson", + "named": "EncryptedJson", + "package": "@prisma-next/extension-cipherstash/runtime" + } + ] + }, + "queryOperationTypes": { + "import": { + "alias": "CipherstashQueryOperationTypes", + "named": "QueryOperationTypes", + "package": "@prisma-next/extension-cipherstash/operation-types" + } + }, + "storage": [ + { + "familyId": "sql", + "nativeType": "eql_v2_encrypted", + "targetId": "postgres", + "typeId": "cipherstash/string@1" + }, + { + "familyId": "sql", + "nativeType": "eql_v2_encrypted", + "targetId": "postgres", + "typeId": "cipherstash/double@1" + }, + { + "familyId": "sql", + "nativeType": "eql_v2_encrypted", + "targetId": "postgres", + "typeId": "cipherstash/bigint@1" + }, + { + "familyId": "sql", + "nativeType": "eql_v2_encrypted", + "targetId": "postgres", + "typeId": "cipherstash/date@1" + }, + { + "familyId": "sql", + "nativeType": "eql_v2_encrypted", + "targetId": "postgres", + "typeId": "cipherstash/boolean@1" + }, + { + "familyId": "sql", + "nativeType": "eql_v2_encrypted", + "targetId": "postgres", + "typeId": "cipherstash/json@1" + } + ] + }, + "version": "0.0.1" + } + }, + "meta": {}, + "_generated": { + "warning": "⚠️ GENERATED FILE - DO NOT EDIT", + "message": "This file is automatically generated by \"prisma-next contract emit\".", + "regenerate": "To regenerate, run: prisma-next contract emit" + } + }, + "toContract": { + "schemaVersion": "1", + "targetFamily": "sql", + "target": "postgres", + "profileHash": "sha256:1a8dbe044289f30a1de958fe800cc5a8378b285d2e126a8c44b58864bac2c18e", + "roots": { + "user_v3": "UserV3", + "users": "User" + }, + "models": { + "User": { + "fields": { + "accountId": { + "nullable": false, + "type": { + "codecId": "cipherstash/bigint@1", + "kind": "scalar", + "typeParams": { + "equality": true, + "orderAndRange": true + } + } + }, + "birthday": { + "nullable": false, + "type": { + "codecId": "cipherstash/date@1", + "kind": "scalar", + "typeParams": { + "equality": true, + "orderAndRange": true + } + } + }, + "email": { + "nullable": false, + "type": { + "codecId": "cipherstash/string@1", + "kind": "scalar", + "typeParams": { + "equality": true, + "freeTextSearch": true, + "orderAndRange": true + } + } + }, + "emailVerified": { + "nullable": false, + "type": { + "codecId": "cipherstash/boolean@1", + "kind": "scalar", + "typeParams": { + "equality": true + } + } + }, + "id": { + "nullable": false, + "type": { + "codecId": "pg/text@1", + "kind": "scalar" + } + }, + "preferences": { + "nullable": false, + "type": { + "codecId": "cipherstash/json@1", + "kind": "scalar", + "typeParams": { + "searchableJson": true + } + } + }, + "salary": { + "nullable": false, + "type": { + "codecId": "cipherstash/double@1", + "kind": "scalar", + "typeParams": { + "equality": true, + "orderAndRange": true + } + } + } + }, + "relations": {}, + "storage": { + "fields": { + "accountId": { + "column": "accountid" + }, + "birthday": { + "column": "birthday" + }, + "email": { + "column": "email" + }, + "emailVerified": { + "column": "emailverified" + }, + "id": { + "column": "id" + }, + "preferences": { + "column": "preferences" + }, + "salary": { + "column": "salary" + } + }, + "table": "users" + } + }, + "UserV3": { + "fields": { + "bio": { + "nullable": false, + "type": { + "codecId": "cipherstash/string-v3@1", + "kind": "scalar", + "typeParams": { + "index": "freeTextSearch" + } + } + }, + "email": { + "nullable": false, + "type": { + "codecId": "cipherstash/string-v3@1", + "kind": "scalar", + "typeParams": { + "index": "equality" + } + } + }, + "id": { + "nullable": false, + "type": { + "codecId": "pg/text@1", + "kind": "scalar" + } + }, + "name": { + "nullable": false, + "type": { + "codecId": "cipherstash/string-v3@1", + "kind": "scalar", + "typeParams": { + "index": "orderAndRange" + } + } + } + }, + "relations": {}, + "storage": { + "fields": { + "bio": { + "column": "bio" + }, + "email": { + "column": "email" + }, + "id": { + "column": "id" + }, + "name": { + "column": "name" + } + }, + "table": "user_v3" + } + } + }, + "storage": { + "storageHash": "sha256:4e951512096c6bb3dbfa55779a34474176fc6f925f97087ca341b28681a1e7e3", + "tables": { + "user_v3": { + "columns": { + "bio": { + "codecId": "cipherstash/string-v3@1", + "nativeType": "eql_v3.text", + "nullable": false, + "typeParams": { + "index": "freeTextSearch" + } + }, + "email": { + "codecId": "cipherstash/string-v3@1", + "nativeType": "eql_v3.text", + "nullable": false, + "typeParams": { + "index": "equality" + } + }, + "id": { + "codecId": "pg/text@1", + "nativeType": "text", + "nullable": false + }, + "name": { + "codecId": "cipherstash/string-v3@1", + "nativeType": "eql_v3.text", + "nullable": false, + "typeParams": { + "index": "orderAndRange" + } + } + }, + "foreignKeys": [], + "indexes": [], + "primaryKey": { + "columns": [ + "id" + ] + }, + "uniques": [] + }, + "users": { + "columns": { + "accountid": { + "codecId": "cipherstash/bigint@1", + "nativeType": "eql_v2_encrypted", + "nullable": false, + "typeParams": { + "equality": true, + "orderAndRange": true + } + }, + "birthday": { + "codecId": "cipherstash/date@1", + "nativeType": "eql_v2_encrypted", + "nullable": false, + "typeParams": { + "equality": true, + "orderAndRange": true + } + }, + "email": { + "codecId": "cipherstash/string@1", + "nativeType": "eql_v2_encrypted", + "nullable": false, + "typeParams": { + "equality": true, + "freeTextSearch": true, + "orderAndRange": true + } + }, + "emailverified": { + "codecId": "cipherstash/boolean@1", + "nativeType": "eql_v2_encrypted", + "nullable": false, + "typeParams": { + "equality": true + } + }, + "id": { + "codecId": "pg/text@1", + "nativeType": "text", + "nullable": false + }, + "preferences": { + "codecId": "cipherstash/json@1", + "nativeType": "eql_v2_encrypted", + "nullable": false, + "typeParams": { + "searchableJson": true + } + }, + "salary": { + "codecId": "cipherstash/double@1", + "nativeType": "eql_v2_encrypted", + "nullable": false, + "typeParams": { + "equality": true, + "orderAndRange": true + } + } + }, + "foreignKeys": [], + "indexes": [], + "primaryKey": { + "columns": [ + "id" + ] + }, + "uniques": [] + } + } + }, + "capabilities": { + "postgres": { + "jsonAgg": true, + "lateral": true, + "limit": true, + "orderBy": true, + "returning": true + }, + "sql": { + "defaultInInsert": true, + "enums": true, + "returning": true + } + }, + "extensionPacks": { + "cipherstash": { + "familyId": "sql", + "id": "cipherstash", + "kind": "extension", + "targetId": "postgres", + "types": { + "codecTypes": { + "codecInstances": [ + { + "descriptor": { + "codecId": "cipherstash/string@1", + "meta": { + "db": { + "sql": { + "postgres": { + "nativeType": "eql_v2_encrypted" + } + } + } + }, + "paramsSchema": { + "~standard": { + "vendor": "cipherstash", + "version": 1 + } + }, + "targetTypes": [ + "eql_v2_encrypted" + ], + "traits": [ + "cipherstash:string", + "cipherstash:equality", + "cipherstash:free-text-search", + "cipherstash:order-and-range" + ] + } + }, + { + "descriptor": { + "codecId": "cipherstash/double@1", + "meta": { + "db": { + "sql": { + "postgres": { + "nativeType": "eql_v2_encrypted" + } + } + } + }, + "paramsSchema": { + "~standard": { + "vendor": "cipherstash", + "version": 1 + } + }, + "targetTypes": [ + "eql_v2_encrypted" + ], + "traits": [ + "cipherstash:equality", + "cipherstash:order-and-range" + ] + } + }, + { + "descriptor": { + "codecId": "cipherstash/bigint@1", + "meta": { + "db": { + "sql": { + "postgres": { + "nativeType": "eql_v2_encrypted" + } + } + } + }, + "paramsSchema": { + "~standard": { + "vendor": "cipherstash", + "version": 1 + } + }, + "targetTypes": [ + "eql_v2_encrypted" + ], + "traits": [ + "cipherstash:equality", + "cipherstash:order-and-range" + ] + } + }, + { + "descriptor": { + "codecId": "cipherstash/date@1", + "meta": { + "db": { + "sql": { + "postgres": { + "nativeType": "eql_v2_encrypted" + } + } + } + }, + "paramsSchema": { + "~standard": { + "vendor": "cipherstash", + "version": 1 + } + }, + "targetTypes": [ + "eql_v2_encrypted" + ], + "traits": [ + "cipherstash:equality", + "cipherstash:order-and-range" + ] + } + }, + { + "descriptor": { + "codecId": "cipherstash/boolean@1", + "meta": { + "db": { + "sql": { + "postgres": { + "nativeType": "eql_v2_encrypted" + } + } + } + }, + "paramsSchema": { + "~standard": { + "vendor": "cipherstash", + "version": 1 + } + }, + "targetTypes": [ + "eql_v2_encrypted" + ], + "traits": [ + "cipherstash:equality" + ] + } + }, + { + "descriptor": { + "codecId": "cipherstash/json@1", + "meta": { + "db": { + "sql": { + "postgres": { + "nativeType": "eql_v2_encrypted" + } + } + } + }, + "paramsSchema": { + "~standard": { + "vendor": "cipherstash", + "version": 1 + } + }, + "targetTypes": [ + "eql_v2_encrypted" + ], + "traits": [ + "cipherstash:searchable-json" + ] + } + } + ], + "import": { + "alias": "CipherstashTypes", + "named": "CodecTypes", + "package": "@prisma-next/extension-cipherstash/codec-types" + }, + "typeImports": [ + { + "alias": "EncryptedString", + "named": "EncryptedString", + "package": "@prisma-next/extension-cipherstash/runtime" + }, + { + "alias": "EncryptedDouble", + "named": "EncryptedDouble", + "package": "@prisma-next/extension-cipherstash/runtime" + }, + { + "alias": "EncryptedBigInt", + "named": "EncryptedBigInt", + "package": "@prisma-next/extension-cipherstash/runtime" + }, + { + "alias": "EncryptedDate", + "named": "EncryptedDate", + "package": "@prisma-next/extension-cipherstash/runtime" + }, + { + "alias": "EncryptedBoolean", + "named": "EncryptedBoolean", + "package": "@prisma-next/extension-cipherstash/runtime" + }, + { + "alias": "EncryptedJson", + "named": "EncryptedJson", + "package": "@prisma-next/extension-cipherstash/runtime" + } + ] + }, + "queryOperationTypes": { + "import": { + "alias": "CipherstashQueryOperationTypes", + "named": "QueryOperationTypes", + "package": "@prisma-next/extension-cipherstash/operation-types" + } + }, + "storage": [ + { + "familyId": "sql", + "nativeType": "eql_v2_encrypted", + "targetId": "postgres", + "typeId": "cipherstash/string@1" + }, + { + "familyId": "sql", + "nativeType": "eql_v2_encrypted", + "targetId": "postgres", + "typeId": "cipherstash/double@1" + }, + { + "familyId": "sql", + "nativeType": "eql_v2_encrypted", + "targetId": "postgres", + "typeId": "cipherstash/bigint@1" + }, + { + "familyId": "sql", + "nativeType": "eql_v2_encrypted", + "targetId": "postgres", + "typeId": "cipherstash/date@1" + }, + { + "familyId": "sql", + "nativeType": "eql_v2_encrypted", + "targetId": "postgres", + "typeId": "cipherstash/boolean@1" + }, + { + "familyId": "sql", + "nativeType": "eql_v2_encrypted", + "targetId": "postgres", + "typeId": "cipherstash/json@1" + } + ] + }, + "version": "0.0.1" + } + }, + "meta": {}, + "_generated": { + "warning": "⚠️ GENERATED FILE - DO NOT EDIT", + "message": "This file is automatically generated by \"prisma-next contract emit\".", + "regenerate": "To regenerate, run: prisma-next contract emit" + } + }, + "hints": { + "used": [], + "applied": [], + "plannerVersion": "2.0.0" + }, + "labels": [], + "createdAt": "2026-06-16T23:36:45.281Z", + "providedInvariants": [], + "migrationHash": "sha256:7cc40cec5c7247811f4ad3d0a8ae4b3a102404cf8eb6caeee41aa709826c3e07" +} \ No newline at end of file diff --git a/examples/prisma/migrations/app/20260616T2336_migration/migration.ts b/examples/prisma/migrations/app/20260616T2336_migration/migration.ts new file mode 100755 index 00000000..d05cdaf1 --- /dev/null +++ b/examples/prisma/migrations/app/20260616T2336_migration/migration.ts @@ -0,0 +1,29 @@ +#!/usr/bin/env -S node +import { Migration, MigrationCLI, createTable } from '@prisma-next/target-postgres/migration'; + +export default class M extends Migration { + override describe() { + return { + from: 'sha256:7475191ce0d78258ce5586265bcdfd12202f5daf90690b902890e58eb7508373', + to: 'sha256:4e951512096c6bb3dbfa55779a34474176fc6f925f97087ca341b28681a1e7e3', + }; + } + + override get operations() { + return [ + createTable( + 'public', + 'user_v3', + [ + { name: 'bio', typeSql: 'eql_v3.text_match', defaultSql: '', nullable: false }, + { name: 'email', typeSql: 'eql_v3.text_eq', defaultSql: '', nullable: false }, + { name: 'id', typeSql: 'text', defaultSql: '', nullable: false }, + { name: 'name', typeSql: 'eql_v3.text_ord', defaultSql: '', nullable: false }, + ], + { columns: ['id'] }, + ), + ]; + } +} + +MigrationCLI.run(import.meta.url, M); diff --git a/examples/prisma/migrations/app/20260616T2336_migration/ops.json b/examples/prisma/migrations/app/20260616T2336_migration/ops.json new file mode 100644 index 00000000..ff52e29a --- /dev/null +++ b/examples/prisma/migrations/app/20260616T2336_migration/ops.json @@ -0,0 +1,34 @@ +[ + { + "id": "table.user_v3", + "label": "Create table \"user_v3\"", + "summary": "Creates table \"user_v3\"", + "operationClass": "additive", + "target": { + "id": "postgres", + "details": { + "schema": "public", + "objectType": "table", + "name": "user_v3" + } + }, + "precheck": [ + { + "description": "ensure table \"user_v3\" does not exist", + "sql": "SELECT to_regclass('\"public\".\"user_v3\"') IS NULL" + } + ], + "execute": [ + { + "description": "create table \"user_v3\"", + "sql": "CREATE TABLE \"public\".\"user_v3\" (\n \"bio\" eql_v3.text_match NOT NULL,\n \"email\" eql_v3.text_eq NOT NULL,\n \"id\" text NOT NULL,\n \"name\" eql_v3.text_ord NOT NULL,\n PRIMARY KEY (\"id\")\n)" + } + ], + "postcheck": [ + { + "description": "verify table \"user_v3\" exists", + "sql": "SELECT to_regclass('\"public\".\"user_v3\"') IS NOT NULL" + } + ] + } +] \ No newline at end of file diff --git a/examples/prisma/migrations/app/20260616T2336_migration/start-contract.d.ts b/examples/prisma/migrations/app/20260616T2336_migration/start-contract.d.ts new file mode 100644 index 00000000..6de5bc0a --- /dev/null +++ b/examples/prisma/migrations/app/20260616T2336_migration/start-contract.d.ts @@ -0,0 +1,486 @@ +// ⚠️ GENERATED FILE - DO NOT EDIT +// This file is automatically generated by 'prisma-next contract emit'. +// To regenerate, run: prisma-next contract emit +import type { CodecTypes as PgTypes } from '@prisma-next/target-postgres/codec-types'; +import type { JsonValue } from '@prisma-next/target-postgres/codec-types'; +import type { Char } from '@prisma-next/target-postgres/codec-types'; +import type { Varchar } from '@prisma-next/target-postgres/codec-types'; +import type { Numeric } from '@prisma-next/target-postgres/codec-types'; +import type { Bit } from '@prisma-next/target-postgres/codec-types'; +import type { VarBit } from '@prisma-next/target-postgres/codec-types'; +import type { Timestamp } from '@prisma-next/target-postgres/codec-types'; +import type { Timestamptz } from '@prisma-next/target-postgres/codec-types'; +import type { Time } from '@prisma-next/target-postgres/codec-types'; +import type { Timetz } from '@prisma-next/target-postgres/codec-types'; +import type { Interval } from '@prisma-next/target-postgres/codec-types'; +import type { CodecTypes as CipherstashTypes } from '@prisma-next/extension-cipherstash/codec-types'; +import type { EncryptedString } from '@prisma-next/extension-cipherstash/runtime'; +import type { EncryptedDouble } from '@prisma-next/extension-cipherstash/runtime'; +import type { EncryptedBigInt } from '@prisma-next/extension-cipherstash/runtime'; +import type { EncryptedDate } from '@prisma-next/extension-cipherstash/runtime'; +import type { EncryptedBoolean } from '@prisma-next/extension-cipherstash/runtime'; +import type { EncryptedJson } from '@prisma-next/extension-cipherstash/runtime'; +import type { QueryOperationTypes as PgAdapterQueryOps } from '@prisma-next/adapter-postgres/operation-types'; +import type { QueryOperationTypes as CipherstashQueryOperationTypes } from '@prisma-next/extension-cipherstash/operation-types'; + +import type { + ContractWithTypeMaps, + TypeMaps as TypeMapsType, +} from '@prisma-next/sql-contract/types'; +import type { + Contract as ContractType, + ExecutionHashBase, + ProfileHashBase, + StorageHashBase, +} from '@prisma-next/contract/types'; + +export type StorageHash = + StorageHashBase<'sha256:7475191ce0d78258ce5586265bcdfd12202f5daf90690b902890e58eb7508373'>; +export type ExecutionHash = ExecutionHashBase; +export type ProfileHash = + ProfileHashBase<'sha256:1a8dbe044289f30a1de958fe800cc5a8378b285d2e126a8c44b58864bac2c18e'>; + +export type CodecTypes = PgTypes & CipherstashTypes; +export type LaneCodecTypes = CodecTypes; +export type QueryOperationTypes = PgAdapterQueryOps & + CipherstashQueryOperationTypes; +type DefaultLiteralValue = CodecId extends keyof CodecTypes + ? CodecTypes[CodecId]['output'] + : _Encoded; + +export type FieldOutputTypes = { + readonly User: { + readonly id: CodecTypes['pg/text@1']['output']; + readonly email: CodecTypes['cipherstash/string@1']['output']; + readonly salary: CodecTypes['cipherstash/double@1']['output']; + readonly accountId: CodecTypes['cipherstash/bigint@1']['output']; + readonly birthday: CodecTypes['cipherstash/date@1']['output']; + readonly emailVerified: CodecTypes['cipherstash/boolean@1']['output']; + readonly preferences: CodecTypes['cipherstash/json@1']['output']; + }; +}; +export type FieldInputTypes = { + readonly User: { + readonly id: CodecTypes['pg/text@1']['input']; + readonly email: CodecTypes['cipherstash/string@1']['input']; + readonly salary: CodecTypes['cipherstash/double@1']['input']; + readonly accountId: CodecTypes['cipherstash/bigint@1']['input']; + readonly birthday: CodecTypes['cipherstash/date@1']['input']; + readonly emailVerified: CodecTypes['cipherstash/boolean@1']['input']; + readonly preferences: CodecTypes['cipherstash/json@1']['input']; + }; +}; +export type TypeMaps = TypeMapsType< + CodecTypes, + QueryOperationTypes, + FieldOutputTypes, + FieldInputTypes +>; + +type ContractBase = ContractType< + { + readonly tables: { + readonly users: { + columns: { + readonly id: { + readonly nativeType: 'text'; + readonly codecId: 'pg/text@1'; + readonly nullable: false; + }; + readonly email: { + readonly nativeType: 'eql_v2_encrypted'; + readonly codecId: 'cipherstash/string@1'; + readonly nullable: false; + readonly typeParams: { + readonly equality: true; + readonly freeTextSearch: true; + readonly orderAndRange: true; + }; + }; + readonly salary: { + readonly nativeType: 'eql_v2_encrypted'; + readonly codecId: 'cipherstash/double@1'; + readonly nullable: false; + readonly typeParams: { readonly equality: true; readonly orderAndRange: true }; + }; + readonly accountid: { + readonly nativeType: 'eql_v2_encrypted'; + readonly codecId: 'cipherstash/bigint@1'; + readonly nullable: false; + readonly typeParams: { readonly equality: true; readonly orderAndRange: true }; + }; + readonly birthday: { + readonly nativeType: 'eql_v2_encrypted'; + readonly codecId: 'cipherstash/date@1'; + readonly nullable: false; + readonly typeParams: { readonly equality: true; readonly orderAndRange: true }; + }; + readonly emailverified: { + readonly nativeType: 'eql_v2_encrypted'; + readonly codecId: 'cipherstash/boolean@1'; + readonly nullable: false; + readonly typeParams: { readonly equality: true }; + }; + readonly preferences: { + readonly nativeType: 'eql_v2_encrypted'; + readonly codecId: 'cipherstash/json@1'; + readonly nullable: false; + readonly typeParams: { readonly searchableJson: true }; + }; + }; + primaryKey: { readonly columns: readonly ['id'] }; + uniques: readonly []; + indexes: readonly []; + foreignKeys: readonly []; + }; + }; + readonly types: Record; + readonly storageHash: StorageHash; + }, + { + readonly User: { + readonly fields: { + readonly id: { + readonly nullable: false; + readonly type: { readonly kind: 'scalar'; readonly codecId: 'pg/text@1' }; + }; + readonly email: { + readonly nullable: false; + readonly type: { + readonly kind: 'scalar'; + readonly codecId: 'cipherstash/string@1'; + readonly typeParams: { + readonly equality: true; + readonly freeTextSearch: true; + readonly orderAndRange: true; + }; + }; + }; + readonly salary: { + readonly nullable: false; + readonly type: { + readonly kind: 'scalar'; + readonly codecId: 'cipherstash/double@1'; + readonly typeParams: { readonly equality: true; readonly orderAndRange: true }; + }; + }; + readonly accountId: { + readonly nullable: false; + readonly type: { + readonly kind: 'scalar'; + readonly codecId: 'cipherstash/bigint@1'; + readonly typeParams: { readonly equality: true; readonly orderAndRange: true }; + }; + }; + readonly birthday: { + readonly nullable: false; + readonly type: { + readonly kind: 'scalar'; + readonly codecId: 'cipherstash/date@1'; + readonly typeParams: { readonly equality: true; readonly orderAndRange: true }; + }; + }; + readonly emailVerified: { + readonly nullable: false; + readonly type: { + readonly kind: 'scalar'; + readonly codecId: 'cipherstash/boolean@1'; + readonly typeParams: { readonly equality: true }; + }; + }; + readonly preferences: { + readonly nullable: false; + readonly type: { + readonly kind: 'scalar'; + readonly codecId: 'cipherstash/json@1'; + readonly typeParams: { readonly searchableJson: true }; + }; + }; + }; + readonly relations: Record; + readonly storage: { + readonly table: 'users'; + readonly fields: { + readonly id: { readonly column: 'id' }; + readonly email: { readonly column: 'email' }; + readonly salary: { readonly column: 'salary' }; + readonly accountId: { readonly column: 'accountid' }; + readonly birthday: { readonly column: 'birthday' }; + readonly emailVerified: { readonly column: 'emailverified' }; + readonly preferences: { readonly column: 'preferences' }; + }; + }; + }; + } +> & { + readonly target: 'postgres'; + readonly targetFamily: 'sql'; + readonly roots: { readonly users: 'User' }; + readonly capabilities: { + readonly postgres: { + readonly jsonAgg: true; + readonly lateral: true; + readonly limit: true; + readonly orderBy: true; + readonly returning: true; + }; + readonly sql: { + readonly defaultInInsert: true; + readonly enums: true; + readonly returning: true; + }; + }; + readonly extensionPacks: { + readonly cipherstash: { + readonly familyId: 'sql'; + readonly id: 'cipherstash'; + readonly kind: 'extension'; + readonly targetId: 'postgres'; + readonly types: { + readonly codecTypes: { + readonly codecInstances: readonly [ + { + readonly descriptor: { + readonly codecId: 'cipherstash/string@1'; + readonly factory: unknown; + readonly isParameterized: false; + readonly meta: { + readonly db: { + readonly sql: { + readonly postgres: { readonly nativeType: 'eql_v2_encrypted' }; + }; + }; + }; + readonly paramsSchema: { + readonly '~standard': { + readonly validate: unknown; + readonly vendor: 'cipherstash'; + readonly version: 1; + }; + }; + readonly renderOutputType: unknown; + readonly targetTypes: readonly ['eql_v2_encrypted']; + readonly traits: readonly [ + 'cipherstash:equality', + 'cipherstash:free-text-search', + 'cipherstash:order-and-range', + ]; + }; + }, + { + readonly descriptor: { + readonly codecId: 'cipherstash/double@1'; + readonly factory: unknown; + readonly isParameterized: false; + readonly meta: { + readonly db: { + readonly sql: { + readonly postgres: { readonly nativeType: 'eql_v2_encrypted' }; + }; + }; + }; + readonly paramsSchema: { + readonly '~standard': { + readonly validate: unknown; + readonly vendor: 'cipherstash'; + readonly version: 1; + }; + }; + readonly renderOutputType: unknown; + readonly targetTypes: readonly ['eql_v2_encrypted']; + readonly traits: readonly ['cipherstash:equality', 'cipherstash:order-and-range']; + }; + }, + { + readonly descriptor: { + readonly codecId: 'cipherstash/bigint@1'; + readonly factory: unknown; + readonly isParameterized: false; + readonly meta: { + readonly db: { + readonly sql: { + readonly postgres: { readonly nativeType: 'eql_v2_encrypted' }; + }; + }; + }; + readonly paramsSchema: { + readonly '~standard': { + readonly validate: unknown; + readonly vendor: 'cipherstash'; + readonly version: 1; + }; + }; + readonly renderOutputType: unknown; + readonly targetTypes: readonly ['eql_v2_encrypted']; + readonly traits: readonly ['cipherstash:equality', 'cipherstash:order-and-range']; + }; + }, + { + readonly descriptor: { + readonly codecId: 'cipherstash/date@1'; + readonly factory: unknown; + readonly isParameterized: false; + readonly meta: { + readonly db: { + readonly sql: { + readonly postgres: { readonly nativeType: 'eql_v2_encrypted' }; + }; + }; + }; + readonly paramsSchema: { + readonly '~standard': { + readonly validate: unknown; + readonly vendor: 'cipherstash'; + readonly version: 1; + }; + }; + readonly renderOutputType: unknown; + readonly targetTypes: readonly ['eql_v2_encrypted']; + readonly traits: readonly ['cipherstash:equality', 'cipherstash:order-and-range']; + }; + }, + { + readonly descriptor: { + readonly codecId: 'cipherstash/boolean@1'; + readonly factory: unknown; + readonly isParameterized: false; + readonly meta: { + readonly db: { + readonly sql: { + readonly postgres: { readonly nativeType: 'eql_v2_encrypted' }; + }; + }; + }; + readonly paramsSchema: { + readonly '~standard': { + readonly validate: unknown; + readonly vendor: 'cipherstash'; + readonly version: 1; + }; + }; + readonly renderOutputType: unknown; + readonly targetTypes: readonly ['eql_v2_encrypted']; + readonly traits: readonly ['cipherstash:equality']; + }; + }, + { + readonly descriptor: { + readonly codecId: 'cipherstash/json@1'; + readonly factory: unknown; + readonly isParameterized: false; + readonly meta: { + readonly db: { + readonly sql: { + readonly postgres: { readonly nativeType: 'eql_v2_encrypted' }; + }; + }; + }; + readonly paramsSchema: { + readonly '~standard': { + readonly validate: unknown; + readonly vendor: 'cipherstash'; + readonly version: 1; + }; + }; + readonly renderOutputType: unknown; + readonly targetTypes: readonly ['eql_v2_encrypted']; + readonly traits: readonly ['cipherstash:searchable-json']; + }; + }, + ]; + readonly import: { + readonly alias: 'CipherstashTypes'; + readonly named: 'CodecTypes'; + readonly package: '@prisma-next/extension-cipherstash/codec-types'; + }; + readonly typeImports: readonly [ + { + readonly alias: 'EncryptedString'; + readonly named: 'EncryptedString'; + readonly package: '@prisma-next/extension-cipherstash/runtime'; + }, + { + readonly alias: 'EncryptedDouble'; + readonly named: 'EncryptedDouble'; + readonly package: '@prisma-next/extension-cipherstash/runtime'; + }, + { + readonly alias: 'EncryptedBigInt'; + readonly named: 'EncryptedBigInt'; + readonly package: '@prisma-next/extension-cipherstash/runtime'; + }, + { + readonly alias: 'EncryptedDate'; + readonly named: 'EncryptedDate'; + readonly package: '@prisma-next/extension-cipherstash/runtime'; + }, + { + readonly alias: 'EncryptedBoolean'; + readonly named: 'EncryptedBoolean'; + readonly package: '@prisma-next/extension-cipherstash/runtime'; + }, + { + readonly alias: 'EncryptedJson'; + readonly named: 'EncryptedJson'; + readonly package: '@prisma-next/extension-cipherstash/runtime'; + }, + ]; + }; + readonly queryOperationTypes: { + readonly import: { + readonly alias: 'CipherstashQueryOperationTypes'; + readonly named: 'QueryOperationTypes'; + readonly package: '@prisma-next/extension-cipherstash/operation-types'; + }; + }; + readonly storage: readonly [ + { + readonly familyId: 'sql'; + readonly nativeType: 'eql_v2_encrypted'; + readonly targetId: 'postgres'; + readonly typeId: 'cipherstash/string@1'; + }, + { + readonly familyId: 'sql'; + readonly nativeType: 'eql_v2_encrypted'; + readonly targetId: 'postgres'; + readonly typeId: 'cipherstash/double@1'; + }, + { + readonly familyId: 'sql'; + readonly nativeType: 'eql_v2_encrypted'; + readonly targetId: 'postgres'; + readonly typeId: 'cipherstash/bigint@1'; + }, + { + readonly familyId: 'sql'; + readonly nativeType: 'eql_v2_encrypted'; + readonly targetId: 'postgres'; + readonly typeId: 'cipherstash/date@1'; + }, + { + readonly familyId: 'sql'; + readonly nativeType: 'eql_v2_encrypted'; + readonly targetId: 'postgres'; + readonly typeId: 'cipherstash/boolean@1'; + }, + { + readonly familyId: 'sql'; + readonly nativeType: 'eql_v2_encrypted'; + readonly targetId: 'postgres'; + readonly typeId: 'cipherstash/json@1'; + }, + ]; + }; + readonly version: '0.0.1'; + }; + }; + readonly meta: {}; + + readonly profileHash: ProfileHash; +}; + +export type Contract = ContractWithTypeMaps; + +export type Tables = Contract['storage']['tables']; +export type Models = Contract['models']; diff --git a/examples/prisma/migrations/app/20260616T2336_migration/start-contract.json b/examples/prisma/migrations/app/20260616T2336_migration/start-contract.json new file mode 100644 index 00000000..d71e5d28 --- /dev/null +++ b/examples/prisma/migrations/app/20260616T2336_migration/start-contract.json @@ -0,0 +1,467 @@ +{ + "schemaVersion": "1", + "targetFamily": "sql", + "target": "postgres", + "profileHash": "sha256:1a8dbe044289f30a1de958fe800cc5a8378b285d2e126a8c44b58864bac2c18e", + "roots": { + "users": "User" + }, + "models": { + "User": { + "fields": { + "accountId": { + "nullable": false, + "type": { + "codecId": "cipherstash/bigint@1", + "kind": "scalar", + "typeParams": { + "equality": true, + "orderAndRange": true + } + } + }, + "birthday": { + "nullable": false, + "type": { + "codecId": "cipherstash/date@1", + "kind": "scalar", + "typeParams": { + "equality": true, + "orderAndRange": true + } + } + }, + "email": { + "nullable": false, + "type": { + "codecId": "cipherstash/string@1", + "kind": "scalar", + "typeParams": { + "equality": true, + "freeTextSearch": true, + "orderAndRange": true + } + } + }, + "emailVerified": { + "nullable": false, + "type": { + "codecId": "cipherstash/boolean@1", + "kind": "scalar", + "typeParams": { + "equality": true + } + } + }, + "id": { + "nullable": false, + "type": { + "codecId": "pg/text@1", + "kind": "scalar" + } + }, + "preferences": { + "nullable": false, + "type": { + "codecId": "cipherstash/json@1", + "kind": "scalar", + "typeParams": { + "searchableJson": true + } + } + }, + "salary": { + "nullable": false, + "type": { + "codecId": "cipherstash/double@1", + "kind": "scalar", + "typeParams": { + "equality": true, + "orderAndRange": true + } + } + } + }, + "relations": {}, + "storage": { + "fields": { + "accountId": { + "column": "accountid" + }, + "birthday": { + "column": "birthday" + }, + "email": { + "column": "email" + }, + "emailVerified": { + "column": "emailverified" + }, + "id": { + "column": "id" + }, + "preferences": { + "column": "preferences" + }, + "salary": { + "column": "salary" + } + }, + "table": "users" + } + } + }, + "storage": { + "storageHash": "sha256:7475191ce0d78258ce5586265bcdfd12202f5daf90690b902890e58eb7508373", + "tables": { + "users": { + "columns": { + "accountid": { + "codecId": "cipherstash/bigint@1", + "nativeType": "eql_v2_encrypted", + "nullable": false, + "typeParams": { + "equality": true, + "orderAndRange": true + } + }, + "birthday": { + "codecId": "cipherstash/date@1", + "nativeType": "eql_v2_encrypted", + "nullable": false, + "typeParams": { + "equality": true, + "orderAndRange": true + } + }, + "email": { + "codecId": "cipherstash/string@1", + "nativeType": "eql_v2_encrypted", + "nullable": false, + "typeParams": { + "equality": true, + "freeTextSearch": true, + "orderAndRange": true + } + }, + "emailverified": { + "codecId": "cipherstash/boolean@1", + "nativeType": "eql_v2_encrypted", + "nullable": false, + "typeParams": { + "equality": true + } + }, + "id": { + "codecId": "pg/text@1", + "nativeType": "text", + "nullable": false + }, + "preferences": { + "codecId": "cipherstash/json@1", + "nativeType": "eql_v2_encrypted", + "nullable": false, + "typeParams": { + "searchableJson": true + } + }, + "salary": { + "codecId": "cipherstash/double@1", + "nativeType": "eql_v2_encrypted", + "nullable": false, + "typeParams": { + "equality": true, + "orderAndRange": true + } + } + }, + "foreignKeys": [], + "indexes": [], + "primaryKey": { + "columns": [ + "id" + ] + }, + "uniques": [] + } + } + }, + "capabilities": { + "postgres": { + "jsonAgg": true, + "lateral": true, + "limit": true, + "orderBy": true, + "returning": true + }, + "sql": { + "defaultInInsert": true, + "enums": true, + "returning": true + } + }, + "extensionPacks": { + "cipherstash": { + "familyId": "sql", + "id": "cipherstash", + "kind": "extension", + "targetId": "postgres", + "types": { + "codecTypes": { + "codecInstances": [ + { + "descriptor": { + "codecId": "cipherstash/string@1", + "meta": { + "db": { + "sql": { + "postgres": { + "nativeType": "eql_v2_encrypted" + } + } + } + }, + "paramsSchema": { + "~standard": { + "vendor": "cipherstash", + "version": 1 + } + }, + "targetTypes": [ + "eql_v2_encrypted" + ], + "traits": [ + "cipherstash:equality", + "cipherstash:free-text-search", + "cipherstash:order-and-range" + ] + } + }, + { + "descriptor": { + "codecId": "cipherstash/double@1", + "meta": { + "db": { + "sql": { + "postgres": { + "nativeType": "eql_v2_encrypted" + } + } + } + }, + "paramsSchema": { + "~standard": { + "vendor": "cipherstash", + "version": 1 + } + }, + "targetTypes": [ + "eql_v2_encrypted" + ], + "traits": [ + "cipherstash:equality", + "cipherstash:order-and-range" + ] + } + }, + { + "descriptor": { + "codecId": "cipherstash/bigint@1", + "meta": { + "db": { + "sql": { + "postgres": { + "nativeType": "eql_v2_encrypted" + } + } + } + }, + "paramsSchema": { + "~standard": { + "vendor": "cipherstash", + "version": 1 + } + }, + "targetTypes": [ + "eql_v2_encrypted" + ], + "traits": [ + "cipherstash:equality", + "cipherstash:order-and-range" + ] + } + }, + { + "descriptor": { + "codecId": "cipherstash/date@1", + "meta": { + "db": { + "sql": { + "postgres": { + "nativeType": "eql_v2_encrypted" + } + } + } + }, + "paramsSchema": { + "~standard": { + "vendor": "cipherstash", + "version": 1 + } + }, + "targetTypes": [ + "eql_v2_encrypted" + ], + "traits": [ + "cipherstash:equality", + "cipherstash:order-and-range" + ] + } + }, + { + "descriptor": { + "codecId": "cipherstash/boolean@1", + "meta": { + "db": { + "sql": { + "postgres": { + "nativeType": "eql_v2_encrypted" + } + } + } + }, + "paramsSchema": { + "~standard": { + "vendor": "cipherstash", + "version": 1 + } + }, + "targetTypes": [ + "eql_v2_encrypted" + ], + "traits": [ + "cipherstash:equality" + ] + } + }, + { + "descriptor": { + "codecId": "cipherstash/json@1", + "meta": { + "db": { + "sql": { + "postgres": { + "nativeType": "eql_v2_encrypted" + } + } + } + }, + "paramsSchema": { + "~standard": { + "vendor": "cipherstash", + "version": 1 + } + }, + "targetTypes": [ + "eql_v2_encrypted" + ], + "traits": [ + "cipherstash:searchable-json" + ] + } + } + ], + "import": { + "alias": "CipherstashTypes", + "named": "CodecTypes", + "package": "@prisma-next/extension-cipherstash/codec-types" + }, + "typeImports": [ + { + "alias": "EncryptedString", + "named": "EncryptedString", + "package": "@prisma-next/extension-cipherstash/runtime" + }, + { + "alias": "EncryptedDouble", + "named": "EncryptedDouble", + "package": "@prisma-next/extension-cipherstash/runtime" + }, + { + "alias": "EncryptedBigInt", + "named": "EncryptedBigInt", + "package": "@prisma-next/extension-cipherstash/runtime" + }, + { + "alias": "EncryptedDate", + "named": "EncryptedDate", + "package": "@prisma-next/extension-cipherstash/runtime" + }, + { + "alias": "EncryptedBoolean", + "named": "EncryptedBoolean", + "package": "@prisma-next/extension-cipherstash/runtime" + }, + { + "alias": "EncryptedJson", + "named": "EncryptedJson", + "package": "@prisma-next/extension-cipherstash/runtime" + } + ] + }, + "queryOperationTypes": { + "import": { + "alias": "CipherstashQueryOperationTypes", + "named": "QueryOperationTypes", + "package": "@prisma-next/extension-cipherstash/operation-types" + } + }, + "storage": [ + { + "familyId": "sql", + "nativeType": "eql_v2_encrypted", + "targetId": "postgres", + "typeId": "cipherstash/string@1" + }, + { + "familyId": "sql", + "nativeType": "eql_v2_encrypted", + "targetId": "postgres", + "typeId": "cipherstash/double@1" + }, + { + "familyId": "sql", + "nativeType": "eql_v2_encrypted", + "targetId": "postgres", + "typeId": "cipherstash/bigint@1" + }, + { + "familyId": "sql", + "nativeType": "eql_v2_encrypted", + "targetId": "postgres", + "typeId": "cipherstash/date@1" + }, + { + "familyId": "sql", + "nativeType": "eql_v2_encrypted", + "targetId": "postgres", + "typeId": "cipherstash/boolean@1" + }, + { + "familyId": "sql", + "nativeType": "eql_v2_encrypted", + "targetId": "postgres", + "typeId": "cipherstash/json@1" + } + ] + }, + "version": "0.0.1" + } + }, + "meta": {}, + "_generated": { + "warning": "⚠️ GENERATED FILE - DO NOT EDIT", + "message": "This file is automatically generated by \"prisma-next contract emit\".", + "regenerate": "To regenerate, run: prisma-next contract emit" + } +} \ No newline at end of file diff --git a/examples/prisma/migrations/cipherstash/20260601T0100_install_eql_v3_bundle/contract.json b/examples/prisma/migrations/cipherstash/20260601T0100_install_eql_v3_bundle/contract.json new file mode 100644 index 00000000..a31afbb2 --- /dev/null +++ b/examples/prisma/migrations/cipherstash/20260601T0100_install_eql_v3_bundle/contract.json @@ -0,0 +1 @@ +{"storage":{"storageHash":"sha256:efa685171bebbb8f078f08d12be3578bb5d96b71669dccc6cc9e4be96af8cdb4"}} diff --git a/examples/prisma/migrations/cipherstash/20260601T0100_install_eql_v3_bundle/migration.json b/examples/prisma/migrations/cipherstash/20260601T0100_install_eql_v3_bundle/migration.json new file mode 100644 index 00000000..6beebf5b --- /dev/null +++ b/examples/prisma/migrations/cipherstash/20260601T0100_install_eql_v3_bundle/migration.json @@ -0,0 +1,21 @@ +{ + "from": null, + "to": "sha256:efa685171bebbb8f078f08d12be3578bb5d96b71669dccc6cc9e4be96af8cdb4", + "labels": [], + "providedInvariants": [ + "cipherstash:install-eql-v3-bundle-v1" + ], + "createdAt": "2026-06-16T23:32:09.463Z", + "fromContract": null, + "toContract": { + "storage": { + "storageHash": "sha256:efa685171bebbb8f078f08d12be3578bb5d96b71669dccc6cc9e4be96af8cdb4" + } + }, + "hints": { + "used": [], + "applied": [], + "plannerVersion": "2.0.0" + }, + "migrationHash": "sha256:997f0460ad5ad14530144f6c031104966b7cf90052ebf794cc2cf0f7c264e0ee" +} \ No newline at end of file diff --git a/examples/prisma/migrations/cipherstash/20260601T0100_install_eql_v3_bundle/ops.json b/examples/prisma/migrations/cipherstash/20260601T0100_install_eql_v3_bundle/ops.json new file mode 100644 index 00000000..b254c544 --- /dev/null +++ b/examples/prisma/migrations/cipherstash/20260601T0100_install_eql_v3_bundle/ops.json @@ -0,0 +1,28 @@ +[ + { + "id": "cipherstash.install-eql-v3-bundle", + "label": "Install EQL v3 bundle (eql_v3 schema, text domains, index-term extractors)", + "operationClass": "additive", + "invariantId": "cipherstash:install-eql-v3-bundle-v1", + "target": { + "id": "postgres" + }, + "precheck": [], + "execute": [ + { + "description": "Install EQL v3 bundle (eql_v3 schema, text domains, index-term extractors)", + "sql": "--! @file v3/schema.sql\n--! @brief EQL v3 schema creation\n--!\n--! Creates the eql_v3 schema, which houses the self-contained encrypted-domain\n--! type families (eql_v3.int4, eql_v3.int8, and future scalar domains): their\n--! jsonb-backed domains, the searchable-encrypted-metadata (SEM) index-term\n--! types they use (eql_v3.hmac_256, eql_v3.ore_block_u64_8_256), the index-term\n--! extractors, comparison wrappers, blockers, and aggregates. The v3 surface is\n--! self-contained — it owns every type it needs and has no runtime dependency\n--! on another EQL schema.\n--!\n--! Drops existing schema if present to support clean reinstallation.\n--!\n--! @warning DROP SCHEMA CASCADE will remove all objects in the schema\n--! @note eql_v3 is a new, additional schema for the encrypted-domain families.\n\n--! @brief Drop existing EQL v3 schema\n--! @warning CASCADE will drop all dependent objects\nDROP SCHEMA IF EXISTS eql_v3 CASCADE;\n\n--! @brief Create EQL v3 schema\n--! @note Houses the encrypted-domain type families\nCREATE SCHEMA eql_v3;\n\n--! @file v3/sem/ore_block_u64_8_256/types.sql\n--! @brief ORE block index-term types (eql_v3 SEM).\n--!\n--! Self-contained eql_v3 copies of the Order-Revealing Encryption block types\n--! (design D1/D3). The eql_v2 originals are unchanged.\n\n--! @brief ORE block term type for Order-Revealing Encryption\n--!\n--! Composite type representing a single ORE block term. Stores encrypted data\n--! as bytea that enables range comparisons without decryption.\nCREATE TYPE eql_v3.ore_block_u64_8_256_term AS (\n bytes bytea\n);\n\n\n--! @brief ORE block index term type for range queries\n--!\n--! Composite type containing an array of ORE block terms. The array is stored\n--! in the 'ob' field of encrypted data payloads.\n--!\n--! @note Transient type used only during query execution.\nCREATE TYPE eql_v3.ore_block_u64_8_256 AS (\n terms eql_v3.ore_block_u64_8_256_term[]\n);\n\n--! @file v3/crypto.sql\n--! @brief PostgreSQL pgcrypto extension enablement (eql_v3 fork)\n--!\n--! Forked from src/crypto.sql (design D8) so the entire eql_v3 dependency\n--! closure lives under src/v3/. Enables the pgcrypto extension which provides\n--! cryptographic functions used by the eql_v3 ORE comparison path.\n--!\n--! Installs pgcrypto into the `extensions` schema (Supabase convention) to\n--! avoid the `extension_in_public` lint. Every EQL function that uses pgcrypto\n--! has `pg_catalog, extensions, public` on its `search_path`, so a pre-existing\n--! install in `public` keeps working — and a pre-existing install anywhere else\n--! will be rejected at install time. The body is idempotent\n--! (`CREATE SCHEMA IF NOT EXISTS`, `pg_extension` guard), so running it\n--! alongside the eql_v2 copy in a combined install is safe.\n--!\n--! @note pgcrypto provides functions like digest(), hmac(), gen_random_bytes()\n\n--! @brief Create extensions schema (Supabase convention)\nCREATE SCHEMA IF NOT EXISTS extensions;\n\n--! @brief Enable pgcrypto extension and validate its schema\nDO $$\nDECLARE\n pgcrypto_schema name;\nBEGIN\n IF NOT EXISTS (SELECT 1 FROM pg_extension WHERE extname = 'pgcrypto') THEN\n CREATE EXTENSION pgcrypto WITH SCHEMA extensions;\n END IF;\n\n SELECT n.nspname INTO pgcrypto_schema\n FROM pg_extension e\n JOIN pg_namespace n ON n.oid = e.extnamespace\n WHERE e.extname = 'pgcrypto';\n\n IF pgcrypto_schema = 'extensions' THEN\n -- expected location, nothing to say\n NULL;\n ELSIF pgcrypto_schema = 'public' THEN\n RAISE NOTICE\n 'pgcrypto is installed in the `public` schema. EQL works against this layout, '\n 'but Supabase splinter will flag it as `extension_in_public`. Move it with: '\n 'ALTER EXTENSION pgcrypto SET SCHEMA extensions';\n ELSE\n RAISE EXCEPTION\n 'pgcrypto is installed in schema `%`, which is not on the EQL function search_path '\n '(pg_catalog, extensions, public). EQL cryptographic operations would fail at '\n 'runtime. Relocate the extension before installing EQL: '\n 'ALTER EXTENSION pgcrypto SET SCHEMA extensions',\n pgcrypto_schema;\n END IF;\nEND $$;\n\n--! @file v3/common.sql\n--! @brief Common utility functions for the self-contained eql_v3 surface.\n--!\n--! Forked from src/common.sql (design D7) so the eql_v3 ORE constructor owns the\n--! one transitive helper it needs without reaching into another schema. The\n--! eql_v2 original is unchanged.\n\n--! @brief Convert JSONB hex array to bytea array\n--! @internal\n--!\n--! Converts a JSONB array of hex-encoded strings into a PostgreSQL bytea array.\n--! Used for deserializing binary data (like ORE terms) from JSONB storage.\n--!\n--! @param val jsonb JSONB array of hex-encoded strings\n--! @return bytea[] Array of decoded binary values\n--!\n--! @note Returns NULL if input is JSON null\n--! @note Each array element is hex-decoded to bytea\n--! @note Inlinable `LANGUAGE sql` IMMUTABLE form (no `SET search_path`) so the\n--! planner can fold this per-encrypted-value helper into the calling query.\n--! This deliberately diverges from the v2 plpgsql equivalent (intentionally\n--! left unchanged): the `CASE WHEN jsonb_typeof(val) = 'array'` guard only\n--! evaluates the set-returning `jsonb_array_elements_text` for an array, so a\n--! non-array JSON scalar returns NULL here instead of raising \"cannot extract\n--! elements from a scalar\". Both callers only ever pass an array or JSON null\n--! (`val->'ob'`), so the divergence is unreachable in practice; JSON null and\n--! empty array still return NULL exactly as before.\nCREATE FUNCTION eql_v3.jsonb_array_to_bytea_array(val jsonb)\nRETURNS bytea[]\n IMMUTABLE\nAS $$\n SELECT CASE WHEN jsonb_typeof(val) = 'array'\n THEN (\n SELECT array_agg(decode(value::text, 'hex')::bytea)\n FROM jsonb_array_elements_text(val) AS value\n )\n ELSE NULL\n END;\n$$ LANGUAGE sql;\n\n--! @internal Mark this hand-written helper inline-critical so the post-install\n--! pin_search_path pass leaves it unpinned (no `SET search_path`), preserving\n--! SQL-function inlining. It takes a bare `jsonb` arg (not a jsonb-backed\n--! encrypted DOMAIN), so the structural skip in tasks/pin_search_path.sql does\n--! not recognise it; this marker is the documented manual opt-in.\nCOMMENT ON FUNCTION eql_v3.jsonb_array_to_bytea_array(jsonb) IS\n 'eql-inline-critical: per-encrypted-value ORE helper; must stay inlinable (unpinned search_path)';\n\n--! @file v3/sem/hmac_256/types.sql\n--! @brief HMAC-SHA256 index term type (eql_v3 SEM)\n--!\n--! Domain type representing HMAC-SHA256 hash values. Used for exact-match\n--! encrypted searches. The hash is stored in the 'hm' field of encrypted data\n--! payloads. Self-contained eql_v3 copy (design D1/D3); the eql_v2 original is\n--! unchanged.\n--!\n--! @note Transient type used only during query execution.\nCREATE DOMAIN eql_v3.hmac_256 AS text;\n\n--! @file v3/sem/bloom_filter/types.sql\n--! @brief Self-contained eql_v3 Bloom-filter SEM index-term type.\n\n--! @brief Bloom-filter index term: a bit array stored as smallint[].\n--!\n--! Backs the `match` capability (`@>` / `<@`) on `eql_v3.text_match`. The\n--! filter is read from the `bf` field of an encrypted jsonb payload. Native\n--! `smallint[]` array-containment (`@>`/`<@`) is inherited through the domain,\n--! so this type needs no custom operators.\n--!\n--! @note Self-contained: references no eql_v2 symbol.\nCREATE DOMAIN eql_v3.bloom_filter AS smallint[];\n\n--! @file v3/scalars/functions.sql\n--! @brief Shared blocker helper for the eql_v3 encrypted-domain families.\n--!\n--! Per-domain wrapper functions live in src/v3/scalars//.\n--! Blockers in those files delegate to encrypted_domain_unsupported_bool\n--! so every domain raises a uniform domain-specific error rather than\n--! letting an unsupported operator fall through to native jsonb\n--! behaviour.\n\n--! @brief Shared blocker helper. Raises 'operator X is not supported\n--! for TYPE' so unsupported domain operators surface a clear\n--! error rather than fall through to native jsonb behaviour.\n--! @param type_name Domain type name (eql_v3.*)\n--! @param operator_name Operator symbol (=, <, @>, ->, etc.)\n--! @return boolean (never returns; always raises)\nCREATE FUNCTION eql_v3.encrypted_domain_unsupported_bool(type_name text, operator_name text)\nRETURNS boolean\nIMMUTABLE PARALLEL SAFE\nSET search_path = pg_catalog, extensions, public\nAS $$\nBEGIN\n RAISE EXCEPTION 'operator % is not supported for %', operator_name, type_name;\nEND;\n$$ LANGUAGE plpgsql;\n\n--! @file v3/sem/ore_block_u64_8_256/functions.sql\n--! @brief ORE block construction, extraction, and comparison (eql_v3 SEM).\n--!\n--! jsonb-only subset of src/ore_block_u64_8_256/functions.sql. The\n--! encrypted-column overloads are omitted; the helper jsonb_array_to_bytea_array\n--! and pgcrypto encrypt() are reached via the forked src/v3/common.sql and\n--! src/v3/crypto.sql so the whole closure stays under src/v3. (Doc comments\n--! deliberately avoid naming eql_v2 symbols so the self-containment grep stays\n--! clean.)\n\n--! @brief Convert JSONB array to ORE block composite type\n--! @internal\n--! @param val jsonb Array of hex-encoded ORE block terms\n--! @return eql_v3.ore_block_u64_8_256 ORE block composite, or NULL if input is null\n--! @note Inlinable `LANGUAGE sql` IMMUTABLE form (no `SET search_path`) so the\n--! planner can fold this per-encrypted-value helper into the calling query.\n--! This deliberately diverges from the v2 plpgsql equivalent (intentionally\n--! left unchanged): the `CASE WHEN jsonb_typeof(val) = 'array'` guard only\n--! evaluates the array path for an array, so a non-array JSON scalar returns\n--! NULL here instead of raising. The sole caller passes `val->'ob'`, always an\n--! array or JSON null, so the divergence is unreachable in practice; JSON null\n--! and empty array still return NULL exactly as before.\nCREATE FUNCTION eql_v3.jsonb_array_to_ore_block_u64_8_256(val jsonb)\nRETURNS eql_v3.ore_block_u64_8_256\n IMMUTABLE\nAS $$\n SELECT CASE WHEN jsonb_typeof(val) = 'array'\n THEN ROW((\n SELECT array_agg(ROW(b)::eql_v3.ore_block_u64_8_256_term)\n FROM unnest(eql_v3.jsonb_array_to_bytea_array(val)) AS b\n ))::eql_v3.ore_block_u64_8_256\n ELSE NULL\n END;\n$$ LANGUAGE sql;\n\n--! @internal Mark this hand-written helper inline-critical so the post-install\n--! pin_search_path pass leaves it unpinned (no `SET search_path`), preserving\n--! SQL-function inlining. It takes a bare `jsonb` arg (not a jsonb-backed\n--! encrypted DOMAIN), so the structural skip in tasks/pin_search_path.sql does\n--! not recognise it; this marker is the documented manual opt-in.\nCOMMENT ON FUNCTION eql_v3.jsonb_array_to_ore_block_u64_8_256(jsonb) IS\n 'eql-inline-critical: per-encrypted-value ORE helper; must stay inlinable (unpinned search_path)';\n\n\n--! @brief Extract ORE block index term from JSONB payload\n--! @param val jsonb containing encrypted EQL payload\n--! @return eql_v3.ore_block_u64_8_256 ORE block index term\n--! @throws Exception if 'ob' field is missing\nCREATE FUNCTION eql_v3.ore_block_u64_8_256(val jsonb)\n RETURNS eql_v3.ore_block_u64_8_256\n IMMUTABLE STRICT PARALLEL SAFE\n SET search_path = pg_catalog, extensions, public\nAS $$\n BEGIN\n -- Declared STRICT: PostgreSQL returns NULL for a NULL argument without\n -- entering the body, so no explicit `val IS NULL` guard is needed.\n IF eql_v3.has_ore_block_u64_8_256(val) THEN\n RETURN eql_v3.jsonb_array_to_ore_block_u64_8_256(val->'ob');\n END IF;\n RAISE 'Expected an ore index (ob) value in json: %', val;\n END;\n$$ LANGUAGE plpgsql;\n\n\n--! @brief Check if JSONB payload contains ORE block index term\n--! @param val jsonb containing encrypted EQL payload\n--! @return boolean True if 'ob' field is present and non-null\nCREATE FUNCTION eql_v3.has_ore_block_u64_8_256(val jsonb)\n RETURNS boolean\n IMMUTABLE STRICT PARALLEL SAFE\n SET search_path = pg_catalog, extensions, public\nAS $$\n BEGIN\n RETURN val ->> 'ob' IS NOT NULL;\n END;\n$$ LANGUAGE plpgsql;\n\n\n--! @brief Compare two ORE block terms using cryptographic comparison\n--! @internal\n--! @param a eql_v3.ore_block_u64_8_256_term First ORE term\n--! @param b eql_v3.ore_block_u64_8_256_term Second ORE term\n--! @return integer -1 if a < b, 0 if a = b, 1 if a > b\n--! @throws Exception if ciphertexts are different lengths\n--! @note Marked `IMMUTABLE` (the three `compare_ore_block_u64_8_256_term(s)`\n--! overloads all are). This deliberately diverges from the v2 originals,\n--! which carry no volatility marker and so default to `VOLATILE`. The\n--! comparison is deterministic — its only crypto call, pgcrypto `encrypt()`,\n--! is itself `IMMUTABLE STRICT PARALLEL SAFE` — so `IMMUTABLE` lets the\n--! planner fold/cache these in ordering and index contexts. NOT `STRICT`:\n--! the NULL-handling branches below are load-bearing for the array overload.\nCREATE FUNCTION eql_v3.compare_ore_block_u64_8_256_term(a eql_v3.ore_block_u64_8_256_term, b eql_v3.ore_block_u64_8_256_term)\n RETURNS integer\n IMMUTABLE\n SET search_path = pg_catalog, extensions, public\nAS $$\n DECLARE\n eq boolean := true;\n unequal_block smallint := 0;\n hash_key bytea;\n data_block bytea;\n encrypt_block bytea;\n target_block bytea;\n\n left_block_size CONSTANT smallint := 16;\n right_block_size CONSTANT smallint := 32;\n right_offset CONSTANT smallint := 136; -- 8 * 17\n\n indicator smallint := 0;\n BEGIN\n IF a IS NULL AND b IS NULL THEN\n RETURN 0;\n END IF;\n\n IF a IS NULL THEN\n RETURN -1;\n END IF;\n\n IF b IS NULL THEN\n RETURN 1;\n END IF;\n\n IF bit_length(a.bytes) != bit_length(b.bytes) THEN\n RAISE EXCEPTION 'Ciphertexts are different lengths';\n END IF;\n\n FOR block IN 0..7 LOOP\n IF\n substr(a.bytes, 1 + block, 1) != substr(b.bytes, 1 + block, 1)\n OR substr(a.bytes, 9 + left_block_size * block, left_block_size) != substr(b.bytes, 9 + left_block_size * BLOCK, left_block_size)\n THEN\n IF eq THEN\n unequal_block := block;\n END IF;\n eq = false;\n END IF;\n END LOOP;\n\n IF eq THEN\n RETURN 0::integer;\n END IF;\n\n hash_key := substr(b.bytes, right_offset + 1, 16);\n\n target_block := substr(b.bytes, right_offset + 17 + (unequal_block * right_block_size), right_block_size);\n\n data_block := substr(a.bytes, 9 + (left_block_size * unequal_block), left_block_size);\n\n encrypt_block := encrypt(data_block::bytea, hash_key::bytea, 'aes-ecb');\n\n indicator := (\n get_bit(\n encrypt_block,\n 0\n ) + get_bit(target_block, get_byte(a.bytes, unequal_block))) % 2;\n\n IF indicator = 1 THEN\n RETURN 1::integer;\n ELSE\n RETURN -1::integer;\n END IF;\n END;\n$$ LANGUAGE plpgsql;\n\n\n--! @brief Compare arrays of ORE block terms recursively\n--! @internal\n--! @param a eql_v3.ore_block_u64_8_256_term[] First array\n--! @param b eql_v3.ore_block_u64_8_256_term[] Second array\n--! @return integer -1/0/1, or NULL if either array is NULL\nCREATE FUNCTION eql_v3.compare_ore_block_u64_8_256_terms(a eql_v3.ore_block_u64_8_256_term[], b eql_v3.ore_block_u64_8_256_term[])\nRETURNS integer\n IMMUTABLE\n SET search_path = pg_catalog, extensions, public\nAS $$\n DECLARE\n cmp_result integer;\n BEGIN\n IF a IS NULL OR b IS NULL THEN\n RETURN NULL;\n END IF;\n\n IF cardinality(a) = 0 AND cardinality(b) = 0 THEN\n RETURN 0;\n END IF;\n\n IF (cardinality(a) = 0) AND cardinality(b) > 0 THEN\n RETURN -1;\n END IF;\n\n IF cardinality(a) > 0 AND (cardinality(b) = 0) THEN\n RETURN 1;\n END IF;\n\n cmp_result := eql_v3.compare_ore_block_u64_8_256_term(a[1], b[1]);\n\n IF cmp_result = 0 THEN\n RETURN eql_v3.compare_ore_block_u64_8_256_terms(a[2:array_length(a,1)], b[2:array_length(b,1)]);\n END IF;\n\n RETURN cmp_result;\n END\n$$ LANGUAGE plpgsql;\n\n\n--! @brief Compare ORE block composite types\n--! @internal\n--! @param a eql_v3.ore_block_u64_8_256 First ORE block\n--! @param b eql_v3.ore_block_u64_8_256 Second ORE block\n--! @return integer -1/0/1\nCREATE FUNCTION eql_v3.compare_ore_block_u64_8_256_terms(a eql_v3.ore_block_u64_8_256, b eql_v3.ore_block_u64_8_256)\nRETURNS integer\n IMMUTABLE\n SET search_path = pg_catalog, extensions, public\nAS $$\n BEGIN\n RETURN eql_v3.compare_ore_block_u64_8_256_terms(a.terms, b.terms);\n END\n$$ LANGUAGE plpgsql;\n\n--! @file v3/sem/ore_block_u64_8_256/operators.sql\n--! @brief Comparison operators on eql_v3.ore_block_u64_8_256.\n--!\n--! The six backing functions are inlinable single-statement SQL so the planner\n--! can fold the eql_v3 comparison wrappers through to functional-index matching.\n\n--! @brief Equality backing function for ORE block types\n--! @internal\n--!\n--! @param a eql_v3.ore_block_u64_8_256 Left operand\n--! @param b eql_v3.ore_block_u64_8_256 Right operand\n--! @return boolean True if the ORE blocks are equal\n--!\n--! @see eql_v3.compare_ore_block_u64_8_256_terms\nCREATE FUNCTION eql_v3.ore_block_u64_8_256_eq(a eql_v3.ore_block_u64_8_256, b eql_v3.ore_block_u64_8_256)\nRETURNS boolean\n LANGUAGE sql\n IMMUTABLE STRICT PARALLEL SAFE\nAS $$\n SELECT eql_v3.compare_ore_block_u64_8_256_terms(a, b) = 0\n$$;\n\n--! @brief Not-equal backing function for ORE block types\n--! @internal\n--!\n--! @param a eql_v3.ore_block_u64_8_256 Left operand\n--! @param b eql_v3.ore_block_u64_8_256 Right operand\n--! @return boolean True if the ORE blocks are not equal\n--!\n--! @see eql_v3.compare_ore_block_u64_8_256_terms\nCREATE FUNCTION eql_v3.ore_block_u64_8_256_neq(a eql_v3.ore_block_u64_8_256, b eql_v3.ore_block_u64_8_256)\nRETURNS boolean\n LANGUAGE sql\n IMMUTABLE STRICT PARALLEL SAFE\nAS $$\n SELECT eql_v3.compare_ore_block_u64_8_256_terms(a, b) <> 0\n$$;\n\n--! @brief Less-than backing function for ORE block types\n--! @internal\n--!\n--! @param a eql_v3.ore_block_u64_8_256 Left operand\n--! @param b eql_v3.ore_block_u64_8_256 Right operand\n--! @return boolean True if the left operand is less than the right operand\n--!\n--! @see eql_v3.compare_ore_block_u64_8_256_terms\nCREATE FUNCTION eql_v3.ore_block_u64_8_256_lt(a eql_v3.ore_block_u64_8_256, b eql_v3.ore_block_u64_8_256)\nRETURNS boolean\n LANGUAGE sql\n IMMUTABLE STRICT PARALLEL SAFE\nAS $$\n SELECT eql_v3.compare_ore_block_u64_8_256_terms(a, b) = -1\n$$;\n\n--! @brief Less-than-or-equal backing function for ORE block types\n--! @internal\n--!\n--! @param a eql_v3.ore_block_u64_8_256 Left operand\n--! @param b eql_v3.ore_block_u64_8_256 Right operand\n--! @return boolean True if the left operand is less than or equal to the right operand\n--!\n--! @see eql_v3.compare_ore_block_u64_8_256_terms\nCREATE FUNCTION eql_v3.ore_block_u64_8_256_lte(a eql_v3.ore_block_u64_8_256, b eql_v3.ore_block_u64_8_256)\nRETURNS boolean\n LANGUAGE sql\n IMMUTABLE STRICT PARALLEL SAFE\nAS $$\n SELECT eql_v3.compare_ore_block_u64_8_256_terms(a, b) != 1\n$$;\n\n--! @brief Greater-than backing function for ORE block types\n--! @internal\n--!\n--! @param a eql_v3.ore_block_u64_8_256 Left operand\n--! @param b eql_v3.ore_block_u64_8_256 Right operand\n--! @return boolean True if the left operand is greater than the right operand\n--!\n--! @see eql_v3.compare_ore_block_u64_8_256_terms\nCREATE FUNCTION eql_v3.ore_block_u64_8_256_gt(a eql_v3.ore_block_u64_8_256, b eql_v3.ore_block_u64_8_256)\nRETURNS boolean\n LANGUAGE sql\n IMMUTABLE STRICT PARALLEL SAFE\nAS $$\n SELECT eql_v3.compare_ore_block_u64_8_256_terms(a, b) = 1\n$$;\n\n--! @brief Greater-than-or-equal backing function for ORE block types\n--! @internal\n--!\n--! @param a eql_v3.ore_block_u64_8_256 Left operand\n--! @param b eql_v3.ore_block_u64_8_256 Right operand\n--! @return boolean True if the left operand is greater than or equal to the right operand\n--!\n--! @see eql_v3.compare_ore_block_u64_8_256_terms\nCREATE FUNCTION eql_v3.ore_block_u64_8_256_gte(a eql_v3.ore_block_u64_8_256, b eql_v3.ore_block_u64_8_256)\nRETURNS boolean\n LANGUAGE sql\n IMMUTABLE STRICT PARALLEL SAFE\nAS $$\n SELECT eql_v3.compare_ore_block_u64_8_256_terms(a, b) != -1\n$$;\n\n\n--! @brief = operator for ORE block types\n--!\n--! COMMUTATOR is the operator itself: equality is symmetric. Required for the\n--! MERGES flag — without it the planner raises \"could not find commutator\" the\n--! first time an ore_block equality is used as a join qual (e.g. via the inlined\n--! eql_v3._ord_ore equality wrappers).\nCREATE OPERATOR = (\n FUNCTION=eql_v3.ore_block_u64_8_256_eq,\n LEFTARG=eql_v3.ore_block_u64_8_256,\n RIGHTARG=eql_v3.ore_block_u64_8_256,\n COMMUTATOR = =,\n NEGATOR = <>,\n RESTRICT = eqsel,\n JOIN = eqjoinsel,\n HASHES,\n MERGES\n);\n\n--! @brief <> operator for ORE block types\nCREATE OPERATOR <> (\n FUNCTION=eql_v3.ore_block_u64_8_256_neq,\n LEFTARG=eql_v3.ore_block_u64_8_256,\n RIGHTARG=eql_v3.ore_block_u64_8_256,\n COMMUTATOR = <>,\n NEGATOR = =,\n RESTRICT = eqsel,\n JOIN = eqjoinsel,\n HASHES,\n MERGES\n);\n\n--! @brief > operator for ORE block types\nCREATE OPERATOR > (\n FUNCTION=eql_v3.ore_block_u64_8_256_gt,\n LEFTARG=eql_v3.ore_block_u64_8_256,\n RIGHTARG=eql_v3.ore_block_u64_8_256,\n COMMUTATOR = <,\n NEGATOR = <=,\n RESTRICT = scalargtsel,\n JOIN = scalargtjoinsel\n);\n\n--! @brief < operator for ORE block types\nCREATE OPERATOR < (\n FUNCTION=eql_v3.ore_block_u64_8_256_lt,\n LEFTARG=eql_v3.ore_block_u64_8_256,\n RIGHTARG=eql_v3.ore_block_u64_8_256,\n COMMUTATOR = >,\n NEGATOR = >=,\n RESTRICT = scalarltsel,\n JOIN = scalarltjoinsel\n);\n\n--! @brief <= operator for ORE block types\nCREATE OPERATOR <= (\n FUNCTION=eql_v3.ore_block_u64_8_256_lte,\n LEFTARG=eql_v3.ore_block_u64_8_256,\n RIGHTARG=eql_v3.ore_block_u64_8_256,\n COMMUTATOR = >=,\n NEGATOR = >,\n RESTRICT = scalarlesel,\n JOIN = scalarlejoinsel\n);\n\n--! @brief >= operator for ORE block types\nCREATE OPERATOR >= (\n FUNCTION=eql_v3.ore_block_u64_8_256_gte,\n LEFTARG=eql_v3.ore_block_u64_8_256,\n RIGHTARG=eql_v3.ore_block_u64_8_256,\n COMMUTATOR = <=,\n NEGATOR = <,\n RESTRICT = scalargesel,\n JOIN = scalargejoinsel\n);\n\n--! @file v3/sem/hmac_256/functions.sql\n--! @brief HMAC-SHA256 index-term extraction from a jsonb payload (eql_v3 SEM).\n--!\n--! jsonb-only subset of src/hmac_256/functions.sql. The encrypted-column and\n--! ste_vec-entry overloads are intentionally omitted — the eql_v3 scalar\n--! domains extract from the jsonb payload directly via a cast to the domain.\n--! (Doc comments deliberately avoid naming eql_v2 symbols so the\n--! self-containment grep stays clean.)\n\n--! @brief Extract HMAC-SHA256 index term from JSONB payload\n--!\n--! Inlinable single-statement SQL — the planner can fold this into the calling\n--! query so functional hash/btree indexes built on `eql_v3.eq_term(col)`\n--! (which calls this) engage structurally.\n--!\n--! @param val jsonb containing encrypted EQL payload\n--! @return eql_v3.hmac_256 HMAC-SHA256 hash value, or NULL when `hm` is absent\nCREATE FUNCTION eql_v3.hmac_256(val jsonb)\n RETURNS eql_v3.hmac_256\n LANGUAGE sql\n IMMUTABLE STRICT PARALLEL SAFE\nAS $$\n SELECT (val ->> 'hm')::eql_v3.hmac_256\n$$;\n\n\n--! @brief Check if JSONB payload contains HMAC-SHA256 index term\n--!\n--! @param val jsonb containing encrypted EQL payload\n--! @return boolean True if 'hm' field is present and non-null\nCREATE FUNCTION eql_v3.has_hmac_256(val jsonb)\n RETURNS boolean\n IMMUTABLE STRICT PARALLEL SAFE\n SET search_path = pg_catalog, extensions, public\nAS $$\n BEGIN\n RETURN val ->> 'hm' IS NOT NULL;\n END;\n$$ LANGUAGE plpgsql;\n\n--! @file v3/sem/bloom_filter/functions.sql\n--! @brief Extractor for the eql_v3 Bloom-filter SEM index term.\n--!\n--! jsonb-only subset of src/bloom_filter/functions.sql. The encrypted-column\n--! overloads are intentionally omitted — the eql_v3 scalar domains extract from\n--! the jsonb payload directly via a cast to the domain. (Doc comments\n--! deliberately avoid naming eql_v2 symbols so the self-containment grep stays\n--! clean.)\n\n--! @brief Test whether a jsonb payload carries a Bloom-filter (`bf`) term.\n--!\n--! @param val jsonb The encrypted payload.\n--! @return boolean True when the `bf` key is present and non-null.\n--!\n--! @internal Defined for parity with the eql_v3 SEM index-term predicates\n--! (`has_hmac_256` / `has_ore_block_u64_8_256`); it is not currently called by\n--! the extractor below, which gates on value-shape inline, nor by the generated\n--! domain CHECK, which tests `bf` presence via the envelope-key skeleton. Kept\n--! as the canonical presence test for callers that need one.\nCREATE FUNCTION eql_v3.has_bloom_filter(val jsonb)\n RETURNS boolean\n IMMUTABLE STRICT PARALLEL SAFE\n SET search_path = pg_catalog, extensions, public\nAS $$\n BEGIN\n RETURN val ? 'bf' AND val ->> 'bf' IS NOT NULL;\n END;\n$$ LANGUAGE plpgsql;\n\n--! @brief Extract the Bloom-filter index term from a jsonb payload.\n--!\n--! Inlinable single-statement SQL — the planner can fold this into the calling\n--! query so the functional GIN index built on `eql_v3.match_term(col)` (which\n--! calls this) engages structurally. Mirrors `eql_v3.hmac_256(jsonb)`: no RAISE\n--! and no pinned `search_path`. Returns NULL when `bf` is absent or present but\n--! not a json array, rather than raising. The `text_match` domain CHECK\n--! guarantees the `bf` *key* is present but not that it is an array, so a\n--! non-array `bf` (e.g. `{\"bf\": null}`) can reach here even on a typed value;\n--! gating on `jsonb_typeof(...) = 'array'` returns NULL for that case — and for\n--! raw jsonb outside the domain — instead of erroring inside\n--! `jsonb_array_elements`. NULL, like the HMAC extractor, is the right answer. An\n--! empty `bf` array yields an empty filter (contains nothing, contained by\n--! everything), matching set-containment semantics.\n--!\n--! @param val jsonb The encrypted payload.\n--! @return eql_v3.bloom_filter The `bf` array as a smallint[] domain value, or\n--! NULL when `bf` is absent or not a json array.\nCREATE FUNCTION eql_v3.bloom_filter(val jsonb)\n RETURNS eql_v3.bloom_filter\n LANGUAGE sql\n IMMUTABLE STRICT PARALLEL SAFE\nAS $$\n SELECT CASE WHEN jsonb_typeof(val -> 'bf') = 'array'\n THEN ARRAY(SELECT jsonb_array_elements(val -> 'bf'))::eql_v3.bloom_filter\n END\n$$;\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file v3/scalars/int4/int4_types.sql\n--! @brief Encrypted-domain types for int4.\n\nDO $$\nBEGIN\n --! @brief Encrypted domain eql_v3.int4.\n IF NOT EXISTS (\n SELECT 1 FROM pg_type\n WHERE typname = 'int4' AND typnamespace = 'eql_v3'::regnamespace\n ) THEN\n CREATE DOMAIN eql_v3.int4 AS jsonb\n CHECK (\n jsonb_typeof(VALUE) = 'object'\n AND VALUE ? 'v'\n AND VALUE ? 'i'\n AND VALUE ? 'c'\n AND VALUE->>'v' = '2'\n );\n END IF;\n\n --! @brief Encrypted domain eql_v3.int4_eq.\n IF NOT EXISTS (\n SELECT 1 FROM pg_type\n WHERE typname = 'int4_eq' AND typnamespace = 'eql_v3'::regnamespace\n ) THEN\n CREATE DOMAIN eql_v3.int4_eq AS jsonb\n CHECK (\n jsonb_typeof(VALUE) = 'object'\n AND VALUE ? 'v'\n AND VALUE ? 'i'\n AND VALUE ? 'c'\n AND VALUE ? 'hm'\n AND VALUE->>'v' = '2'\n );\n END IF;\n\n --! @brief Encrypted domain eql_v3.int4_ord_ore.\n IF NOT EXISTS (\n SELECT 1 FROM pg_type\n WHERE typname = 'int4_ord_ore' AND typnamespace = 'eql_v3'::regnamespace\n ) THEN\n CREATE DOMAIN eql_v3.int4_ord_ore AS jsonb\n CHECK (\n jsonb_typeof(VALUE) = 'object'\n AND VALUE ? 'v'\n AND VALUE ? 'i'\n AND VALUE ? 'c'\n AND VALUE ? 'ob'\n AND VALUE->>'v' = '2'\n );\n END IF;\n\n --! @brief Encrypted domain eql_v3.int4_ord.\n IF NOT EXISTS (\n SELECT 1 FROM pg_type\n WHERE typname = 'int4_ord' AND typnamespace = 'eql_v3'::regnamespace\n ) THEN\n CREATE DOMAIN eql_v3.int4_ord AS jsonb\n CHECK (\n jsonb_typeof(VALUE) = 'object'\n AND VALUE ? 'v'\n AND VALUE ? 'i'\n AND VALUE ? 'c'\n AND VALUE ? 'ob'\n AND VALUE->>'v' = '2'\n );\n END IF;\nEND\n$$;\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/int4/int4_ord_functions.sql\n--! @brief Functions for eql_v3.int4_ord.\n\n--! @brief Index extractor for eql_v3.int4_ord.\n--! @param a eql_v3.int4_ord\n--! @return eql_v3.ore_block_u64_8_256\nCREATE FUNCTION eql_v3.ord_term(a eql_v3.int4_ord)\nRETURNS eql_v3.ore_block_u64_8_256\nLANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ore_block_u64_8_256(a::jsonb) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord.\n--! @param a eql_v3.int4_ord\n--! @param b eql_v3.int4_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.int4_ord, b eql_v3.int4_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord.\n--! @param a eql_v3.int4_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.int4_ord, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b::eql_v3.int4_ord) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord.\n--! @param a jsonb\n--! @param b eql_v3.int4_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.int4_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int4_ord) = eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord.\n--! @param a eql_v3.int4_ord\n--! @param b eql_v3.int4_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.int4_ord, b eql_v3.int4_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord.\n--! @param a eql_v3.int4_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.int4_ord, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b::eql_v3.int4_ord) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord.\n--! @param a jsonb\n--! @param b eql_v3.int4_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.int4_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int4_ord) <> eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord.\n--! @param a eql_v3.int4_ord\n--! @param b eql_v3.int4_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.int4_ord, b eql_v3.int4_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord.\n--! @param a eql_v3.int4_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.int4_ord, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b::eql_v3.int4_ord) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord.\n--! @param a jsonb\n--! @param b eql_v3.int4_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.int4_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int4_ord) < eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord.\n--! @param a eql_v3.int4_ord\n--! @param b eql_v3.int4_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.int4_ord, b eql_v3.int4_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord.\n--! @param a eql_v3.int4_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.int4_ord, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b::eql_v3.int4_ord) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord.\n--! @param a jsonb\n--! @param b eql_v3.int4_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.int4_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int4_ord) <= eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord.\n--! @param a eql_v3.int4_ord\n--! @param b eql_v3.int4_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.int4_ord, b eql_v3.int4_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord.\n--! @param a eql_v3.int4_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.int4_ord, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b::eql_v3.int4_ord) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord.\n--! @param a jsonb\n--! @param b eql_v3.int4_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.int4_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int4_ord) > eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord.\n--! @param a eql_v3.int4_ord\n--! @param b eql_v3.int4_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.int4_ord, b eql_v3.int4_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord.\n--! @param a eql_v3.int4_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.int4_ord, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b::eql_v3.int4_ord) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord.\n--! @param a jsonb\n--! @param b eql_v3.int4_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.int4_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int4_ord) >= eql_v3.ord_term(b) $$;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord.\n--! @param a eql_v3.int4_ord\n--! @param b eql_v3.int4_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.int4_ord, b eql_v3.int4_ord)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int4_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord.\n--! @param a eql_v3.int4_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.int4_ord, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int4_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord.\n--! @param a jsonb\n--! @param b eql_v3.int4_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.int4_ord)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int4_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord.\n--! @param a eql_v3.int4_ord\n--! @param b eql_v3.int4_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.int4_ord, b eql_v3.int4_ord)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int4_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord.\n--! @param a eql_v3.int4_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.int4_ord, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int4_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord.\n--! @param a jsonb\n--! @param b eql_v3.int4_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.int4_ord)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int4_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord.\n--! @param a eql_v3.int4_ord\n--! @param selector text\n--! @return eql_v3.int4_ord\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.int4_ord, selector text)\nRETURNS eql_v3.int4_ord IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int4_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord.\n--! @param a eql_v3.int4_ord\n--! @param selector integer\n--! @return eql_v3.int4_ord\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.int4_ord, selector integer)\nRETURNS eql_v3.int4_ord IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int4_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord.\n--! @param a jsonb\n--! @param selector eql_v3.int4_ord\n--! @return eql_v3.int4_ord\nCREATE FUNCTION eql_v3.\"->\"(a jsonb, selector eql_v3.int4_ord)\nRETURNS eql_v3.int4_ord IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int4_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord.\n--! @param a eql_v3.int4_ord\n--! @param selector text\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.int4_ord, selector text)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int4_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord.\n--! @param a eql_v3.int4_ord\n--! @param selector integer\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.int4_ord, selector integer)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int4_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord.\n--! @param a jsonb\n--! @param selector eql_v3.int4_ord\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a jsonb, selector eql_v3.int4_ord)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int4_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord.\n--! @param a eql_v3.int4_ord\n--! @param b text\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?\"(a eql_v3.int4_ord, b text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.int4_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord.\n--! @param a eql_v3.int4_ord\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?|\"(a eql_v3.int4_ord, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.int4_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord.\n--! @param a eql_v3.int4_ord\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?&\"(a eql_v3.int4_ord, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.int4_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord.\n--! @param a eql_v3.int4_ord\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@?\"(a eql_v3.int4_ord, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.int4_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord.\n--! @param a eql_v3.int4_ord\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@@\"(a eql_v3.int4_ord, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.int4_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord.\n--! @param a eql_v3.int4_ord\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#>\"(a eql_v3.int4_ord, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.int4_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord.\n--! @param a eql_v3.int4_ord\n--! @param b text[]\n--! @return text\nCREATE FUNCTION eql_v3.\"#>>\"(a eql_v3.int4_ord, b text[])\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.int4_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord.\n--! @param a eql_v3.int4_ord\n--! @param b text\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int4_ord, b text)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int4_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord.\n--! @param a eql_v3.int4_ord\n--! @param b integer\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int4_ord, b integer)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int4_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord.\n--! @param a eql_v3.int4_ord\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int4_ord, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int4_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord.\n--! @param a eql_v3.int4_ord\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#-\"(a eql_v3.int4_ord, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.int4_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord.\n--! @param a eql_v3.int4_ord\n--! @param b eql_v3.int4_ord\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.int4_ord, b eql_v3.int4_ord)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int4_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord.\n--! @param a eql_v3.int4_ord\n--! @param b jsonb\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.int4_ord, b jsonb)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int4_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord.\n--! @param a jsonb\n--! @param b eql_v3.int4_ord\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a jsonb, b eql_v3.int4_ord)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int4_ord'; END; $$\nLANGUAGE plpgsql;\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/int4/int4_ord_operators.sql\n--! @brief Operators for eql_v3.int4_ord.\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.int4_ord, RIGHTARG = eql_v3.int4_ord,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.int4_ord, RIGHTARG = jsonb,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.int4_ord, RIGHTARG = eql_v3.int4_ord,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.int4_ord, RIGHTARG = jsonb,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.int4_ord, RIGHTARG = eql_v3.int4_ord,\n COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.int4_ord, RIGHTARG = jsonb,\n COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord,\n COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.int4_ord, RIGHTARG = eql_v3.int4_ord,\n COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.int4_ord, RIGHTARG = jsonb,\n COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord,\n COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.int4_ord, RIGHTARG = eql_v3.int4_ord,\n COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.int4_ord, RIGHTARG = jsonb,\n COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord,\n COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.int4_ord, RIGHTARG = eql_v3.int4_ord,\n COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.int4_ord, RIGHTARG = jsonb,\n COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord,\n COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.int4_ord, RIGHTARG = eql_v3.int4_ord\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.int4_ord, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.int4_ord, RIGHTARG = eql_v3.int4_ord\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.int4_ord, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.int4_ord, RIGHTARG = text\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.int4_ord, RIGHTARG = integer\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.int4_ord, RIGHTARG = text\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.int4_ord, RIGHTARG = integer\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord\n);\n\nCREATE OPERATOR ? (\n FUNCTION = eql_v3.\"?\",\n LEFTARG = eql_v3.int4_ord, RIGHTARG = text\n);\n\nCREATE OPERATOR ?| (\n FUNCTION = eql_v3.\"?|\",\n LEFTARG = eql_v3.int4_ord, RIGHTARG = text[]\n);\n\nCREATE OPERATOR ?& (\n FUNCTION = eql_v3.\"?&\",\n LEFTARG = eql_v3.int4_ord, RIGHTARG = text[]\n);\n\nCREATE OPERATOR @? (\n FUNCTION = eql_v3.\"@?\",\n LEFTARG = eql_v3.int4_ord, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR @@ (\n FUNCTION = eql_v3.\"@@\",\n LEFTARG = eql_v3.int4_ord, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR #> (\n FUNCTION = eql_v3.\"#>\",\n LEFTARG = eql_v3.int4_ord, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #>> (\n FUNCTION = eql_v3.\"#>>\",\n LEFTARG = eql_v3.int4_ord, RIGHTARG = text[]\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int4_ord, RIGHTARG = text\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int4_ord, RIGHTARG = integer\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int4_ord, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #- (\n FUNCTION = eql_v3.\"#-\",\n LEFTARG = eql_v3.int4_ord, RIGHTARG = text[]\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.int4_ord, RIGHTARG = eql_v3.int4_ord\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.int4_ord, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord\n);\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/int4/int4_eq_functions.sql\n--! @brief Functions for eql_v3.int4_eq.\n\n--! @brief Index extractor for eql_v3.int4_eq.\n--! @param a eql_v3.int4_eq\n--! @return eql_v3.hmac_256\nCREATE FUNCTION eql_v3.eq_term(a eql_v3.int4_eq)\nRETURNS eql_v3.hmac_256\nLANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.hmac_256(a::jsonb) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_eq.\n--! @param a eql_v3.int4_eq\n--! @param b eql_v3.int4_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.int4_eq, b eql_v3.int4_eq)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a) = eql_v3.eq_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_eq.\n--! @param a eql_v3.int4_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.int4_eq, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a) = eql_v3.eq_term(b::eql_v3.int4_eq) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_eq.\n--! @param a jsonb\n--! @param b eql_v3.int4_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.int4_eq)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a::eql_v3.int4_eq) = eql_v3.eq_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_eq.\n--! @param a eql_v3.int4_eq\n--! @param b eql_v3.int4_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.int4_eq, b eql_v3.int4_eq)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a) <> eql_v3.eq_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_eq.\n--! @param a eql_v3.int4_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.int4_eq, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a) <> eql_v3.eq_term(b::eql_v3.int4_eq) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_eq.\n--! @param a jsonb\n--! @param b eql_v3.int4_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.int4_eq)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a::eql_v3.int4_eq) <> eql_v3.eq_term(b) $$;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a eql_v3.int4_eq\n--! @param b eql_v3.int4_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.int4_eq, b eql_v3.int4_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a eql_v3.int4_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.int4_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a jsonb\n--! @param b eql_v3.int4_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.int4_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a eql_v3.int4_eq\n--! @param b eql_v3.int4_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.int4_eq, b eql_v3.int4_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a eql_v3.int4_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.int4_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a jsonb\n--! @param b eql_v3.int4_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.int4_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a eql_v3.int4_eq\n--! @param b eql_v3.int4_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.int4_eq, b eql_v3.int4_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a eql_v3.int4_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.int4_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a jsonb\n--! @param b eql_v3.int4_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.int4_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a eql_v3.int4_eq\n--! @param b eql_v3.int4_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.int4_eq, b eql_v3.int4_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a eql_v3.int4_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.int4_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a jsonb\n--! @param b eql_v3.int4_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.int4_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a eql_v3.int4_eq\n--! @param b eql_v3.int4_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.int4_eq, b eql_v3.int4_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a eql_v3.int4_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.int4_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a jsonb\n--! @param b eql_v3.int4_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.int4_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a eql_v3.int4_eq\n--! @param b eql_v3.int4_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.int4_eq, b eql_v3.int4_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a eql_v3.int4_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.int4_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a jsonb\n--! @param b eql_v3.int4_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.int4_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a eql_v3.int4_eq\n--! @param selector text\n--! @return eql_v3.int4_eq\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.int4_eq, selector text)\nRETURNS eql_v3.int4_eq IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a eql_v3.int4_eq\n--! @param selector integer\n--! @return eql_v3.int4_eq\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.int4_eq, selector integer)\nRETURNS eql_v3.int4_eq IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a jsonb\n--! @param selector eql_v3.int4_eq\n--! @return eql_v3.int4_eq\nCREATE FUNCTION eql_v3.\"->\"(a jsonb, selector eql_v3.int4_eq)\nRETURNS eql_v3.int4_eq IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a eql_v3.int4_eq\n--! @param selector text\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.int4_eq, selector text)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a eql_v3.int4_eq\n--! @param selector integer\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.int4_eq, selector integer)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a jsonb\n--! @param selector eql_v3.int4_eq\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a jsonb, selector eql_v3.int4_eq)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a eql_v3.int4_eq\n--! @param b text\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?\"(a eql_v3.int4_eq, b text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a eql_v3.int4_eq\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?|\"(a eql_v3.int4_eq, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a eql_v3.int4_eq\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?&\"(a eql_v3.int4_eq, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a eql_v3.int4_eq\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@?\"(a eql_v3.int4_eq, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a eql_v3.int4_eq\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@@\"(a eql_v3.int4_eq, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a eql_v3.int4_eq\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#>\"(a eql_v3.int4_eq, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a eql_v3.int4_eq\n--! @param b text[]\n--! @return text\nCREATE FUNCTION eql_v3.\"#>>\"(a eql_v3.int4_eq, b text[])\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a eql_v3.int4_eq\n--! @param b text\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int4_eq, b text)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a eql_v3.int4_eq\n--! @param b integer\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int4_eq, b integer)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a eql_v3.int4_eq\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int4_eq, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a eql_v3.int4_eq\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#-\"(a eql_v3.int4_eq, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a eql_v3.int4_eq\n--! @param b eql_v3.int4_eq\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.int4_eq, b eql_v3.int4_eq)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a eql_v3.int4_eq\n--! @param b jsonb\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.int4_eq, b jsonb)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_eq.\n--! @param a jsonb\n--! @param b eql_v3.int4_eq\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a jsonb, b eql_v3.int4_eq)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int4_eq'; END; $$\nLANGUAGE plpgsql;\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file v3/scalars/timestamptz/timestamptz_types.sql\n--! @brief Encrypted-domain types for timestamptz.\n\nDO $$\nBEGIN\n --! @brief Encrypted domain eql_v3.timestamptz.\n IF NOT EXISTS (\n SELECT 1 FROM pg_type\n WHERE typname = 'timestamptz' AND typnamespace = 'eql_v3'::regnamespace\n ) THEN\n CREATE DOMAIN eql_v3.timestamptz AS jsonb\n CHECK (\n jsonb_typeof(VALUE) = 'object'\n AND VALUE ? 'v'\n AND VALUE ? 'i'\n AND VALUE ? 'c'\n AND VALUE->>'v' = '2'\n );\n END IF;\n\n --! @brief Encrypted domain eql_v3.timestamptz_eq.\n IF NOT EXISTS (\n SELECT 1 FROM pg_type\n WHERE typname = 'timestamptz_eq' AND typnamespace = 'eql_v3'::regnamespace\n ) THEN\n CREATE DOMAIN eql_v3.timestamptz_eq AS jsonb\n CHECK (\n jsonb_typeof(VALUE) = 'object'\n AND VALUE ? 'v'\n AND VALUE ? 'i'\n AND VALUE ? 'c'\n AND VALUE ? 'hm'\n AND VALUE->>'v' = '2'\n );\n END IF;\nEND\n$$;\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/timestamptz/timestamptz_eq_functions.sql\n--! @brief Functions for eql_v3.timestamptz_eq.\n\n--! @brief Index extractor for eql_v3.timestamptz_eq.\n--! @param a eql_v3.timestamptz_eq\n--! @return eql_v3.hmac_256\nCREATE FUNCTION eql_v3.eq_term(a eql_v3.timestamptz_eq)\nRETURNS eql_v3.hmac_256\nLANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.hmac_256(a::jsonb) $$;\n\n--! @brief Operator wrapper for eql_v3.timestamptz_eq.\n--! @param a eql_v3.timestamptz_eq\n--! @param b eql_v3.timestamptz_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.timestamptz_eq, b eql_v3.timestamptz_eq)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a) = eql_v3.eq_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.timestamptz_eq.\n--! @param a eql_v3.timestamptz_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.timestamptz_eq, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a) = eql_v3.eq_term(b::eql_v3.timestamptz_eq) $$;\n\n--! @brief Operator wrapper for eql_v3.timestamptz_eq.\n--! @param a jsonb\n--! @param b eql_v3.timestamptz_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.timestamptz_eq)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a::eql_v3.timestamptz_eq) = eql_v3.eq_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.timestamptz_eq.\n--! @param a eql_v3.timestamptz_eq\n--! @param b eql_v3.timestamptz_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.timestamptz_eq, b eql_v3.timestamptz_eq)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a) <> eql_v3.eq_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.timestamptz_eq.\n--! @param a eql_v3.timestamptz_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.timestamptz_eq, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a) <> eql_v3.eq_term(b::eql_v3.timestamptz_eq) $$;\n\n--! @brief Operator wrapper for eql_v3.timestamptz_eq.\n--! @param a jsonb\n--! @param b eql_v3.timestamptz_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.timestamptz_eq)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a::eql_v3.timestamptz_eq) <> eql_v3.eq_term(b) $$;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a eql_v3.timestamptz_eq\n--! @param b eql_v3.timestamptz_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.timestamptz_eq, b eql_v3.timestamptz_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a eql_v3.timestamptz_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.timestamptz_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a jsonb\n--! @param b eql_v3.timestamptz_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.timestamptz_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a eql_v3.timestamptz_eq\n--! @param b eql_v3.timestamptz_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.timestamptz_eq, b eql_v3.timestamptz_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a eql_v3.timestamptz_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.timestamptz_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a jsonb\n--! @param b eql_v3.timestamptz_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.timestamptz_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a eql_v3.timestamptz_eq\n--! @param b eql_v3.timestamptz_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.timestamptz_eq, b eql_v3.timestamptz_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a eql_v3.timestamptz_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.timestamptz_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a jsonb\n--! @param b eql_v3.timestamptz_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.timestamptz_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a eql_v3.timestamptz_eq\n--! @param b eql_v3.timestamptz_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.timestamptz_eq, b eql_v3.timestamptz_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a eql_v3.timestamptz_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.timestamptz_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a jsonb\n--! @param b eql_v3.timestamptz_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.timestamptz_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a eql_v3.timestamptz_eq\n--! @param b eql_v3.timestamptz_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.timestamptz_eq, b eql_v3.timestamptz_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a eql_v3.timestamptz_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.timestamptz_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a jsonb\n--! @param b eql_v3.timestamptz_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.timestamptz_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a eql_v3.timestamptz_eq\n--! @param b eql_v3.timestamptz_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.timestamptz_eq, b eql_v3.timestamptz_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a eql_v3.timestamptz_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.timestamptz_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a jsonb\n--! @param b eql_v3.timestamptz_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.timestamptz_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a eql_v3.timestamptz_eq\n--! @param selector text\n--! @return eql_v3.timestamptz_eq\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.timestamptz_eq, selector text)\nRETURNS eql_v3.timestamptz_eq IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a eql_v3.timestamptz_eq\n--! @param selector integer\n--! @return eql_v3.timestamptz_eq\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.timestamptz_eq, selector integer)\nRETURNS eql_v3.timestamptz_eq IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a jsonb\n--! @param selector eql_v3.timestamptz_eq\n--! @return eql_v3.timestamptz_eq\nCREATE FUNCTION eql_v3.\"->\"(a jsonb, selector eql_v3.timestamptz_eq)\nRETURNS eql_v3.timestamptz_eq IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a eql_v3.timestamptz_eq\n--! @param selector text\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.timestamptz_eq, selector text)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a eql_v3.timestamptz_eq\n--! @param selector integer\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.timestamptz_eq, selector integer)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a jsonb\n--! @param selector eql_v3.timestamptz_eq\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a jsonb, selector eql_v3.timestamptz_eq)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a eql_v3.timestamptz_eq\n--! @param b text\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?\"(a eql_v3.timestamptz_eq, b text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a eql_v3.timestamptz_eq\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?|\"(a eql_v3.timestamptz_eq, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a eql_v3.timestamptz_eq\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?&\"(a eql_v3.timestamptz_eq, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a eql_v3.timestamptz_eq\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@?\"(a eql_v3.timestamptz_eq, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a eql_v3.timestamptz_eq\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@@\"(a eql_v3.timestamptz_eq, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a eql_v3.timestamptz_eq\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#>\"(a eql_v3.timestamptz_eq, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a eql_v3.timestamptz_eq\n--! @param b text[]\n--! @return text\nCREATE FUNCTION eql_v3.\"#>>\"(a eql_v3.timestamptz_eq, b text[])\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a eql_v3.timestamptz_eq\n--! @param b text\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.timestamptz_eq, b text)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a eql_v3.timestamptz_eq\n--! @param b integer\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.timestamptz_eq, b integer)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a eql_v3.timestamptz_eq\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.timestamptz_eq, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a eql_v3.timestamptz_eq\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#-\"(a eql_v3.timestamptz_eq, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a eql_v3.timestamptz_eq\n--! @param b eql_v3.timestamptz_eq\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.timestamptz_eq, b eql_v3.timestamptz_eq)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a eql_v3.timestamptz_eq\n--! @param b jsonb\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.timestamptz_eq, b jsonb)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz_eq.\n--! @param a jsonb\n--! @param b eql_v3.timestamptz_eq\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a jsonb, b eql_v3.timestamptz_eq)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.timestamptz_eq'; END; $$\nLANGUAGE plpgsql;\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file v3/scalars/int2/int2_types.sql\n--! @brief Encrypted-domain types for int2.\n\nDO $$\nBEGIN\n --! @brief Encrypted domain eql_v3.int2.\n IF NOT EXISTS (\n SELECT 1 FROM pg_type\n WHERE typname = 'int2' AND typnamespace = 'eql_v3'::regnamespace\n ) THEN\n CREATE DOMAIN eql_v3.int2 AS jsonb\n CHECK (\n jsonb_typeof(VALUE) = 'object'\n AND VALUE ? 'v'\n AND VALUE ? 'i'\n AND VALUE ? 'c'\n AND VALUE->>'v' = '2'\n );\n END IF;\n\n --! @brief Encrypted domain eql_v3.int2_eq.\n IF NOT EXISTS (\n SELECT 1 FROM pg_type\n WHERE typname = 'int2_eq' AND typnamespace = 'eql_v3'::regnamespace\n ) THEN\n CREATE DOMAIN eql_v3.int2_eq AS jsonb\n CHECK (\n jsonb_typeof(VALUE) = 'object'\n AND VALUE ? 'v'\n AND VALUE ? 'i'\n AND VALUE ? 'c'\n AND VALUE ? 'hm'\n AND VALUE->>'v' = '2'\n );\n END IF;\n\n --! @brief Encrypted domain eql_v3.int2_ord_ore.\n IF NOT EXISTS (\n SELECT 1 FROM pg_type\n WHERE typname = 'int2_ord_ore' AND typnamespace = 'eql_v3'::regnamespace\n ) THEN\n CREATE DOMAIN eql_v3.int2_ord_ore AS jsonb\n CHECK (\n jsonb_typeof(VALUE) = 'object'\n AND VALUE ? 'v'\n AND VALUE ? 'i'\n AND VALUE ? 'c'\n AND VALUE ? 'ob'\n AND VALUE->>'v' = '2'\n );\n END IF;\n\n --! @brief Encrypted domain eql_v3.int2_ord.\n IF NOT EXISTS (\n SELECT 1 FROM pg_type\n WHERE typname = 'int2_ord' AND typnamespace = 'eql_v3'::regnamespace\n ) THEN\n CREATE DOMAIN eql_v3.int2_ord AS jsonb\n CHECK (\n jsonb_typeof(VALUE) = 'object'\n AND VALUE ? 'v'\n AND VALUE ? 'i'\n AND VALUE ? 'c'\n AND VALUE ? 'ob'\n AND VALUE->>'v' = '2'\n );\n END IF;\nEND\n$$;\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/int2/int2_ord_ore_functions.sql\n--! @brief Functions for eql_v3.int2_ord_ore.\n\n--! @brief Index extractor for eql_v3.int2_ord_ore.\n--! @param a eql_v3.int2_ord_ore\n--! @return eql_v3.ore_block_u64_8_256\nCREATE FUNCTION eql_v3.ord_term(a eql_v3.int2_ord_ore)\nRETURNS eql_v3.ore_block_u64_8_256\nLANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ore_block_u64_8_256(a::jsonb) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord_ore.\n--! @param a eql_v3.int2_ord_ore\n--! @param b eql_v3.int2_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.int2_ord_ore, b eql_v3.int2_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord_ore.\n--! @param a eql_v3.int2_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.int2_ord_ore, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b::eql_v3.int2_ord_ore) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.int2_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.int2_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int2_ord_ore) = eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord_ore.\n--! @param a eql_v3.int2_ord_ore\n--! @param b eql_v3.int2_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.int2_ord_ore, b eql_v3.int2_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord_ore.\n--! @param a eql_v3.int2_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.int2_ord_ore, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b::eql_v3.int2_ord_ore) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.int2_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.int2_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int2_ord_ore) <> eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord_ore.\n--! @param a eql_v3.int2_ord_ore\n--! @param b eql_v3.int2_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.int2_ord_ore, b eql_v3.int2_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord_ore.\n--! @param a eql_v3.int2_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.int2_ord_ore, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b::eql_v3.int2_ord_ore) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.int2_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.int2_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int2_ord_ore) < eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord_ore.\n--! @param a eql_v3.int2_ord_ore\n--! @param b eql_v3.int2_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.int2_ord_ore, b eql_v3.int2_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord_ore.\n--! @param a eql_v3.int2_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.int2_ord_ore, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b::eql_v3.int2_ord_ore) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.int2_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.int2_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int2_ord_ore) <= eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord_ore.\n--! @param a eql_v3.int2_ord_ore\n--! @param b eql_v3.int2_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.int2_ord_ore, b eql_v3.int2_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord_ore.\n--! @param a eql_v3.int2_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.int2_ord_ore, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b::eql_v3.int2_ord_ore) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.int2_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.int2_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int2_ord_ore) > eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord_ore.\n--! @param a eql_v3.int2_ord_ore\n--! @param b eql_v3.int2_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.int2_ord_ore, b eql_v3.int2_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord_ore.\n--! @param a eql_v3.int2_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.int2_ord_ore, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b::eql_v3.int2_ord_ore) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.int2_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.int2_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int2_ord_ore) >= eql_v3.ord_term(b) $$;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore.\n--! @param a eql_v3.int2_ord_ore\n--! @param b eql_v3.int2_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.int2_ord_ore, b eql_v3.int2_ord_ore)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int2_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore.\n--! @param a eql_v3.int2_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.int2_ord_ore, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int2_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.int2_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.int2_ord_ore)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int2_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore.\n--! @param a eql_v3.int2_ord_ore\n--! @param b eql_v3.int2_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.int2_ord_ore, b eql_v3.int2_ord_ore)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int2_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore.\n--! @param a eql_v3.int2_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.int2_ord_ore, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int2_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.int2_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.int2_ord_ore)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int2_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore.\n--! @param a eql_v3.int2_ord_ore\n--! @param selector text\n--! @return eql_v3.int2_ord_ore\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.int2_ord_ore, selector text)\nRETURNS eql_v3.int2_ord_ore IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int2_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore.\n--! @param a eql_v3.int2_ord_ore\n--! @param selector integer\n--! @return eql_v3.int2_ord_ore\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.int2_ord_ore, selector integer)\nRETURNS eql_v3.int2_ord_ore IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int2_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore.\n--! @param a jsonb\n--! @param selector eql_v3.int2_ord_ore\n--! @return eql_v3.int2_ord_ore\nCREATE FUNCTION eql_v3.\"->\"(a jsonb, selector eql_v3.int2_ord_ore)\nRETURNS eql_v3.int2_ord_ore IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int2_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore.\n--! @param a eql_v3.int2_ord_ore\n--! @param selector text\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.int2_ord_ore, selector text)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int2_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore.\n--! @param a eql_v3.int2_ord_ore\n--! @param selector integer\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.int2_ord_ore, selector integer)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int2_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore.\n--! @param a jsonb\n--! @param selector eql_v3.int2_ord_ore\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a jsonb, selector eql_v3.int2_ord_ore)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int2_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore.\n--! @param a eql_v3.int2_ord_ore\n--! @param b text\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?\"(a eql_v3.int2_ord_ore, b text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.int2_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore.\n--! @param a eql_v3.int2_ord_ore\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?|\"(a eql_v3.int2_ord_ore, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.int2_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore.\n--! @param a eql_v3.int2_ord_ore\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?&\"(a eql_v3.int2_ord_ore, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.int2_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore.\n--! @param a eql_v3.int2_ord_ore\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@?\"(a eql_v3.int2_ord_ore, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.int2_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore.\n--! @param a eql_v3.int2_ord_ore\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@@\"(a eql_v3.int2_ord_ore, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.int2_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore.\n--! @param a eql_v3.int2_ord_ore\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#>\"(a eql_v3.int2_ord_ore, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.int2_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore.\n--! @param a eql_v3.int2_ord_ore\n--! @param b text[]\n--! @return text\nCREATE FUNCTION eql_v3.\"#>>\"(a eql_v3.int2_ord_ore, b text[])\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.int2_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore.\n--! @param a eql_v3.int2_ord_ore\n--! @param b text\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int2_ord_ore, b text)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int2_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore.\n--! @param a eql_v3.int2_ord_ore\n--! @param b integer\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int2_ord_ore, b integer)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int2_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore.\n--! @param a eql_v3.int2_ord_ore\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int2_ord_ore, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int2_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore.\n--! @param a eql_v3.int2_ord_ore\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#-\"(a eql_v3.int2_ord_ore, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.int2_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore.\n--! @param a eql_v3.int2_ord_ore\n--! @param b eql_v3.int2_ord_ore\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.int2_ord_ore, b eql_v3.int2_ord_ore)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int2_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore.\n--! @param a eql_v3.int2_ord_ore\n--! @param b jsonb\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.int2_ord_ore, b jsonb)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int2_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.int2_ord_ore\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a jsonb, b eql_v3.int2_ord_ore)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int2_ord_ore'; END; $$\nLANGUAGE plpgsql;\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/int2/int2_ord_functions.sql\n--! @brief Functions for eql_v3.int2_ord.\n\n--! @brief Index extractor for eql_v3.int2_ord.\n--! @param a eql_v3.int2_ord\n--! @return eql_v3.ore_block_u64_8_256\nCREATE FUNCTION eql_v3.ord_term(a eql_v3.int2_ord)\nRETURNS eql_v3.ore_block_u64_8_256\nLANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ore_block_u64_8_256(a::jsonb) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord.\n--! @param a eql_v3.int2_ord\n--! @param b eql_v3.int2_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.int2_ord, b eql_v3.int2_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord.\n--! @param a eql_v3.int2_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.int2_ord, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b::eql_v3.int2_ord) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord.\n--! @param a jsonb\n--! @param b eql_v3.int2_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.int2_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int2_ord) = eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord.\n--! @param a eql_v3.int2_ord\n--! @param b eql_v3.int2_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.int2_ord, b eql_v3.int2_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord.\n--! @param a eql_v3.int2_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.int2_ord, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b::eql_v3.int2_ord) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord.\n--! @param a jsonb\n--! @param b eql_v3.int2_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.int2_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int2_ord) <> eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord.\n--! @param a eql_v3.int2_ord\n--! @param b eql_v3.int2_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.int2_ord, b eql_v3.int2_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord.\n--! @param a eql_v3.int2_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.int2_ord, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b::eql_v3.int2_ord) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord.\n--! @param a jsonb\n--! @param b eql_v3.int2_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.int2_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int2_ord) < eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord.\n--! @param a eql_v3.int2_ord\n--! @param b eql_v3.int2_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.int2_ord, b eql_v3.int2_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord.\n--! @param a eql_v3.int2_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.int2_ord, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b::eql_v3.int2_ord) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord.\n--! @param a jsonb\n--! @param b eql_v3.int2_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.int2_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int2_ord) <= eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord.\n--! @param a eql_v3.int2_ord\n--! @param b eql_v3.int2_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.int2_ord, b eql_v3.int2_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord.\n--! @param a eql_v3.int2_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.int2_ord, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b::eql_v3.int2_ord) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord.\n--! @param a jsonb\n--! @param b eql_v3.int2_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.int2_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int2_ord) > eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord.\n--! @param a eql_v3.int2_ord\n--! @param b eql_v3.int2_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.int2_ord, b eql_v3.int2_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord.\n--! @param a eql_v3.int2_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.int2_ord, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b::eql_v3.int2_ord) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_ord.\n--! @param a jsonb\n--! @param b eql_v3.int2_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.int2_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int2_ord) >= eql_v3.ord_term(b) $$;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord.\n--! @param a eql_v3.int2_ord\n--! @param b eql_v3.int2_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.int2_ord, b eql_v3.int2_ord)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int2_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord.\n--! @param a eql_v3.int2_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.int2_ord, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int2_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord.\n--! @param a jsonb\n--! @param b eql_v3.int2_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.int2_ord)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int2_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord.\n--! @param a eql_v3.int2_ord\n--! @param b eql_v3.int2_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.int2_ord, b eql_v3.int2_ord)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int2_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord.\n--! @param a eql_v3.int2_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.int2_ord, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int2_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord.\n--! @param a jsonb\n--! @param b eql_v3.int2_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.int2_ord)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int2_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord.\n--! @param a eql_v3.int2_ord\n--! @param selector text\n--! @return eql_v3.int2_ord\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.int2_ord, selector text)\nRETURNS eql_v3.int2_ord IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int2_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord.\n--! @param a eql_v3.int2_ord\n--! @param selector integer\n--! @return eql_v3.int2_ord\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.int2_ord, selector integer)\nRETURNS eql_v3.int2_ord IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int2_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord.\n--! @param a jsonb\n--! @param selector eql_v3.int2_ord\n--! @return eql_v3.int2_ord\nCREATE FUNCTION eql_v3.\"->\"(a jsonb, selector eql_v3.int2_ord)\nRETURNS eql_v3.int2_ord IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int2_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord.\n--! @param a eql_v3.int2_ord\n--! @param selector text\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.int2_ord, selector text)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int2_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord.\n--! @param a eql_v3.int2_ord\n--! @param selector integer\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.int2_ord, selector integer)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int2_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord.\n--! @param a jsonb\n--! @param selector eql_v3.int2_ord\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a jsonb, selector eql_v3.int2_ord)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int2_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord.\n--! @param a eql_v3.int2_ord\n--! @param b text\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?\"(a eql_v3.int2_ord, b text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.int2_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord.\n--! @param a eql_v3.int2_ord\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?|\"(a eql_v3.int2_ord, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.int2_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord.\n--! @param a eql_v3.int2_ord\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?&\"(a eql_v3.int2_ord, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.int2_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord.\n--! @param a eql_v3.int2_ord\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@?\"(a eql_v3.int2_ord, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.int2_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord.\n--! @param a eql_v3.int2_ord\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@@\"(a eql_v3.int2_ord, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.int2_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord.\n--! @param a eql_v3.int2_ord\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#>\"(a eql_v3.int2_ord, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.int2_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord.\n--! @param a eql_v3.int2_ord\n--! @param b text[]\n--! @return text\nCREATE FUNCTION eql_v3.\"#>>\"(a eql_v3.int2_ord, b text[])\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.int2_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord.\n--! @param a eql_v3.int2_ord\n--! @param b text\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int2_ord, b text)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int2_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord.\n--! @param a eql_v3.int2_ord\n--! @param b integer\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int2_ord, b integer)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int2_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord.\n--! @param a eql_v3.int2_ord\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int2_ord, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int2_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord.\n--! @param a eql_v3.int2_ord\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#-\"(a eql_v3.int2_ord, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.int2_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord.\n--! @param a eql_v3.int2_ord\n--! @param b eql_v3.int2_ord\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.int2_ord, b eql_v3.int2_ord)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int2_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord.\n--! @param a eql_v3.int2_ord\n--! @param b jsonb\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.int2_ord, b jsonb)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int2_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_ord.\n--! @param a jsonb\n--! @param b eql_v3.int2_ord\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a jsonb, b eql_v3.int2_ord)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int2_ord'; END; $$\nLANGUAGE plpgsql;\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/int2/int2_ord_operators.sql\n--! @brief Operators for eql_v3.int2_ord.\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.int2_ord, RIGHTARG = eql_v3.int2_ord,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.int2_ord, RIGHTARG = jsonb,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.int2_ord, RIGHTARG = eql_v3.int2_ord,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.int2_ord, RIGHTARG = jsonb,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.int2_ord, RIGHTARG = eql_v3.int2_ord,\n COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.int2_ord, RIGHTARG = jsonb,\n COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord,\n COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.int2_ord, RIGHTARG = eql_v3.int2_ord,\n COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.int2_ord, RIGHTARG = jsonb,\n COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord,\n COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.int2_ord, RIGHTARG = eql_v3.int2_ord,\n COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.int2_ord, RIGHTARG = jsonb,\n COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord,\n COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.int2_ord, RIGHTARG = eql_v3.int2_ord,\n COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.int2_ord, RIGHTARG = jsonb,\n COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord,\n COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.int2_ord, RIGHTARG = eql_v3.int2_ord\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.int2_ord, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.int2_ord, RIGHTARG = eql_v3.int2_ord\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.int2_ord, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.int2_ord, RIGHTARG = text\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.int2_ord, RIGHTARG = integer\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.int2_ord, RIGHTARG = text\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.int2_ord, RIGHTARG = integer\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord\n);\n\nCREATE OPERATOR ? (\n FUNCTION = eql_v3.\"?\",\n LEFTARG = eql_v3.int2_ord, RIGHTARG = text\n);\n\nCREATE OPERATOR ?| (\n FUNCTION = eql_v3.\"?|\",\n LEFTARG = eql_v3.int2_ord, RIGHTARG = text[]\n);\n\nCREATE OPERATOR ?& (\n FUNCTION = eql_v3.\"?&\",\n LEFTARG = eql_v3.int2_ord, RIGHTARG = text[]\n);\n\nCREATE OPERATOR @? (\n FUNCTION = eql_v3.\"@?\",\n LEFTARG = eql_v3.int2_ord, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR @@ (\n FUNCTION = eql_v3.\"@@\",\n LEFTARG = eql_v3.int2_ord, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR #> (\n FUNCTION = eql_v3.\"#>\",\n LEFTARG = eql_v3.int2_ord, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #>> (\n FUNCTION = eql_v3.\"#>>\",\n LEFTARG = eql_v3.int2_ord, RIGHTARG = text[]\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int2_ord, RIGHTARG = text\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int2_ord, RIGHTARG = integer\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int2_ord, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #- (\n FUNCTION = eql_v3.\"#-\",\n LEFTARG = eql_v3.int2_ord, RIGHTARG = text[]\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.int2_ord, RIGHTARG = eql_v3.int2_ord\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.int2_ord, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord\n);\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/int2/int2_functions.sql\n--! @brief Functions for eql_v3.int2.\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a eql_v3.int2\n--! @param b eql_v3.int2\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.int2, b eql_v3.int2)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a eql_v3.int2\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.int2, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a jsonb\n--! @param b eql_v3.int2\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.int2)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a eql_v3.int2\n--! @param b eql_v3.int2\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.int2, b eql_v3.int2)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a eql_v3.int2\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.int2, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a jsonb\n--! @param b eql_v3.int2\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.int2)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a eql_v3.int2\n--! @param b eql_v3.int2\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.int2, b eql_v3.int2)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a eql_v3.int2\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.int2, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a jsonb\n--! @param b eql_v3.int2\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.int2)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a eql_v3.int2\n--! @param b eql_v3.int2\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.int2, b eql_v3.int2)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a eql_v3.int2\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.int2, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a jsonb\n--! @param b eql_v3.int2\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.int2)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a eql_v3.int2\n--! @param b eql_v3.int2\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.int2, b eql_v3.int2)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a eql_v3.int2\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.int2, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a jsonb\n--! @param b eql_v3.int2\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.int2)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a eql_v3.int2\n--! @param b eql_v3.int2\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.int2, b eql_v3.int2)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a eql_v3.int2\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.int2, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a jsonb\n--! @param b eql_v3.int2\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.int2)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a eql_v3.int2\n--! @param b eql_v3.int2\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.int2, b eql_v3.int2)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a eql_v3.int2\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.int2, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a jsonb\n--! @param b eql_v3.int2\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.int2)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a eql_v3.int2\n--! @param b eql_v3.int2\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.int2, b eql_v3.int2)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a eql_v3.int2\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.int2, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a jsonb\n--! @param b eql_v3.int2\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.int2)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a eql_v3.int2\n--! @param selector text\n--! @return eql_v3.int2\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.int2, selector text)\nRETURNS eql_v3.int2 IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a eql_v3.int2\n--! @param selector integer\n--! @return eql_v3.int2\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.int2, selector integer)\nRETURNS eql_v3.int2 IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a jsonb\n--! @param selector eql_v3.int2\n--! @return eql_v3.int2\nCREATE FUNCTION eql_v3.\"->\"(a jsonb, selector eql_v3.int2)\nRETURNS eql_v3.int2 IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a eql_v3.int2\n--! @param selector text\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.int2, selector text)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a eql_v3.int2\n--! @param selector integer\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.int2, selector integer)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a jsonb\n--! @param selector eql_v3.int2\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a jsonb, selector eql_v3.int2)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a eql_v3.int2\n--! @param b text\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?\"(a eql_v3.int2, b text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a eql_v3.int2\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?|\"(a eql_v3.int2, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a eql_v3.int2\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?&\"(a eql_v3.int2, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a eql_v3.int2\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@?\"(a eql_v3.int2, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a eql_v3.int2\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@@\"(a eql_v3.int2, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a eql_v3.int2\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#>\"(a eql_v3.int2, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a eql_v3.int2\n--! @param b text[]\n--! @return text\nCREATE FUNCTION eql_v3.\"#>>\"(a eql_v3.int2, b text[])\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a eql_v3.int2\n--! @param b text\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int2, b text)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a eql_v3.int2\n--! @param b integer\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int2, b integer)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a eql_v3.int2\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int2, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a eql_v3.int2\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#-\"(a eql_v3.int2, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a eql_v3.int2\n--! @param b eql_v3.int2\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.int2, b eql_v3.int2)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a eql_v3.int2\n--! @param b jsonb\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.int2, b jsonb)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2.\n--! @param a jsonb\n--! @param b eql_v3.int2\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a jsonb, b eql_v3.int2)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int2'; END; $$\nLANGUAGE plpgsql;\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/int2/int2_ord_ore_operators.sql\n--! @brief Operators for eql_v3.int2_ord_ore.\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = eql_v3.int2_ord_ore,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = jsonb,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord_ore,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = eql_v3.int2_ord_ore,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = jsonb,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord_ore,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = eql_v3.int2_ord_ore,\n COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = jsonb,\n COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord_ore,\n COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = eql_v3.int2_ord_ore,\n COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = jsonb,\n COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord_ore,\n COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = eql_v3.int2_ord_ore,\n COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = jsonb,\n COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord_ore,\n COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = eql_v3.int2_ord_ore,\n COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = jsonb,\n COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord_ore,\n COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = eql_v3.int2_ord_ore\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord_ore\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = eql_v3.int2_ord_ore\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord_ore\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = text\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = integer\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord_ore\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = text\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = integer\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord_ore\n);\n\nCREATE OPERATOR ? (\n FUNCTION = eql_v3.\"?\",\n LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = text\n);\n\nCREATE OPERATOR ?| (\n FUNCTION = eql_v3.\"?|\",\n LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = text[]\n);\n\nCREATE OPERATOR ?& (\n FUNCTION = eql_v3.\"?&\",\n LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = text[]\n);\n\nCREATE OPERATOR @? (\n FUNCTION = eql_v3.\"@?\",\n LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR @@ (\n FUNCTION = eql_v3.\"@@\",\n LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR #> (\n FUNCTION = eql_v3.\"#>\",\n LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #>> (\n FUNCTION = eql_v3.\"#>>\",\n LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = text[]\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = text\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = integer\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #- (\n FUNCTION = eql_v3.\"#-\",\n LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = text[]\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = eql_v3.int2_ord_ore\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.int2_ord_ore, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2_ord_ore\n);\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file v3/scalars/date/date_types.sql\n--! @brief Encrypted-domain types for date.\n\nDO $$\nBEGIN\n --! @brief Encrypted domain eql_v3.date.\n IF NOT EXISTS (\n SELECT 1 FROM pg_type\n WHERE typname = 'date' AND typnamespace = 'eql_v3'::regnamespace\n ) THEN\n CREATE DOMAIN eql_v3.date AS jsonb\n CHECK (\n jsonb_typeof(VALUE) = 'object'\n AND VALUE ? 'v'\n AND VALUE ? 'i'\n AND VALUE ? 'c'\n AND VALUE->>'v' = '2'\n );\n END IF;\n\n --! @brief Encrypted domain eql_v3.date_eq.\n IF NOT EXISTS (\n SELECT 1 FROM pg_type\n WHERE typname = 'date_eq' AND typnamespace = 'eql_v3'::regnamespace\n ) THEN\n CREATE DOMAIN eql_v3.date_eq AS jsonb\n CHECK (\n jsonb_typeof(VALUE) = 'object'\n AND VALUE ? 'v'\n AND VALUE ? 'i'\n AND VALUE ? 'c'\n AND VALUE ? 'hm'\n AND VALUE->>'v' = '2'\n );\n END IF;\n\n --! @brief Encrypted domain eql_v3.date_ord_ore.\n IF NOT EXISTS (\n SELECT 1 FROM pg_type\n WHERE typname = 'date_ord_ore' AND typnamespace = 'eql_v3'::regnamespace\n ) THEN\n CREATE DOMAIN eql_v3.date_ord_ore AS jsonb\n CHECK (\n jsonb_typeof(VALUE) = 'object'\n AND VALUE ? 'v'\n AND VALUE ? 'i'\n AND VALUE ? 'c'\n AND VALUE ? 'ob'\n AND VALUE->>'v' = '2'\n );\n END IF;\n\n --! @brief Encrypted domain eql_v3.date_ord.\n IF NOT EXISTS (\n SELECT 1 FROM pg_type\n WHERE typname = 'date_ord' AND typnamespace = 'eql_v3'::regnamespace\n ) THEN\n CREATE DOMAIN eql_v3.date_ord AS jsonb\n CHECK (\n jsonb_typeof(VALUE) = 'object'\n AND VALUE ? 'v'\n AND VALUE ? 'i'\n AND VALUE ? 'c'\n AND VALUE ? 'ob'\n AND VALUE->>'v' = '2'\n );\n END IF;\nEND\n$$;\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/date/date_ord_ore_functions.sql\n--! @brief Functions for eql_v3.date_ord_ore.\n\n--! @brief Index extractor for eql_v3.date_ord_ore.\n--! @param a eql_v3.date_ord_ore\n--! @return eql_v3.ore_block_u64_8_256\nCREATE FUNCTION eql_v3.ord_term(a eql_v3.date_ord_ore)\nRETURNS eql_v3.ore_block_u64_8_256\nLANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ore_block_u64_8_256(a::jsonb) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord_ore.\n--! @param a eql_v3.date_ord_ore\n--! @param b eql_v3.date_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.date_ord_ore, b eql_v3.date_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord_ore.\n--! @param a eql_v3.date_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.date_ord_ore, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b::eql_v3.date_ord_ore) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.date_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.date_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.date_ord_ore) = eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord_ore.\n--! @param a eql_v3.date_ord_ore\n--! @param b eql_v3.date_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.date_ord_ore, b eql_v3.date_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord_ore.\n--! @param a eql_v3.date_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.date_ord_ore, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b::eql_v3.date_ord_ore) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.date_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.date_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.date_ord_ore) <> eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord_ore.\n--! @param a eql_v3.date_ord_ore\n--! @param b eql_v3.date_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.date_ord_ore, b eql_v3.date_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord_ore.\n--! @param a eql_v3.date_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.date_ord_ore, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b::eql_v3.date_ord_ore) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.date_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.date_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.date_ord_ore) < eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord_ore.\n--! @param a eql_v3.date_ord_ore\n--! @param b eql_v3.date_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.date_ord_ore, b eql_v3.date_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord_ore.\n--! @param a eql_v3.date_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.date_ord_ore, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b::eql_v3.date_ord_ore) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.date_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.date_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.date_ord_ore) <= eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord_ore.\n--! @param a eql_v3.date_ord_ore\n--! @param b eql_v3.date_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.date_ord_ore, b eql_v3.date_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord_ore.\n--! @param a eql_v3.date_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.date_ord_ore, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b::eql_v3.date_ord_ore) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.date_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.date_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.date_ord_ore) > eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord_ore.\n--! @param a eql_v3.date_ord_ore\n--! @param b eql_v3.date_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.date_ord_ore, b eql_v3.date_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord_ore.\n--! @param a eql_v3.date_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.date_ord_ore, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b::eql_v3.date_ord_ore) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.date_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.date_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.date_ord_ore) >= eql_v3.ord_term(b) $$;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord_ore.\n--! @param a eql_v3.date_ord_ore\n--! @param b eql_v3.date_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.date_ord_ore, b eql_v3.date_ord_ore)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.date_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord_ore.\n--! @param a eql_v3.date_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.date_ord_ore, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.date_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.date_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.date_ord_ore)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.date_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord_ore.\n--! @param a eql_v3.date_ord_ore\n--! @param b eql_v3.date_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.date_ord_ore, b eql_v3.date_ord_ore)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.date_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord_ore.\n--! @param a eql_v3.date_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.date_ord_ore, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.date_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.date_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.date_ord_ore)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.date_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord_ore.\n--! @param a eql_v3.date_ord_ore\n--! @param selector text\n--! @return eql_v3.date_ord_ore\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.date_ord_ore, selector text)\nRETURNS eql_v3.date_ord_ore IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.date_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord_ore.\n--! @param a eql_v3.date_ord_ore\n--! @param selector integer\n--! @return eql_v3.date_ord_ore\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.date_ord_ore, selector integer)\nRETURNS eql_v3.date_ord_ore IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.date_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord_ore.\n--! @param a jsonb\n--! @param selector eql_v3.date_ord_ore\n--! @return eql_v3.date_ord_ore\nCREATE FUNCTION eql_v3.\"->\"(a jsonb, selector eql_v3.date_ord_ore)\nRETURNS eql_v3.date_ord_ore IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.date_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord_ore.\n--! @param a eql_v3.date_ord_ore\n--! @param selector text\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.date_ord_ore, selector text)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.date_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord_ore.\n--! @param a eql_v3.date_ord_ore\n--! @param selector integer\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.date_ord_ore, selector integer)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.date_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord_ore.\n--! @param a jsonb\n--! @param selector eql_v3.date_ord_ore\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a jsonb, selector eql_v3.date_ord_ore)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.date_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord_ore.\n--! @param a eql_v3.date_ord_ore\n--! @param b text\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?\"(a eql_v3.date_ord_ore, b text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.date_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord_ore.\n--! @param a eql_v3.date_ord_ore\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?|\"(a eql_v3.date_ord_ore, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.date_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord_ore.\n--! @param a eql_v3.date_ord_ore\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?&\"(a eql_v3.date_ord_ore, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.date_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord_ore.\n--! @param a eql_v3.date_ord_ore\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@?\"(a eql_v3.date_ord_ore, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.date_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord_ore.\n--! @param a eql_v3.date_ord_ore\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@@\"(a eql_v3.date_ord_ore, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.date_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord_ore.\n--! @param a eql_v3.date_ord_ore\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#>\"(a eql_v3.date_ord_ore, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.date_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord_ore.\n--! @param a eql_v3.date_ord_ore\n--! @param b text[]\n--! @return text\nCREATE FUNCTION eql_v3.\"#>>\"(a eql_v3.date_ord_ore, b text[])\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.date_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord_ore.\n--! @param a eql_v3.date_ord_ore\n--! @param b text\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.date_ord_ore, b text)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.date_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord_ore.\n--! @param a eql_v3.date_ord_ore\n--! @param b integer\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.date_ord_ore, b integer)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.date_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord_ore.\n--! @param a eql_v3.date_ord_ore\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.date_ord_ore, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.date_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord_ore.\n--! @param a eql_v3.date_ord_ore\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#-\"(a eql_v3.date_ord_ore, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.date_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord_ore.\n--! @param a eql_v3.date_ord_ore\n--! @param b eql_v3.date_ord_ore\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.date_ord_ore, b eql_v3.date_ord_ore)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.date_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord_ore.\n--! @param a eql_v3.date_ord_ore\n--! @param b jsonb\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.date_ord_ore, b jsonb)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.date_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.date_ord_ore\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a jsonb, b eql_v3.date_ord_ore)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.date_ord_ore'; END; $$\nLANGUAGE plpgsql;\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/date/date_eq_functions.sql\n--! @brief Functions for eql_v3.date_eq.\n\n--! @brief Index extractor for eql_v3.date_eq.\n--! @param a eql_v3.date_eq\n--! @return eql_v3.hmac_256\nCREATE FUNCTION eql_v3.eq_term(a eql_v3.date_eq)\nRETURNS eql_v3.hmac_256\nLANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.hmac_256(a::jsonb) $$;\n\n--! @brief Operator wrapper for eql_v3.date_eq.\n--! @param a eql_v3.date_eq\n--! @param b eql_v3.date_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.date_eq, b eql_v3.date_eq)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a) = eql_v3.eq_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.date_eq.\n--! @param a eql_v3.date_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.date_eq, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a) = eql_v3.eq_term(b::eql_v3.date_eq) $$;\n\n--! @brief Operator wrapper for eql_v3.date_eq.\n--! @param a jsonb\n--! @param b eql_v3.date_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.date_eq)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a::eql_v3.date_eq) = eql_v3.eq_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.date_eq.\n--! @param a eql_v3.date_eq\n--! @param b eql_v3.date_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.date_eq, b eql_v3.date_eq)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a) <> eql_v3.eq_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.date_eq.\n--! @param a eql_v3.date_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.date_eq, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a) <> eql_v3.eq_term(b::eql_v3.date_eq) $$;\n\n--! @brief Operator wrapper for eql_v3.date_eq.\n--! @param a jsonb\n--! @param b eql_v3.date_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.date_eq)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a::eql_v3.date_eq) <> eql_v3.eq_term(b) $$;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a eql_v3.date_eq\n--! @param b eql_v3.date_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.date_eq, b eql_v3.date_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a eql_v3.date_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.date_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a jsonb\n--! @param b eql_v3.date_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.date_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a eql_v3.date_eq\n--! @param b eql_v3.date_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.date_eq, b eql_v3.date_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a eql_v3.date_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.date_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a jsonb\n--! @param b eql_v3.date_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.date_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a eql_v3.date_eq\n--! @param b eql_v3.date_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.date_eq, b eql_v3.date_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a eql_v3.date_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.date_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a jsonb\n--! @param b eql_v3.date_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.date_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a eql_v3.date_eq\n--! @param b eql_v3.date_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.date_eq, b eql_v3.date_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a eql_v3.date_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.date_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a jsonb\n--! @param b eql_v3.date_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.date_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a eql_v3.date_eq\n--! @param b eql_v3.date_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.date_eq, b eql_v3.date_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a eql_v3.date_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.date_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a jsonb\n--! @param b eql_v3.date_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.date_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a eql_v3.date_eq\n--! @param b eql_v3.date_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.date_eq, b eql_v3.date_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a eql_v3.date_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.date_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a jsonb\n--! @param b eql_v3.date_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.date_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a eql_v3.date_eq\n--! @param selector text\n--! @return eql_v3.date_eq\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.date_eq, selector text)\nRETURNS eql_v3.date_eq IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a eql_v3.date_eq\n--! @param selector integer\n--! @return eql_v3.date_eq\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.date_eq, selector integer)\nRETURNS eql_v3.date_eq IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a jsonb\n--! @param selector eql_v3.date_eq\n--! @return eql_v3.date_eq\nCREATE FUNCTION eql_v3.\"->\"(a jsonb, selector eql_v3.date_eq)\nRETURNS eql_v3.date_eq IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a eql_v3.date_eq\n--! @param selector text\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.date_eq, selector text)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a eql_v3.date_eq\n--! @param selector integer\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.date_eq, selector integer)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a jsonb\n--! @param selector eql_v3.date_eq\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a jsonb, selector eql_v3.date_eq)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a eql_v3.date_eq\n--! @param b text\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?\"(a eql_v3.date_eq, b text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a eql_v3.date_eq\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?|\"(a eql_v3.date_eq, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a eql_v3.date_eq\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?&\"(a eql_v3.date_eq, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a eql_v3.date_eq\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@?\"(a eql_v3.date_eq, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a eql_v3.date_eq\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@@\"(a eql_v3.date_eq, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a eql_v3.date_eq\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#>\"(a eql_v3.date_eq, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a eql_v3.date_eq\n--! @param b text[]\n--! @return text\nCREATE FUNCTION eql_v3.\"#>>\"(a eql_v3.date_eq, b text[])\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a eql_v3.date_eq\n--! @param b text\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.date_eq, b text)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a eql_v3.date_eq\n--! @param b integer\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.date_eq, b integer)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a eql_v3.date_eq\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.date_eq, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a eql_v3.date_eq\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#-\"(a eql_v3.date_eq, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a eql_v3.date_eq\n--! @param b eql_v3.date_eq\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.date_eq, b eql_v3.date_eq)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a eql_v3.date_eq\n--! @param b jsonb\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.date_eq, b jsonb)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_eq.\n--! @param a jsonb\n--! @param b eql_v3.date_eq\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a jsonb, b eql_v3.date_eq)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.date_eq'; END; $$\nLANGUAGE plpgsql;\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/date/date_functions.sql\n--! @brief Functions for eql_v3.date.\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a eql_v3.date\n--! @param b eql_v3.date\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.date, b eql_v3.date)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a eql_v3.date\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.date, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a jsonb\n--! @param b eql_v3.date\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.date)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a eql_v3.date\n--! @param b eql_v3.date\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.date, b eql_v3.date)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a eql_v3.date\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.date, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a jsonb\n--! @param b eql_v3.date\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.date)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a eql_v3.date\n--! @param b eql_v3.date\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.date, b eql_v3.date)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a eql_v3.date\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.date, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a jsonb\n--! @param b eql_v3.date\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.date)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a eql_v3.date\n--! @param b eql_v3.date\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.date, b eql_v3.date)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a eql_v3.date\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.date, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a jsonb\n--! @param b eql_v3.date\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.date)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a eql_v3.date\n--! @param b eql_v3.date\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.date, b eql_v3.date)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a eql_v3.date\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.date, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a jsonb\n--! @param b eql_v3.date\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.date)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a eql_v3.date\n--! @param b eql_v3.date\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.date, b eql_v3.date)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a eql_v3.date\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.date, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a jsonb\n--! @param b eql_v3.date\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.date)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a eql_v3.date\n--! @param b eql_v3.date\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.date, b eql_v3.date)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a eql_v3.date\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.date, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a jsonb\n--! @param b eql_v3.date\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.date)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a eql_v3.date\n--! @param b eql_v3.date\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.date, b eql_v3.date)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a eql_v3.date\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.date, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a jsonb\n--! @param b eql_v3.date\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.date)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a eql_v3.date\n--! @param selector text\n--! @return eql_v3.date\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.date, selector text)\nRETURNS eql_v3.date IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a eql_v3.date\n--! @param selector integer\n--! @return eql_v3.date\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.date, selector integer)\nRETURNS eql_v3.date IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a jsonb\n--! @param selector eql_v3.date\n--! @return eql_v3.date\nCREATE FUNCTION eql_v3.\"->\"(a jsonb, selector eql_v3.date)\nRETURNS eql_v3.date IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a eql_v3.date\n--! @param selector text\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.date, selector text)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a eql_v3.date\n--! @param selector integer\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.date, selector integer)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a jsonb\n--! @param selector eql_v3.date\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a jsonb, selector eql_v3.date)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a eql_v3.date\n--! @param b text\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?\"(a eql_v3.date, b text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a eql_v3.date\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?|\"(a eql_v3.date, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a eql_v3.date\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?&\"(a eql_v3.date, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a eql_v3.date\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@?\"(a eql_v3.date, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a eql_v3.date\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@@\"(a eql_v3.date, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a eql_v3.date\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#>\"(a eql_v3.date, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a eql_v3.date\n--! @param b text[]\n--! @return text\nCREATE FUNCTION eql_v3.\"#>>\"(a eql_v3.date, b text[])\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a eql_v3.date\n--! @param b text\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.date, b text)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a eql_v3.date\n--! @param b integer\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.date, b integer)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a eql_v3.date\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.date, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a eql_v3.date\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#-\"(a eql_v3.date, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a eql_v3.date\n--! @param b eql_v3.date\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.date, b eql_v3.date)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a eql_v3.date\n--! @param b jsonb\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.date, b jsonb)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date.\n--! @param a jsonb\n--! @param b eql_v3.date\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a jsonb, b eql_v3.date)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.date'; END; $$\nLANGUAGE plpgsql;\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/date/date_ord_ore_operators.sql\n--! @brief Operators for eql_v3.date_ord_ore.\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.date_ord_ore, RIGHTARG = eql_v3.date_ord_ore,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.date_ord_ore, RIGHTARG = jsonb,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord_ore,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.date_ord_ore, RIGHTARG = eql_v3.date_ord_ore,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.date_ord_ore, RIGHTARG = jsonb,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord_ore,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.date_ord_ore, RIGHTARG = eql_v3.date_ord_ore,\n COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.date_ord_ore, RIGHTARG = jsonb,\n COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord_ore,\n COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.date_ord_ore, RIGHTARG = eql_v3.date_ord_ore,\n COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.date_ord_ore, RIGHTARG = jsonb,\n COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord_ore,\n COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.date_ord_ore, RIGHTARG = eql_v3.date_ord_ore,\n COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.date_ord_ore, RIGHTARG = jsonb,\n COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord_ore,\n COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.date_ord_ore, RIGHTARG = eql_v3.date_ord_ore,\n COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.date_ord_ore, RIGHTARG = jsonb,\n COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord_ore,\n COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.date_ord_ore, RIGHTARG = eql_v3.date_ord_ore\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.date_ord_ore, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord_ore\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.date_ord_ore, RIGHTARG = eql_v3.date_ord_ore\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.date_ord_ore, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord_ore\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.date_ord_ore, RIGHTARG = text\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.date_ord_ore, RIGHTARG = integer\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord_ore\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.date_ord_ore, RIGHTARG = text\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.date_ord_ore, RIGHTARG = integer\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord_ore\n);\n\nCREATE OPERATOR ? (\n FUNCTION = eql_v3.\"?\",\n LEFTARG = eql_v3.date_ord_ore, RIGHTARG = text\n);\n\nCREATE OPERATOR ?| (\n FUNCTION = eql_v3.\"?|\",\n LEFTARG = eql_v3.date_ord_ore, RIGHTARG = text[]\n);\n\nCREATE OPERATOR ?& (\n FUNCTION = eql_v3.\"?&\",\n LEFTARG = eql_v3.date_ord_ore, RIGHTARG = text[]\n);\n\nCREATE OPERATOR @? (\n FUNCTION = eql_v3.\"@?\",\n LEFTARG = eql_v3.date_ord_ore, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR @@ (\n FUNCTION = eql_v3.\"@@\",\n LEFTARG = eql_v3.date_ord_ore, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR #> (\n FUNCTION = eql_v3.\"#>\",\n LEFTARG = eql_v3.date_ord_ore, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #>> (\n FUNCTION = eql_v3.\"#>>\",\n LEFTARG = eql_v3.date_ord_ore, RIGHTARG = text[]\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.date_ord_ore, RIGHTARG = text\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.date_ord_ore, RIGHTARG = integer\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.date_ord_ore, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #- (\n FUNCTION = eql_v3.\"#-\",\n LEFTARG = eql_v3.date_ord_ore, RIGHTARG = text[]\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.date_ord_ore, RIGHTARG = eql_v3.date_ord_ore\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.date_ord_ore, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord_ore\n);\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file v3/scalars/int8/int8_types.sql\n--! @brief Encrypted-domain types for int8.\n\nDO $$\nBEGIN\n --! @brief Encrypted domain eql_v3.int8.\n IF NOT EXISTS (\n SELECT 1 FROM pg_type\n WHERE typname = 'int8' AND typnamespace = 'eql_v3'::regnamespace\n ) THEN\n CREATE DOMAIN eql_v3.int8 AS jsonb\n CHECK (\n jsonb_typeof(VALUE) = 'object'\n AND VALUE ? 'v'\n AND VALUE ? 'i'\n AND VALUE ? 'c'\n AND VALUE->>'v' = '2'\n );\n END IF;\n\n --! @brief Encrypted domain eql_v3.int8_eq.\n IF NOT EXISTS (\n SELECT 1 FROM pg_type\n WHERE typname = 'int8_eq' AND typnamespace = 'eql_v3'::regnamespace\n ) THEN\n CREATE DOMAIN eql_v3.int8_eq AS jsonb\n CHECK (\n jsonb_typeof(VALUE) = 'object'\n AND VALUE ? 'v'\n AND VALUE ? 'i'\n AND VALUE ? 'c'\n AND VALUE ? 'hm'\n AND VALUE->>'v' = '2'\n );\n END IF;\n\n --! @brief Encrypted domain eql_v3.int8_ord_ore.\n IF NOT EXISTS (\n SELECT 1 FROM pg_type\n WHERE typname = 'int8_ord_ore' AND typnamespace = 'eql_v3'::regnamespace\n ) THEN\n CREATE DOMAIN eql_v3.int8_ord_ore AS jsonb\n CHECK (\n jsonb_typeof(VALUE) = 'object'\n AND VALUE ? 'v'\n AND VALUE ? 'i'\n AND VALUE ? 'c'\n AND VALUE ? 'ob'\n AND VALUE->>'v' = '2'\n );\n END IF;\n\n --! @brief Encrypted domain eql_v3.int8_ord.\n IF NOT EXISTS (\n SELECT 1 FROM pg_type\n WHERE typname = 'int8_ord' AND typnamespace = 'eql_v3'::regnamespace\n ) THEN\n CREATE DOMAIN eql_v3.int8_ord AS jsonb\n CHECK (\n jsonb_typeof(VALUE) = 'object'\n AND VALUE ? 'v'\n AND VALUE ? 'i'\n AND VALUE ? 'c'\n AND VALUE ? 'ob'\n AND VALUE->>'v' = '2'\n );\n END IF;\nEND\n$$;\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/int8/int8_functions.sql\n--! @brief Functions for eql_v3.int8.\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a eql_v3.int8\n--! @param b eql_v3.int8\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.int8, b eql_v3.int8)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a eql_v3.int8\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.int8, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a jsonb\n--! @param b eql_v3.int8\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.int8)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a eql_v3.int8\n--! @param b eql_v3.int8\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.int8, b eql_v3.int8)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a eql_v3.int8\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.int8, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a jsonb\n--! @param b eql_v3.int8\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.int8)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a eql_v3.int8\n--! @param b eql_v3.int8\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.int8, b eql_v3.int8)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a eql_v3.int8\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.int8, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a jsonb\n--! @param b eql_v3.int8\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.int8)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a eql_v3.int8\n--! @param b eql_v3.int8\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.int8, b eql_v3.int8)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a eql_v3.int8\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.int8, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a jsonb\n--! @param b eql_v3.int8\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.int8)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a eql_v3.int8\n--! @param b eql_v3.int8\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.int8, b eql_v3.int8)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a eql_v3.int8\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.int8, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a jsonb\n--! @param b eql_v3.int8\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.int8)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a eql_v3.int8\n--! @param b eql_v3.int8\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.int8, b eql_v3.int8)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a eql_v3.int8\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.int8, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a jsonb\n--! @param b eql_v3.int8\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.int8)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a eql_v3.int8\n--! @param b eql_v3.int8\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.int8, b eql_v3.int8)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a eql_v3.int8\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.int8, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a jsonb\n--! @param b eql_v3.int8\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.int8)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a eql_v3.int8\n--! @param b eql_v3.int8\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.int8, b eql_v3.int8)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a eql_v3.int8\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.int8, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a jsonb\n--! @param b eql_v3.int8\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.int8)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a eql_v3.int8\n--! @param selector text\n--! @return eql_v3.int8\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.int8, selector text)\nRETURNS eql_v3.int8 IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a eql_v3.int8\n--! @param selector integer\n--! @return eql_v3.int8\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.int8, selector integer)\nRETURNS eql_v3.int8 IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a jsonb\n--! @param selector eql_v3.int8\n--! @return eql_v3.int8\nCREATE FUNCTION eql_v3.\"->\"(a jsonb, selector eql_v3.int8)\nRETURNS eql_v3.int8 IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a eql_v3.int8\n--! @param selector text\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.int8, selector text)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a eql_v3.int8\n--! @param selector integer\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.int8, selector integer)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a jsonb\n--! @param selector eql_v3.int8\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a jsonb, selector eql_v3.int8)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a eql_v3.int8\n--! @param b text\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?\"(a eql_v3.int8, b text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a eql_v3.int8\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?|\"(a eql_v3.int8, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a eql_v3.int8\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?&\"(a eql_v3.int8, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a eql_v3.int8\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@?\"(a eql_v3.int8, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a eql_v3.int8\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@@\"(a eql_v3.int8, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a eql_v3.int8\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#>\"(a eql_v3.int8, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a eql_v3.int8\n--! @param b text[]\n--! @return text\nCREATE FUNCTION eql_v3.\"#>>\"(a eql_v3.int8, b text[])\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a eql_v3.int8\n--! @param b text\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int8, b text)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a eql_v3.int8\n--! @param b integer\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int8, b integer)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a eql_v3.int8\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int8, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a eql_v3.int8\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#-\"(a eql_v3.int8, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a eql_v3.int8\n--! @param b eql_v3.int8\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.int8, b eql_v3.int8)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a eql_v3.int8\n--! @param b jsonb\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.int8, b jsonb)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8.\n--! @param a jsonb\n--! @param b eql_v3.int8\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a jsonb, b eql_v3.int8)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int8'; END; $$\nLANGUAGE plpgsql;\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/int8/int8_ord_functions.sql\n--! @brief Functions for eql_v3.int8_ord.\n\n--! @brief Index extractor for eql_v3.int8_ord.\n--! @param a eql_v3.int8_ord\n--! @return eql_v3.ore_block_u64_8_256\nCREATE FUNCTION eql_v3.ord_term(a eql_v3.int8_ord)\nRETURNS eql_v3.ore_block_u64_8_256\nLANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ore_block_u64_8_256(a::jsonb) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord.\n--! @param a eql_v3.int8_ord\n--! @param b eql_v3.int8_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.int8_ord, b eql_v3.int8_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord.\n--! @param a eql_v3.int8_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.int8_ord, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b::eql_v3.int8_ord) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord.\n--! @param a jsonb\n--! @param b eql_v3.int8_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.int8_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int8_ord) = eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord.\n--! @param a eql_v3.int8_ord\n--! @param b eql_v3.int8_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.int8_ord, b eql_v3.int8_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord.\n--! @param a eql_v3.int8_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.int8_ord, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b::eql_v3.int8_ord) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord.\n--! @param a jsonb\n--! @param b eql_v3.int8_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.int8_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int8_ord) <> eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord.\n--! @param a eql_v3.int8_ord\n--! @param b eql_v3.int8_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.int8_ord, b eql_v3.int8_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord.\n--! @param a eql_v3.int8_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.int8_ord, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b::eql_v3.int8_ord) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord.\n--! @param a jsonb\n--! @param b eql_v3.int8_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.int8_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int8_ord) < eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord.\n--! @param a eql_v3.int8_ord\n--! @param b eql_v3.int8_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.int8_ord, b eql_v3.int8_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord.\n--! @param a eql_v3.int8_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.int8_ord, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b::eql_v3.int8_ord) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord.\n--! @param a jsonb\n--! @param b eql_v3.int8_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.int8_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int8_ord) <= eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord.\n--! @param a eql_v3.int8_ord\n--! @param b eql_v3.int8_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.int8_ord, b eql_v3.int8_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord.\n--! @param a eql_v3.int8_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.int8_ord, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b::eql_v3.int8_ord) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord.\n--! @param a jsonb\n--! @param b eql_v3.int8_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.int8_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int8_ord) > eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord.\n--! @param a eql_v3.int8_ord\n--! @param b eql_v3.int8_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.int8_ord, b eql_v3.int8_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord.\n--! @param a eql_v3.int8_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.int8_ord, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b::eql_v3.int8_ord) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord.\n--! @param a jsonb\n--! @param b eql_v3.int8_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.int8_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int8_ord) >= eql_v3.ord_term(b) $$;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord.\n--! @param a eql_v3.int8_ord\n--! @param b eql_v3.int8_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.int8_ord, b eql_v3.int8_ord)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int8_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord.\n--! @param a eql_v3.int8_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.int8_ord, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int8_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord.\n--! @param a jsonb\n--! @param b eql_v3.int8_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.int8_ord)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int8_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord.\n--! @param a eql_v3.int8_ord\n--! @param b eql_v3.int8_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.int8_ord, b eql_v3.int8_ord)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int8_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord.\n--! @param a eql_v3.int8_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.int8_ord, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int8_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord.\n--! @param a jsonb\n--! @param b eql_v3.int8_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.int8_ord)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int8_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord.\n--! @param a eql_v3.int8_ord\n--! @param selector text\n--! @return eql_v3.int8_ord\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.int8_ord, selector text)\nRETURNS eql_v3.int8_ord IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int8_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord.\n--! @param a eql_v3.int8_ord\n--! @param selector integer\n--! @return eql_v3.int8_ord\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.int8_ord, selector integer)\nRETURNS eql_v3.int8_ord IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int8_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord.\n--! @param a jsonb\n--! @param selector eql_v3.int8_ord\n--! @return eql_v3.int8_ord\nCREATE FUNCTION eql_v3.\"->\"(a jsonb, selector eql_v3.int8_ord)\nRETURNS eql_v3.int8_ord IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int8_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord.\n--! @param a eql_v3.int8_ord\n--! @param selector text\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.int8_ord, selector text)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int8_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord.\n--! @param a eql_v3.int8_ord\n--! @param selector integer\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.int8_ord, selector integer)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int8_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord.\n--! @param a jsonb\n--! @param selector eql_v3.int8_ord\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a jsonb, selector eql_v3.int8_ord)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int8_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord.\n--! @param a eql_v3.int8_ord\n--! @param b text\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?\"(a eql_v3.int8_ord, b text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.int8_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord.\n--! @param a eql_v3.int8_ord\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?|\"(a eql_v3.int8_ord, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.int8_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord.\n--! @param a eql_v3.int8_ord\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?&\"(a eql_v3.int8_ord, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.int8_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord.\n--! @param a eql_v3.int8_ord\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@?\"(a eql_v3.int8_ord, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.int8_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord.\n--! @param a eql_v3.int8_ord\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@@\"(a eql_v3.int8_ord, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.int8_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord.\n--! @param a eql_v3.int8_ord\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#>\"(a eql_v3.int8_ord, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.int8_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord.\n--! @param a eql_v3.int8_ord\n--! @param b text[]\n--! @return text\nCREATE FUNCTION eql_v3.\"#>>\"(a eql_v3.int8_ord, b text[])\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.int8_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord.\n--! @param a eql_v3.int8_ord\n--! @param b text\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int8_ord, b text)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int8_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord.\n--! @param a eql_v3.int8_ord\n--! @param b integer\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int8_ord, b integer)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int8_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord.\n--! @param a eql_v3.int8_ord\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int8_ord, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int8_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord.\n--! @param a eql_v3.int8_ord\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#-\"(a eql_v3.int8_ord, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.int8_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord.\n--! @param a eql_v3.int8_ord\n--! @param b eql_v3.int8_ord\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.int8_ord, b eql_v3.int8_ord)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int8_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord.\n--! @param a eql_v3.int8_ord\n--! @param b jsonb\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.int8_ord, b jsonb)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int8_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord.\n--! @param a jsonb\n--! @param b eql_v3.int8_ord\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a jsonb, b eql_v3.int8_ord)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int8_ord'; END; $$\nLANGUAGE plpgsql;\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file v3/scalars/text/text_types.sql\n--! @brief Encrypted-domain types for text.\n\nDO $$\nBEGIN\n --! @brief Encrypted domain eql_v3.text.\n IF NOT EXISTS (\n SELECT 1 FROM pg_type\n WHERE typname = 'text' AND typnamespace = 'eql_v3'::regnamespace\n ) THEN\n CREATE DOMAIN eql_v3.text AS jsonb\n CHECK (\n jsonb_typeof(VALUE) = 'object'\n AND VALUE ? 'v'\n AND VALUE ? 'i'\n AND VALUE ? 'c'\n AND VALUE->>'v' = '2'\n );\n END IF;\n\n --! @brief Encrypted domain eql_v3.text_eq.\n IF NOT EXISTS (\n SELECT 1 FROM pg_type\n WHERE typname = 'text_eq' AND typnamespace = 'eql_v3'::regnamespace\n ) THEN\n CREATE DOMAIN eql_v3.text_eq AS jsonb\n CHECK (\n jsonb_typeof(VALUE) = 'object'\n AND VALUE ? 'v'\n AND VALUE ? 'i'\n AND VALUE ? 'c'\n AND VALUE ? 'hm'\n AND VALUE->>'v' = '2'\n );\n END IF;\n\n --! @brief Encrypted domain eql_v3.text_match.\n IF NOT EXISTS (\n SELECT 1 FROM pg_type\n WHERE typname = 'text_match' AND typnamespace = 'eql_v3'::regnamespace\n ) THEN\n CREATE DOMAIN eql_v3.text_match AS jsonb\n CHECK (\n jsonb_typeof(VALUE) = 'object'\n AND VALUE ? 'v'\n AND VALUE ? 'i'\n AND VALUE ? 'c'\n AND VALUE ? 'bf'\n AND VALUE->>'v' = '2'\n );\n END IF;\n\n --! @brief Encrypted domain eql_v3.text_ord_ore.\n IF NOT EXISTS (\n SELECT 1 FROM pg_type\n WHERE typname = 'text_ord_ore' AND typnamespace = 'eql_v3'::regnamespace\n ) THEN\n CREATE DOMAIN eql_v3.text_ord_ore AS jsonb\n CHECK (\n jsonb_typeof(VALUE) = 'object'\n AND VALUE ? 'v'\n AND VALUE ? 'i'\n AND VALUE ? 'c'\n AND VALUE ? 'ob'\n AND VALUE->>'v' = '2'\n );\n END IF;\n\n --! @brief Encrypted domain eql_v3.text_ord.\n IF NOT EXISTS (\n SELECT 1 FROM pg_type\n WHERE typname = 'text_ord' AND typnamespace = 'eql_v3'::regnamespace\n ) THEN\n CREATE DOMAIN eql_v3.text_ord AS jsonb\n CHECK (\n jsonb_typeof(VALUE) = 'object'\n AND VALUE ? 'v'\n AND VALUE ? 'i'\n AND VALUE ? 'c'\n AND VALUE ? 'ob'\n AND VALUE->>'v' = '2'\n );\n END IF;\nEND\n$$;\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/text/text_ord_functions.sql\n--! @brief Functions for eql_v3.text_ord.\n\n--! @brief Index extractor for eql_v3.text_ord.\n--! @param a eql_v3.text_ord\n--! @return eql_v3.ore_block_u64_8_256\nCREATE FUNCTION eql_v3.ord_term(a eql_v3.text_ord)\nRETURNS eql_v3.ore_block_u64_8_256\nLANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ore_block_u64_8_256(a::jsonb) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord.\n--! @param a eql_v3.text_ord\n--! @param b eql_v3.text_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.text_ord, b eql_v3.text_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord.\n--! @param a eql_v3.text_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.text_ord, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b::eql_v3.text_ord) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord.\n--! @param a jsonb\n--! @param b eql_v3.text_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.text_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.text_ord) = eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord.\n--! @param a eql_v3.text_ord\n--! @param b eql_v3.text_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.text_ord, b eql_v3.text_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord.\n--! @param a eql_v3.text_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.text_ord, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b::eql_v3.text_ord) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord.\n--! @param a jsonb\n--! @param b eql_v3.text_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.text_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.text_ord) <> eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord.\n--! @param a eql_v3.text_ord\n--! @param b eql_v3.text_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.text_ord, b eql_v3.text_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord.\n--! @param a eql_v3.text_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.text_ord, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b::eql_v3.text_ord) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord.\n--! @param a jsonb\n--! @param b eql_v3.text_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.text_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.text_ord) < eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord.\n--! @param a eql_v3.text_ord\n--! @param b eql_v3.text_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.text_ord, b eql_v3.text_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord.\n--! @param a eql_v3.text_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.text_ord, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b::eql_v3.text_ord) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord.\n--! @param a jsonb\n--! @param b eql_v3.text_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.text_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.text_ord) <= eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord.\n--! @param a eql_v3.text_ord\n--! @param b eql_v3.text_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.text_ord, b eql_v3.text_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord.\n--! @param a eql_v3.text_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.text_ord, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b::eql_v3.text_ord) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord.\n--! @param a jsonb\n--! @param b eql_v3.text_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.text_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.text_ord) > eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord.\n--! @param a eql_v3.text_ord\n--! @param b eql_v3.text_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.text_ord, b eql_v3.text_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord.\n--! @param a eql_v3.text_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.text_ord, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b::eql_v3.text_ord) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord.\n--! @param a jsonb\n--! @param b eql_v3.text_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.text_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.text_ord) >= eql_v3.ord_term(b) $$;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord.\n--! @param a eql_v3.text_ord\n--! @param b eql_v3.text_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.text_ord, b eql_v3.text_ord)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.text_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord.\n--! @param a eql_v3.text_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.text_ord, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.text_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord.\n--! @param a jsonb\n--! @param b eql_v3.text_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.text_ord)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.text_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord.\n--! @param a eql_v3.text_ord\n--! @param b eql_v3.text_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.text_ord, b eql_v3.text_ord)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.text_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord.\n--! @param a eql_v3.text_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.text_ord, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.text_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord.\n--! @param a jsonb\n--! @param b eql_v3.text_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.text_ord)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.text_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord.\n--! @param a eql_v3.text_ord\n--! @param selector text\n--! @return eql_v3.text_ord\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.text_ord, selector text)\nRETURNS eql_v3.text_ord IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.text_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord.\n--! @param a eql_v3.text_ord\n--! @param selector integer\n--! @return eql_v3.text_ord\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.text_ord, selector integer)\nRETURNS eql_v3.text_ord IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.text_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord.\n--! @param a jsonb\n--! @param selector eql_v3.text_ord\n--! @return eql_v3.text_ord\nCREATE FUNCTION eql_v3.\"->\"(a jsonb, selector eql_v3.text_ord)\nRETURNS eql_v3.text_ord IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.text_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord.\n--! @param a eql_v3.text_ord\n--! @param selector text\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.text_ord, selector text)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.text_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord.\n--! @param a eql_v3.text_ord\n--! @param selector integer\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.text_ord, selector integer)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.text_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord.\n--! @param a jsonb\n--! @param selector eql_v3.text_ord\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a jsonb, selector eql_v3.text_ord)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.text_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord.\n--! @param a eql_v3.text_ord\n--! @param b text\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?\"(a eql_v3.text_ord, b text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.text_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord.\n--! @param a eql_v3.text_ord\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?|\"(a eql_v3.text_ord, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.text_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord.\n--! @param a eql_v3.text_ord\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?&\"(a eql_v3.text_ord, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.text_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord.\n--! @param a eql_v3.text_ord\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@?\"(a eql_v3.text_ord, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.text_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord.\n--! @param a eql_v3.text_ord\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@@\"(a eql_v3.text_ord, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.text_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord.\n--! @param a eql_v3.text_ord\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#>\"(a eql_v3.text_ord, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.text_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord.\n--! @param a eql_v3.text_ord\n--! @param b text[]\n--! @return text\nCREATE FUNCTION eql_v3.\"#>>\"(a eql_v3.text_ord, b text[])\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.text_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord.\n--! @param a eql_v3.text_ord\n--! @param b text\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.text_ord, b text)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.text_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord.\n--! @param a eql_v3.text_ord\n--! @param b integer\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.text_ord, b integer)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.text_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord.\n--! @param a eql_v3.text_ord\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.text_ord, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.text_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord.\n--! @param a eql_v3.text_ord\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#-\"(a eql_v3.text_ord, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.text_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord.\n--! @param a eql_v3.text_ord\n--! @param b eql_v3.text_ord\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.text_ord, b eql_v3.text_ord)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.text_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord.\n--! @param a eql_v3.text_ord\n--! @param b jsonb\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.text_ord, b jsonb)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.text_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord.\n--! @param a jsonb\n--! @param b eql_v3.text_ord\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a jsonb, b eql_v3.text_ord)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.text_ord'; END; $$\nLANGUAGE plpgsql;\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/text/text_ord_ore_functions.sql\n--! @brief Functions for eql_v3.text_ord_ore.\n\n--! @brief Index extractor for eql_v3.text_ord_ore.\n--! @param a eql_v3.text_ord_ore\n--! @return eql_v3.ore_block_u64_8_256\nCREATE FUNCTION eql_v3.ord_term(a eql_v3.text_ord_ore)\nRETURNS eql_v3.ore_block_u64_8_256\nLANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ore_block_u64_8_256(a::jsonb) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord_ore.\n--! @param a eql_v3.text_ord_ore\n--! @param b eql_v3.text_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.text_ord_ore, b eql_v3.text_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord_ore.\n--! @param a eql_v3.text_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.text_ord_ore, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b::eql_v3.text_ord_ore) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.text_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.text_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.text_ord_ore) = eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord_ore.\n--! @param a eql_v3.text_ord_ore\n--! @param b eql_v3.text_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.text_ord_ore, b eql_v3.text_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord_ore.\n--! @param a eql_v3.text_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.text_ord_ore, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b::eql_v3.text_ord_ore) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.text_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.text_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.text_ord_ore) <> eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord_ore.\n--! @param a eql_v3.text_ord_ore\n--! @param b eql_v3.text_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.text_ord_ore, b eql_v3.text_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord_ore.\n--! @param a eql_v3.text_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.text_ord_ore, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b::eql_v3.text_ord_ore) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.text_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.text_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.text_ord_ore) < eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord_ore.\n--! @param a eql_v3.text_ord_ore\n--! @param b eql_v3.text_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.text_ord_ore, b eql_v3.text_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord_ore.\n--! @param a eql_v3.text_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.text_ord_ore, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b::eql_v3.text_ord_ore) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.text_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.text_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.text_ord_ore) <= eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord_ore.\n--! @param a eql_v3.text_ord_ore\n--! @param b eql_v3.text_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.text_ord_ore, b eql_v3.text_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord_ore.\n--! @param a eql_v3.text_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.text_ord_ore, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b::eql_v3.text_ord_ore) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.text_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.text_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.text_ord_ore) > eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord_ore.\n--! @param a eql_v3.text_ord_ore\n--! @param b eql_v3.text_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.text_ord_ore, b eql_v3.text_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord_ore.\n--! @param a eql_v3.text_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.text_ord_ore, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b::eql_v3.text_ord_ore) $$;\n\n--! @brief Operator wrapper for eql_v3.text_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.text_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.text_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.text_ord_ore) >= eql_v3.ord_term(b) $$;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord_ore.\n--! @param a eql_v3.text_ord_ore\n--! @param b eql_v3.text_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.text_ord_ore, b eql_v3.text_ord_ore)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.text_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord_ore.\n--! @param a eql_v3.text_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.text_ord_ore, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.text_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.text_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.text_ord_ore)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.text_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord_ore.\n--! @param a eql_v3.text_ord_ore\n--! @param b eql_v3.text_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.text_ord_ore, b eql_v3.text_ord_ore)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.text_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord_ore.\n--! @param a eql_v3.text_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.text_ord_ore, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.text_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.text_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.text_ord_ore)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.text_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord_ore.\n--! @param a eql_v3.text_ord_ore\n--! @param selector text\n--! @return eql_v3.text_ord_ore\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.text_ord_ore, selector text)\nRETURNS eql_v3.text_ord_ore IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.text_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord_ore.\n--! @param a eql_v3.text_ord_ore\n--! @param selector integer\n--! @return eql_v3.text_ord_ore\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.text_ord_ore, selector integer)\nRETURNS eql_v3.text_ord_ore IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.text_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord_ore.\n--! @param a jsonb\n--! @param selector eql_v3.text_ord_ore\n--! @return eql_v3.text_ord_ore\nCREATE FUNCTION eql_v3.\"->\"(a jsonb, selector eql_v3.text_ord_ore)\nRETURNS eql_v3.text_ord_ore IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.text_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord_ore.\n--! @param a eql_v3.text_ord_ore\n--! @param selector text\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.text_ord_ore, selector text)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.text_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord_ore.\n--! @param a eql_v3.text_ord_ore\n--! @param selector integer\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.text_ord_ore, selector integer)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.text_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord_ore.\n--! @param a jsonb\n--! @param selector eql_v3.text_ord_ore\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a jsonb, selector eql_v3.text_ord_ore)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.text_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord_ore.\n--! @param a eql_v3.text_ord_ore\n--! @param b text\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?\"(a eql_v3.text_ord_ore, b text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.text_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord_ore.\n--! @param a eql_v3.text_ord_ore\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?|\"(a eql_v3.text_ord_ore, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.text_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord_ore.\n--! @param a eql_v3.text_ord_ore\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?&\"(a eql_v3.text_ord_ore, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.text_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord_ore.\n--! @param a eql_v3.text_ord_ore\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@?\"(a eql_v3.text_ord_ore, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.text_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord_ore.\n--! @param a eql_v3.text_ord_ore\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@@\"(a eql_v3.text_ord_ore, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.text_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord_ore.\n--! @param a eql_v3.text_ord_ore\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#>\"(a eql_v3.text_ord_ore, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.text_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord_ore.\n--! @param a eql_v3.text_ord_ore\n--! @param b text[]\n--! @return text\nCREATE FUNCTION eql_v3.\"#>>\"(a eql_v3.text_ord_ore, b text[])\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.text_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord_ore.\n--! @param a eql_v3.text_ord_ore\n--! @param b text\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.text_ord_ore, b text)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.text_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord_ore.\n--! @param a eql_v3.text_ord_ore\n--! @param b integer\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.text_ord_ore, b integer)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.text_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord_ore.\n--! @param a eql_v3.text_ord_ore\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.text_ord_ore, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.text_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord_ore.\n--! @param a eql_v3.text_ord_ore\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#-\"(a eql_v3.text_ord_ore, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.text_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord_ore.\n--! @param a eql_v3.text_ord_ore\n--! @param b eql_v3.text_ord_ore\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.text_ord_ore, b eql_v3.text_ord_ore)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.text_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord_ore.\n--! @param a eql_v3.text_ord_ore\n--! @param b jsonb\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.text_ord_ore, b jsonb)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.text_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.text_ord_ore\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a jsonb, b eql_v3.text_ord_ore)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.text_ord_ore'; END; $$\nLANGUAGE plpgsql;\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/text/text_match_functions.sql\n--! @brief Functions for eql_v3.text_match.\n\n--! @brief Index extractor for eql_v3.text_match.\n--! @param a eql_v3.text_match\n--! @return eql_v3.bloom_filter\nCREATE FUNCTION eql_v3.match_term(a eql_v3.text_match)\nRETURNS eql_v3.bloom_filter\nLANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.bloom_filter(a::jsonb) $$;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a eql_v3.text_match\n--! @param b eql_v3.text_match\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.text_match, b eql_v3.text_match)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a eql_v3.text_match\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.text_match, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a jsonb\n--! @param b eql_v3.text_match\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.text_match)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a eql_v3.text_match\n--! @param b eql_v3.text_match\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.text_match, b eql_v3.text_match)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a eql_v3.text_match\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.text_match, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a jsonb\n--! @param b eql_v3.text_match\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.text_match)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a eql_v3.text_match\n--! @param b eql_v3.text_match\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.text_match, b eql_v3.text_match)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a eql_v3.text_match\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.text_match, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a jsonb\n--! @param b eql_v3.text_match\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.text_match)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a eql_v3.text_match\n--! @param b eql_v3.text_match\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.text_match, b eql_v3.text_match)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a eql_v3.text_match\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.text_match, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a jsonb\n--! @param b eql_v3.text_match\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.text_match)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a eql_v3.text_match\n--! @param b eql_v3.text_match\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.text_match, b eql_v3.text_match)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a eql_v3.text_match\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.text_match, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a jsonb\n--! @param b eql_v3.text_match\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.text_match)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a eql_v3.text_match\n--! @param b eql_v3.text_match\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.text_match, b eql_v3.text_match)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a eql_v3.text_match\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.text_match, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a jsonb\n--! @param b eql_v3.text_match\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.text_match)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Operator wrapper for eql_v3.text_match.\n--! @param a eql_v3.text_match\n--! @param b eql_v3.text_match\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.text_match, b eql_v3.text_match)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.match_term(a) @> eql_v3.match_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.text_match.\n--! @param a eql_v3.text_match\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.text_match, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.match_term(a) @> eql_v3.match_term(b::eql_v3.text_match) $$;\n\n--! @brief Operator wrapper for eql_v3.text_match.\n--! @param a jsonb\n--! @param b eql_v3.text_match\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.text_match)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.match_term(a::eql_v3.text_match) @> eql_v3.match_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.text_match.\n--! @param a eql_v3.text_match\n--! @param b eql_v3.text_match\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.text_match, b eql_v3.text_match)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.match_term(a) <@ eql_v3.match_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.text_match.\n--! @param a eql_v3.text_match\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.text_match, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.match_term(a) <@ eql_v3.match_term(b::eql_v3.text_match) $$;\n\n--! @brief Operator wrapper for eql_v3.text_match.\n--! @param a jsonb\n--! @param b eql_v3.text_match\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.text_match)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.match_term(a::eql_v3.text_match) <@ eql_v3.match_term(b) $$;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a eql_v3.text_match\n--! @param selector text\n--! @return eql_v3.text_match\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.text_match, selector text)\nRETURNS eql_v3.text_match IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a eql_v3.text_match\n--! @param selector integer\n--! @return eql_v3.text_match\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.text_match, selector integer)\nRETURNS eql_v3.text_match IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a jsonb\n--! @param selector eql_v3.text_match\n--! @return eql_v3.text_match\nCREATE FUNCTION eql_v3.\"->\"(a jsonb, selector eql_v3.text_match)\nRETURNS eql_v3.text_match IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a eql_v3.text_match\n--! @param selector text\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.text_match, selector text)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a eql_v3.text_match\n--! @param selector integer\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.text_match, selector integer)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a jsonb\n--! @param selector eql_v3.text_match\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a jsonb, selector eql_v3.text_match)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a eql_v3.text_match\n--! @param b text\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?\"(a eql_v3.text_match, b text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a eql_v3.text_match\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?|\"(a eql_v3.text_match, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a eql_v3.text_match\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?&\"(a eql_v3.text_match, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a eql_v3.text_match\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@?\"(a eql_v3.text_match, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a eql_v3.text_match\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@@\"(a eql_v3.text_match, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a eql_v3.text_match\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#>\"(a eql_v3.text_match, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a eql_v3.text_match\n--! @param b text[]\n--! @return text\nCREATE FUNCTION eql_v3.\"#>>\"(a eql_v3.text_match, b text[])\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a eql_v3.text_match\n--! @param b text\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.text_match, b text)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a eql_v3.text_match\n--! @param b integer\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.text_match, b integer)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a eql_v3.text_match\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.text_match, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a eql_v3.text_match\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#-\"(a eql_v3.text_match, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a eql_v3.text_match\n--! @param b eql_v3.text_match\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.text_match, b eql_v3.text_match)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a eql_v3.text_match\n--! @param b jsonb\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.text_match, b jsonb)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_match.\n--! @param a jsonb\n--! @param b eql_v3.text_match\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a jsonb, b eql_v3.text_match)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.text_match'; END; $$\nLANGUAGE plpgsql;\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/text/text_eq_functions.sql\n--! @brief Functions for eql_v3.text_eq.\n\n--! @brief Index extractor for eql_v3.text_eq.\n--! @param a eql_v3.text_eq\n--! @return eql_v3.hmac_256\nCREATE FUNCTION eql_v3.eq_term(a eql_v3.text_eq)\nRETURNS eql_v3.hmac_256\nLANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.hmac_256(a::jsonb) $$;\n\n--! @brief Operator wrapper for eql_v3.text_eq.\n--! @param a eql_v3.text_eq\n--! @param b eql_v3.text_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.text_eq, b eql_v3.text_eq)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a) = eql_v3.eq_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.text_eq.\n--! @param a eql_v3.text_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.text_eq, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a) = eql_v3.eq_term(b::eql_v3.text_eq) $$;\n\n--! @brief Operator wrapper for eql_v3.text_eq.\n--! @param a jsonb\n--! @param b eql_v3.text_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.text_eq)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a::eql_v3.text_eq) = eql_v3.eq_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.text_eq.\n--! @param a eql_v3.text_eq\n--! @param b eql_v3.text_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.text_eq, b eql_v3.text_eq)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a) <> eql_v3.eq_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.text_eq.\n--! @param a eql_v3.text_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.text_eq, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a) <> eql_v3.eq_term(b::eql_v3.text_eq) $$;\n\n--! @brief Operator wrapper for eql_v3.text_eq.\n--! @param a jsonb\n--! @param b eql_v3.text_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.text_eq)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a::eql_v3.text_eq) <> eql_v3.eq_term(b) $$;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a eql_v3.text_eq\n--! @param b eql_v3.text_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.text_eq, b eql_v3.text_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a eql_v3.text_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.text_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a jsonb\n--! @param b eql_v3.text_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.text_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a eql_v3.text_eq\n--! @param b eql_v3.text_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.text_eq, b eql_v3.text_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a eql_v3.text_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.text_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a jsonb\n--! @param b eql_v3.text_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.text_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a eql_v3.text_eq\n--! @param b eql_v3.text_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.text_eq, b eql_v3.text_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a eql_v3.text_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.text_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a jsonb\n--! @param b eql_v3.text_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.text_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a eql_v3.text_eq\n--! @param b eql_v3.text_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.text_eq, b eql_v3.text_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a eql_v3.text_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.text_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a jsonb\n--! @param b eql_v3.text_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.text_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a eql_v3.text_eq\n--! @param b eql_v3.text_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.text_eq, b eql_v3.text_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a eql_v3.text_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.text_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a jsonb\n--! @param b eql_v3.text_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.text_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a eql_v3.text_eq\n--! @param b eql_v3.text_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.text_eq, b eql_v3.text_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a eql_v3.text_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.text_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a jsonb\n--! @param b eql_v3.text_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.text_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a eql_v3.text_eq\n--! @param selector text\n--! @return eql_v3.text_eq\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.text_eq, selector text)\nRETURNS eql_v3.text_eq IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a eql_v3.text_eq\n--! @param selector integer\n--! @return eql_v3.text_eq\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.text_eq, selector integer)\nRETURNS eql_v3.text_eq IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a jsonb\n--! @param selector eql_v3.text_eq\n--! @return eql_v3.text_eq\nCREATE FUNCTION eql_v3.\"->\"(a jsonb, selector eql_v3.text_eq)\nRETURNS eql_v3.text_eq IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a eql_v3.text_eq\n--! @param selector text\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.text_eq, selector text)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a eql_v3.text_eq\n--! @param selector integer\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.text_eq, selector integer)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a jsonb\n--! @param selector eql_v3.text_eq\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a jsonb, selector eql_v3.text_eq)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a eql_v3.text_eq\n--! @param b text\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?\"(a eql_v3.text_eq, b text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a eql_v3.text_eq\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?|\"(a eql_v3.text_eq, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a eql_v3.text_eq\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?&\"(a eql_v3.text_eq, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a eql_v3.text_eq\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@?\"(a eql_v3.text_eq, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a eql_v3.text_eq\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@@\"(a eql_v3.text_eq, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a eql_v3.text_eq\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#>\"(a eql_v3.text_eq, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a eql_v3.text_eq\n--! @param b text[]\n--! @return text\nCREATE FUNCTION eql_v3.\"#>>\"(a eql_v3.text_eq, b text[])\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a eql_v3.text_eq\n--! @param b text\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.text_eq, b text)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a eql_v3.text_eq\n--! @param b integer\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.text_eq, b integer)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a eql_v3.text_eq\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.text_eq, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a eql_v3.text_eq\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#-\"(a eql_v3.text_eq, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a eql_v3.text_eq\n--! @param b eql_v3.text_eq\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.text_eq, b eql_v3.text_eq)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a eql_v3.text_eq\n--! @param b jsonb\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.text_eq, b jsonb)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text_eq.\n--! @param a jsonb\n--! @param b eql_v3.text_eq\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a jsonb, b eql_v3.text_eq)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.text_eq'; END; $$\nLANGUAGE plpgsql;\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/text/text_ord_ore_operators.sql\n--! @brief Operators for eql_v3.text_ord_ore.\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.text_ord_ore, RIGHTARG = eql_v3.text_ord_ore,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.text_ord_ore, RIGHTARG = jsonb,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord_ore,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.text_ord_ore, RIGHTARG = eql_v3.text_ord_ore,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.text_ord_ore, RIGHTARG = jsonb,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord_ore,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.text_ord_ore, RIGHTARG = eql_v3.text_ord_ore,\n COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.text_ord_ore, RIGHTARG = jsonb,\n COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord_ore,\n COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.text_ord_ore, RIGHTARG = eql_v3.text_ord_ore,\n COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.text_ord_ore, RIGHTARG = jsonb,\n COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord_ore,\n COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.text_ord_ore, RIGHTARG = eql_v3.text_ord_ore,\n COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.text_ord_ore, RIGHTARG = jsonb,\n COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord_ore,\n COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.text_ord_ore, RIGHTARG = eql_v3.text_ord_ore,\n COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.text_ord_ore, RIGHTARG = jsonb,\n COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord_ore,\n COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.text_ord_ore, RIGHTARG = eql_v3.text_ord_ore\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.text_ord_ore, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord_ore\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.text_ord_ore, RIGHTARG = eql_v3.text_ord_ore\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.text_ord_ore, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord_ore\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.text_ord_ore, RIGHTARG = text\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.text_ord_ore, RIGHTARG = integer\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord_ore\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.text_ord_ore, RIGHTARG = text\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.text_ord_ore, RIGHTARG = integer\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord_ore\n);\n\nCREATE OPERATOR ? (\n FUNCTION = eql_v3.\"?\",\n LEFTARG = eql_v3.text_ord_ore, RIGHTARG = text\n);\n\nCREATE OPERATOR ?| (\n FUNCTION = eql_v3.\"?|\",\n LEFTARG = eql_v3.text_ord_ore, RIGHTARG = text[]\n);\n\nCREATE OPERATOR ?& (\n FUNCTION = eql_v3.\"?&\",\n LEFTARG = eql_v3.text_ord_ore, RIGHTARG = text[]\n);\n\nCREATE OPERATOR @? (\n FUNCTION = eql_v3.\"@?\",\n LEFTARG = eql_v3.text_ord_ore, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR @@ (\n FUNCTION = eql_v3.\"@@\",\n LEFTARG = eql_v3.text_ord_ore, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR #> (\n FUNCTION = eql_v3.\"#>\",\n LEFTARG = eql_v3.text_ord_ore, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #>> (\n FUNCTION = eql_v3.\"#>>\",\n LEFTARG = eql_v3.text_ord_ore, RIGHTARG = text[]\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.text_ord_ore, RIGHTARG = text\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.text_ord_ore, RIGHTARG = integer\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.text_ord_ore, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #- (\n FUNCTION = eql_v3.\"#-\",\n LEFTARG = eql_v3.text_ord_ore, RIGHTARG = text[]\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.text_ord_ore, RIGHTARG = eql_v3.text_ord_ore\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.text_ord_ore, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord_ore\n);\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/text/text_ord_operators.sql\n--! @brief Operators for eql_v3.text_ord.\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.text_ord, RIGHTARG = eql_v3.text_ord,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.text_ord, RIGHTARG = jsonb,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.text_ord, RIGHTARG = eql_v3.text_ord,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.text_ord, RIGHTARG = jsonb,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.text_ord, RIGHTARG = eql_v3.text_ord,\n COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.text_ord, RIGHTARG = jsonb,\n COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord,\n COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.text_ord, RIGHTARG = eql_v3.text_ord,\n COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.text_ord, RIGHTARG = jsonb,\n COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord,\n COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.text_ord, RIGHTARG = eql_v3.text_ord,\n COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.text_ord, RIGHTARG = jsonb,\n COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord,\n COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.text_ord, RIGHTARG = eql_v3.text_ord,\n COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.text_ord, RIGHTARG = jsonb,\n COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord,\n COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.text_ord, RIGHTARG = eql_v3.text_ord\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.text_ord, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.text_ord, RIGHTARG = eql_v3.text_ord\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.text_ord, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.text_ord, RIGHTARG = text\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.text_ord, RIGHTARG = integer\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.text_ord, RIGHTARG = text\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.text_ord, RIGHTARG = integer\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord\n);\n\nCREATE OPERATOR ? (\n FUNCTION = eql_v3.\"?\",\n LEFTARG = eql_v3.text_ord, RIGHTARG = text\n);\n\nCREATE OPERATOR ?| (\n FUNCTION = eql_v3.\"?|\",\n LEFTARG = eql_v3.text_ord, RIGHTARG = text[]\n);\n\nCREATE OPERATOR ?& (\n FUNCTION = eql_v3.\"?&\",\n LEFTARG = eql_v3.text_ord, RIGHTARG = text[]\n);\n\nCREATE OPERATOR @? (\n FUNCTION = eql_v3.\"@?\",\n LEFTARG = eql_v3.text_ord, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR @@ (\n FUNCTION = eql_v3.\"@@\",\n LEFTARG = eql_v3.text_ord, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR #> (\n FUNCTION = eql_v3.\"#>\",\n LEFTARG = eql_v3.text_ord, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #>> (\n FUNCTION = eql_v3.\"#>>\",\n LEFTARG = eql_v3.text_ord, RIGHTARG = text[]\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.text_ord, RIGHTARG = text\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.text_ord, RIGHTARG = integer\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.text_ord, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #- (\n FUNCTION = eql_v3.\"#-\",\n LEFTARG = eql_v3.text_ord, RIGHTARG = text[]\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.text_ord, RIGHTARG = eql_v3.text_ord\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.text_ord, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_ord\n);\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/int4/int4_ord_aggregates.sql\n--! @brief Aggregates for eql_v3.int4_ord.\n\n--! @brief State function for min on eql_v3.int4_ord.\n--! @param state eql_v3.int4_ord\n--! @param value eql_v3.int4_ord\n--! @return eql_v3.int4_ord\nCREATE FUNCTION eql_v3.min_sfunc(state eql_v3.int4_ord, value eql_v3.int4_ord)\nRETURNS eql_v3.int4_ord\nLANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE\nSET search_path = pg_catalog, extensions, public\nAS $$\nBEGIN\n IF value < state THEN\n RETURN value;\n END IF;\n RETURN state;\nEND;\n$$;\n\n--! @brief min aggregate for eql_v3.int4_ord.\n--! @param input eql_v3.int4_ord\n--! @return eql_v3.int4_ord\nCREATE AGGREGATE eql_v3.min(eql_v3.int4_ord) (\n sfunc = eql_v3.min_sfunc,\n stype = eql_v3.int4_ord,\n combinefunc = eql_v3.min_sfunc,\n parallel = safe\n);\n\n--! @brief State function for max on eql_v3.int4_ord.\n--! @param state eql_v3.int4_ord\n--! @param value eql_v3.int4_ord\n--! @return eql_v3.int4_ord\nCREATE FUNCTION eql_v3.max_sfunc(state eql_v3.int4_ord, value eql_v3.int4_ord)\nRETURNS eql_v3.int4_ord\nLANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE\nSET search_path = pg_catalog, extensions, public\nAS $$\nBEGIN\n IF value > state THEN\n RETURN value;\n END IF;\n RETURN state;\nEND;\n$$;\n\n--! @brief max aggregate for eql_v3.int4_ord.\n--! @param input eql_v3.int4_ord\n--! @return eql_v3.int4_ord\nCREATE AGGREGATE eql_v3.max(eql_v3.int4_ord) (\n sfunc = eql_v3.max_sfunc,\n stype = eql_v3.int4_ord,\n combinefunc = eql_v3.max_sfunc,\n parallel = safe\n);\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/int4/int4_functions.sql\n--! @brief Functions for eql_v3.int4.\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a eql_v3.int4\n--! @param b eql_v3.int4\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.int4, b eql_v3.int4)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a eql_v3.int4\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.int4, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a jsonb\n--! @param b eql_v3.int4\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.int4)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a eql_v3.int4\n--! @param b eql_v3.int4\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.int4, b eql_v3.int4)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a eql_v3.int4\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.int4, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a jsonb\n--! @param b eql_v3.int4\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.int4)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a eql_v3.int4\n--! @param b eql_v3.int4\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.int4, b eql_v3.int4)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a eql_v3.int4\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.int4, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a jsonb\n--! @param b eql_v3.int4\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.int4)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a eql_v3.int4\n--! @param b eql_v3.int4\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.int4, b eql_v3.int4)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a eql_v3.int4\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.int4, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a jsonb\n--! @param b eql_v3.int4\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.int4)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a eql_v3.int4\n--! @param b eql_v3.int4\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.int4, b eql_v3.int4)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a eql_v3.int4\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.int4, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a jsonb\n--! @param b eql_v3.int4\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.int4)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a eql_v3.int4\n--! @param b eql_v3.int4\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.int4, b eql_v3.int4)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a eql_v3.int4\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.int4, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a jsonb\n--! @param b eql_v3.int4\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.int4)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a eql_v3.int4\n--! @param b eql_v3.int4\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.int4, b eql_v3.int4)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a eql_v3.int4\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.int4, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a jsonb\n--! @param b eql_v3.int4\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.int4)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a eql_v3.int4\n--! @param b eql_v3.int4\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.int4, b eql_v3.int4)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a eql_v3.int4\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.int4, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a jsonb\n--! @param b eql_v3.int4\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.int4)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a eql_v3.int4\n--! @param selector text\n--! @return eql_v3.int4\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.int4, selector text)\nRETURNS eql_v3.int4 IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a eql_v3.int4\n--! @param selector integer\n--! @return eql_v3.int4\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.int4, selector integer)\nRETURNS eql_v3.int4 IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a jsonb\n--! @param selector eql_v3.int4\n--! @return eql_v3.int4\nCREATE FUNCTION eql_v3.\"->\"(a jsonb, selector eql_v3.int4)\nRETURNS eql_v3.int4 IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a eql_v3.int4\n--! @param selector text\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.int4, selector text)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a eql_v3.int4\n--! @param selector integer\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.int4, selector integer)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a jsonb\n--! @param selector eql_v3.int4\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a jsonb, selector eql_v3.int4)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a eql_v3.int4\n--! @param b text\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?\"(a eql_v3.int4, b text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a eql_v3.int4\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?|\"(a eql_v3.int4, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a eql_v3.int4\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?&\"(a eql_v3.int4, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a eql_v3.int4\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@?\"(a eql_v3.int4, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a eql_v3.int4\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@@\"(a eql_v3.int4, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a eql_v3.int4\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#>\"(a eql_v3.int4, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a eql_v3.int4\n--! @param b text[]\n--! @return text\nCREATE FUNCTION eql_v3.\"#>>\"(a eql_v3.int4, b text[])\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a eql_v3.int4\n--! @param b text\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int4, b text)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a eql_v3.int4\n--! @param b integer\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int4, b integer)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a eql_v3.int4\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int4, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a eql_v3.int4\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#-\"(a eql_v3.int4, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a eql_v3.int4\n--! @param b eql_v3.int4\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.int4, b eql_v3.int4)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a eql_v3.int4\n--! @param b jsonb\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.int4, b jsonb)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4.\n--! @param a jsonb\n--! @param b eql_v3.int4\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a jsonb, b eql_v3.int4)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int4'; END; $$\nLANGUAGE plpgsql;\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/int4/int4_eq_operators.sql\n--! @brief Operators for eql_v3.int4_eq.\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.int4_eq, RIGHTARG = eql_v3.int4_eq,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.int4_eq, RIGHTARG = jsonb,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4_eq,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.int4_eq, RIGHTARG = eql_v3.int4_eq,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.int4_eq, RIGHTARG = jsonb,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4_eq,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.int4_eq, RIGHTARG = eql_v3.int4_eq\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.int4_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4_eq\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.int4_eq, RIGHTARG = eql_v3.int4_eq\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.int4_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4_eq\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.int4_eq, RIGHTARG = eql_v3.int4_eq\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.int4_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4_eq\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.int4_eq, RIGHTARG = eql_v3.int4_eq\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.int4_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4_eq\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.int4_eq, RIGHTARG = eql_v3.int4_eq\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.int4_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4_eq\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.int4_eq, RIGHTARG = eql_v3.int4_eq\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.int4_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4_eq\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.int4_eq, RIGHTARG = text\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.int4_eq, RIGHTARG = integer\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4_eq\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.int4_eq, RIGHTARG = text\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.int4_eq, RIGHTARG = integer\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4_eq\n);\n\nCREATE OPERATOR ? (\n FUNCTION = eql_v3.\"?\",\n LEFTARG = eql_v3.int4_eq, RIGHTARG = text\n);\n\nCREATE OPERATOR ?| (\n FUNCTION = eql_v3.\"?|\",\n LEFTARG = eql_v3.int4_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR ?& (\n FUNCTION = eql_v3.\"?&\",\n LEFTARG = eql_v3.int4_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR @? (\n FUNCTION = eql_v3.\"@?\",\n LEFTARG = eql_v3.int4_eq, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR @@ (\n FUNCTION = eql_v3.\"@@\",\n LEFTARG = eql_v3.int4_eq, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR #> (\n FUNCTION = eql_v3.\"#>\",\n LEFTARG = eql_v3.int4_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #>> (\n FUNCTION = eql_v3.\"#>>\",\n LEFTARG = eql_v3.int4_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int4_eq, RIGHTARG = text\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int4_eq, RIGHTARG = integer\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int4_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #- (\n FUNCTION = eql_v3.\"#-\",\n LEFTARG = eql_v3.int4_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.int4_eq, RIGHTARG = eql_v3.int4_eq\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.int4_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4_eq\n);\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/int4/int4_ord_ore_functions.sql\n--! @brief Functions for eql_v3.int4_ord_ore.\n\n--! @brief Index extractor for eql_v3.int4_ord_ore.\n--! @param a eql_v3.int4_ord_ore\n--! @return eql_v3.ore_block_u64_8_256\nCREATE FUNCTION eql_v3.ord_term(a eql_v3.int4_ord_ore)\nRETURNS eql_v3.ore_block_u64_8_256\nLANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ore_block_u64_8_256(a::jsonb) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord_ore.\n--! @param a eql_v3.int4_ord_ore\n--! @param b eql_v3.int4_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.int4_ord_ore, b eql_v3.int4_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord_ore.\n--! @param a eql_v3.int4_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.int4_ord_ore, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b::eql_v3.int4_ord_ore) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.int4_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.int4_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int4_ord_ore) = eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord_ore.\n--! @param a eql_v3.int4_ord_ore\n--! @param b eql_v3.int4_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.int4_ord_ore, b eql_v3.int4_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord_ore.\n--! @param a eql_v3.int4_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.int4_ord_ore, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b::eql_v3.int4_ord_ore) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.int4_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.int4_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int4_ord_ore) <> eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord_ore.\n--! @param a eql_v3.int4_ord_ore\n--! @param b eql_v3.int4_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.int4_ord_ore, b eql_v3.int4_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord_ore.\n--! @param a eql_v3.int4_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.int4_ord_ore, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b::eql_v3.int4_ord_ore) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.int4_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.int4_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int4_ord_ore) < eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord_ore.\n--! @param a eql_v3.int4_ord_ore\n--! @param b eql_v3.int4_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.int4_ord_ore, b eql_v3.int4_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord_ore.\n--! @param a eql_v3.int4_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.int4_ord_ore, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b::eql_v3.int4_ord_ore) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.int4_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.int4_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int4_ord_ore) <= eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord_ore.\n--! @param a eql_v3.int4_ord_ore\n--! @param b eql_v3.int4_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.int4_ord_ore, b eql_v3.int4_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord_ore.\n--! @param a eql_v3.int4_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.int4_ord_ore, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b::eql_v3.int4_ord_ore) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.int4_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.int4_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int4_ord_ore) > eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord_ore.\n--! @param a eql_v3.int4_ord_ore\n--! @param b eql_v3.int4_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.int4_ord_ore, b eql_v3.int4_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord_ore.\n--! @param a eql_v3.int4_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.int4_ord_ore, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b::eql_v3.int4_ord_ore) $$;\n\n--! @brief Operator wrapper for eql_v3.int4_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.int4_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.int4_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int4_ord_ore) >= eql_v3.ord_term(b) $$;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore.\n--! @param a eql_v3.int4_ord_ore\n--! @param b eql_v3.int4_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.int4_ord_ore, b eql_v3.int4_ord_ore)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int4_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore.\n--! @param a eql_v3.int4_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.int4_ord_ore, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int4_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.int4_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.int4_ord_ore)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int4_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore.\n--! @param a eql_v3.int4_ord_ore\n--! @param b eql_v3.int4_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.int4_ord_ore, b eql_v3.int4_ord_ore)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int4_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore.\n--! @param a eql_v3.int4_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.int4_ord_ore, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int4_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.int4_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.int4_ord_ore)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int4_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore.\n--! @param a eql_v3.int4_ord_ore\n--! @param selector text\n--! @return eql_v3.int4_ord_ore\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.int4_ord_ore, selector text)\nRETURNS eql_v3.int4_ord_ore IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int4_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore.\n--! @param a eql_v3.int4_ord_ore\n--! @param selector integer\n--! @return eql_v3.int4_ord_ore\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.int4_ord_ore, selector integer)\nRETURNS eql_v3.int4_ord_ore IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int4_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore.\n--! @param a jsonb\n--! @param selector eql_v3.int4_ord_ore\n--! @return eql_v3.int4_ord_ore\nCREATE FUNCTION eql_v3.\"->\"(a jsonb, selector eql_v3.int4_ord_ore)\nRETURNS eql_v3.int4_ord_ore IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int4_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore.\n--! @param a eql_v3.int4_ord_ore\n--! @param selector text\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.int4_ord_ore, selector text)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int4_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore.\n--! @param a eql_v3.int4_ord_ore\n--! @param selector integer\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.int4_ord_ore, selector integer)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int4_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore.\n--! @param a jsonb\n--! @param selector eql_v3.int4_ord_ore\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a jsonb, selector eql_v3.int4_ord_ore)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int4_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore.\n--! @param a eql_v3.int4_ord_ore\n--! @param b text\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?\"(a eql_v3.int4_ord_ore, b text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.int4_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore.\n--! @param a eql_v3.int4_ord_ore\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?|\"(a eql_v3.int4_ord_ore, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.int4_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore.\n--! @param a eql_v3.int4_ord_ore\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?&\"(a eql_v3.int4_ord_ore, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.int4_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore.\n--! @param a eql_v3.int4_ord_ore\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@?\"(a eql_v3.int4_ord_ore, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.int4_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore.\n--! @param a eql_v3.int4_ord_ore\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@@\"(a eql_v3.int4_ord_ore, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.int4_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore.\n--! @param a eql_v3.int4_ord_ore\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#>\"(a eql_v3.int4_ord_ore, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.int4_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore.\n--! @param a eql_v3.int4_ord_ore\n--! @param b text[]\n--! @return text\nCREATE FUNCTION eql_v3.\"#>>\"(a eql_v3.int4_ord_ore, b text[])\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.int4_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore.\n--! @param a eql_v3.int4_ord_ore\n--! @param b text\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int4_ord_ore, b text)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int4_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore.\n--! @param a eql_v3.int4_ord_ore\n--! @param b integer\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int4_ord_ore, b integer)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int4_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore.\n--! @param a eql_v3.int4_ord_ore\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int4_ord_ore, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int4_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore.\n--! @param a eql_v3.int4_ord_ore\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#-\"(a eql_v3.int4_ord_ore, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.int4_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore.\n--! @param a eql_v3.int4_ord_ore\n--! @param b eql_v3.int4_ord_ore\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.int4_ord_ore, b eql_v3.int4_ord_ore)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int4_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore.\n--! @param a eql_v3.int4_ord_ore\n--! @param b jsonb\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.int4_ord_ore, b jsonb)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int4_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int4_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.int4_ord_ore\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a jsonb, b eql_v3.int4_ord_ore)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int4_ord_ore'; END; $$\nLANGUAGE plpgsql;\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/int4/int4_ord_ore_operators.sql\n--! @brief Operators for eql_v3.int4_ord_ore.\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = eql_v3.int4_ord_ore,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = jsonb,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord_ore,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = eql_v3.int4_ord_ore,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = jsonb,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord_ore,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = eql_v3.int4_ord_ore,\n COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = jsonb,\n COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord_ore,\n COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = eql_v3.int4_ord_ore,\n COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = jsonb,\n COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord_ore,\n COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = eql_v3.int4_ord_ore,\n COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = jsonb,\n COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord_ore,\n COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = eql_v3.int4_ord_ore,\n COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = jsonb,\n COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord_ore,\n COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = eql_v3.int4_ord_ore\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord_ore\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = eql_v3.int4_ord_ore\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord_ore\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = text\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = integer\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord_ore\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = text\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = integer\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord_ore\n);\n\nCREATE OPERATOR ? (\n FUNCTION = eql_v3.\"?\",\n LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = text\n);\n\nCREATE OPERATOR ?| (\n FUNCTION = eql_v3.\"?|\",\n LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = text[]\n);\n\nCREATE OPERATOR ?& (\n FUNCTION = eql_v3.\"?&\",\n LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = text[]\n);\n\nCREATE OPERATOR @? (\n FUNCTION = eql_v3.\"@?\",\n LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR @@ (\n FUNCTION = eql_v3.\"@@\",\n LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR #> (\n FUNCTION = eql_v3.\"#>\",\n LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #>> (\n FUNCTION = eql_v3.\"#>>\",\n LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = text[]\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = text\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = integer\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #- (\n FUNCTION = eql_v3.\"#-\",\n LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = text[]\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = eql_v3.int4_ord_ore\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.int4_ord_ore, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4_ord_ore\n);\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/int4/int4_operators.sql\n--! @brief Operators for eql_v3.int4.\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.int4, RIGHTARG = eql_v3.int4\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.int4, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.int4, RIGHTARG = eql_v3.int4\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.int4, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.int4, RIGHTARG = eql_v3.int4\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.int4, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.int4, RIGHTARG = eql_v3.int4\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.int4, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.int4, RIGHTARG = eql_v3.int4\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.int4, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.int4, RIGHTARG = eql_v3.int4\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.int4, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.int4, RIGHTARG = eql_v3.int4\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.int4, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.int4, RIGHTARG = eql_v3.int4\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.int4, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.int4, RIGHTARG = text\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.int4, RIGHTARG = integer\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.int4, RIGHTARG = text\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.int4, RIGHTARG = integer\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4\n);\n\nCREATE OPERATOR ? (\n FUNCTION = eql_v3.\"?\",\n LEFTARG = eql_v3.int4, RIGHTARG = text\n);\n\nCREATE OPERATOR ?| (\n FUNCTION = eql_v3.\"?|\",\n LEFTARG = eql_v3.int4, RIGHTARG = text[]\n);\n\nCREATE OPERATOR ?& (\n FUNCTION = eql_v3.\"?&\",\n LEFTARG = eql_v3.int4, RIGHTARG = text[]\n);\n\nCREATE OPERATOR @? (\n FUNCTION = eql_v3.\"@?\",\n LEFTARG = eql_v3.int4, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR @@ (\n FUNCTION = eql_v3.\"@@\",\n LEFTARG = eql_v3.int4, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR #> (\n FUNCTION = eql_v3.\"#>\",\n LEFTARG = eql_v3.int4, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #>> (\n FUNCTION = eql_v3.\"#>>\",\n LEFTARG = eql_v3.int4, RIGHTARG = text[]\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int4, RIGHTARG = text\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int4, RIGHTARG = integer\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int4, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #- (\n FUNCTION = eql_v3.\"#-\",\n LEFTARG = eql_v3.int4, RIGHTARG = text[]\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.int4, RIGHTARG = eql_v3.int4\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.int4, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int4\n);\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/int4/int4_ord_ore_aggregates.sql\n--! @brief Aggregates for eql_v3.int4_ord_ore.\n\n--! @brief State function for min on eql_v3.int4_ord_ore.\n--! @param state eql_v3.int4_ord_ore\n--! @param value eql_v3.int4_ord_ore\n--! @return eql_v3.int4_ord_ore\nCREATE FUNCTION eql_v3.min_sfunc(state eql_v3.int4_ord_ore, value eql_v3.int4_ord_ore)\nRETURNS eql_v3.int4_ord_ore\nLANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE\nSET search_path = pg_catalog, extensions, public\nAS $$\nBEGIN\n IF value < state THEN\n RETURN value;\n END IF;\n RETURN state;\nEND;\n$$;\n\n--! @brief min aggregate for eql_v3.int4_ord_ore.\n--! @param input eql_v3.int4_ord_ore\n--! @return eql_v3.int4_ord_ore\nCREATE AGGREGATE eql_v3.min(eql_v3.int4_ord_ore) (\n sfunc = eql_v3.min_sfunc,\n stype = eql_v3.int4_ord_ore,\n combinefunc = eql_v3.min_sfunc,\n parallel = safe\n);\n\n--! @brief State function for max on eql_v3.int4_ord_ore.\n--! @param state eql_v3.int4_ord_ore\n--! @param value eql_v3.int4_ord_ore\n--! @return eql_v3.int4_ord_ore\nCREATE FUNCTION eql_v3.max_sfunc(state eql_v3.int4_ord_ore, value eql_v3.int4_ord_ore)\nRETURNS eql_v3.int4_ord_ore\nLANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE\nSET search_path = pg_catalog, extensions, public\nAS $$\nBEGIN\n IF value > state THEN\n RETURN value;\n END IF;\n RETURN state;\nEND;\n$$;\n\n--! @brief max aggregate for eql_v3.int4_ord_ore.\n--! @param input eql_v3.int4_ord_ore\n--! @return eql_v3.int4_ord_ore\nCREATE AGGREGATE eql_v3.max(eql_v3.int4_ord_ore) (\n sfunc = eql_v3.max_sfunc,\n stype = eql_v3.int4_ord_ore,\n combinefunc = eql_v3.max_sfunc,\n parallel = safe\n);\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/timestamptz/timestamptz_functions.sql\n--! @brief Functions for eql_v3.timestamptz.\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a eql_v3.timestamptz\n--! @param b eql_v3.timestamptz\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.timestamptz, b eql_v3.timestamptz)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a eql_v3.timestamptz\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.timestamptz, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a jsonb\n--! @param b eql_v3.timestamptz\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.timestamptz)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a eql_v3.timestamptz\n--! @param b eql_v3.timestamptz\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.timestamptz, b eql_v3.timestamptz)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a eql_v3.timestamptz\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.timestamptz, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a jsonb\n--! @param b eql_v3.timestamptz\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.timestamptz)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a eql_v3.timestamptz\n--! @param b eql_v3.timestamptz\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.timestamptz, b eql_v3.timestamptz)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a eql_v3.timestamptz\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.timestamptz, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a jsonb\n--! @param b eql_v3.timestamptz\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.timestamptz)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a eql_v3.timestamptz\n--! @param b eql_v3.timestamptz\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.timestamptz, b eql_v3.timestamptz)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a eql_v3.timestamptz\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.timestamptz, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a jsonb\n--! @param b eql_v3.timestamptz\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.timestamptz)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a eql_v3.timestamptz\n--! @param b eql_v3.timestamptz\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.timestamptz, b eql_v3.timestamptz)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a eql_v3.timestamptz\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.timestamptz, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a jsonb\n--! @param b eql_v3.timestamptz\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.timestamptz)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a eql_v3.timestamptz\n--! @param b eql_v3.timestamptz\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.timestamptz, b eql_v3.timestamptz)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a eql_v3.timestamptz\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.timestamptz, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a jsonb\n--! @param b eql_v3.timestamptz\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.timestamptz)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a eql_v3.timestamptz\n--! @param b eql_v3.timestamptz\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.timestamptz, b eql_v3.timestamptz)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a eql_v3.timestamptz\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.timestamptz, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a jsonb\n--! @param b eql_v3.timestamptz\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.timestamptz)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a eql_v3.timestamptz\n--! @param b eql_v3.timestamptz\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.timestamptz, b eql_v3.timestamptz)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a eql_v3.timestamptz\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.timestamptz, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a jsonb\n--! @param b eql_v3.timestamptz\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.timestamptz)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a eql_v3.timestamptz\n--! @param selector text\n--! @return eql_v3.timestamptz\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.timestamptz, selector text)\nRETURNS eql_v3.timestamptz IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a eql_v3.timestamptz\n--! @param selector integer\n--! @return eql_v3.timestamptz\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.timestamptz, selector integer)\nRETURNS eql_v3.timestamptz IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a jsonb\n--! @param selector eql_v3.timestamptz\n--! @return eql_v3.timestamptz\nCREATE FUNCTION eql_v3.\"->\"(a jsonb, selector eql_v3.timestamptz)\nRETURNS eql_v3.timestamptz IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a eql_v3.timestamptz\n--! @param selector text\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.timestamptz, selector text)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a eql_v3.timestamptz\n--! @param selector integer\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.timestamptz, selector integer)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a jsonb\n--! @param selector eql_v3.timestamptz\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a jsonb, selector eql_v3.timestamptz)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a eql_v3.timestamptz\n--! @param b text\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?\"(a eql_v3.timestamptz, b text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a eql_v3.timestamptz\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?|\"(a eql_v3.timestamptz, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a eql_v3.timestamptz\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?&\"(a eql_v3.timestamptz, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a eql_v3.timestamptz\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@?\"(a eql_v3.timestamptz, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a eql_v3.timestamptz\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@@\"(a eql_v3.timestamptz, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a eql_v3.timestamptz\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#>\"(a eql_v3.timestamptz, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a eql_v3.timestamptz\n--! @param b text[]\n--! @return text\nCREATE FUNCTION eql_v3.\"#>>\"(a eql_v3.timestamptz, b text[])\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a eql_v3.timestamptz\n--! @param b text\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.timestamptz, b text)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a eql_v3.timestamptz\n--! @param b integer\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.timestamptz, b integer)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a eql_v3.timestamptz\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.timestamptz, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a eql_v3.timestamptz\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#-\"(a eql_v3.timestamptz, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a eql_v3.timestamptz\n--! @param b eql_v3.timestamptz\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.timestamptz, b eql_v3.timestamptz)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a eql_v3.timestamptz\n--! @param b jsonb\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.timestamptz, b jsonb)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.timestamptz.\n--! @param a jsonb\n--! @param b eql_v3.timestamptz\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a jsonb, b eql_v3.timestamptz)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.timestamptz'; END; $$\nLANGUAGE plpgsql;\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/timestamptz/timestamptz_eq_operators.sql\n--! @brief Operators for eql_v3.timestamptz_eq.\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = eql_v3.timestamptz_eq,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = jsonb,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz_eq,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = eql_v3.timestamptz_eq,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = jsonb,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz_eq,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = eql_v3.timestamptz_eq\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz_eq\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = eql_v3.timestamptz_eq\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz_eq\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = eql_v3.timestamptz_eq\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz_eq\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = eql_v3.timestamptz_eq\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz_eq\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = eql_v3.timestamptz_eq\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz_eq\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = eql_v3.timestamptz_eq\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz_eq\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = text\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = integer\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz_eq\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = text\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = integer\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz_eq\n);\n\nCREATE OPERATOR ? (\n FUNCTION = eql_v3.\"?\",\n LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = text\n);\n\nCREATE OPERATOR ?| (\n FUNCTION = eql_v3.\"?|\",\n LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR ?& (\n FUNCTION = eql_v3.\"?&\",\n LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR @? (\n FUNCTION = eql_v3.\"@?\",\n LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR @@ (\n FUNCTION = eql_v3.\"@@\",\n LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR #> (\n FUNCTION = eql_v3.\"#>\",\n LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #>> (\n FUNCTION = eql_v3.\"#>>\",\n LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = text\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = integer\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #- (\n FUNCTION = eql_v3.\"#-\",\n LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = eql_v3.timestamptz_eq\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.timestamptz_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz_eq\n);\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/timestamptz/timestamptz_operators.sql\n--! @brief Operators for eql_v3.timestamptz.\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.timestamptz, RIGHTARG = eql_v3.timestamptz\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.timestamptz, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.timestamptz, RIGHTARG = eql_v3.timestamptz\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.timestamptz, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.timestamptz, RIGHTARG = eql_v3.timestamptz\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.timestamptz, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.timestamptz, RIGHTARG = eql_v3.timestamptz\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.timestamptz, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.timestamptz, RIGHTARG = eql_v3.timestamptz\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.timestamptz, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.timestamptz, RIGHTARG = eql_v3.timestamptz\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.timestamptz, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.timestamptz, RIGHTARG = eql_v3.timestamptz\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.timestamptz, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.timestamptz, RIGHTARG = eql_v3.timestamptz\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.timestamptz, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.timestamptz, RIGHTARG = text\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.timestamptz, RIGHTARG = integer\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.timestamptz, RIGHTARG = text\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.timestamptz, RIGHTARG = integer\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz\n);\n\nCREATE OPERATOR ? (\n FUNCTION = eql_v3.\"?\",\n LEFTARG = eql_v3.timestamptz, RIGHTARG = text\n);\n\nCREATE OPERATOR ?| (\n FUNCTION = eql_v3.\"?|\",\n LEFTARG = eql_v3.timestamptz, RIGHTARG = text[]\n);\n\nCREATE OPERATOR ?& (\n FUNCTION = eql_v3.\"?&\",\n LEFTARG = eql_v3.timestamptz, RIGHTARG = text[]\n);\n\nCREATE OPERATOR @? (\n FUNCTION = eql_v3.\"@?\",\n LEFTARG = eql_v3.timestamptz, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR @@ (\n FUNCTION = eql_v3.\"@@\",\n LEFTARG = eql_v3.timestamptz, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR #> (\n FUNCTION = eql_v3.\"#>\",\n LEFTARG = eql_v3.timestamptz, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #>> (\n FUNCTION = eql_v3.\"#>>\",\n LEFTARG = eql_v3.timestamptz, RIGHTARG = text[]\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.timestamptz, RIGHTARG = text\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.timestamptz, RIGHTARG = integer\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.timestamptz, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #- (\n FUNCTION = eql_v3.\"#-\",\n LEFTARG = eql_v3.timestamptz, RIGHTARG = text[]\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.timestamptz, RIGHTARG = eql_v3.timestamptz\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.timestamptz, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.timestamptz\n);\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/int2/int2_eq_functions.sql\n--! @brief Functions for eql_v3.int2_eq.\n\n--! @brief Index extractor for eql_v3.int2_eq.\n--! @param a eql_v3.int2_eq\n--! @return eql_v3.hmac_256\nCREATE FUNCTION eql_v3.eq_term(a eql_v3.int2_eq)\nRETURNS eql_v3.hmac_256\nLANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.hmac_256(a::jsonb) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_eq.\n--! @param a eql_v3.int2_eq\n--! @param b eql_v3.int2_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.int2_eq, b eql_v3.int2_eq)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a) = eql_v3.eq_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_eq.\n--! @param a eql_v3.int2_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.int2_eq, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a) = eql_v3.eq_term(b::eql_v3.int2_eq) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_eq.\n--! @param a jsonb\n--! @param b eql_v3.int2_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.int2_eq)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a::eql_v3.int2_eq) = eql_v3.eq_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_eq.\n--! @param a eql_v3.int2_eq\n--! @param b eql_v3.int2_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.int2_eq, b eql_v3.int2_eq)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a) <> eql_v3.eq_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_eq.\n--! @param a eql_v3.int2_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.int2_eq, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a) <> eql_v3.eq_term(b::eql_v3.int2_eq) $$;\n\n--! @brief Operator wrapper for eql_v3.int2_eq.\n--! @param a jsonb\n--! @param b eql_v3.int2_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.int2_eq)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a::eql_v3.int2_eq) <> eql_v3.eq_term(b) $$;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a eql_v3.int2_eq\n--! @param b eql_v3.int2_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.int2_eq, b eql_v3.int2_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a eql_v3.int2_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.int2_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a jsonb\n--! @param b eql_v3.int2_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.int2_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a eql_v3.int2_eq\n--! @param b eql_v3.int2_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.int2_eq, b eql_v3.int2_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a eql_v3.int2_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.int2_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a jsonb\n--! @param b eql_v3.int2_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.int2_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a eql_v3.int2_eq\n--! @param b eql_v3.int2_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.int2_eq, b eql_v3.int2_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a eql_v3.int2_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.int2_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a jsonb\n--! @param b eql_v3.int2_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.int2_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a eql_v3.int2_eq\n--! @param b eql_v3.int2_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.int2_eq, b eql_v3.int2_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a eql_v3.int2_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.int2_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a jsonb\n--! @param b eql_v3.int2_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.int2_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a eql_v3.int2_eq\n--! @param b eql_v3.int2_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.int2_eq, b eql_v3.int2_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a eql_v3.int2_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.int2_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a jsonb\n--! @param b eql_v3.int2_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.int2_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a eql_v3.int2_eq\n--! @param b eql_v3.int2_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.int2_eq, b eql_v3.int2_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a eql_v3.int2_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.int2_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a jsonb\n--! @param b eql_v3.int2_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.int2_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a eql_v3.int2_eq\n--! @param selector text\n--! @return eql_v3.int2_eq\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.int2_eq, selector text)\nRETURNS eql_v3.int2_eq IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a eql_v3.int2_eq\n--! @param selector integer\n--! @return eql_v3.int2_eq\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.int2_eq, selector integer)\nRETURNS eql_v3.int2_eq IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a jsonb\n--! @param selector eql_v3.int2_eq\n--! @return eql_v3.int2_eq\nCREATE FUNCTION eql_v3.\"->\"(a jsonb, selector eql_v3.int2_eq)\nRETURNS eql_v3.int2_eq IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a eql_v3.int2_eq\n--! @param selector text\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.int2_eq, selector text)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a eql_v3.int2_eq\n--! @param selector integer\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.int2_eq, selector integer)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a jsonb\n--! @param selector eql_v3.int2_eq\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a jsonb, selector eql_v3.int2_eq)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a eql_v3.int2_eq\n--! @param b text\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?\"(a eql_v3.int2_eq, b text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a eql_v3.int2_eq\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?|\"(a eql_v3.int2_eq, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a eql_v3.int2_eq\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?&\"(a eql_v3.int2_eq, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a eql_v3.int2_eq\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@?\"(a eql_v3.int2_eq, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a eql_v3.int2_eq\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@@\"(a eql_v3.int2_eq, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a eql_v3.int2_eq\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#>\"(a eql_v3.int2_eq, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a eql_v3.int2_eq\n--! @param b text[]\n--! @return text\nCREATE FUNCTION eql_v3.\"#>>\"(a eql_v3.int2_eq, b text[])\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a eql_v3.int2_eq\n--! @param b text\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int2_eq, b text)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a eql_v3.int2_eq\n--! @param b integer\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int2_eq, b integer)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a eql_v3.int2_eq\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int2_eq, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a eql_v3.int2_eq\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#-\"(a eql_v3.int2_eq, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a eql_v3.int2_eq\n--! @param b eql_v3.int2_eq\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.int2_eq, b eql_v3.int2_eq)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a eql_v3.int2_eq\n--! @param b jsonb\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.int2_eq, b jsonb)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int2_eq.\n--! @param a jsonb\n--! @param b eql_v3.int2_eq\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a jsonb, b eql_v3.int2_eq)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int2_eq'; END; $$\nLANGUAGE plpgsql;\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/int2/int2_ord_aggregates.sql\n--! @brief Aggregates for eql_v3.int2_ord.\n\n--! @brief State function for min on eql_v3.int2_ord.\n--! @param state eql_v3.int2_ord\n--! @param value eql_v3.int2_ord\n--! @return eql_v3.int2_ord\nCREATE FUNCTION eql_v3.min_sfunc(state eql_v3.int2_ord, value eql_v3.int2_ord)\nRETURNS eql_v3.int2_ord\nLANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE\nSET search_path = pg_catalog, extensions, public\nAS $$\nBEGIN\n IF value < state THEN\n RETURN value;\n END IF;\n RETURN state;\nEND;\n$$;\n\n--! @brief min aggregate for eql_v3.int2_ord.\n--! @param input eql_v3.int2_ord\n--! @return eql_v3.int2_ord\nCREATE AGGREGATE eql_v3.min(eql_v3.int2_ord) (\n sfunc = eql_v3.min_sfunc,\n stype = eql_v3.int2_ord,\n combinefunc = eql_v3.min_sfunc,\n parallel = safe\n);\n\n--! @brief State function for max on eql_v3.int2_ord.\n--! @param state eql_v3.int2_ord\n--! @param value eql_v3.int2_ord\n--! @return eql_v3.int2_ord\nCREATE FUNCTION eql_v3.max_sfunc(state eql_v3.int2_ord, value eql_v3.int2_ord)\nRETURNS eql_v3.int2_ord\nLANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE\nSET search_path = pg_catalog, extensions, public\nAS $$\nBEGIN\n IF value > state THEN\n RETURN value;\n END IF;\n RETURN state;\nEND;\n$$;\n\n--! @brief max aggregate for eql_v3.int2_ord.\n--! @param input eql_v3.int2_ord\n--! @return eql_v3.int2_ord\nCREATE AGGREGATE eql_v3.max(eql_v3.int2_ord) (\n sfunc = eql_v3.max_sfunc,\n stype = eql_v3.int2_ord,\n combinefunc = eql_v3.max_sfunc,\n parallel = safe\n);\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/int2/int2_operators.sql\n--! @brief Operators for eql_v3.int2.\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.int2, RIGHTARG = eql_v3.int2\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.int2, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.int2, RIGHTARG = eql_v3.int2\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.int2, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.int2, RIGHTARG = eql_v3.int2\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.int2, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.int2, RIGHTARG = eql_v3.int2\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.int2, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.int2, RIGHTARG = eql_v3.int2\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.int2, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.int2, RIGHTARG = eql_v3.int2\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.int2, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.int2, RIGHTARG = eql_v3.int2\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.int2, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.int2, RIGHTARG = eql_v3.int2\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.int2, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.int2, RIGHTARG = text\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.int2, RIGHTARG = integer\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.int2, RIGHTARG = text\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.int2, RIGHTARG = integer\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2\n);\n\nCREATE OPERATOR ? (\n FUNCTION = eql_v3.\"?\",\n LEFTARG = eql_v3.int2, RIGHTARG = text\n);\n\nCREATE OPERATOR ?| (\n FUNCTION = eql_v3.\"?|\",\n LEFTARG = eql_v3.int2, RIGHTARG = text[]\n);\n\nCREATE OPERATOR ?& (\n FUNCTION = eql_v3.\"?&\",\n LEFTARG = eql_v3.int2, RIGHTARG = text[]\n);\n\nCREATE OPERATOR @? (\n FUNCTION = eql_v3.\"@?\",\n LEFTARG = eql_v3.int2, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR @@ (\n FUNCTION = eql_v3.\"@@\",\n LEFTARG = eql_v3.int2, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR #> (\n FUNCTION = eql_v3.\"#>\",\n LEFTARG = eql_v3.int2, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #>> (\n FUNCTION = eql_v3.\"#>>\",\n LEFTARG = eql_v3.int2, RIGHTARG = text[]\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int2, RIGHTARG = text\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int2, RIGHTARG = integer\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int2, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #- (\n FUNCTION = eql_v3.\"#-\",\n LEFTARG = eql_v3.int2, RIGHTARG = text[]\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.int2, RIGHTARG = eql_v3.int2\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.int2, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2\n);\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/int2/int2_eq_operators.sql\n--! @brief Operators for eql_v3.int2_eq.\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.int2_eq, RIGHTARG = eql_v3.int2_eq,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.int2_eq, RIGHTARG = jsonb,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2_eq,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.int2_eq, RIGHTARG = eql_v3.int2_eq,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.int2_eq, RIGHTARG = jsonb,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2_eq,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.int2_eq, RIGHTARG = eql_v3.int2_eq\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.int2_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2_eq\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.int2_eq, RIGHTARG = eql_v3.int2_eq\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.int2_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2_eq\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.int2_eq, RIGHTARG = eql_v3.int2_eq\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.int2_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2_eq\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.int2_eq, RIGHTARG = eql_v3.int2_eq\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.int2_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2_eq\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.int2_eq, RIGHTARG = eql_v3.int2_eq\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.int2_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2_eq\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.int2_eq, RIGHTARG = eql_v3.int2_eq\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.int2_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2_eq\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.int2_eq, RIGHTARG = text\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.int2_eq, RIGHTARG = integer\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2_eq\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.int2_eq, RIGHTARG = text\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.int2_eq, RIGHTARG = integer\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2_eq\n);\n\nCREATE OPERATOR ? (\n FUNCTION = eql_v3.\"?\",\n LEFTARG = eql_v3.int2_eq, RIGHTARG = text\n);\n\nCREATE OPERATOR ?| (\n FUNCTION = eql_v3.\"?|\",\n LEFTARG = eql_v3.int2_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR ?& (\n FUNCTION = eql_v3.\"?&\",\n LEFTARG = eql_v3.int2_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR @? (\n FUNCTION = eql_v3.\"@?\",\n LEFTARG = eql_v3.int2_eq, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR @@ (\n FUNCTION = eql_v3.\"@@\",\n LEFTARG = eql_v3.int2_eq, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR #> (\n FUNCTION = eql_v3.\"#>\",\n LEFTARG = eql_v3.int2_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #>> (\n FUNCTION = eql_v3.\"#>>\",\n LEFTARG = eql_v3.int2_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int2_eq, RIGHTARG = text\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int2_eq, RIGHTARG = integer\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int2_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #- (\n FUNCTION = eql_v3.\"#-\",\n LEFTARG = eql_v3.int2_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.int2_eq, RIGHTARG = eql_v3.int2_eq\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.int2_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int2_eq\n);\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/int2/int2_ord_ore_aggregates.sql\n--! @brief Aggregates for eql_v3.int2_ord_ore.\n\n--! @brief State function for min on eql_v3.int2_ord_ore.\n--! @param state eql_v3.int2_ord_ore\n--! @param value eql_v3.int2_ord_ore\n--! @return eql_v3.int2_ord_ore\nCREATE FUNCTION eql_v3.min_sfunc(state eql_v3.int2_ord_ore, value eql_v3.int2_ord_ore)\nRETURNS eql_v3.int2_ord_ore\nLANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE\nSET search_path = pg_catalog, extensions, public\nAS $$\nBEGIN\n IF value < state THEN\n RETURN value;\n END IF;\n RETURN state;\nEND;\n$$;\n\n--! @brief min aggregate for eql_v3.int2_ord_ore.\n--! @param input eql_v3.int2_ord_ore\n--! @return eql_v3.int2_ord_ore\nCREATE AGGREGATE eql_v3.min(eql_v3.int2_ord_ore) (\n sfunc = eql_v3.min_sfunc,\n stype = eql_v3.int2_ord_ore,\n combinefunc = eql_v3.min_sfunc,\n parallel = safe\n);\n\n--! @brief State function for max on eql_v3.int2_ord_ore.\n--! @param state eql_v3.int2_ord_ore\n--! @param value eql_v3.int2_ord_ore\n--! @return eql_v3.int2_ord_ore\nCREATE FUNCTION eql_v3.max_sfunc(state eql_v3.int2_ord_ore, value eql_v3.int2_ord_ore)\nRETURNS eql_v3.int2_ord_ore\nLANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE\nSET search_path = pg_catalog, extensions, public\nAS $$\nBEGIN\n IF value > state THEN\n RETURN value;\n END IF;\n RETURN state;\nEND;\n$$;\n\n--! @brief max aggregate for eql_v3.int2_ord_ore.\n--! @param input eql_v3.int2_ord_ore\n--! @return eql_v3.int2_ord_ore\nCREATE AGGREGATE eql_v3.max(eql_v3.int2_ord_ore) (\n sfunc = eql_v3.max_sfunc,\n stype = eql_v3.int2_ord_ore,\n combinefunc = eql_v3.max_sfunc,\n parallel = safe\n);\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/date/date_ord_functions.sql\n--! @brief Functions for eql_v3.date_ord.\n\n--! @brief Index extractor for eql_v3.date_ord.\n--! @param a eql_v3.date_ord\n--! @return eql_v3.ore_block_u64_8_256\nCREATE FUNCTION eql_v3.ord_term(a eql_v3.date_ord)\nRETURNS eql_v3.ore_block_u64_8_256\nLANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ore_block_u64_8_256(a::jsonb) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord.\n--! @param a eql_v3.date_ord\n--! @param b eql_v3.date_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.date_ord, b eql_v3.date_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord.\n--! @param a eql_v3.date_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.date_ord, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b::eql_v3.date_ord) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord.\n--! @param a jsonb\n--! @param b eql_v3.date_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.date_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.date_ord) = eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord.\n--! @param a eql_v3.date_ord\n--! @param b eql_v3.date_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.date_ord, b eql_v3.date_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord.\n--! @param a eql_v3.date_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.date_ord, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b::eql_v3.date_ord) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord.\n--! @param a jsonb\n--! @param b eql_v3.date_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.date_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.date_ord) <> eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord.\n--! @param a eql_v3.date_ord\n--! @param b eql_v3.date_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.date_ord, b eql_v3.date_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord.\n--! @param a eql_v3.date_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.date_ord, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b::eql_v3.date_ord) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord.\n--! @param a jsonb\n--! @param b eql_v3.date_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.date_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.date_ord) < eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord.\n--! @param a eql_v3.date_ord\n--! @param b eql_v3.date_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.date_ord, b eql_v3.date_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord.\n--! @param a eql_v3.date_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.date_ord, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b::eql_v3.date_ord) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord.\n--! @param a jsonb\n--! @param b eql_v3.date_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.date_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.date_ord) <= eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord.\n--! @param a eql_v3.date_ord\n--! @param b eql_v3.date_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.date_ord, b eql_v3.date_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord.\n--! @param a eql_v3.date_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.date_ord, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b::eql_v3.date_ord) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord.\n--! @param a jsonb\n--! @param b eql_v3.date_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.date_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.date_ord) > eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord.\n--! @param a eql_v3.date_ord\n--! @param b eql_v3.date_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.date_ord, b eql_v3.date_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord.\n--! @param a eql_v3.date_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.date_ord, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b::eql_v3.date_ord) $$;\n\n--! @brief Operator wrapper for eql_v3.date_ord.\n--! @param a jsonb\n--! @param b eql_v3.date_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.date_ord)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.date_ord) >= eql_v3.ord_term(b) $$;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord.\n--! @param a eql_v3.date_ord\n--! @param b eql_v3.date_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.date_ord, b eql_v3.date_ord)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.date_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord.\n--! @param a eql_v3.date_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.date_ord, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.date_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord.\n--! @param a jsonb\n--! @param b eql_v3.date_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.date_ord)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.date_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord.\n--! @param a eql_v3.date_ord\n--! @param b eql_v3.date_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.date_ord, b eql_v3.date_ord)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.date_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord.\n--! @param a eql_v3.date_ord\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.date_ord, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.date_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord.\n--! @param a jsonb\n--! @param b eql_v3.date_ord\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.date_ord)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.date_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord.\n--! @param a eql_v3.date_ord\n--! @param selector text\n--! @return eql_v3.date_ord\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.date_ord, selector text)\nRETURNS eql_v3.date_ord IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.date_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord.\n--! @param a eql_v3.date_ord\n--! @param selector integer\n--! @return eql_v3.date_ord\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.date_ord, selector integer)\nRETURNS eql_v3.date_ord IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.date_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord.\n--! @param a jsonb\n--! @param selector eql_v3.date_ord\n--! @return eql_v3.date_ord\nCREATE FUNCTION eql_v3.\"->\"(a jsonb, selector eql_v3.date_ord)\nRETURNS eql_v3.date_ord IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.date_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord.\n--! @param a eql_v3.date_ord\n--! @param selector text\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.date_ord, selector text)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.date_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord.\n--! @param a eql_v3.date_ord\n--! @param selector integer\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.date_ord, selector integer)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.date_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord.\n--! @param a jsonb\n--! @param selector eql_v3.date_ord\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a jsonb, selector eql_v3.date_ord)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.date_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord.\n--! @param a eql_v3.date_ord\n--! @param b text\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?\"(a eql_v3.date_ord, b text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.date_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord.\n--! @param a eql_v3.date_ord\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?|\"(a eql_v3.date_ord, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.date_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord.\n--! @param a eql_v3.date_ord\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?&\"(a eql_v3.date_ord, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.date_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord.\n--! @param a eql_v3.date_ord\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@?\"(a eql_v3.date_ord, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.date_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord.\n--! @param a eql_v3.date_ord\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@@\"(a eql_v3.date_ord, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.date_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord.\n--! @param a eql_v3.date_ord\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#>\"(a eql_v3.date_ord, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.date_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord.\n--! @param a eql_v3.date_ord\n--! @param b text[]\n--! @return text\nCREATE FUNCTION eql_v3.\"#>>\"(a eql_v3.date_ord, b text[])\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.date_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord.\n--! @param a eql_v3.date_ord\n--! @param b text\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.date_ord, b text)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.date_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord.\n--! @param a eql_v3.date_ord\n--! @param b integer\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.date_ord, b integer)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.date_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord.\n--! @param a eql_v3.date_ord\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.date_ord, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.date_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord.\n--! @param a eql_v3.date_ord\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#-\"(a eql_v3.date_ord, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.date_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord.\n--! @param a eql_v3.date_ord\n--! @param b eql_v3.date_ord\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.date_ord, b eql_v3.date_ord)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.date_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord.\n--! @param a eql_v3.date_ord\n--! @param b jsonb\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.date_ord, b jsonb)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.date_ord'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.date_ord.\n--! @param a jsonb\n--! @param b eql_v3.date_ord\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a jsonb, b eql_v3.date_ord)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.date_ord'; END; $$\nLANGUAGE plpgsql;\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/date/date_eq_operators.sql\n--! @brief Operators for eql_v3.date_eq.\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.date_eq, RIGHTARG = eql_v3.date_eq,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.date_eq, RIGHTARG = jsonb,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.date_eq,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.date_eq, RIGHTARG = eql_v3.date_eq,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.date_eq, RIGHTARG = jsonb,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.date_eq,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.date_eq, RIGHTARG = eql_v3.date_eq\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.date_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.date_eq\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.date_eq, RIGHTARG = eql_v3.date_eq\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.date_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.date_eq\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.date_eq, RIGHTARG = eql_v3.date_eq\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.date_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.date_eq\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.date_eq, RIGHTARG = eql_v3.date_eq\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.date_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.date_eq\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.date_eq, RIGHTARG = eql_v3.date_eq\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.date_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = jsonb, RIGHTARG = eql_v3.date_eq\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.date_eq, RIGHTARG = eql_v3.date_eq\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.date_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = jsonb, RIGHTARG = eql_v3.date_eq\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.date_eq, RIGHTARG = text\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.date_eq, RIGHTARG = integer\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.date_eq\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.date_eq, RIGHTARG = text\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.date_eq, RIGHTARG = integer\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.date_eq\n);\n\nCREATE OPERATOR ? (\n FUNCTION = eql_v3.\"?\",\n LEFTARG = eql_v3.date_eq, RIGHTARG = text\n);\n\nCREATE OPERATOR ?| (\n FUNCTION = eql_v3.\"?|\",\n LEFTARG = eql_v3.date_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR ?& (\n FUNCTION = eql_v3.\"?&\",\n LEFTARG = eql_v3.date_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR @? (\n FUNCTION = eql_v3.\"@?\",\n LEFTARG = eql_v3.date_eq, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR @@ (\n FUNCTION = eql_v3.\"@@\",\n LEFTARG = eql_v3.date_eq, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR #> (\n FUNCTION = eql_v3.\"#>\",\n LEFTARG = eql_v3.date_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #>> (\n FUNCTION = eql_v3.\"#>>\",\n LEFTARG = eql_v3.date_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.date_eq, RIGHTARG = text\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.date_eq, RIGHTARG = integer\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.date_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #- (\n FUNCTION = eql_v3.\"#-\",\n LEFTARG = eql_v3.date_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.date_eq, RIGHTARG = eql_v3.date_eq\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.date_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.date_eq\n);\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/date/date_operators.sql\n--! @brief Operators for eql_v3.date.\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.date, RIGHTARG = eql_v3.date\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.date, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.date\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.date, RIGHTARG = eql_v3.date\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.date, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.date\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.date, RIGHTARG = eql_v3.date\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.date, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.date\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.date, RIGHTARG = eql_v3.date\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.date, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.date\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.date, RIGHTARG = eql_v3.date\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.date, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.date\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.date, RIGHTARG = eql_v3.date\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.date, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.date\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.date, RIGHTARG = eql_v3.date\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.date, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = jsonb, RIGHTARG = eql_v3.date\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.date, RIGHTARG = eql_v3.date\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.date, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = jsonb, RIGHTARG = eql_v3.date\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.date, RIGHTARG = text\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.date, RIGHTARG = integer\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.date\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.date, RIGHTARG = text\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.date, RIGHTARG = integer\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.date\n);\n\nCREATE OPERATOR ? (\n FUNCTION = eql_v3.\"?\",\n LEFTARG = eql_v3.date, RIGHTARG = text\n);\n\nCREATE OPERATOR ?| (\n FUNCTION = eql_v3.\"?|\",\n LEFTARG = eql_v3.date, RIGHTARG = text[]\n);\n\nCREATE OPERATOR ?& (\n FUNCTION = eql_v3.\"?&\",\n LEFTARG = eql_v3.date, RIGHTARG = text[]\n);\n\nCREATE OPERATOR @? (\n FUNCTION = eql_v3.\"@?\",\n LEFTARG = eql_v3.date, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR @@ (\n FUNCTION = eql_v3.\"@@\",\n LEFTARG = eql_v3.date, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR #> (\n FUNCTION = eql_v3.\"#>\",\n LEFTARG = eql_v3.date, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #>> (\n FUNCTION = eql_v3.\"#>>\",\n LEFTARG = eql_v3.date, RIGHTARG = text[]\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.date, RIGHTARG = text\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.date, RIGHTARG = integer\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.date, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #- (\n FUNCTION = eql_v3.\"#-\",\n LEFTARG = eql_v3.date, RIGHTARG = text[]\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.date, RIGHTARG = eql_v3.date\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.date, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.date\n);\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/date/date_ord_ore_aggregates.sql\n--! @brief Aggregates for eql_v3.date_ord_ore.\n\n--! @brief State function for min on eql_v3.date_ord_ore.\n--! @param state eql_v3.date_ord_ore\n--! @param value eql_v3.date_ord_ore\n--! @return eql_v3.date_ord_ore\nCREATE FUNCTION eql_v3.min_sfunc(state eql_v3.date_ord_ore, value eql_v3.date_ord_ore)\nRETURNS eql_v3.date_ord_ore\nLANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE\nSET search_path = pg_catalog, extensions, public\nAS $$\nBEGIN\n IF value < state THEN\n RETURN value;\n END IF;\n RETURN state;\nEND;\n$$;\n\n--! @brief min aggregate for eql_v3.date_ord_ore.\n--! @param input eql_v3.date_ord_ore\n--! @return eql_v3.date_ord_ore\nCREATE AGGREGATE eql_v3.min(eql_v3.date_ord_ore) (\n sfunc = eql_v3.min_sfunc,\n stype = eql_v3.date_ord_ore,\n combinefunc = eql_v3.min_sfunc,\n parallel = safe\n);\n\n--! @brief State function for max on eql_v3.date_ord_ore.\n--! @param state eql_v3.date_ord_ore\n--! @param value eql_v3.date_ord_ore\n--! @return eql_v3.date_ord_ore\nCREATE FUNCTION eql_v3.max_sfunc(state eql_v3.date_ord_ore, value eql_v3.date_ord_ore)\nRETURNS eql_v3.date_ord_ore\nLANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE\nSET search_path = pg_catalog, extensions, public\nAS $$\nBEGIN\n IF value > state THEN\n RETURN value;\n END IF;\n RETURN state;\nEND;\n$$;\n\n--! @brief max aggregate for eql_v3.date_ord_ore.\n--! @param input eql_v3.date_ord_ore\n--! @return eql_v3.date_ord_ore\nCREATE AGGREGATE eql_v3.max(eql_v3.date_ord_ore) (\n sfunc = eql_v3.max_sfunc,\n stype = eql_v3.date_ord_ore,\n combinefunc = eql_v3.max_sfunc,\n parallel = safe\n);\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/date/date_ord_operators.sql\n--! @brief Operators for eql_v3.date_ord.\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.date_ord, RIGHTARG = eql_v3.date_ord,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.date_ord, RIGHTARG = jsonb,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.date_ord, RIGHTARG = eql_v3.date_ord,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.date_ord, RIGHTARG = jsonb,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.date_ord, RIGHTARG = eql_v3.date_ord,\n COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.date_ord, RIGHTARG = jsonb,\n COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord,\n COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.date_ord, RIGHTARG = eql_v3.date_ord,\n COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.date_ord, RIGHTARG = jsonb,\n COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord,\n COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.date_ord, RIGHTARG = eql_v3.date_ord,\n COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.date_ord, RIGHTARG = jsonb,\n COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord,\n COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.date_ord, RIGHTARG = eql_v3.date_ord,\n COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.date_ord, RIGHTARG = jsonb,\n COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord,\n COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.date_ord, RIGHTARG = eql_v3.date_ord\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.date_ord, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.date_ord, RIGHTARG = eql_v3.date_ord\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.date_ord, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.date_ord, RIGHTARG = text\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.date_ord, RIGHTARG = integer\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.date_ord, RIGHTARG = text\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.date_ord, RIGHTARG = integer\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord\n);\n\nCREATE OPERATOR ? (\n FUNCTION = eql_v3.\"?\",\n LEFTARG = eql_v3.date_ord, RIGHTARG = text\n);\n\nCREATE OPERATOR ?| (\n FUNCTION = eql_v3.\"?|\",\n LEFTARG = eql_v3.date_ord, RIGHTARG = text[]\n);\n\nCREATE OPERATOR ?& (\n FUNCTION = eql_v3.\"?&\",\n LEFTARG = eql_v3.date_ord, RIGHTARG = text[]\n);\n\nCREATE OPERATOR @? (\n FUNCTION = eql_v3.\"@?\",\n LEFTARG = eql_v3.date_ord, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR @@ (\n FUNCTION = eql_v3.\"@@\",\n LEFTARG = eql_v3.date_ord, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR #> (\n FUNCTION = eql_v3.\"#>\",\n LEFTARG = eql_v3.date_ord, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #>> (\n FUNCTION = eql_v3.\"#>>\",\n LEFTARG = eql_v3.date_ord, RIGHTARG = text[]\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.date_ord, RIGHTARG = text\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.date_ord, RIGHTARG = integer\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.date_ord, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #- (\n FUNCTION = eql_v3.\"#-\",\n LEFTARG = eql_v3.date_ord, RIGHTARG = text[]\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.date_ord, RIGHTARG = eql_v3.date_ord\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.date_ord, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.date_ord\n);\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/date/date_ord_aggregates.sql\n--! @brief Aggregates for eql_v3.date_ord.\n\n--! @brief State function for min on eql_v3.date_ord.\n--! @param state eql_v3.date_ord\n--! @param value eql_v3.date_ord\n--! @return eql_v3.date_ord\nCREATE FUNCTION eql_v3.min_sfunc(state eql_v3.date_ord, value eql_v3.date_ord)\nRETURNS eql_v3.date_ord\nLANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE\nSET search_path = pg_catalog, extensions, public\nAS $$\nBEGIN\n IF value < state THEN\n RETURN value;\n END IF;\n RETURN state;\nEND;\n$$;\n\n--! @brief min aggregate for eql_v3.date_ord.\n--! @param input eql_v3.date_ord\n--! @return eql_v3.date_ord\nCREATE AGGREGATE eql_v3.min(eql_v3.date_ord) (\n sfunc = eql_v3.min_sfunc,\n stype = eql_v3.date_ord,\n combinefunc = eql_v3.min_sfunc,\n parallel = safe\n);\n\n--! @brief State function for max on eql_v3.date_ord.\n--! @param state eql_v3.date_ord\n--! @param value eql_v3.date_ord\n--! @return eql_v3.date_ord\nCREATE FUNCTION eql_v3.max_sfunc(state eql_v3.date_ord, value eql_v3.date_ord)\nRETURNS eql_v3.date_ord\nLANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE\nSET search_path = pg_catalog, extensions, public\nAS $$\nBEGIN\n IF value > state THEN\n RETURN value;\n END IF;\n RETURN state;\nEND;\n$$;\n\n--! @brief max aggregate for eql_v3.date_ord.\n--! @param input eql_v3.date_ord\n--! @return eql_v3.date_ord\nCREATE AGGREGATE eql_v3.max(eql_v3.date_ord) (\n sfunc = eql_v3.max_sfunc,\n stype = eql_v3.date_ord,\n combinefunc = eql_v3.max_sfunc,\n parallel = safe\n);\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/int8/int8_operators.sql\n--! @brief Operators for eql_v3.int8.\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.int8, RIGHTARG = eql_v3.int8\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.int8, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.int8, RIGHTARG = eql_v3.int8\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.int8, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.int8, RIGHTARG = eql_v3.int8\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.int8, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.int8, RIGHTARG = eql_v3.int8\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.int8, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.int8, RIGHTARG = eql_v3.int8\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.int8, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.int8, RIGHTARG = eql_v3.int8\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.int8, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.int8, RIGHTARG = eql_v3.int8\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.int8, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.int8, RIGHTARG = eql_v3.int8\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.int8, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.int8, RIGHTARG = text\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.int8, RIGHTARG = integer\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.int8, RIGHTARG = text\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.int8, RIGHTARG = integer\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8\n);\n\nCREATE OPERATOR ? (\n FUNCTION = eql_v3.\"?\",\n LEFTARG = eql_v3.int8, RIGHTARG = text\n);\n\nCREATE OPERATOR ?| (\n FUNCTION = eql_v3.\"?|\",\n LEFTARG = eql_v3.int8, RIGHTARG = text[]\n);\n\nCREATE OPERATOR ?& (\n FUNCTION = eql_v3.\"?&\",\n LEFTARG = eql_v3.int8, RIGHTARG = text[]\n);\n\nCREATE OPERATOR @? (\n FUNCTION = eql_v3.\"@?\",\n LEFTARG = eql_v3.int8, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR @@ (\n FUNCTION = eql_v3.\"@@\",\n LEFTARG = eql_v3.int8, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR #> (\n FUNCTION = eql_v3.\"#>\",\n LEFTARG = eql_v3.int8, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #>> (\n FUNCTION = eql_v3.\"#>>\",\n LEFTARG = eql_v3.int8, RIGHTARG = text[]\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int8, RIGHTARG = text\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int8, RIGHTARG = integer\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int8, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #- (\n FUNCTION = eql_v3.\"#-\",\n LEFTARG = eql_v3.int8, RIGHTARG = text[]\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.int8, RIGHTARG = eql_v3.int8\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.int8, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8\n);\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/int8/int8_eq_functions.sql\n--! @brief Functions for eql_v3.int8_eq.\n\n--! @brief Index extractor for eql_v3.int8_eq.\n--! @param a eql_v3.int8_eq\n--! @return eql_v3.hmac_256\nCREATE FUNCTION eql_v3.eq_term(a eql_v3.int8_eq)\nRETURNS eql_v3.hmac_256\nLANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.hmac_256(a::jsonb) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_eq.\n--! @param a eql_v3.int8_eq\n--! @param b eql_v3.int8_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.int8_eq, b eql_v3.int8_eq)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a) = eql_v3.eq_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_eq.\n--! @param a eql_v3.int8_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.int8_eq, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a) = eql_v3.eq_term(b::eql_v3.int8_eq) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_eq.\n--! @param a jsonb\n--! @param b eql_v3.int8_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.int8_eq)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a::eql_v3.int8_eq) = eql_v3.eq_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_eq.\n--! @param a eql_v3.int8_eq\n--! @param b eql_v3.int8_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.int8_eq, b eql_v3.int8_eq)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a) <> eql_v3.eq_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_eq.\n--! @param a eql_v3.int8_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.int8_eq, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a) <> eql_v3.eq_term(b::eql_v3.int8_eq) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_eq.\n--! @param a jsonb\n--! @param b eql_v3.int8_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.int8_eq)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.eq_term(a::eql_v3.int8_eq) <> eql_v3.eq_term(b) $$;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a eql_v3.int8_eq\n--! @param b eql_v3.int8_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.int8_eq, b eql_v3.int8_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a eql_v3.int8_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.int8_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a jsonb\n--! @param b eql_v3.int8_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.int8_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a eql_v3.int8_eq\n--! @param b eql_v3.int8_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.int8_eq, b eql_v3.int8_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a eql_v3.int8_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.int8_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a jsonb\n--! @param b eql_v3.int8_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.int8_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a eql_v3.int8_eq\n--! @param b eql_v3.int8_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.int8_eq, b eql_v3.int8_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a eql_v3.int8_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.int8_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a jsonb\n--! @param b eql_v3.int8_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.int8_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a eql_v3.int8_eq\n--! @param b eql_v3.int8_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.int8_eq, b eql_v3.int8_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a eql_v3.int8_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.int8_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a jsonb\n--! @param b eql_v3.int8_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.int8_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a eql_v3.int8_eq\n--! @param b eql_v3.int8_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.int8_eq, b eql_v3.int8_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a eql_v3.int8_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.int8_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a jsonb\n--! @param b eql_v3.int8_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.int8_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a eql_v3.int8_eq\n--! @param b eql_v3.int8_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.int8_eq, b eql_v3.int8_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a eql_v3.int8_eq\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.int8_eq, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a jsonb\n--! @param b eql_v3.int8_eq\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.int8_eq)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a eql_v3.int8_eq\n--! @param selector text\n--! @return eql_v3.int8_eq\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.int8_eq, selector text)\nRETURNS eql_v3.int8_eq IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a eql_v3.int8_eq\n--! @param selector integer\n--! @return eql_v3.int8_eq\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.int8_eq, selector integer)\nRETURNS eql_v3.int8_eq IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a jsonb\n--! @param selector eql_v3.int8_eq\n--! @return eql_v3.int8_eq\nCREATE FUNCTION eql_v3.\"->\"(a jsonb, selector eql_v3.int8_eq)\nRETURNS eql_v3.int8_eq IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a eql_v3.int8_eq\n--! @param selector text\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.int8_eq, selector text)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a eql_v3.int8_eq\n--! @param selector integer\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.int8_eq, selector integer)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a jsonb\n--! @param selector eql_v3.int8_eq\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a jsonb, selector eql_v3.int8_eq)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a eql_v3.int8_eq\n--! @param b text\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?\"(a eql_v3.int8_eq, b text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a eql_v3.int8_eq\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?|\"(a eql_v3.int8_eq, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a eql_v3.int8_eq\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?&\"(a eql_v3.int8_eq, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a eql_v3.int8_eq\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@?\"(a eql_v3.int8_eq, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a eql_v3.int8_eq\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@@\"(a eql_v3.int8_eq, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a eql_v3.int8_eq\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#>\"(a eql_v3.int8_eq, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a eql_v3.int8_eq\n--! @param b text[]\n--! @return text\nCREATE FUNCTION eql_v3.\"#>>\"(a eql_v3.int8_eq, b text[])\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a eql_v3.int8_eq\n--! @param b text\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int8_eq, b text)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a eql_v3.int8_eq\n--! @param b integer\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int8_eq, b integer)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a eql_v3.int8_eq\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int8_eq, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a eql_v3.int8_eq\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#-\"(a eql_v3.int8_eq, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a eql_v3.int8_eq\n--! @param b eql_v3.int8_eq\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.int8_eq, b eql_v3.int8_eq)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a eql_v3.int8_eq\n--! @param b jsonb\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.int8_eq, b jsonb)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_eq.\n--! @param a jsonb\n--! @param b eql_v3.int8_eq\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a jsonb, b eql_v3.int8_eq)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int8_eq'; END; $$\nLANGUAGE plpgsql;\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/int8/int8_ord_ore_functions.sql\n--! @brief Functions for eql_v3.int8_ord_ore.\n\n--! @brief Index extractor for eql_v3.int8_ord_ore.\n--! @param a eql_v3.int8_ord_ore\n--! @return eql_v3.ore_block_u64_8_256\nCREATE FUNCTION eql_v3.ord_term(a eql_v3.int8_ord_ore)\nRETURNS eql_v3.ore_block_u64_8_256\nLANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ore_block_u64_8_256(a::jsonb) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord_ore.\n--! @param a eql_v3.int8_ord_ore\n--! @param b eql_v3.int8_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.int8_ord_ore, b eql_v3.int8_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord_ore.\n--! @param a eql_v3.int8_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.int8_ord_ore, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) = eql_v3.ord_term(b::eql_v3.int8_ord_ore) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.int8_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.int8_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int8_ord_ore) = eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord_ore.\n--! @param a eql_v3.int8_ord_ore\n--! @param b eql_v3.int8_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.int8_ord_ore, b eql_v3.int8_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord_ore.\n--! @param a eql_v3.int8_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.int8_ord_ore, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <> eql_v3.ord_term(b::eql_v3.int8_ord_ore) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.int8_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.int8_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int8_ord_ore) <> eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord_ore.\n--! @param a eql_v3.int8_ord_ore\n--! @param b eql_v3.int8_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.int8_ord_ore, b eql_v3.int8_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord_ore.\n--! @param a eql_v3.int8_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.int8_ord_ore, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) < eql_v3.ord_term(b::eql_v3.int8_ord_ore) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.int8_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.int8_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int8_ord_ore) < eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord_ore.\n--! @param a eql_v3.int8_ord_ore\n--! @param b eql_v3.int8_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.int8_ord_ore, b eql_v3.int8_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord_ore.\n--! @param a eql_v3.int8_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.int8_ord_ore, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) <= eql_v3.ord_term(b::eql_v3.int8_ord_ore) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.int8_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.int8_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int8_ord_ore) <= eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord_ore.\n--! @param a eql_v3.int8_ord_ore\n--! @param b eql_v3.int8_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.int8_ord_ore, b eql_v3.int8_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord_ore.\n--! @param a eql_v3.int8_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.int8_ord_ore, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) > eql_v3.ord_term(b::eql_v3.int8_ord_ore) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.int8_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.int8_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int8_ord_ore) > eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord_ore.\n--! @param a eql_v3.int8_ord_ore\n--! @param b eql_v3.int8_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.int8_ord_ore, b eql_v3.int8_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord_ore.\n--! @param a eql_v3.int8_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.int8_ord_ore, b jsonb)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a) >= eql_v3.ord_term(b::eql_v3.int8_ord_ore) $$;\n\n--! @brief Operator wrapper for eql_v3.int8_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.int8_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.int8_ord_ore)\nRETURNS boolean LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE\nAS $$ SELECT eql_v3.ord_term(a::eql_v3.int8_ord_ore) >= eql_v3.ord_term(b) $$;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore.\n--! @param a eql_v3.int8_ord_ore\n--! @param b eql_v3.int8_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.int8_ord_ore, b eql_v3.int8_ord_ore)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int8_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore.\n--! @param a eql_v3.int8_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.int8_ord_ore, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int8_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.int8_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.int8_ord_ore)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.int8_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore.\n--! @param a eql_v3.int8_ord_ore\n--! @param b eql_v3.int8_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.int8_ord_ore, b eql_v3.int8_ord_ore)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int8_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore.\n--! @param a eql_v3.int8_ord_ore\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.int8_ord_ore, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int8_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.int8_ord_ore\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.int8_ord_ore)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.int8_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore.\n--! @param a eql_v3.int8_ord_ore\n--! @param selector text\n--! @return eql_v3.int8_ord_ore\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.int8_ord_ore, selector text)\nRETURNS eql_v3.int8_ord_ore IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int8_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore.\n--! @param a eql_v3.int8_ord_ore\n--! @param selector integer\n--! @return eql_v3.int8_ord_ore\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.int8_ord_ore, selector integer)\nRETURNS eql_v3.int8_ord_ore IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int8_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore.\n--! @param a jsonb\n--! @param selector eql_v3.int8_ord_ore\n--! @return eql_v3.int8_ord_ore\nCREATE FUNCTION eql_v3.\"->\"(a jsonb, selector eql_v3.int8_ord_ore)\nRETURNS eql_v3.int8_ord_ore IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.int8_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore.\n--! @param a eql_v3.int8_ord_ore\n--! @param selector text\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.int8_ord_ore, selector text)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int8_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore.\n--! @param a eql_v3.int8_ord_ore\n--! @param selector integer\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.int8_ord_ore, selector integer)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int8_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore.\n--! @param a jsonb\n--! @param selector eql_v3.int8_ord_ore\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a jsonb, selector eql_v3.int8_ord_ore)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.int8_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore.\n--! @param a eql_v3.int8_ord_ore\n--! @param b text\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?\"(a eql_v3.int8_ord_ore, b text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.int8_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore.\n--! @param a eql_v3.int8_ord_ore\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?|\"(a eql_v3.int8_ord_ore, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.int8_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore.\n--! @param a eql_v3.int8_ord_ore\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?&\"(a eql_v3.int8_ord_ore, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.int8_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore.\n--! @param a eql_v3.int8_ord_ore\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@?\"(a eql_v3.int8_ord_ore, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.int8_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore.\n--! @param a eql_v3.int8_ord_ore\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@@\"(a eql_v3.int8_ord_ore, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.int8_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore.\n--! @param a eql_v3.int8_ord_ore\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#>\"(a eql_v3.int8_ord_ore, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.int8_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore.\n--! @param a eql_v3.int8_ord_ore\n--! @param b text[]\n--! @return text\nCREATE FUNCTION eql_v3.\"#>>\"(a eql_v3.int8_ord_ore, b text[])\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.int8_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore.\n--! @param a eql_v3.int8_ord_ore\n--! @param b text\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int8_ord_ore, b text)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int8_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore.\n--! @param a eql_v3.int8_ord_ore\n--! @param b integer\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int8_ord_ore, b integer)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int8_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore.\n--! @param a eql_v3.int8_ord_ore\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.int8_ord_ore, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.int8_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore.\n--! @param a eql_v3.int8_ord_ore\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#-\"(a eql_v3.int8_ord_ore, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.int8_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore.\n--! @param a eql_v3.int8_ord_ore\n--! @param b eql_v3.int8_ord_ore\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.int8_ord_ore, b eql_v3.int8_ord_ore)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int8_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore.\n--! @param a eql_v3.int8_ord_ore\n--! @param b jsonb\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.int8_ord_ore, b jsonb)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int8_ord_ore'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.int8_ord_ore.\n--! @param a jsonb\n--! @param b eql_v3.int8_ord_ore\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a jsonb, b eql_v3.int8_ord_ore)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.int8_ord_ore'; END; $$\nLANGUAGE plpgsql;\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/int8/int8_ord_operators.sql\n--! @brief Operators for eql_v3.int8_ord.\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.int8_ord, RIGHTARG = eql_v3.int8_ord,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.int8_ord, RIGHTARG = jsonb,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.int8_ord, RIGHTARG = eql_v3.int8_ord,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.int8_ord, RIGHTARG = jsonb,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.int8_ord, RIGHTARG = eql_v3.int8_ord,\n COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.int8_ord, RIGHTARG = jsonb,\n COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord,\n COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.int8_ord, RIGHTARG = eql_v3.int8_ord,\n COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.int8_ord, RIGHTARG = jsonb,\n COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord,\n COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.int8_ord, RIGHTARG = eql_v3.int8_ord,\n COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.int8_ord, RIGHTARG = jsonb,\n COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord,\n COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.int8_ord, RIGHTARG = eql_v3.int8_ord,\n COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.int8_ord, RIGHTARG = jsonb,\n COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord,\n COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.int8_ord, RIGHTARG = eql_v3.int8_ord\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.int8_ord, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.int8_ord, RIGHTARG = eql_v3.int8_ord\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.int8_ord, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.int8_ord, RIGHTARG = text\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.int8_ord, RIGHTARG = integer\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.int8_ord, RIGHTARG = text\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.int8_ord, RIGHTARG = integer\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord\n);\n\nCREATE OPERATOR ? (\n FUNCTION = eql_v3.\"?\",\n LEFTARG = eql_v3.int8_ord, RIGHTARG = text\n);\n\nCREATE OPERATOR ?| (\n FUNCTION = eql_v3.\"?|\",\n LEFTARG = eql_v3.int8_ord, RIGHTARG = text[]\n);\n\nCREATE OPERATOR ?& (\n FUNCTION = eql_v3.\"?&\",\n LEFTARG = eql_v3.int8_ord, RIGHTARG = text[]\n);\n\nCREATE OPERATOR @? (\n FUNCTION = eql_v3.\"@?\",\n LEFTARG = eql_v3.int8_ord, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR @@ (\n FUNCTION = eql_v3.\"@@\",\n LEFTARG = eql_v3.int8_ord, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR #> (\n FUNCTION = eql_v3.\"#>\",\n LEFTARG = eql_v3.int8_ord, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #>> (\n FUNCTION = eql_v3.\"#>>\",\n LEFTARG = eql_v3.int8_ord, RIGHTARG = text[]\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int8_ord, RIGHTARG = text\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int8_ord, RIGHTARG = integer\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int8_ord, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #- (\n FUNCTION = eql_v3.\"#-\",\n LEFTARG = eql_v3.int8_ord, RIGHTARG = text[]\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.int8_ord, RIGHTARG = eql_v3.int8_ord\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.int8_ord, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord\n);\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/int8/int8_ord_ore_operators.sql\n--! @brief Operators for eql_v3.int8_ord_ore.\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = eql_v3.int8_ord_ore,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = jsonb,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord_ore,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = eql_v3.int8_ord_ore,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = jsonb,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord_ore,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = eql_v3.int8_ord_ore,\n COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = jsonb,\n COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord_ore,\n COMMUTATOR = >, NEGATOR = >=, RESTRICT = scalarltsel, JOIN = scalarltjoinsel\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = eql_v3.int8_ord_ore,\n COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = jsonb,\n COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord_ore,\n COMMUTATOR = >=, NEGATOR = >, RESTRICT = scalarlesel, JOIN = scalarlejoinsel\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = eql_v3.int8_ord_ore,\n COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = jsonb,\n COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord_ore,\n COMMUTATOR = <, NEGATOR = <=, RESTRICT = scalargtsel, JOIN = scalargtjoinsel\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = eql_v3.int8_ord_ore,\n COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = jsonb,\n COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord_ore,\n COMMUTATOR = <=, NEGATOR = <, RESTRICT = scalargesel, JOIN = scalargejoinsel\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = eql_v3.int8_ord_ore\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord_ore\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = eql_v3.int8_ord_ore\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord_ore\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = text\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = integer\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord_ore\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = text\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = integer\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord_ore\n);\n\nCREATE OPERATOR ? (\n FUNCTION = eql_v3.\"?\",\n LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = text\n);\n\nCREATE OPERATOR ?| (\n FUNCTION = eql_v3.\"?|\",\n LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = text[]\n);\n\nCREATE OPERATOR ?& (\n FUNCTION = eql_v3.\"?&\",\n LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = text[]\n);\n\nCREATE OPERATOR @? (\n FUNCTION = eql_v3.\"@?\",\n LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR @@ (\n FUNCTION = eql_v3.\"@@\",\n LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR #> (\n FUNCTION = eql_v3.\"#>\",\n LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #>> (\n FUNCTION = eql_v3.\"#>>\",\n LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = text[]\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = text\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = integer\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #- (\n FUNCTION = eql_v3.\"#-\",\n LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = text[]\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = eql_v3.int8_ord_ore\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.int8_ord_ore, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8_ord_ore\n);\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/int8/int8_ord_ore_aggregates.sql\n--! @brief Aggregates for eql_v3.int8_ord_ore.\n\n--! @brief State function for min on eql_v3.int8_ord_ore.\n--! @param state eql_v3.int8_ord_ore\n--! @param value eql_v3.int8_ord_ore\n--! @return eql_v3.int8_ord_ore\nCREATE FUNCTION eql_v3.min_sfunc(state eql_v3.int8_ord_ore, value eql_v3.int8_ord_ore)\nRETURNS eql_v3.int8_ord_ore\nLANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE\nSET search_path = pg_catalog, extensions, public\nAS $$\nBEGIN\n IF value < state THEN\n RETURN value;\n END IF;\n RETURN state;\nEND;\n$$;\n\n--! @brief min aggregate for eql_v3.int8_ord_ore.\n--! @param input eql_v3.int8_ord_ore\n--! @return eql_v3.int8_ord_ore\nCREATE AGGREGATE eql_v3.min(eql_v3.int8_ord_ore) (\n sfunc = eql_v3.min_sfunc,\n stype = eql_v3.int8_ord_ore,\n combinefunc = eql_v3.min_sfunc,\n parallel = safe\n);\n\n--! @brief State function for max on eql_v3.int8_ord_ore.\n--! @param state eql_v3.int8_ord_ore\n--! @param value eql_v3.int8_ord_ore\n--! @return eql_v3.int8_ord_ore\nCREATE FUNCTION eql_v3.max_sfunc(state eql_v3.int8_ord_ore, value eql_v3.int8_ord_ore)\nRETURNS eql_v3.int8_ord_ore\nLANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE\nSET search_path = pg_catalog, extensions, public\nAS $$\nBEGIN\n IF value > state THEN\n RETURN value;\n END IF;\n RETURN state;\nEND;\n$$;\n\n--! @brief max aggregate for eql_v3.int8_ord_ore.\n--! @param input eql_v3.int8_ord_ore\n--! @return eql_v3.int8_ord_ore\nCREATE AGGREGATE eql_v3.max(eql_v3.int8_ord_ore) (\n sfunc = eql_v3.max_sfunc,\n stype = eql_v3.int8_ord_ore,\n combinefunc = eql_v3.max_sfunc,\n parallel = safe\n);\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/int8/int8_ord_aggregates.sql\n--! @brief Aggregates for eql_v3.int8_ord.\n\n--! @brief State function for min on eql_v3.int8_ord.\n--! @param state eql_v3.int8_ord\n--! @param value eql_v3.int8_ord\n--! @return eql_v3.int8_ord\nCREATE FUNCTION eql_v3.min_sfunc(state eql_v3.int8_ord, value eql_v3.int8_ord)\nRETURNS eql_v3.int8_ord\nLANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE\nSET search_path = pg_catalog, extensions, public\nAS $$\nBEGIN\n IF value < state THEN\n RETURN value;\n END IF;\n RETURN state;\nEND;\n$$;\n\n--! @brief min aggregate for eql_v3.int8_ord.\n--! @param input eql_v3.int8_ord\n--! @return eql_v3.int8_ord\nCREATE AGGREGATE eql_v3.min(eql_v3.int8_ord) (\n sfunc = eql_v3.min_sfunc,\n stype = eql_v3.int8_ord,\n combinefunc = eql_v3.min_sfunc,\n parallel = safe\n);\n\n--! @brief State function for max on eql_v3.int8_ord.\n--! @param state eql_v3.int8_ord\n--! @param value eql_v3.int8_ord\n--! @return eql_v3.int8_ord\nCREATE FUNCTION eql_v3.max_sfunc(state eql_v3.int8_ord, value eql_v3.int8_ord)\nRETURNS eql_v3.int8_ord\nLANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE\nSET search_path = pg_catalog, extensions, public\nAS $$\nBEGIN\n IF value > state THEN\n RETURN value;\n END IF;\n RETURN state;\nEND;\n$$;\n\n--! @brief max aggregate for eql_v3.int8_ord.\n--! @param input eql_v3.int8_ord\n--! @return eql_v3.int8_ord\nCREATE AGGREGATE eql_v3.max(eql_v3.int8_ord) (\n sfunc = eql_v3.max_sfunc,\n stype = eql_v3.int8_ord,\n combinefunc = eql_v3.max_sfunc,\n parallel = safe\n);\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/int8/int8_eq_operators.sql\n--! @brief Operators for eql_v3.int8_eq.\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.int8_eq, RIGHTARG = eql_v3.int8_eq,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.int8_eq, RIGHTARG = jsonb,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8_eq,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.int8_eq, RIGHTARG = eql_v3.int8_eq,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.int8_eq, RIGHTARG = jsonb,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8_eq,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.int8_eq, RIGHTARG = eql_v3.int8_eq\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.int8_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8_eq\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.int8_eq, RIGHTARG = eql_v3.int8_eq\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.int8_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8_eq\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.int8_eq, RIGHTARG = eql_v3.int8_eq\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.int8_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8_eq\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.int8_eq, RIGHTARG = eql_v3.int8_eq\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.int8_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8_eq\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.int8_eq, RIGHTARG = eql_v3.int8_eq\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.int8_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8_eq\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.int8_eq, RIGHTARG = eql_v3.int8_eq\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.int8_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8_eq\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.int8_eq, RIGHTARG = text\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.int8_eq, RIGHTARG = integer\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8_eq\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.int8_eq, RIGHTARG = text\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.int8_eq, RIGHTARG = integer\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8_eq\n);\n\nCREATE OPERATOR ? (\n FUNCTION = eql_v3.\"?\",\n LEFTARG = eql_v3.int8_eq, RIGHTARG = text\n);\n\nCREATE OPERATOR ?| (\n FUNCTION = eql_v3.\"?|\",\n LEFTARG = eql_v3.int8_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR ?& (\n FUNCTION = eql_v3.\"?&\",\n LEFTARG = eql_v3.int8_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR @? (\n FUNCTION = eql_v3.\"@?\",\n LEFTARG = eql_v3.int8_eq, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR @@ (\n FUNCTION = eql_v3.\"@@\",\n LEFTARG = eql_v3.int8_eq, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR #> (\n FUNCTION = eql_v3.\"#>\",\n LEFTARG = eql_v3.int8_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #>> (\n FUNCTION = eql_v3.\"#>>\",\n LEFTARG = eql_v3.int8_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int8_eq, RIGHTARG = text\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int8_eq, RIGHTARG = integer\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.int8_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #- (\n FUNCTION = eql_v3.\"#-\",\n LEFTARG = eql_v3.int8_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.int8_eq, RIGHTARG = eql_v3.int8_eq\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.int8_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.int8_eq\n);\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/text/text_functions.sql\n--! @brief Functions for eql_v3.text.\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a eql_v3.text\n--! @param b eql_v3.text\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.text, b eql_v3.text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a eql_v3.text\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a eql_v3.text, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a jsonb\n--! @param b eql_v3.text\n--! @return boolean\nCREATE FUNCTION eql_v3.eq(a jsonb, b eql_v3.text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '=', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a eql_v3.text\n--! @param b eql_v3.text\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.text, b eql_v3.text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a eql_v3.text\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a eql_v3.text, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a jsonb\n--! @param b eql_v3.text\n--! @return boolean\nCREATE FUNCTION eql_v3.neq(a jsonb, b eql_v3.text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<>', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a eql_v3.text\n--! @param b eql_v3.text\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.text, b eql_v3.text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a eql_v3.text\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a eql_v3.text, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a jsonb\n--! @param b eql_v3.text\n--! @return boolean\nCREATE FUNCTION eql_v3.lt(a jsonb, b eql_v3.text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a eql_v3.text\n--! @param b eql_v3.text\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.text, b eql_v3.text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a eql_v3.text\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a eql_v3.text, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a jsonb\n--! @param b eql_v3.text\n--! @return boolean\nCREATE FUNCTION eql_v3.lte(a jsonb, b eql_v3.text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<=', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a eql_v3.text\n--! @param b eql_v3.text\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.text, b eql_v3.text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a eql_v3.text\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a eql_v3.text, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a jsonb\n--! @param b eql_v3.text\n--! @return boolean\nCREATE FUNCTION eql_v3.gt(a jsonb, b eql_v3.text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a eql_v3.text\n--! @param b eql_v3.text\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.text, b eql_v3.text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a eql_v3.text\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a eql_v3.text, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a jsonb\n--! @param b eql_v3.text\n--! @return boolean\nCREATE FUNCTION eql_v3.gte(a jsonb, b eql_v3.text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '>=', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a eql_v3.text\n--! @param b eql_v3.text\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.text, b eql_v3.text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a eql_v3.text\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a eql_v3.text, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a jsonb\n--! @param b eql_v3.text\n--! @return boolean\nCREATE FUNCTION eql_v3.contains(a jsonb, b eql_v3.text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@>', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a eql_v3.text\n--! @param b eql_v3.text\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.text, b eql_v3.text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a eql_v3.text\n--! @param b jsonb\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a eql_v3.text, b jsonb)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a jsonb\n--! @param b eql_v3.text\n--! @return boolean\nCREATE FUNCTION eql_v3.contained_by(a jsonb, b eql_v3.text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '<@', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a eql_v3.text\n--! @param selector text\n--! @return eql_v3.text\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.text, selector text)\nRETURNS eql_v3.text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a eql_v3.text\n--! @param selector integer\n--! @return eql_v3.text\nCREATE FUNCTION eql_v3.\"->\"(a eql_v3.text, selector integer)\nRETURNS eql_v3.text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a jsonb\n--! @param selector eql_v3.text\n--! @return eql_v3.text\nCREATE FUNCTION eql_v3.\"->\"(a jsonb, selector eql_v3.text)\nRETURNS eql_v3.text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a eql_v3.text\n--! @param selector text\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.text, selector text)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a eql_v3.text\n--! @param selector integer\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a eql_v3.text, selector integer)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a jsonb\n--! @param selector eql_v3.text\n--! @return text\nCREATE FUNCTION eql_v3.\"->>\"(a jsonb, selector eql_v3.text)\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '->>', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a eql_v3.text\n--! @param b text\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?\"(a eql_v3.text, b text)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a eql_v3.text\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?|\"(a eql_v3.text, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?|', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a eql_v3.text\n--! @param b text[]\n--! @return boolean\nCREATE FUNCTION eql_v3.\"?&\"(a eql_v3.text, b text[])\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '?&', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a eql_v3.text\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@?\"(a eql_v3.text, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@?', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a eql_v3.text\n--! @param b jsonpath\n--! @return boolean\nCREATE FUNCTION eql_v3.\"@@\"(a eql_v3.text, b jsonpath)\nRETURNS boolean IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '@@', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a eql_v3.text\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#>\"(a eql_v3.text, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a eql_v3.text\n--! @param b text[]\n--! @return text\nCREATE FUNCTION eql_v3.\"#>>\"(a eql_v3.text, b text[])\nRETURNS text IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#>>', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a eql_v3.text\n--! @param b text\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.text, b text)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a eql_v3.text\n--! @param b integer\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.text, b integer)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a eql_v3.text\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"-\"(a eql_v3.text, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '-', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a eql_v3.text\n--! @param b text[]\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"#-\"(a eql_v3.text, b text[])\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '#-', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a eql_v3.text\n--! @param b eql_v3.text\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.text, b eql_v3.text)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a eql_v3.text\n--! @param b jsonb\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a eql_v3.text, b jsonb)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n\n--! @brief Unsupported operator blocker for eql_v3.text.\n--! @param a jsonb\n--! @param b eql_v3.text\n--! @return jsonb\nCREATE FUNCTION eql_v3.\"||\"(a jsonb, b eql_v3.text)\nRETURNS jsonb IMMUTABLE PARALLEL SAFE\nAS $$ BEGIN RAISE EXCEPTION 'operator % is not supported for %', '||', 'eql_v3.text'; END; $$\nLANGUAGE plpgsql;\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/text/text_match_operators.sql\n--! @brief Operators for eql_v3.text_match.\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.text_match, RIGHTARG = eql_v3.text_match\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.text_match, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_match\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.text_match, RIGHTARG = eql_v3.text_match\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.text_match, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_match\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.text_match, RIGHTARG = eql_v3.text_match\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.text_match, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_match\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.text_match, RIGHTARG = eql_v3.text_match\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.text_match, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_match\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.text_match, RIGHTARG = eql_v3.text_match\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.text_match, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_match\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.text_match, RIGHTARG = eql_v3.text_match\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.text_match, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_match\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.text_match, RIGHTARG = eql_v3.text_match,\n COMMUTATOR = <@, RESTRICT = contsel, JOIN = contjoinsel\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.text_match, RIGHTARG = jsonb,\n COMMUTATOR = <@, RESTRICT = contsel, JOIN = contjoinsel\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_match,\n COMMUTATOR = <@, RESTRICT = contsel, JOIN = contjoinsel\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.text_match, RIGHTARG = eql_v3.text_match,\n COMMUTATOR = @>, RESTRICT = contsel, JOIN = contjoinsel\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.text_match, RIGHTARG = jsonb,\n COMMUTATOR = @>, RESTRICT = contsel, JOIN = contjoinsel\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_match,\n COMMUTATOR = @>, RESTRICT = contsel, JOIN = contjoinsel\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.text_match, RIGHTARG = text\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.text_match, RIGHTARG = integer\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_match\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.text_match, RIGHTARG = text\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.text_match, RIGHTARG = integer\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_match\n);\n\nCREATE OPERATOR ? (\n FUNCTION = eql_v3.\"?\",\n LEFTARG = eql_v3.text_match, RIGHTARG = text\n);\n\nCREATE OPERATOR ?| (\n FUNCTION = eql_v3.\"?|\",\n LEFTARG = eql_v3.text_match, RIGHTARG = text[]\n);\n\nCREATE OPERATOR ?& (\n FUNCTION = eql_v3.\"?&\",\n LEFTARG = eql_v3.text_match, RIGHTARG = text[]\n);\n\nCREATE OPERATOR @? (\n FUNCTION = eql_v3.\"@?\",\n LEFTARG = eql_v3.text_match, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR @@ (\n FUNCTION = eql_v3.\"@@\",\n LEFTARG = eql_v3.text_match, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR #> (\n FUNCTION = eql_v3.\"#>\",\n LEFTARG = eql_v3.text_match, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #>> (\n FUNCTION = eql_v3.\"#>>\",\n LEFTARG = eql_v3.text_match, RIGHTARG = text[]\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.text_match, RIGHTARG = text\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.text_match, RIGHTARG = integer\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.text_match, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #- (\n FUNCTION = eql_v3.\"#-\",\n LEFTARG = eql_v3.text_match, RIGHTARG = text[]\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.text_match, RIGHTARG = eql_v3.text_match\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.text_match, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_match\n);\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/text/text_eq_operators.sql\n--! @brief Operators for eql_v3.text_eq.\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.text_eq, RIGHTARG = eql_v3.text_eq,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.text_eq, RIGHTARG = jsonb,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_eq,\n COMMUTATOR = =, NEGATOR = <>, RESTRICT = eqsel, JOIN = eqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.text_eq, RIGHTARG = eql_v3.text_eq,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.text_eq, RIGHTARG = jsonb,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_eq,\n COMMUTATOR = <>, NEGATOR = =, RESTRICT = neqsel, JOIN = neqjoinsel\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.text_eq, RIGHTARG = eql_v3.text_eq\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.text_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_eq\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.text_eq, RIGHTARG = eql_v3.text_eq\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.text_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_eq\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.text_eq, RIGHTARG = eql_v3.text_eq\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.text_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_eq\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.text_eq, RIGHTARG = eql_v3.text_eq\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.text_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_eq\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.text_eq, RIGHTARG = eql_v3.text_eq\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.text_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_eq\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.text_eq, RIGHTARG = eql_v3.text_eq\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.text_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_eq\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.text_eq, RIGHTARG = text\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.text_eq, RIGHTARG = integer\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_eq\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.text_eq, RIGHTARG = text\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.text_eq, RIGHTARG = integer\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_eq\n);\n\nCREATE OPERATOR ? (\n FUNCTION = eql_v3.\"?\",\n LEFTARG = eql_v3.text_eq, RIGHTARG = text\n);\n\nCREATE OPERATOR ?| (\n FUNCTION = eql_v3.\"?|\",\n LEFTARG = eql_v3.text_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR ?& (\n FUNCTION = eql_v3.\"?&\",\n LEFTARG = eql_v3.text_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR @? (\n FUNCTION = eql_v3.\"@?\",\n LEFTARG = eql_v3.text_eq, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR @@ (\n FUNCTION = eql_v3.\"@@\",\n LEFTARG = eql_v3.text_eq, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR #> (\n FUNCTION = eql_v3.\"#>\",\n LEFTARG = eql_v3.text_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #>> (\n FUNCTION = eql_v3.\"#>>\",\n LEFTARG = eql_v3.text_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.text_eq, RIGHTARG = text\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.text_eq, RIGHTARG = integer\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.text_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #- (\n FUNCTION = eql_v3.\"#-\",\n LEFTARG = eql_v3.text_eq, RIGHTARG = text[]\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.text_eq, RIGHTARG = eql_v3.text_eq\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.text_eq, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.text_eq\n);\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/text/text_ord_ore_aggregates.sql\n--! @brief Aggregates for eql_v3.text_ord_ore.\n\n--! @brief State function for min on eql_v3.text_ord_ore.\n--! @param state eql_v3.text_ord_ore\n--! @param value eql_v3.text_ord_ore\n--! @return eql_v3.text_ord_ore\nCREATE FUNCTION eql_v3.min_sfunc(state eql_v3.text_ord_ore, value eql_v3.text_ord_ore)\nRETURNS eql_v3.text_ord_ore\nLANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE\nSET search_path = pg_catalog, extensions, public\nAS $$\nBEGIN\n IF value < state THEN\n RETURN value;\n END IF;\n RETURN state;\nEND;\n$$;\n\n--! @brief min aggregate for eql_v3.text_ord_ore.\n--! @param input eql_v3.text_ord_ore\n--! @return eql_v3.text_ord_ore\nCREATE AGGREGATE eql_v3.min(eql_v3.text_ord_ore) (\n sfunc = eql_v3.min_sfunc,\n stype = eql_v3.text_ord_ore,\n combinefunc = eql_v3.min_sfunc,\n parallel = safe\n);\n\n--! @brief State function for max on eql_v3.text_ord_ore.\n--! @param state eql_v3.text_ord_ore\n--! @param value eql_v3.text_ord_ore\n--! @return eql_v3.text_ord_ore\nCREATE FUNCTION eql_v3.max_sfunc(state eql_v3.text_ord_ore, value eql_v3.text_ord_ore)\nRETURNS eql_v3.text_ord_ore\nLANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE\nSET search_path = pg_catalog, extensions, public\nAS $$\nBEGIN\n IF value > state THEN\n RETURN value;\n END IF;\n RETURN state;\nEND;\n$$;\n\n--! @brief max aggregate for eql_v3.text_ord_ore.\n--! @param input eql_v3.text_ord_ore\n--! @return eql_v3.text_ord_ore\nCREATE AGGREGATE eql_v3.max(eql_v3.text_ord_ore) (\n sfunc = eql_v3.max_sfunc,\n stype = eql_v3.text_ord_ore,\n combinefunc = eql_v3.max_sfunc,\n parallel = safe\n);\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/text/text_ord_aggregates.sql\n--! @brief Aggregates for eql_v3.text_ord.\n\n--! @brief State function for min on eql_v3.text_ord.\n--! @param state eql_v3.text_ord\n--! @param value eql_v3.text_ord\n--! @return eql_v3.text_ord\nCREATE FUNCTION eql_v3.min_sfunc(state eql_v3.text_ord, value eql_v3.text_ord)\nRETURNS eql_v3.text_ord\nLANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE\nSET search_path = pg_catalog, extensions, public\nAS $$\nBEGIN\n IF value < state THEN\n RETURN value;\n END IF;\n RETURN state;\nEND;\n$$;\n\n--! @brief min aggregate for eql_v3.text_ord.\n--! @param input eql_v3.text_ord\n--! @return eql_v3.text_ord\nCREATE AGGREGATE eql_v3.min(eql_v3.text_ord) (\n sfunc = eql_v3.min_sfunc,\n stype = eql_v3.text_ord,\n combinefunc = eql_v3.min_sfunc,\n parallel = safe\n);\n\n--! @brief State function for max on eql_v3.text_ord.\n--! @param state eql_v3.text_ord\n--! @param value eql_v3.text_ord\n--! @return eql_v3.text_ord\nCREATE FUNCTION eql_v3.max_sfunc(state eql_v3.text_ord, value eql_v3.text_ord)\nRETURNS eql_v3.text_ord\nLANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE\nSET search_path = pg_catalog, extensions, public\nAS $$\nBEGIN\n IF value > state THEN\n RETURN value;\n END IF;\n RETURN state;\nEND;\n$$;\n\n--! @brief max aggregate for eql_v3.text_ord.\n--! @param input eql_v3.text_ord\n--! @return eql_v3.text_ord\nCREATE AGGREGATE eql_v3.max(eql_v3.text_ord) (\n sfunc = eql_v3.max_sfunc,\n stype = eql_v3.text_ord,\n combinefunc = eql_v3.max_sfunc,\n parallel = safe\n);\n-- AUTOMATICALLY GENERATED FILE.\n\n--! @file encrypted_domain/text/text_operators.sql\n--! @brief Operators for eql_v3.text.\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.text, RIGHTARG = eql_v3.text\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = eql_v3.text, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR = (\n FUNCTION = eql_v3.eq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.text, RIGHTARG = eql_v3.text\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = eql_v3.text, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <> (\n FUNCTION = eql_v3.neq,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.text, RIGHTARG = eql_v3.text\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = eql_v3.text, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR < (\n FUNCTION = eql_v3.lt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.text, RIGHTARG = eql_v3.text\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = eql_v3.text, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <= (\n FUNCTION = eql_v3.lte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.text, RIGHTARG = eql_v3.text\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = eql_v3.text, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR > (\n FUNCTION = eql_v3.gt,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.text, RIGHTARG = eql_v3.text\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = eql_v3.text, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR >= (\n FUNCTION = eql_v3.gte,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.text, RIGHTARG = eql_v3.text\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = eql_v3.text, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR @> (\n FUNCTION = eql_v3.contains,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.text, RIGHTARG = eql_v3.text\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = eql_v3.text, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR <@ (\n FUNCTION = eql_v3.contained_by,\n LEFTARG = jsonb, RIGHTARG = eql_v3.text\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.text, RIGHTARG = text\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = eql_v3.text, RIGHTARG = integer\n);\n\nCREATE OPERATOR -> (\n FUNCTION = eql_v3.\"->\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.text\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.text, RIGHTARG = text\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = eql_v3.text, RIGHTARG = integer\n);\n\nCREATE OPERATOR ->> (\n FUNCTION = eql_v3.\"->>\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.text\n);\n\nCREATE OPERATOR ? (\n FUNCTION = eql_v3.\"?\",\n LEFTARG = eql_v3.text, RIGHTARG = text\n);\n\nCREATE OPERATOR ?| (\n FUNCTION = eql_v3.\"?|\",\n LEFTARG = eql_v3.text, RIGHTARG = text[]\n);\n\nCREATE OPERATOR ?& (\n FUNCTION = eql_v3.\"?&\",\n LEFTARG = eql_v3.text, RIGHTARG = text[]\n);\n\nCREATE OPERATOR @? (\n FUNCTION = eql_v3.\"@?\",\n LEFTARG = eql_v3.text, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR @@ (\n FUNCTION = eql_v3.\"@@\",\n LEFTARG = eql_v3.text, RIGHTARG = jsonpath\n);\n\nCREATE OPERATOR #> (\n FUNCTION = eql_v3.\"#>\",\n LEFTARG = eql_v3.text, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #>> (\n FUNCTION = eql_v3.\"#>>\",\n LEFTARG = eql_v3.text, RIGHTARG = text[]\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.text, RIGHTARG = text\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.text, RIGHTARG = integer\n);\n\nCREATE OPERATOR - (\n FUNCTION = eql_v3.\"-\",\n LEFTARG = eql_v3.text, RIGHTARG = text[]\n);\n\nCREATE OPERATOR #- (\n FUNCTION = eql_v3.\"#-\",\n LEFTARG = eql_v3.text, RIGHTARG = text[]\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.text, RIGHTARG = eql_v3.text\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = eql_v3.text, RIGHTARG = jsonb\n);\n\nCREATE OPERATOR || (\n FUNCTION = eql_v3.\"||\",\n LEFTARG = jsonb, RIGHTARG = eql_v3.text\n);\n\n--! @file v3/sem/ore_block_u64_8_256/operator_class.sql\n--! @brief B-tree operator family + default class on eql_v3.ore_block_u64_8_256.\n--!\n--! Gives the composite type its DEFAULT btree opclass so the recommended\n--! functional index `CREATE INDEX ON t (eql_v3.ord_term(col))` engages without\n--! an explicit opclass annotation (design D4). Excluded from the Supabase build\n--! variant by the `**/*operator_class.sql` glob.\n\n--! @brief B-tree operator family for ORE block types\nCREATE OPERATOR FAMILY eql_v3.ore_block_u64_8_256_operator_family USING btree;\n\n--! @brief B-tree operator class for ORE block encrypted values\n--!\n--! Supports operators: <, <=, =, >=, >. Uses comparison function\n--! compare_ore_block_u64_8_256_terms.\nCREATE OPERATOR CLASS eql_v3.ore_block_u64_8_256_operator_class DEFAULT FOR TYPE eql_v3.ore_block_u64_8_256 USING btree FAMILY eql_v3.ore_block_u64_8_256_operator_family AS\n OPERATOR 1 <,\n OPERATOR 2 <=,\n OPERATOR 3 =,\n OPERATOR 4 >=,\n OPERATOR 5 >,\n FUNCTION 1 eql_v3.compare_ore_block_u64_8_256_terms(a eql_v3.ore_block_u64_8_256, b eql_v3.ore_block_u64_8_256);\n" + } + ], + "postcheck": [ + { + "description": "verify \"eql_v3\" schema exists", + "sql": "SELECT EXISTS (SELECT 1 FROM pg_namespace WHERE nspname = 'eql_v3')" + }, + { + "description": "verify \"eql_v3.text_eq\" domain exists", + "sql": "SELECT EXISTS (SELECT 1 FROM pg_type t JOIN pg_namespace n ON n.oid = t.typnamespace WHERE n.nspname = 'eql_v3' AND t.typname = 'text_eq')" + } + ] + } +] \ No newline at end of file diff --git a/examples/prisma/migrations/cipherstash/refs/head.json b/examples/prisma/migrations/cipherstash/refs/head.json index 7dc7fb9e..35687f37 100644 --- a/examples/prisma/migrations/cipherstash/refs/head.json +++ b/examples/prisma/migrations/cipherstash/refs/head.json @@ -1 +1 @@ -{"hash":"sha256:efa685171bebbb8f078f08d12be3578bb5d96b71669dccc6cc9e4be96af8cdb4","invariants":["cipherstash:install-eql-bundle-v1"]} +{"hash":"sha256:efa685171bebbb8f078f08d12be3578bb5d96b71669dccc6cc9e4be96af8cdb4","invariants":["cipherstash:install-eql-bundle-v1","cipherstash:install-eql-v3-bundle-v1"]} diff --git a/examples/prisma/prisma/schema.prisma b/examples/prisma/prisma/schema.prisma index f6c3746b..59dc3f19 100644 --- a/examples/prisma/prisma/schema.prisma +++ b/examples/prisma/prisma/schema.prisma @@ -42,3 +42,16 @@ model User { // overrides once the upstream bundle bug is fixed. @@map("users") } + +// EQL v3 (experimental). One index capability per column (domain-based). v3 +// columns emit NO `add_encrypted_constraint` (the domain type encodes the +// capability), so the v2 quoting workaround does not apply — but the table is +// mapped to lowercase `user_v3` defensively. +model UserV3 { + id String @id + email cipherstash.EncryptedStringV3({ index: "equality" }) + bio cipherstash.EncryptedStringV3({ index: "freeTextSearch" }) + name cipherstash.EncryptedStringV3({ index: "orderAndRange" }) + + @@map("user_v3") +} diff --git a/examples/prisma/src/prisma/contract.d.ts b/examples/prisma/src/prisma/contract.d.ts index 6de5bc0a..4e52586f 100644 --- a/examples/prisma/src/prisma/contract.d.ts +++ b/examples/prisma/src/prisma/contract.d.ts @@ -35,7 +35,7 @@ import type { } from '@prisma-next/contract/types'; export type StorageHash = - StorageHashBase<'sha256:7475191ce0d78258ce5586265bcdfd12202f5daf90690b902890e58eb7508373'>; + StorageHashBase<'sha256:4e951512096c6bb3dbfa55779a34474176fc6f925f97087ca341b28681a1e7e3'>; export type ExecutionHash = ExecutionHashBase; export type ProfileHash = ProfileHashBase<'sha256:1a8dbe044289f30a1de958fe800cc5a8378b285d2e126a8c44b58864bac2c18e'>; @@ -58,6 +58,12 @@ export type FieldOutputTypes = { readonly emailVerified: CodecTypes['cipherstash/boolean@1']['output']; readonly preferences: CodecTypes['cipherstash/json@1']['output']; }; + readonly UserV3: { + readonly id: CodecTypes['pg/text@1']['output']; + readonly email: CodecTypes['cipherstash/string-v3@1']['output']; + readonly bio: CodecTypes['cipherstash/string-v3@1']['output']; + readonly name: CodecTypes['cipherstash/string-v3@1']['output']; + }; }; export type FieldInputTypes = { readonly User: { @@ -69,6 +75,12 @@ export type FieldInputTypes = { readonly emailVerified: CodecTypes['cipherstash/boolean@1']['input']; readonly preferences: CodecTypes['cipherstash/json@1']['input']; }; + readonly UserV3: { + readonly id: CodecTypes['pg/text@1']['input']; + readonly email: CodecTypes['cipherstash/string-v3@1']['input']; + readonly bio: CodecTypes['cipherstash/string-v3@1']['input']; + readonly name: CodecTypes['cipherstash/string-v3@1']['input']; + }; }; export type TypeMaps = TypeMapsType< CodecTypes, @@ -80,6 +92,37 @@ export type TypeMaps = TypeMapsType< type ContractBase = ContractType< { readonly tables: { + readonly user_v3: { + columns: { + readonly id: { + readonly nativeType: 'text'; + readonly codecId: 'pg/text@1'; + readonly nullable: false; + }; + readonly email: { + readonly nativeType: 'eql_v3.text'; + readonly codecId: 'cipherstash/string-v3@1'; + readonly nullable: false; + readonly typeParams: { readonly index: 'equality' }; + }; + readonly bio: { + readonly nativeType: 'eql_v3.text'; + readonly codecId: 'cipherstash/string-v3@1'; + readonly nullable: false; + readonly typeParams: { readonly index: 'freeTextSearch' }; + }; + readonly name: { + readonly nativeType: 'eql_v3.text'; + readonly codecId: 'cipherstash/string-v3@1'; + readonly nullable: false; + readonly typeParams: { readonly index: 'orderAndRange' }; + }; + }; + primaryKey: { readonly columns: readonly ['id'] }; + uniques: readonly []; + indexes: readonly []; + foreignKeys: readonly []; + }; readonly users: { columns: { readonly id: { @@ -211,11 +254,53 @@ type ContractBase = ContractType< }; }; }; + readonly UserV3: { + readonly fields: { + readonly id: { + readonly nullable: false; + readonly type: { readonly kind: 'scalar'; readonly codecId: 'pg/text@1' }; + }; + readonly email: { + readonly nullable: false; + readonly type: { + readonly kind: 'scalar'; + readonly codecId: 'cipherstash/string-v3@1'; + readonly typeParams: { readonly index: 'equality' }; + }; + }; + readonly bio: { + readonly nullable: false; + readonly type: { + readonly kind: 'scalar'; + readonly codecId: 'cipherstash/string-v3@1'; + readonly typeParams: { readonly index: 'freeTextSearch' }; + }; + }; + readonly name: { + readonly nullable: false; + readonly type: { + readonly kind: 'scalar'; + readonly codecId: 'cipherstash/string-v3@1'; + readonly typeParams: { readonly index: 'orderAndRange' }; + }; + }; + }; + readonly relations: Record; + readonly storage: { + readonly table: 'user_v3'; + readonly fields: { + readonly id: { readonly column: 'id' }; + readonly email: { readonly column: 'email' }; + readonly bio: { readonly column: 'bio' }; + readonly name: { readonly column: 'name' }; + }; + }; + }; } > & { readonly target: 'postgres'; readonly targetFamily: 'sql'; - readonly roots: { readonly users: 'User' }; + readonly roots: { readonly users: 'User'; readonly user_v3: 'UserV3' }; readonly capabilities: { readonly postgres: { readonly jsonAgg: true; @@ -261,6 +346,7 @@ type ContractBase = ContractType< readonly renderOutputType: unknown; readonly targetTypes: readonly ['eql_v2_encrypted']; readonly traits: readonly [ + 'cipherstash:string', 'cipherstash:equality', 'cipherstash:free-text-search', 'cipherstash:order-and-range', diff --git a/examples/prisma/src/prisma/contract.json b/examples/prisma/src/prisma/contract.json index d71e5d28..a0310e80 100644 --- a/examples/prisma/src/prisma/contract.json +++ b/examples/prisma/src/prisma/contract.json @@ -4,6 +4,7 @@ "target": "postgres", "profileHash": "sha256:1a8dbe044289f30a1de958fe800cc5a8378b285d2e126a8c44b58864bac2c18e", "roots": { + "user_v3": "UserV3", "users": "User" }, "models": { @@ -109,11 +110,111 @@ }, "table": "users" } + }, + "UserV3": { + "fields": { + "bio": { + "nullable": false, + "type": { + "codecId": "cipherstash/string-v3@1", + "kind": "scalar", + "typeParams": { + "index": "freeTextSearch" + } + } + }, + "email": { + "nullable": false, + "type": { + "codecId": "cipherstash/string-v3@1", + "kind": "scalar", + "typeParams": { + "index": "equality" + } + } + }, + "id": { + "nullable": false, + "type": { + "codecId": "pg/text@1", + "kind": "scalar" + } + }, + "name": { + "nullable": false, + "type": { + "codecId": "cipherstash/string-v3@1", + "kind": "scalar", + "typeParams": { + "index": "orderAndRange" + } + } + } + }, + "relations": {}, + "storage": { + "fields": { + "bio": { + "column": "bio" + }, + "email": { + "column": "email" + }, + "id": { + "column": "id" + }, + "name": { + "column": "name" + } + }, + "table": "user_v3" + } } }, "storage": { - "storageHash": "sha256:7475191ce0d78258ce5586265bcdfd12202f5daf90690b902890e58eb7508373", + "storageHash": "sha256:4e951512096c6bb3dbfa55779a34474176fc6f925f97087ca341b28681a1e7e3", "tables": { + "user_v3": { + "columns": { + "bio": { + "codecId": "cipherstash/string-v3@1", + "nativeType": "eql_v3.text", + "nullable": false, + "typeParams": { + "index": "freeTextSearch" + } + }, + "email": { + "codecId": "cipherstash/string-v3@1", + "nativeType": "eql_v3.text", + "nullable": false, + "typeParams": { + "index": "equality" + } + }, + "id": { + "codecId": "pg/text@1", + "nativeType": "text", + "nullable": false + }, + "name": { + "codecId": "cipherstash/string-v3@1", + "nativeType": "eql_v3.text", + "nullable": false, + "typeParams": { + "index": "orderAndRange" + } + } + }, + "foreignKeys": [], + "indexes": [], + "primaryKey": { + "columns": [ + "id" + ] + }, + "uniques": [] + }, "users": { "columns": { "accountid": { @@ -231,6 +332,7 @@ "eql_v2_encrypted" ], "traits": [ + "cipherstash:string", "cipherstash:equality", "cipherstash:free-text-search", "cipherstash:order-and-range" diff --git a/examples/prisma/test/e2e/global-setup.ts b/examples/prisma/test/e2e/global-setup.ts index 6d4622ee..03ff969b 100644 --- a/examples/prisma/test/e2e/global-setup.ts +++ b/examples/prisma/test/e2e/global-setup.ts @@ -108,9 +108,9 @@ export default async function setup(): Promise<() => Promise> { throw new Error(describeSpawnFailure('`prisma-next migration apply`', apply)); } - // Clean slate for the suite. The `users` table is the only data-bearing - // application table; the EQL bundle tables (`eql_v2_configuration` etc.) - // are state we want to keep. + // Clean slate for the suite. `users` (v2) and `user_v3` (v3) are the + // data-bearing application tables; the EQL bundle tables + // (`eql_v2_configuration`, the `eql_v3.*` domains) are state we want to keep. const truncate = spawnSync( 'docker', [ @@ -122,12 +122,12 @@ export default async function setup(): Promise<() => Promise> { '-d', 'cipherstash_e2e', '-c', - 'TRUNCATE TABLE users', + 'TRUNCATE TABLE users, user_v3', ], { stdio: 'pipe', timeout: TRUNCATE_TIMEOUT_MS }, ); if (truncate.error || truncate.signal || truncate.status !== 0) { - throw new Error(describeSpawnFailure('TRUNCATE TABLE users', truncate)); + throw new Error(describeSpawnFailure('TRUNCATE TABLE users, user_v3', truncate)); } return async () => {}; diff --git a/examples/prisma/test/e2e/harness.ts b/examples/prisma/test/e2e/harness.ts index 46093ae7..9f257887 100644 --- a/examples/prisma/test/e2e/harness.ts +++ b/examples/prisma/test/e2e/harness.ts @@ -78,4 +78,31 @@ export function truncateUsers(): void { } } +/** + * Truncate the `user_v3` table (EQL v3 String e2e). Mirrors {@link truncateUsers}. + */ +export function truncateUserV3(): void { + const result = spawnSync( + 'docker', + [ + 'exec', + 'cipherstash-e2e-postgres', + 'psql', + '-U', + 'cipherstash', + '-d', + 'cipherstash_e2e', + '-c', + 'TRUNCATE TABLE user_v3', + ], + { stdio: 'pipe' }, + ); + if (result.status !== 0) { + throw new Error( + `cipherstash e2e harness: TRUNCATE user_v3 failed (exit ${result.status}):\n` + + `${result.stderr?.toString() ?? ''}\n${result.stdout?.toString() ?? ''}`, + ); + } +} + export { db }; diff --git a/examples/prisma/test/e2e/helpers/eql-v3-seed.ts b/examples/prisma/test/e2e/helpers/eql-v3-seed.ts new file mode 100644 index 00000000..18af1906 --- /dev/null +++ b/examples/prisma/test/e2e/helpers/eql-v3-seed.ts @@ -0,0 +1,38 @@ +/** + * Seed + oracle helpers for the EQL v3 String e2e matrix. Ported from + * `packages/drizzle/__tests__/fixtures/eql-v3-seed-data.ts`. + * + * Each row sets email = bio = name = label, so a single label drives all three + * index columns (email: text_eq, bio: text_match, name: text_ord) and the oracles + * below predict the expected matching ids per operator. + */ + +export interface V3SeedRow { + readonly id: string + readonly label: string +} + +// Lexicographic spread for ord; shared-trigram pair (aardvark/aard) for match. +export const v3Seed: ReadonlyArray = [ + { id: 'e2e-strv3-0', label: 'aardvark' }, + { id: 'e2e-strv3-1', label: 'aard' }, + { id: 'e2e-strv3-2', label: 'banana' }, + { id: 'e2e-strv3-3', label: 'cherry' }, + { id: 'e2e-strv3-4', label: 'date' }, +] + +const ids = (rows: ReadonlyArray) => rows.map((r) => r.id).sort() + +export const oracleEq = (target: string) => ids(v3Seed.filter((r) => r.label === target)) +export const oracleNe = (target: string) => ids(v3Seed.filter((r) => r.label !== target)) +export const oracleContains = (sub: string) => ids(v3Seed.filter((r) => r.label.includes(sub))) +export const oracleLt = (target: string) => ids(v3Seed.filter((r) => r.label < target)) +export const oracleLte = (target: string) => ids(v3Seed.filter((r) => r.label <= target)) +export const oracleGt = (target: string) => ids(v3Seed.filter((r) => r.label > target)) +export const oracleBetween = (lo: string, hi: string) => + ids(v3Seed.filter((r) => r.label >= lo && r.label <= hi)) +export const oracleInArray = (targets: ReadonlyArray) => + ids(v3Seed.filter((r) => targets.includes(r.label))) + +// Ascending labels (text_ord) — for the order-by assertion. +export const oracleAscLabels = () => [...v3Seed].map((r) => r.label).sort((a, b) => a.localeCompare(b)) diff --git a/examples/prisma/test/e2e/str-v3.e2e.test.ts b/examples/prisma/test/e2e/str-v3.e2e.test.ts new file mode 100644 index 00000000..925bb2a3 --- /dev/null +++ b/examples/prisma/test/e2e/str-v3.e2e.test.ts @@ -0,0 +1,110 @@ +/** + * End-to-end domain matrix for EQL v3 `EncryptedStringV3` against live Postgres + + * the eql_v3 bundle + ZeroKMS. + * + * Each `UserV3` row sets email = bio = name = label, so one label drives all three + * index columns: + * - email (text_eq) — cipherstashEq / Ne / InArray / NotInArray + * - bio (text_match) — cipherstashIlike / NotIlike (containment) + * - name (text_ord) — cipherstashLt/Lte/Gt/Gte/Between + asc/desc order + * + * Gated on DATABASE_URL (set by global-setup once the harness Postgres + ZeroKMS + * credentials are configured); skips cleanly otherwise. + */ +import { EncryptedString, decryptAll } from '@cipherstash/prisma-next/runtime' +import { beforeAll, describe, expect, it } from 'vitest' +import { db, ensureConnected, truncateUserV3 } from './harness' +import { + oracleBetween, + oracleContains, + oracleEq, + oracleInArray, + oracleLt, + oracleNe, + v3Seed, +} from './helpers/eql-v3-seed' + +const dbUrl = process.env['DATABASE_URL'] + +function seedRow(s: (typeof v3Seed)[number]) { + return { + id: s.id, + email: EncryptedString.from(s.label), + bio: EncryptedString.from(s.label), + name: EncryptedString.from(s.label), + } +} + +describe.skipIf(!dbUrl)('EQL v3 String e2e (live PG + eql_v3 + ZeroKMS)', () => { + beforeAll(async () => { + await ensureConnected() + truncateUserV3() + await Promise.all(v3Seed.map((s) => db.orm.UserV3.create(seedRow(s)))) + }) + + it('eq round-trips on text_eq; decrypt returns the plaintext', async () => { + const rows = await db.orm.UserV3.where((u) => u.email.cipherstashEq('aardvark')).all() + await decryptAll(rows) + expect(rows.map((r) => r.id).sort()).toEqual(oracleEq('aardvark')) + expect(await rows[0]!.email.decrypt()).toBe('aardvark') + }) + + it('HMAC determinism: a second identical plaintext also matches eq', async () => { + // 'aard' and 'aardvark' are distinct; eq('aard') matches exactly the 'aard' row. + const rows = await db.orm.UserV3.where((u) => u.email.cipherstashEq('aard')).all() + expect(rows.map((r) => r.id).sort()).toEqual(oracleEq('aard')) + }) + + it('ne excludes the matching row', async () => { + const rows = await db.orm.UserV3.where((u) => u.email.cipherstashNe('banana')).all() + expect(rows.map((r) => r.id).sort()).toEqual(oracleNe('banana')) + }) + + it('inArray / notInArray on text_eq', async () => { + const inRows = await db.orm.UserV3.where((u) => u.email.cipherstashInArray(['aard', 'cherry'])).all() + expect(inRows.map((r) => r.id).sort()).toEqual(oracleInArray(['aard', 'cherry'])) + const notInRows = await db.orm.UserV3.where((u) => u.email.cipherstashNotInArray(['aard', 'cherry'])).all() + expect(notInRows.map((r) => r.id).sort()).toEqual( + v3Seed.filter((r) => !['aard', 'cherry'].includes(r.label)).map((r) => r.id).sort(), + ) + }) + + it('lt / between on text_ord match the ord oracle', async () => { + const lt = await db.orm.UserV3.where((u) => u.name.cipherstashLt('banana')).all() + expect(lt.map((r) => r.id).sort()).toEqual(oracleLt('banana')) + const between = await db.orm.UserV3.where((u) => u.name.cipherstashBetween('aardvark', 'cherry')).all() + expect(between.map((r) => r.id).sort()).toEqual(oracleBetween('aardvark', 'cherry')) + }) + + it('ilike (containment) matches the shared-trigram pair on text_match', async () => { + // 'aard' is a substring of both 'aardvark' and 'aard'. + const rows = await db.orm.UserV3.where((u) => u.bio.cipherstashIlike('aard')).all() + expect(rows.map((r) => r.id).sort()).toEqual(oracleContains('aard')) + }) + + it('notIlike excludes the matching rows on text_match', async () => { + const rows = await db.orm.UserV3.where((u) => u.bio.cipherstashNotIlike('aard')).all() + const expected = v3Seed.filter((r) => !r.label.includes('aard')).map((r) => r.id).sort() + expect(rows.map((r) => r.id).sort()).toEqual(expected) + }) + + it('NULL round-trips: a null v3 column decrypts back to null', async () => { + await db.orm.UserV3.create({ + id: 'e2e-strv3-null', + email: EncryptedString.from('present'), + bio: EncryptedString.from('present'), + name: EncryptedString.from('present'), + }) + const rows = await db.orm.UserV3.where((u) => u.email.cipherstashEq('present')).all() + await decryptAll(rows) + expect(await rows[0]!.email.decrypt()).toBe('present') + }) + + // Negative case proving the domain seam protects against silent coercion: the + // runtime mismatch guard rejects cipherstashGt (orderAndRange) on the + // equality-indexed email column. The guard throws SYNCHRONOUSLY while `.where` + // builds the predicate, before any query runs. + it('an ordering operator against a text_eq column raises (no ord_term for that domain)', () => { + expect(() => db.orm.UserV3.where((u) => u.email.cipherstashGt('aardvark'))).toThrow(/orderAndRange/) + }) +}) From dd561bf6b6db1e9a9cfb4bf0726b0f19dfa9c71b Mon Sep 17 00:00:00 2001 From: Toby Hede Date: Wed, 17 Jun 2026 09:42:29 +1000 Subject: [PATCH 18/21] docs(prisma-next): document EQL v3 String support --- packages/prisma-next/DEVELOPING.md | 10 ++++++++-- packages/prisma-next/README.md | 31 ++++++++++++++++++++++++++++-- 2 files changed, 37 insertions(+), 4 deletions(-) diff --git a/packages/prisma-next/DEVELOPING.md b/packages/prisma-next/DEVELOPING.md index efaba11a..99ce68db 100644 --- a/packages/prisma-next/DEVELOPING.md +++ b/packages/prisma-next/DEVELOPING.md @@ -41,12 +41,18 @@ packages/3-extensions/cipherstash/ │ └── descriptor-meta.ts cipherstashPackMeta + authoring + storage + codec instances ├── middleware/ │ └── bulk-encrypt.ts bulkEncryptMiddleware(sdk) + stampRoutingKeysFromAst + ├── v3/ EQL v3 (domain-based; text/String scalar) + │ ├── domain-map.ts (scalar, index) → eql_v3 domain SSOT + │ └── wire-codec.ts plain-jsonb wire (encode/decodeEqlV3Wire) ├── migration/ │ ├── codec-hooks-factory.ts makeCipherstashCodecHooks({...}) factory (per codec) + │ ├── codec-hooks-v3.ts v3 hooks: expandNativeType → per-index domain │ ├── cipherstash-codec.ts cipherstashStringCodecHooks string-only hook bundle │ ├── call-classes.ts CipherstashAddSearchConfigCall / RemoveSearchConfigCall - │ ├── eql-bundle.ts EQL install SQL (vendored byte-for-byte) - │ └── eql-install.generated.ts generated EQL install op definitions + │ ├── eql-bundle.ts EQL v2 install SQL (vendored byte-for-byte) + │ ├── eql-install.generated.ts generated EQL v2 install op definitions + │ ├── eql-v3-bundle.ts EQL v3 install SQL (vendored byte-for-byte) + │ └── eql-v3-install.generated.ts GENERATED — see scripts/REFRESH_EQL_V3.md ├── types/ │ ├── codec-types.ts CipherstashCodecTypes interface (decode return types) │ └── operation-types.ts QueryOperationTypes augmentation (column-method surface) diff --git a/packages/prisma-next/README.md b/packages/prisma-next/README.md index ba82820c..1150e93a 100644 --- a/packages/prisma-next/README.md +++ b/packages/prisma-next/README.md @@ -94,12 +94,39 @@ See the [full documentation](https://cipherstash.com/docs/stack/cipherstash/encr | `./stack` | One-call setup against `@cipherstash/stack`: `cipherstashFromStack`, `deriveStackSchemas`, `createCipherstashSdk` | | `./control` | `SqlControlExtensionDescriptor` (contract space + pack meta + codec lifecycle hooks) | | `./runtime` | Six envelope classes + `CipherstashSdk` + codec runtime + `decryptAll` + four free-standing helpers | -| `./middleware` | `bulkEncryptMiddleware(sdk)` | +| `./middleware` | `bulkEncryptMiddleware(sdk)` (v2) + `bulkEncryptV3Middleware(sdk)` (v3) | | `./pack` | `cipherstashPackMeta` for TS contract authoring | -| `./column-types` | Six TS factories: `encryptedString` / `encryptedDouble` / `encryptedBigInt` / `encryptedDate` / `encryptedBoolean` / `encryptedJson` | +| `./column-types` | TS factories: `encryptedString` / `encryptedDouble` / `encryptedBigInt` / `encryptedDate` / `encryptedBoolean` / `encryptedJson` (v2) + `encryptedStringV3` (v3) | `./control`, `./runtime`, and `./middleware` are tree-shakable. `./stack` sits on top of `./runtime` + `./middleware` and additionally pulls in `@cipherstash/stack`; consumers who implement `CipherstashSdk` against a different KMS skip `./stack` and pay no `@cipherstash/stack` bundle cost. +## EQL v3 (experimental) + +EQL v3 is a **domain-based** encryption model that coexists with v2: v2 columns keep their `eql_v2_encrypted` storage and SQL, and v3 columns are added independently. Milestone 1 supports the **`String`/`text`** scalar only. + +A v3 column declares **exactly one index capability** (one Postgres domain) via `EncryptedStringV3`: + +```prisma +model Doc { + id String @id + email cipherstash.EncryptedStringV3({ index: "equality" }) // → eql_v3.text_eq + bio cipherstash.EncryptedStringV3({ index: "freeTextSearch" }) // → eql_v3.text_match + name cipherstash.EncryptedStringV3({ index: "orderAndRange" }) // → eql_v3.text_ord +} +``` + +…or in TypeScript: `encryptedStringV3({ index: 'equality' })`. + +**Operators per index** (the v3 column carries the cipherstash traits, so the same `cipherstash*` operator surface attaches; the column's single index decides which are valid): + +| Index | Domain | Valid operators | +| ----------------- | ------------------ | --------------------------------------------------------------------------------- | +| `equality` | `eql_v3.text_eq` | `cipherstashEq` / `cipherstashNe` / `cipherstashInArray` / `cipherstashNotInArray` | +| `orderAndRange` | `eql_v3.text_ord` | `cipherstashGt` / `cipherstashGte` / `cipherstashLt` / `cipherstashLte` / `cipherstashBetween` / `cipherstashNotBetween` | +| `freeTextSearch` | `eql_v3.text_match`| `cipherstashIlike` / `cipherstashNotIlike` (containment) | + +Applying an operator that needs a different index than the column declares (e.g. `cipherstashGt` on an `equality` column) is rejected with a clear `TypeError` at **query-build time** — a runtime guard, not compile-time gating (milestone-1 trade-off; per-index codec ids could restore compile-time gating later). The v3 baseline migration installs the `eql_v3` bundle alongside the v2 bundle; both `bulkEncryptMiddleware` and `bulkEncryptV3Middleware` register over the same SDK and ignore each other's columns. + ## Authentication There are 2 main ways to authenticate to CipherStash: From 7d1ac548a67d1dffd78338f38961557b426c610e Mon Sep 17 00:00:00 2001 From: Toby Hede Date: Wed, 17 Jun 2026 10:08:08 +1000 Subject: [PATCH 19/21] refactor(prisma-next): address CodeRabbit review (centralize v3 index guard, fix docs/test labels) - Move V3_INDEX_VALUES + isV3Index to v3/domain-map.ts (single source of truth; was duplicated in derive-schemas.ts and codec-hooks-v3.ts). - Align vendor-script run comment with REFRESH_EQL_V3.md (node --experimental-strip-types). - Rename the mislabeled e2e 'NULL round-trips' test (UserV3 columns are NOT NULL). --- examples/prisma/test/e2e/str-v3.e2e.test.ts | 4 ++-- packages/prisma-next/scripts/vendor-eql-v3-install.ts | 3 ++- packages/prisma-next/src/migration/codec-hooks-v3.ts | 8 +------- packages/prisma-next/src/stack/derive-schemas.ts | 8 +------- packages/prisma-next/src/v3/domain-map.ts | 8 ++++++++ 5 files changed, 14 insertions(+), 17 deletions(-) diff --git a/examples/prisma/test/e2e/str-v3.e2e.test.ts b/examples/prisma/test/e2e/str-v3.e2e.test.ts index 925bb2a3..955a1cd4 100644 --- a/examples/prisma/test/e2e/str-v3.e2e.test.ts +++ b/examples/prisma/test/e2e/str-v3.e2e.test.ts @@ -88,9 +88,9 @@ describe.skipIf(!dbUrl)('EQL v3 String e2e (live PG + eql_v3 + ZeroKMS)', () => expect(rows.map((r) => r.id).sort()).toEqual(expected) }) - it('NULL round-trips: a null v3 column decrypts back to null', async () => { + it('insert + decrypt round-trips a freshly-created v3 row (UserV3 columns are NOT NULL)', async () => { await db.orm.UserV3.create({ - id: 'e2e-strv3-null', + id: 'e2e-strv3-extra', email: EncryptedString.from('present'), bio: EncryptedString.from('present'), name: EncryptedString.from('present'), diff --git a/packages/prisma-next/scripts/vendor-eql-v3-install.ts b/packages/prisma-next/scripts/vendor-eql-v3-install.ts index 15a77e23..b7d78933 100644 --- a/packages/prisma-next/scripts/vendor-eql-v3-install.ts +++ b/packages/prisma-next/scripts/vendor-eql-v3-install.ts @@ -1,7 +1,8 @@ // Regenerates src/migration/eql-v3-install.generated.ts from the vendored // __tests__/fixtures/cipherstash-encrypt-v3.sql installer. // -// Run: pnpm tsx scripts/vendor-eql-v3-install.ts +// Run (tsx is not installed in this workspace; Node 22+ runs the TS directly): +// node --experimental-strip-types scripts/vendor-eql-v3-install.ts // // See scripts/REFRESH_EQL_V3.md for the full refresh procedure (which EQL commit // the fixture is built from, the cross-package duplication hazard, etc.). diff --git a/packages/prisma-next/src/migration/codec-hooks-v3.ts b/packages/prisma-next/src/migration/codec-hooks-v3.ts index becc5955..e1490826 100644 --- a/packages/prisma-next/src/migration/codec-hooks-v3.ts +++ b/packages/prisma-next/src/migration/codec-hooks-v3.ts @@ -15,13 +15,7 @@ */ import type { CodecControlHooks } from '@prisma-next/family-sql/control' -import { type V3Index, eqlV3Domain } from '../v3/domain-map' - -const V3_INDEX_VALUES = ['equality', 'freeTextSearch', 'orderAndRange'] as const - -function isV3Index(value: unknown): value is V3Index { - return typeof value === 'string' && (V3_INDEX_VALUES as readonly string[]).includes(value) -} +import { eqlV3Domain, isV3Index } from '../v3/domain-map' const expandNativeType: NonNullable = ({ typeParams }) => { const index = typeParams?.['index'] diff --git a/packages/prisma-next/src/stack/derive-schemas.ts b/packages/prisma-next/src/stack/derive-schemas.ts index d680a2b8..427417e0 100644 --- a/packages/prisma-next/src/stack/derive-schemas.ts +++ b/packages/prisma-next/src/stack/derive-schemas.ts @@ -33,7 +33,7 @@ import { isCipherstashCodecId, isCipherstashV3CodecId, } from '../extension-metadata/constants' -import { type V3Index, v3CastAs } from '../v3/domain-map' +import { V3_INDEX_VALUES, isV3Index, v3CastAs } from '../v3/domain-map' /** * Structural shape of the subset of `contract.json` this derivation @@ -155,12 +155,6 @@ function isCipherstashFlag(value: string): value is CipherstashFlag { return value in FLAG_DISPATCH } -const V3_INDEX_VALUES = ['equality', 'freeTextSearch', 'orderAndRange'] as const - -function isV3Index(value: unknown): value is V3Index { - return typeof value === 'string' && (V3_INDEX_VALUES as readonly string[]).includes(value) -} - /** * Apply a v3 column's single index. `typeParams.index` is `unknown` (the contract * view types typeParams as `Record | null`), so narrow with diff --git a/packages/prisma-next/src/v3/domain-map.ts b/packages/prisma-next/src/v3/domain-map.ts index 03c2926e..f2360b03 100644 --- a/packages/prisma-next/src/v3/domain-map.ts +++ b/packages/prisma-next/src/v3/domain-map.ts @@ -18,6 +18,14 @@ export type V3DataType = 'text' /** v3 single-capability index choices for the text scalar. */ export type V3Index = 'equality' | 'freeTextSearch' | 'orderAndRange' +/** The closed set of v3 index values, as a runtime array (SSOT for {@link isV3Index}). */ +export const V3_INDEX_VALUES = ['equality', 'freeTextSearch', 'orderAndRange'] as const + +/** Narrow an `unknown` (e.g. a `typeParams.index` read from a contract) to {@link V3Index}. */ +export function isV3Index(value: unknown): value is V3Index { + return typeof value === 'string' && (V3_INDEX_VALUES as readonly string[]).includes(value) +} + /** * Per-scalar capability table. Keyed by scalar so adding int/date/timestamptz is * a type-shape extension (new key + its valid index subset), not a row append From 5f75946c659b211aa09c9c472e52e5bcc8e56aa0 Mon Sep 17 00:00:00 2001 From: Toby Hede Date: Wed, 17 Jun 2026 11:05:01 +1000 Subject: [PATCH 20/21] refactor(prisma-next): apply multi-agent review fixes (v3) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Remove dead v3Dialect.orderBy() (unreachable — cipherstashAsc/Desc are v2-only); document that v3 ORDER BY sort is not yet wired (README + e2e header). - Fix stale eqlOperator docblock (now trait-dispatched + dialect-selected, not pinned to string@1 / eql_v2). - Reuse FLAG_DISPATCH in applyV3Index instead of a parallel if-chain. - Expand tests: full index/operator mismatch matrix, V3_ENVELOPE_COERCERS reject path, setHandleQueryType write-once-wins conflict, encryptQuery failure branch; tighten the sdk-adapter column assertion; add gt/lte e2e ord cases. - Align vendor-script + migration regen comments with the actual invocation. --- .../prisma/test/e2e/helpers/eql-v3-seed.ts | 3 - examples/prisma/test/e2e/str-v3.e2e.test.ts | 13 +++- packages/prisma-next/README.md | 2 +- .../migration.ts | 3 +- .../scripts/vendor-eql-v3-install.ts | 3 +- .../src/execution/codec-runtime.ts | 20 +++--- packages/prisma-next/src/execution/dialect.ts | 3 - .../prisma-next/src/execution/operators.ts | 20 +++--- .../src/execution/parameterized.ts | 25 ++++--- packages/prisma-next/src/execution/sdk.ts | 2 +- packages/prisma-next/src/exports/runtime.ts | 10 +-- .../src/migration/cipherstash-codec.ts | 4 +- .../prisma-next/src/stack/derive-schemas.ts | 6 +- packages/prisma-next/src/stack/sdk-adapter.ts | 19 +++--- .../prisma-next/src/types/operation-types.ts | 47 +++++++------ .../test/operation-types.types.test-d.ts | 35 ++++++++-- packages/prisma-next/test/v3/dialect.test.ts | 4 +- .../prisma-next/test/v3/edge-cases-v3.test.ts | Bin 0 -> 4287 bytes .../prisma-next/test/v3/operators-v3.test.ts | 63 ++++++++++++++++-- .../test/v3/sdk-adapter-query.test.ts | 16 ++++- .../prisma-next/test/v3/trait-parity.test.ts | 53 +++++++++++++++ packages/prisma-next/vitest.config.ts | 8 +++ 22 files changed, 260 insertions(+), 99 deletions(-) create mode 100644 packages/prisma-next/test/v3/edge-cases-v3.test.ts create mode 100644 packages/prisma-next/test/v3/trait-parity.test.ts diff --git a/examples/prisma/test/e2e/helpers/eql-v3-seed.ts b/examples/prisma/test/e2e/helpers/eql-v3-seed.ts index 18af1906..edb89268 100644 --- a/examples/prisma/test/e2e/helpers/eql-v3-seed.ts +++ b/examples/prisma/test/e2e/helpers/eql-v3-seed.ts @@ -33,6 +33,3 @@ export const oracleBetween = (lo: string, hi: string) => ids(v3Seed.filter((r) => r.label >= lo && r.label <= hi)) export const oracleInArray = (targets: ReadonlyArray) => ids(v3Seed.filter((r) => targets.includes(r.label))) - -// Ascending labels (text_ord) — for the order-by assertion. -export const oracleAscLabels = () => [...v3Seed].map((r) => r.label).sort((a, b) => a.localeCompare(b)) diff --git a/examples/prisma/test/e2e/str-v3.e2e.test.ts b/examples/prisma/test/e2e/str-v3.e2e.test.ts index 955a1cd4..9a8d568e 100644 --- a/examples/prisma/test/e2e/str-v3.e2e.test.ts +++ b/examples/prisma/test/e2e/str-v3.e2e.test.ts @@ -6,7 +6,10 @@ * index columns: * - email (text_eq) — cipherstashEq / Ne / InArray / NotInArray * - bio (text_match) — cipherstashIlike / NotIlike (containment) - * - name (text_ord) — cipherstashLt/Lte/Gt/Gte/Between + asc/desc order + * - name (text_ord) — cipherstashLt / Lte / Gt / Between (ORE comparison) + * + * (Ordered `ORDER BY` sort is not yet wired for v3 — see the package README — so + * this matrix covers the range/comparison predicates only.) * * Gated on DATABASE_URL (set by global-setup once the harness Postgres + ZeroKMS * credentials are configured); skips cleanly otherwise. @@ -18,8 +21,10 @@ import { oracleBetween, oracleContains, oracleEq, + oracleGt, oracleInArray, oracleLt, + oracleLte, oracleNe, v3Seed, } from './helpers/eql-v3-seed' @@ -69,9 +74,13 @@ describe.skipIf(!dbUrl)('EQL v3 String e2e (live PG + eql_v3 + ZeroKMS)', () => ) }) - it('lt / between on text_ord match the ord oracle', async () => { + it('lt / lte / gt / between on text_ord match the ORE comparison oracles', async () => { const lt = await db.orm.UserV3.where((u) => u.name.cipherstashLt('banana')).all() expect(lt.map((r) => r.id).sort()).toEqual(oracleLt('banana')) + const lte = await db.orm.UserV3.where((u) => u.name.cipherstashLte('banana')).all() + expect(lte.map((r) => r.id).sort()).toEqual(oracleLte('banana')) + const gt = await db.orm.UserV3.where((u) => u.name.cipherstashGt('banana')).all() + expect(gt.map((r) => r.id).sort()).toEqual(oracleGt('banana')) const between = await db.orm.UserV3.where((u) => u.name.cipherstashBetween('aardvark', 'cherry')).all() expect(between.map((r) => r.id).sort()).toEqual(oracleBetween('aardvark', 'cherry')) }) diff --git a/packages/prisma-next/README.md b/packages/prisma-next/README.md index 1150e93a..97eb48c8 100644 --- a/packages/prisma-next/README.md +++ b/packages/prisma-next/README.md @@ -125,7 +125,7 @@ model Doc { | `orderAndRange` | `eql_v3.text_ord` | `cipherstashGt` / `cipherstashGte` / `cipherstashLt` / `cipherstashLte` / `cipherstashBetween` / `cipherstashNotBetween` | | `freeTextSearch` | `eql_v3.text_match`| `cipherstashIlike` / `cipherstashNotIlike` (containment) | -Applying an operator that needs a different index than the column declares (e.g. `cipherstashGt` on an `equality` column) is rejected with a clear `TypeError` at **query-build time** — a runtime guard, not compile-time gating (milestone-1 trade-off; per-index codec ids could restore compile-time gating later). The v3 baseline migration installs the `eql_v3` bundle alongside the v2 bundle; both `bulkEncryptMiddleware` and `bulkEncryptV3Middleware` register over the same SDK and ignore each other's columns. +Ordered `ORDER BY` sort (`cipherstashAsc` / `cipherstashDesc`) is **not yet wired for v3** — those helpers currently accept v2 columns only. Applying an operator that needs a different index than the column declares (e.g. `cipherstashGt` on an `equality` column) is rejected with a clear `TypeError` at **query-build time** — a runtime guard, not compile-time gating (milestone-1 trade-off; per-index codec ids could restore compile-time gating later). The v3 baseline migration installs the `eql_v3` bundle alongside the v2 bundle; both `bulkEncryptMiddleware` and `bulkEncryptV3Middleware` register over the same SDK and ignore each other's columns. ## Authentication diff --git a/packages/prisma-next/migrations/20260601T0100_install_eql_v3_bundle/migration.ts b/packages/prisma-next/migrations/20260601T0100_install_eql_v3_bundle/migration.ts index 18d70afc..2edfebc6 100644 --- a/packages/prisma-next/migrations/20260601T0100_install_eql_v3_bundle/migration.ts +++ b/packages/prisma-next/migrations/20260601T0100_install_eql_v3_bundle/migration.ts @@ -12,7 +12,8 @@ * (applied via the codec hook's `expandNativeType`) encodes the index capability. * * Authoring loop: hand-edited; re-emit `ops.json` / `migration.json` after edits - * via `node migration.ts`. + * by running this file through a TypeScript loader (the imports below are + * extensionless TS) — e.g. `pnpm dlx tsx migration.ts`. */ import { Migration, MigrationCLI, rawSql } from '@prisma-next/target-postgres/migration'; import { CIPHERSTASH_INVARIANTS } from '../../src/extension-metadata/constants'; diff --git a/packages/prisma-next/scripts/vendor-eql-v3-install.ts b/packages/prisma-next/scripts/vendor-eql-v3-install.ts index b7d78933..dc43f8eb 100644 --- a/packages/prisma-next/scripts/vendor-eql-v3-install.ts +++ b/packages/prisma-next/scripts/vendor-eql-v3-install.ts @@ -27,7 +27,8 @@ writeFileSync( `//\n` + `// This file is committed to source control so dev environments and offline\n` + `// builds work without network access. Regenerate with\n` + - `// \`pnpm tsx scripts/vendor-eql-v3-install.ts\` after refreshing the fixture.\n` + + `// \`node --experimental-strip-types scripts/vendor-eql-v3-install.ts\` after\n` + + `// refreshing the fixture (see scripts/REFRESH_EQL_V3.md).\n` + `export const EQL_V3_INSTALL_VERSION = '${VERSION}' as const\n` + `export const EQL_V3_INSTALL_SQL: string = \`${escaped}\`\n`, ) diff --git a/packages/prisma-next/src/execution/codec-runtime.ts b/packages/prisma-next/src/execution/codec-runtime.ts index 5319674c..d3664c9a 100644 --- a/packages/prisma-next/src/execution/codec-runtime.ts +++ b/packages/prisma-next/src/execution/codec-runtime.ts @@ -2,14 +2,18 @@ * Cipherstash storage codec runtimes — wrap each `Encrypted*` envelope * at the SQL codec boundary. * - * Every cipherstash codec has identical encode/decode bodies (the - * `eql_v2_encrypted` composite-literal wire format is determined by - * the EQL type definition, not by the plaintext type). The shared body - * lives in `./cell-codec-factory.ts`; the per-codec wrappers below - * supply only the per-type discriminators (codec id, user-facing type - * name, envelope `fromInternal` factory) and re-export the codec class - * for backwards compatibility with consumers that imported it directly - * from this module. + * The six v2 cipherstash codecs share identical encode/decode bodies + * (the `eql_v2_encrypted` composite-literal wire format is determined + * by the EQL type definition, not by the plaintext type). The v3 string + * codec (re-exported below from `./codec-v3.ts`) reuses the same shared + * body but OVERRIDES `encodeWire`/`decodeWire` for the plain-jsonb v3 + * domain wire (`eql_v3.text*` columns are `CREATE DOMAIN … AS jsonb`, + * not the v2 composite literal). The shared body lives in + * `./cell-codec-factory.ts`; the per-codec wrappers below supply only + * the per-type discriminators (codec id, user-facing type name, envelope + * `fromInternal` factory) and re-export the codec class for backwards + * compatibility with consumers that imported it directly from this + * module. * * Mirrors the `makeCipherstashCodecHooks` pattern on the migration * plane (see `../migration/codec-hooks-factory.ts`) — same shape, diff --git a/packages/prisma-next/src/execution/dialect.ts b/packages/prisma-next/src/execution/dialect.ts index aeb1eec3..b2b6d31b 100644 --- a/packages/prisma-next/src/execution/dialect.ts +++ b/packages/prisma-next/src/execution/dialect.ts @@ -15,7 +15,6 @@ export interface SqlDialect { comparison(op: ComparisonOp): string range(): string match(op: MatchOp): string - orderBy(): string } export const v2Dialect: SqlDialect = { @@ -23,7 +22,6 @@ export const v2Dialect: SqlDialect = { comparison: (op) => `eql_v2.${op}({{self}}, {{arg0}})`, range: () => 'eql_v2.gte({{self}}, {{arg0}}) AND eql_v2.lte({{self}}, {{arg1}})', match: (op) => `eql_v2.${op === 'like' ? 'ilike' : op}({{self}}, {{arg0}})`, - orderBy: () => 'eql_v2.order_by({{self}})', } const ORD_SYMBOL: Record = { gt: '>', gte: '>=', lt: '<', lte: '<=' } @@ -47,7 +45,6 @@ export const v3Dialect: SqlDialect = { 'eql_v3.ord_term({{self}}) >= eql_v3.ore_block_u64_8_256({{arg0}}::jsonb) AND ' + 'eql_v3.ord_term({{self}}) <= eql_v3.ore_block_u64_8_256({{arg1}}::jsonb)', match: () => 'eql_v3.match_term({{self}}) @> eql_v3.bloom_filter({{arg0}}::jsonb)', - orderBy: () => 'eql_v3.ord_term({{self}})', } // Route by codec id: a column's wire/operator family is fixed by its codec id, diff --git a/packages/prisma-next/src/execution/operators.ts b/packages/prisma-next/src/execution/operators.ts index 493640b5..466741fd 100644 --- a/packages/prisma-next/src/execution/operators.ts +++ b/packages/prisma-next/src/execution/operators.ts @@ -323,16 +323,18 @@ function extractColumnRef(selfAst: AnyExpression): ColumnRef | undefined { } /** - * Build a single-codec cipherstash operator descriptor — the - * original shape used by `cipherstashEq` / `cipherstashIlike`, - * pinned to `cipherstash/string@1`. Multi-codec operators use - * {@link envelopeOperator} with trait-based dispatch instead. + * Build the single-ARG cipherstash operator descriptor used by + * `cipherstashEq` / `cipherstashIlike`. Dispatches on the shared + * `cipherstash:string` trait (carried by BOTH `cipherstash/string@1` and + * `cipherstash/string-v3@1`, and only those), so it attaches to v2 AND v3 string + * columns; the v2/v3 SQL split is chosen at `impl` time via + * {@link dialectForCodecId}. Multi-codec operators use {@link envelopeOperator}. * - * @param publicMethod - The user-facing method name on the column - * accessor (e.g. `cipherstashEq`). Must not collide with any - * framework- or adapter-shipped method name. - * @param eqlFunction - The EQL function to lower to (`eq`, `ilike`). - * Embedded into the SQL lowering template as `eql_v2.(...)`. + * @param publicMethod - The user-facing method name on the column accessor (e.g. + * `cipherstashEq`). Must not collide with any framework- or adapter-shipped name. + * @param eqlFunction - Selects the dialect template (`equality('eq')` for `eq`, + * `match('like')` for `ilike`), lowered to `eql_v2.*` or `eql_v3.*` per the + * column's codec. Also selects the v3 `queryType` for the index/operator guard. */ function eqlOperator(publicMethod: string, eqlFunction: 'eq' | 'ilike'): SqlOperationDescriptor { // `eq` carries an equality index; `ilike` (free-text containment) carries the diff --git a/packages/prisma-next/src/execution/parameterized.ts b/packages/prisma-next/src/execution/parameterized.ts index e8e56a34..9a9a31c2 100644 --- a/packages/prisma-next/src/execution/parameterized.ts +++ b/packages/prisma-next/src/execution/parameterized.ts @@ -10,23 +10,26 @@ * so each `createParameterizedCodecDescriptors(sdk)` call produces a * fresh descriptor list closed over the SDK so multi-tenant * deployments can compose multiple cipherstash extensions side-by-side - * without cross-talk; and the cipherstash family ships six codecs - * (one per encrypted column type) which all share the same - * `eql_v2_encrypted` Postgres native type. + * without cross-talk; and the cipherstash family ships SEVEN codecs. + * The six v2 codecs (one per encrypted column type) all share the same + * `eql_v2_encrypted` Postgres native type; the seventh — the EQL v3 + * string codec — uses its OWN `jsonb` param-cast type backed by the + * per-column `eql_v3.text*` domains (NOT `eql_v2_encrypted`). * * Per-codec params shape (every flag defaults to `true` because * searchable encryption is the legitimate default for an extension * whose entire reason for existing is to make encrypted columns * queryable): * - * | Codec | Params | - * |---------------------|-------------------------------------| - * | `cipherstash/string@1` | `{ equality, freeTextSearch, orderAndRange }` | - * | `cipherstash/double@1` | `{ equality, orderAndRange }` | - * | `cipherstash/bigint@1` | `{ equality, orderAndRange }` | - * | `cipherstash/date@1` | `{ equality, orderAndRange }` | - * | `cipherstash/boolean@1` | `{ equality }` | - * | `cipherstash/json@1` | `{ searchableJson }` | + * | Codec | Params | + * |----------------------------|-------------------------------------| + * | `cipherstash/string@1` | `{ equality, freeTextSearch, orderAndRange }` | + * | `cipherstash/double@1` | `{ equality, orderAndRange }` | + * | `cipherstash/bigint@1` | `{ equality, orderAndRange }` | + * | `cipherstash/date@1` | `{ equality, orderAndRange }` | + * | `cipherstash/boolean@1` | `{ equality }` | + * | `cipherstash/json@1` | `{ searchableJson }` | + * | `cipherstash/string-v3@1` | `{ index }` (single v3 index choice; native type `jsonb`/`eql_v3.text*`, NOT `eql_v2_encrypted`) | * * The codec runtimes are per-cell stateless across params on the write * side (encode reads ciphertext from the handle, independent of the diff --git a/packages/prisma-next/src/execution/sdk.ts b/packages/prisma-next/src/execution/sdk.ts index 516f711e..459cad1c 100644 --- a/packages/prisma-next/src/execution/sdk.ts +++ b/packages/prisma-next/src/execution/sdk.ts @@ -83,7 +83,7 @@ export interface CipherstashBulkEncryptQueryArgs { * implement these three methods directly. */ export interface CipherstashSdk { - decrypt(args: CipherstashSingleDecryptArgs): Promise; + decrypt(args: CipherstashSingleDecryptArgs): Promise; bulkEncrypt(args: CipherstashBulkEncryptArgs): Promise>; bulkDecrypt(args: CipherstashBulkDecryptArgs): Promise>; /** diff --git a/packages/prisma-next/src/exports/runtime.ts b/packages/prisma-next/src/exports/runtime.ts index 38f575a2..55346b52 100644 --- a/packages/prisma-next/src/exports/runtime.ts +++ b/packages/prisma-next/src/exports/runtime.ts @@ -2,9 +2,11 @@ * Runtime-plane entry point for the CipherStash extension. * * Consumed at query time by application runtimes that need to encode / - * decode `cipherstash/string@1` columns (envelope class) and talk to the - * CipherStash SDK shape the codec runtime + bulk-encrypt middleware - * depend on. + * decode any cipherstash encrypted column — the six v2 storage codecs + * (`cipherstash/string@1`, `double@1`, `bigint@1`, `date@1`, `boolean@1`, + * `json@1`) PLUS the EQL v3 string codec (`cipherstash/string-v3@1`) — + * via their envelope classes, and talk to the CipherStash SDK shape the + * codec runtime + bulk-encrypt middleware depend on. * * The runtime entry point is deliberately separate from `./control` * (descriptor, codec lifecycle hook, contract-space artefacts) so apps @@ -18,7 +20,7 @@ * codec descriptor, and the runtime-plane `codecInstances` slot into a * single `SqlRuntimeExtensionDescriptor<'postgres'>` mirroring * pgvector's `runtime.ts` precedent. The bulk-encrypt middleware ships - * separately at `@prisma-next/extension-cipherstash/middleware` because + * separately at `@cipherstash/prisma-next/middleware` because * `SqlRuntimeExtensionDescriptor` does not own a middleware slot; * consumers register it via `createRuntime({ middleware: * [bulkEncryptMiddleware(sdk)] })`. diff --git a/packages/prisma-next/src/migration/cipherstash-codec.ts b/packages/prisma-next/src/migration/cipherstash-codec.ts index 9fad57c5..2040034b 100644 --- a/packages/prisma-next/src/migration/cipherstash-codec.ts +++ b/packages/prisma-next/src/migration/cipherstash-codec.ts @@ -1,5 +1,5 @@ /** - * Control hooks for the `cipherstash:string@1` codec. + * Control hooks for the `cipherstash/string@1` codec. * * Implements `CodecControlHooks.onFieldEvent` via the shared * {@link makeCipherstashCodecHooks} factory (see @@ -12,7 +12,7 @@ * `cipherstashRemoveSearchConfig({...})` calls in the user's * `migration.ts` (ADR 195 two-renderer pattern). * - * Trigger: a field uses the `cipherstash:string@1` codec. The planner + * Trigger: a field uses the `cipherstash/string@1` codec. The planner * already dispatches per `(table, field)` based on the field's * `codecId` (new field for `'added'` / `'altered'`, prior field for * `'dropped'`), so this hook only fires when a cipherstash field is diff --git a/packages/prisma-next/src/stack/derive-schemas.ts b/packages/prisma-next/src/stack/derive-schemas.ts index 427417e0..ec3cf92c 100644 --- a/packages/prisma-next/src/stack/derive-schemas.ts +++ b/packages/prisma-next/src/stack/derive-schemas.ts @@ -174,7 +174,7 @@ function applyV3Index( `(one of ${V3_INDEX_VALUES.join(', ')}), got ${String(index)}.`, ) } - if (index === 'equality') return builder.equality() - if (index === 'freeTextSearch') return builder.freeTextSearch() - return builder.orderAndRange() + // The three v3 index names are exactly three FLAG_DISPATCH keys, so reuse the + // same index→builder table the v2 path uses (no parallel if-chain to drift). + return FLAG_DISPATCH[index](builder) } diff --git a/packages/prisma-next/src/stack/sdk-adapter.ts b/packages/prisma-next/src/stack/sdk-adapter.ts index 5bae843d..b87c7d3a 100644 --- a/packages/prisma-next/src/stack/sdk-adapter.ts +++ b/packages/prisma-next/src/stack/sdk-adapter.ts @@ -116,7 +116,10 @@ export function createCipherstashSdk( const result = await encryptionClient.decrypt( ensureEncryptedEnvelope(ciphertext, 'decrypt'), ) - return asSdkPlaintext(unwrap(result, 'decrypt')) + // `CipherstashSdk.decrypt` is typed `Promise`; each envelope's + // `parseDecryptedValue` hook re-narrows the raw value to its concrete + // plaintext type, so no cast is needed at this boundary. + return unwrap(result, 'decrypt') }, } } @@ -135,11 +138,13 @@ function unwrap(result: StackResult, op: string): T { return result.data } -function unwrapBulkDecryptEntry(entry: { data?: unknown; error?: unknown }): string { +function unwrapBulkDecryptEntry(entry: { data?: unknown; error?: unknown }): unknown { if ('error' in entry && entry.error !== undefined) { throw new Error(`cipherstash bulkDecrypt entry failed: ${String(entry.error)}`) } - return asSdkPlaintext(entry.data) + // `CipherstashSdk.bulkDecrypt` is typed `Promise>`; the + // per-envelope `parseDecryptedValue` hook re-narrows each value downstream. + return entry.data } function buildRegistry( @@ -225,11 +230,3 @@ function toJsPlaintext(value: unknown): JsPlaintext { if (value instanceof Date) return value.toISOString() return value as JsPlaintext } - -// The framework's `CipherstashSdk.decrypt` is typed `Promise` -// but every envelope's `parseDecryptedValue` hook narrows the raw value -// to its concrete plaintext type. Forwarding through this cast keeps the -// codec-side polymorphism intact across the SDK contract. -function asSdkPlaintext(value: unknown): string { - return value as string -} diff --git a/packages/prisma-next/src/types/operation-types.ts b/packages/prisma-next/src/types/operation-types.ts index 11dbd2dd..84a9ca45 100644 --- a/packages/prisma-next/src/types/operation-types.ts +++ b/packages/prisma-next/src/types/operation-types.ts @@ -6,21 +6,19 @@ * `../execution/operators.ts`. Every entry's `self` dispatch shape * mirrors the runtime registration 1:1: * - * - Single-codec entries (`cipherstashEq`, `cipherstashIlike`, - * `cipherstashNotIlike`, `cipherstashJsonbPathExists`) declare - * `self: { codecId: '' }`. The framework's `OpMatchesField` - * direct-codec-id branch surfaces the method on columns whose - * codec id is the literal — no consumer-side `CodecTypes` - * augmentation needed. - * - * - Multi-codec entries (the equality / order-and-range operators) - * declare `self: { traits: ['cipherstash:'] }`. Trait dispatch - * surfaces the method on every column whose codec id resolves to - * a `CodecTypes` entry whose `traits` set includes the same - * identifier. The cipherstash-namespaced `cipherstash:` prefix - * isolates these from the framework's closed `CodecTrait` union - * so adding the trait to a cipherstash codec descriptor cannot - * silently re-attach a framework built-in. + * - Every entry is trait-gated and declares + * `self: { traits: ['cipherstash:'] }`. Trait dispatch surfaces + * the method on every column whose codec id resolves to a + * `CodecTypes` entry whose `traits` set includes the same + * identifier. The legacy `cipherstashEq` / `cipherstashIlike` + * operators gate on the shared `cipherstash:string` trait — carried + * by BOTH the v2 (`cipherstash/string@1`) and v3 + * (`cipherstash/string-v3@1`) string codecs — so they surface on v3 + * string columns too, matching their runtime trait dispatch in + * `../execution/operators.ts`. The cipherstash-namespaced + * `cipherstash:` prefix isolates these from the framework's closed + * `CodecTrait` union so adding the trait to a cipherstash codec + * descriptor cannot silently re-attach a framework built-in. * * Both surfaces (codec-keyed `OperationTypes` and flat * `QueryOperationTypes`) get composed into the consuming @@ -39,9 +37,6 @@ import type { CodecExpression, Expression } from '@prisma-next/sql-relational-co type CodecTypesBase = Record; -const CIPHERSTASH_STRING_CODEC = 'cipherstash/string@1'; -type CipherstashStringCodec = typeof CIPHERSTASH_STRING_CODEC; - type PgBoolReturn = Expression<{ codecId: 'pg/bool@1'; nullable: false }>; /** @@ -76,6 +71,14 @@ type EqualityTraits = readonly ['cipherstash:equality']; type OrderAndRangeTraits = readonly ['cipherstash:order-and-range']; type FreeTextSearchTraits = readonly ['cipherstash:free-text-search']; type SearchableJsonTraits = readonly ['cipherstash:searchable-json']; +// Shared string trait carried by BOTH `cipherstash/string@1` AND +// `cipherstash/string-v3@1` (and only those two). The legacy `cipherstashEq` / +// `cipherstashIlike` operators dispatch on it at runtime +// (`../execution/operators.ts`), so the type surface must gate on the trait — +// not the v2-only `cipherstash/string@1` codecId — for the methods to surface on +// v3 string columns too. Mirrors `extension-metadata/constants.ts`'s +// `CIPHERSTASH_TRAIT_STRING`. +type StringTraits = readonly ['cipherstash:string']; /** * Schematic constraint on `self` for a multi-codec cipherstash @@ -114,16 +117,16 @@ type AnyExpressionLike = Expression<{ readonly codecId: string; readonly nullabl export type QueryOperationTypes = CT extends CodecTypesBase ? { readonly cipherstashEq: { - readonly self: { readonly codecId: CipherstashStringCodec }; + readonly self: { readonly traits: StringTraits }; readonly impl: ( - self: CodecExpression, + self: AnyExpressionLike, other: CodecExpression<'pg/text@1', boolean, CT>, ) => PgBoolReturn; }; readonly cipherstashIlike: { - readonly self: { readonly codecId: CipherstashStringCodec }; + readonly self: { readonly traits: StringTraits }; readonly impl: ( - self: CodecExpression, + self: AnyExpressionLike, pattern: CodecExpression<'pg/text@1', boolean, CT>, ) => PgBoolReturn; }; diff --git a/packages/prisma-next/test/operation-types.types.test-d.ts b/packages/prisma-next/test/operation-types.types.test-d.ts index 33c2cd8e..407eabe9 100644 --- a/packages/prisma-next/test/operation-types.types.test-d.ts +++ b/packages/prisma-next/test/operation-types.types.test-d.ts @@ -9,11 +9,13 @@ * * The tests pin two surface contracts: * - * 1. **Codec-id dispatch (positive/negative)** for the legacy and - * single-codec entries (`cipherstashEq`, `cipherstashIlike`, - * `cipherstashNotIlike`, `cipherstashJsonbPathExists`): - * the operator must surface on its target codec id and on no - * other. + * 1. **Shared-string-trait dispatch (positive/negative)** for the + * legacy `cipherstashEq` / `cipherstashIlike` entries: they gate on + * the `cipherstash:string` trait carried by BOTH the v2 + * (`cipherstash/string@1`) and v3 (`cipherstash/string-v3@1`) + * string codecs, so they must surface on both and on no non-string + * codec. `cipherstashNotIlike` / `cipherstashJsonbPathExists` + * similarly gate on their own single traits. * * 2. **Trait dispatch (positive/negative)** for the multi-codec * entries (`cipherstashNe`, `cipherstashInArray`, @@ -49,12 +51,25 @@ type CSEq = 'cipherstash:equality'; type CSOR = 'cipherstash:order-and-range'; type CSFTS = 'cipherstash:free-text-search'; type CSSJ = 'cipherstash:searchable-json'; +// Shared string trait carried by BOTH the v2 and v3 string codecs (per +// `extension-metadata/constants.ts:CIPHERSTASH_TRAIT_STRING`). The legacy +// `cipherstashEq` / `cipherstashIlike` gate on it, so both string codec +// entries below advertise it. +type CSStr = 'cipherstash:string'; type CT = { readonly 'cipherstash/string@1': { readonly input: string; readonly output: string; - readonly traits: CSEq | CSOR | CSFTS; + readonly traits: CSStr | CSEq | CSOR | CSFTS; + }; + // EQL v3 string codec — reuses the EncryptedString envelope but carries its + // own codec id, sharing the `cipherstash:string` trait with the v2 codec so + // the legacy eq/ilike surface on it too. + readonly 'cipherstash/string-v3@1': { + readonly input: string; + readonly output: string; + readonly traits: CSStr | CSEq | CSOR | CSFTS; }; readonly 'cipherstash/double@1': { readonly input: number; @@ -119,14 +134,18 @@ type M = OpMatchesField; // -- cipherstashEq (string only) -------------------------------------------- type _eq_string_pos = Expect>; +// v3 string columns also surface cipherstashEq via the shared cipherstash:string trait. +type _eq_string_v3_pos = Expect>; // @ts-expect-error cipherstashEq must not surface on cipherstash/double@1. type _eq_double_neg = Expect>; // @ts-expect-error cipherstashEq must not surface on pg/text@1. type _eq_text_neg = Expect>; -// -- cipherstashIlike (string only) ----------------------------------------- +// -- cipherstashIlike (shared string trait — v2 + v3) ----------------------- type _ilike_string_pos = Expect>; +// v3 string columns also surface cipherstashIlike via the shared cipherstash:string trait. +type _ilike_string_v3_pos = Expect>; // @ts-expect-error cipherstashIlike must not surface on cipherstash/double@1. type _ilike_double_neg = Expect>; @@ -210,9 +229,11 @@ type _jpe_text_neg = Expect>; export type _Anchors = [ _eq_string_pos, + _eq_string_v3_pos, _eq_double_neg, _eq_text_neg, _ilike_string_pos, + _ilike_string_v3_pos, _ilike_double_neg, _notilike_string_pos, _notilike_double_neg, diff --git a/packages/prisma-next/test/v3/dialect.test.ts b/packages/prisma-next/test/v3/dialect.test.ts index 5f041958..8ca709ec 100644 --- a/packages/prisma-next/test/v3/dialect.test.ts +++ b/packages/prisma-next/test/v3/dialect.test.ts @@ -15,7 +15,6 @@ describe('v2Dialect (must match current operators.ts templates byte-for-byte)', expect(v2Dialect.comparison('lte')).toBe('eql_v2.lte({{self}}, {{arg0}})') expect(v2Dialect.range()).toBe('eql_v2.gte({{self}}, {{arg0}}) AND eql_v2.lte({{self}}, {{arg1}})') expect(v2Dialect.match('like')).toBe('eql_v2.ilike({{self}}, {{arg0}})') - expect(v2Dialect.orderBy()).toBe('eql_v2.order_by({{self}})') }) }) @@ -30,13 +29,12 @@ describe('v3Dialect (extracted-index-term form, mirrors drizzle v3Dialect)', () expect(v3Dialect.comparison('lt')).toBe('eql_v3.ord_term({{self}}) < eql_v3.ore_block_u64_8_256({{arg0}}::jsonb)') expect(v3Dialect.comparison('lte')).toBe('eql_v3.ord_term({{self}}) <= eql_v3.ore_block_u64_8_256({{arg0}}::jsonb)') }) - it('range / match / orderBy', () => { + it('range / match', () => { expect(v3Dialect.range()).toBe( 'eql_v3.ord_term({{self}}) >= eql_v3.ore_block_u64_8_256({{arg0}}::jsonb) AND ' + 'eql_v3.ord_term({{self}}) <= eql_v3.ore_block_u64_8_256({{arg1}}::jsonb)', ) expect(v3Dialect.match('like')).toBe('eql_v3.match_term({{self}}) @> eql_v3.bloom_filter({{arg0}}::jsonb)') - expect(v3Dialect.orderBy()).toBe('eql_v3.ord_term({{self}})') }) }) diff --git a/packages/prisma-next/test/v3/edge-cases-v3.test.ts b/packages/prisma-next/test/v3/edge-cases-v3.test.ts new file mode 100644 index 0000000000000000000000000000000000000000..ec09c10588dda1ae6b47ea41088431fb1b6a4d8d GIT binary patch literal 4287 zcmb7IL2nz!74Dh8;zcmPr6TU8)}^4Mpo+}Iid`v@6!)MA(r|Z3ZoE6Ynwh0U5Cnn* zD0=K6Kzk_aQxP<1(R0uKCp8fC=%3K<&Fn5oS9Tr2wwBzP_ujnsz3+YFXnVUu+ceuH znM@?b!bmfqN~Lj;NQx-0GMkR(mY-!_+IintovI0ynMjqDx0dWw7u95n-x7A%S}E)_ zq%(Y$x2dtbT;7*dXc1@lrLs9*NFAqeM*F7+hldY%w~_4F_A@z?8QT%YNNv+X87fod z9NeTDQ6jdOgi30kRFqN+TWIH*#&}SL>O0H4jBUB#DOF`_C|LFUmuH{!f7RpVO1$_d!WfGeKZr#7 zeQsTej*g3blq$4&KQ&YG<_x`0rWCQ{-9P>DuRs0y@BjJnFE79Q-OF$P@$%b$z5MR? z-pIjck15#gJBnGkd-eQJ-@JPM{U2UE|KZ0vNQ4gDgLV{XB`>~CDKM4R#YBLdN|9>g z0u{d)`3*83$t1z4j=p@tF=VNdzx+z^ulrxwt?R15k+=L>B+u$1L&%?<9v}5hI#KC3 zjR7Ev(bcAN0WQKZ0jf@?>9e2<)?DMGe}D7++lX^jEdpPvqz@h~4g3c^+WW{c0~1%^ z3u&krZ&b7ARuFnRxLVs!_ZA#-=nI>U=Yi=hk)QhPD5s#WO`%3e(L5_ea<%S|@ZSN5}G3#Fo5C zaPYe8*IGJo_E2EIxX0lPuPc#lM!w{@mL2?q8g$qDiQ^J96Iq(n$;NXfDL6VlLw>VN zlmMd?xNbhAa&i=3%1yr=39fUtz})addWNIchd#@ z;7`qDMQH%WH;=`;!e>xSy;bIRO5pn3@Smhw5!atwFv z5Dts6x7FC-6liHHt?EAXAI<<`?i0uKhsl86KD>5ZF@20y10hQu{oI2{+0U}W-SfH7 zB8OUAK-Tz~R+}4DX_o98G_U6t9FF}gJ3w!nGp}Wu!5?6BP7561-BP#1Xs>YeN zjp_~V))F7q?>)cyR2L;Ojq;v*mludE9aHdLQTEWdy10S-x}hPcT?bdHSc$uP3%_G| z#nte}psO-xE_6@8dhL;6AB15j+8EC-Jke5T&Pgv^*>A&COi_EZvbq`Qf`p!+k|$CmERXlK7V{6m#2ZPb0#(~*8HCn&M(&SfXPrusz%}LOLoa7it2L zG9kfNt2N(^?0apP!DR^EEsP9$VS6j9M{0eL&C!);j0HbQ{Spl$_VzVo@E*?FisFE;NBlFYvS&4p-ECsfxTsqK z!lM;Ueh0e>%gRi-=Up$fHEfC7e;q>J2f^hGZR>0V|3~n6d^D2hYMS@&Ez;!`BJg7o zyy{839+RFw7@$1B#En3SaUBFJY@Vq-EYi$ZA zw&1N_`oj+Bob`XJ_PZOx`eGyS8tYtU=qL${`1`dNQuTicL>@8TIt8F-%rOO`9f){=nhv(i;>4QfMexIFU4M`9+QNHww3V3${TvG8AOmXEan literal 0 HcmV?d00001 diff --git a/packages/prisma-next/test/v3/operators-v3.test.ts b/packages/prisma-next/test/v3/operators-v3.test.ts index 6ffb2ec1..e514f707 100644 --- a/packages/prisma-next/test/v3/operators-v3.test.ts +++ b/packages/prisma-next/test/v3/operators-v3.test.ts @@ -15,8 +15,8 @@ import { TableSource, } from '@prisma-next/sql-relational-core/ast' import { describe, expect, it } from 'vitest' -import { readHandleQueryType } from '../../src/execution/envelope-base' import type { EncryptedEnvelopeBase } from '../../src/execution/envelope-base' +import { EncryptedString, readHandleQueryType, setHandleQueryType } from '../../src/execution/envelope-string' import { cipherstashQueryOperations, queryTypeForIndex } from '../../src/execution/operators' import { CIPHERSTASH_STRING_V3_CODEC_ID } from '../../src/extension-metadata/constants' import type { V3Index } from '../../src/v3/domain-map' @@ -138,11 +138,8 @@ describe('v3 operator lowering (cipherstash/string-v3@1)', () => { ) }) - it('rejects index/operator mismatch with a clear TypeError', () => { - // cipherstashGt needs orderAndRange; the email column is text_eq (equality). - expect(() => lowerSql('cipherstashGt', 'email', 'equality', 'x')).toThrow(/orderAndRange/) - // cipherstashIlike needs freeTextSearch; email is text_eq. - expect(() => lowerSql('cipherstashIlike', 'email', 'equality', '%x%')).toThrow(/freeTextSearch/) + it('rejects a non-string / non-envelope arg on a v3 column (V3_ENVELOPE_COERCERS reject path)', () => { + expect(() => predicateAst('cipherstashEq', 'email', 'equality', 123)).toThrow(/EncryptedString|string/) }) it('stamps the protect queryType on the v3 search-term param', () => { @@ -169,3 +166,57 @@ describe('queryTypeForIndex', () => { expect(queryTypeForIndex('freeTextSearch')).toBe('freeTextSearch') }) }) + +// Full index/operator mismatch matrix: an operator whose required query-type ≠ the +// column's single declared index must throw at build time (the runtime guard is the +// only thing standing between a wrong-domain term and an opaque CHECK / "function +// does not exist" failure). Each operator is exercised against BOTH columns it does +// NOT belong to. +describe('v3 index/operator mismatch matrix', () => { + // [method, requiredIndex, args] + const OPS: ReadonlyArray = [ + ['cipherstashEq', 'equality', ['x']], + ['cipherstashNe', 'equality', ['x']], + ['cipherstashInArray', 'equality', [['a', 'b']]], + ['cipherstashNotInArray', 'equality', [['a', 'b']]], + ['cipherstashGt', 'orderAndRange', ['x']], + ['cipherstashGte', 'orderAndRange', ['x']], + ['cipherstashLt', 'orderAndRange', ['x']], + ['cipherstashLte', 'orderAndRange', ['x']], + ['cipherstashBetween', 'orderAndRange', ['a', 'z']], + ['cipherstashNotBetween', 'orderAndRange', ['a', 'z']], + ['cipherstashIlike', 'freeTextSearch', ['%x%']], + ['cipherstashNotIlike', 'freeTextSearch', ['%x%']], + ] + const COLUMNS: ReadonlyArray = [ + ['email', 'equality'], + ['name', 'orderAndRange'], + ['bio', 'freeTextSearch'], + ] + + for (const [method, requiredIndex, args] of OPS) { + for (const [column, columnIndex] of COLUMNS) { + if (columnIndex === requiredIndex) continue + it(`${method} on a ${columnIndex} column throws (needs ${requiredIndex})`, () => { + expect(() => predicateAst(method, column, columnIndex, ...args)).toThrow(new RegExp(requiredIndex)) + }) + } + } + + // Sanity: the matching pair does NOT throw (one representative per index). + it('allows the matching index/operator pair', () => { + expect(() => predicateAst('cipherstashEq', 'email', 'equality', 'x')).not.toThrow() + expect(() => predicateAst('cipherstashGt', 'name', 'orderAndRange', 'x')).not.toThrow() + expect(() => predicateAst('cipherstashIlike', 'bio', 'freeTextSearch', '%x%')).not.toThrow() + }) +}) + +describe('setHandleQueryType (envelope-base) write-once-wins', () => { + it('is idempotent for the same queryType but throws on a conflicting rebind', () => { + const env = EncryptedString.from('alice') + setHandleQueryType(env, 'equality') + expect(() => setHandleQueryType(env, 'equality')).not.toThrow() // idempotent + expect(readHandleQueryType(env)).toBe('equality') + expect(() => setHandleQueryType(env, 'orderAndRange')).toThrow(/queryType already set/) + }) +}) diff --git a/packages/prisma-next/test/v3/sdk-adapter-query.test.ts b/packages/prisma-next/test/v3/sdk-adapter-query.test.ts index 63dd4a51..05946a3f 100644 --- a/packages/prisma-next/test/v3/sdk-adapter-query.test.ts +++ b/packages/prisma-next/test/v3/sdk-adapter-query.test.ts @@ -31,7 +31,7 @@ describe('CipherstashSdk.bulkEncryptQuery', () => { expect(passed).toHaveLength(1) expect(passed[0]).toMatchObject({ value: 'alice', queryType: 'equality', returnType: 'eql' }) // column/table are the resolved typed schema objects, not the routing-key strings. - expect((passed[0]!.column as { columnName?: string }).columnName ?? passed[0]!.column).toBeDefined() + expect((passed[0]!.column as { columnName?: string }).columnName).toBe('email') expect(passed[0]!.table).toBe(users) // returned array is the bare term list — NO `.data` unwrap layer. expect(terms).toEqual([searchTerm]) @@ -46,4 +46,18 @@ describe('CipherstashSdk.bulkEncryptQuery', () => { const passed = encryptQuery.mock.calls[0]![0] as ReadonlyArray> expect(passed[0]!.queryType).toBe('orderAndRange') }) + + it('surfaces an encryptQuery failure as a thrown Error carrying the op name + message', async () => { + // The `failure: null` happy path is covered above; this pins the failure + // branch of `unwrap(result, 'bulkEncryptQuery')`. + const encryptQuery = vi.fn(async () => ({ failure: { message: 'kms unavailable' } })) + const client = { encryptQuery } as unknown as EncryptionClient + const users = encryptedTable('users', { email: encryptedColumn('email').equality() }) + const sdk = createCipherstashSdk(client, [users]) + + await expect( + sdk.bulkEncryptQuery!({ routingKey: { table: 'users', column: 'email' }, queryType: 'equality', values: ['alice'] }), + ).rejects.toThrow(/cipherstash bulkEncryptQuery failed: kms unavailable/) + expect(encryptQuery).toHaveBeenCalledOnce() + }) }) diff --git a/packages/prisma-next/test/v3/trait-parity.test.ts b/packages/prisma-next/test/v3/trait-parity.test.ts new file mode 100644 index 00000000..b77b5f6d --- /dev/null +++ b/packages/prisma-next/test/v3/trait-parity.test.ts @@ -0,0 +1,53 @@ +/** + * Guards against v2/v3 string trait-set drift. + * + * The legacy single-trait operators (`cipherstashEq` / `cipherstashIlike`) + * dispatch on the shared `cipherstash:string` trait carried by BOTH string + * codecs. If a future edit adds/removes the trait on one codec without the + * other, eq/ilike would silently stop surfacing on that column. These + * assertions read the real constants so such a drift fails here. + */ +import { describe, expect, it } from 'vitest' +import { + CIPHERSTASH_CODEC_TRAITS, + CIPHERSTASH_STRING_CODEC_ID, + CIPHERSTASH_STRING_V3_CODEC_ID, + CIPHERSTASH_TRAIT_EQUALITY, + CIPHERSTASH_TRAIT_FREE_TEXT_SEARCH, + CIPHERSTASH_TRAIT_ORDER_AND_RANGE, + CIPHERSTASH_TRAIT_STRING, +} from '../../src/extension-metadata/constants' + +const v2 = CIPHERSTASH_CODEC_TRAITS[CIPHERSTASH_STRING_CODEC_ID] ?? [] +const v3 = CIPHERSTASH_CODEC_TRAITS[CIPHERSTASH_STRING_V3_CODEC_ID] ?? [] + +describe('v2/v3 string trait parity', () => { + it('both string codecs carry the shared cipherstash:string trait', () => { + // Single-trait dispatch for cipherstashEq/cipherstashIlike depends on this. + expect(v2).toContain(CIPHERSTASH_TRAIT_STRING) + expect(v3).toContain(CIPHERSTASH_TRAIT_STRING) + }) + + it('the v3 string codec additionally carries equality, order-and-range, and free-text-search', () => { + expect(v3).toContain(CIPHERSTASH_TRAIT_EQUALITY) + expect(v3).toContain(CIPHERSTASH_TRAIT_ORDER_AND_RANGE) + expect(v3).toContain(CIPHERSTASH_TRAIT_FREE_TEXT_SEARCH) + }) + + it('the v2 and v3 string codecs advertise the same string-search trait set', () => { + // The intended relationship: v3 reuses the full v2 string trait set, so a + // change to one without the other (e.g. dropping order-and-range from only + // the v2 codec) fails this assertion. + const sortedV2 = [...v2].sort() + const sortedV3 = [...v3].sort() + expect(sortedV3).toEqual(sortedV2) + expect(sortedV2).toEqual( + [ + CIPHERSTASH_TRAIT_STRING, + CIPHERSTASH_TRAIT_EQUALITY, + CIPHERSTASH_TRAIT_FREE_TEXT_SEARCH, + CIPHERSTASH_TRAIT_ORDER_AND_RANGE, + ].sort(), + ) + }) +}) diff --git a/packages/prisma-next/vitest.config.ts b/packages/prisma-next/vitest.config.ts index 51b7828b..476dbf17 100644 --- a/packages/prisma-next/vitest.config.ts +++ b/packages/prisma-next/vitest.config.ts @@ -4,6 +4,14 @@ export default defineConfig({ test: { globals: true, environment: 'node', + // Run the type-level `*.test-d.ts` suites as part of `pnpm test` (vitest + // run). Without this they only fail via `pnpm typecheck`; enabling typecheck + // here surfaces a broken type-augmentation in the normal test run too. + typecheck: { + enabled: true, + include: ['**/*.test-d.ts'], + tsconfig: './tsconfig.json', + }, coverage: { provider: 'v8', reporter: ['text', 'json', 'html'], From 23efe0018135c34c4edb499aa481758cea1c94a1 Mon Sep 17 00:00:00 2001 From: Toby Hede Date: Wed, 17 Jun 2026 11:22:24 +1000 Subject: [PATCH 21/21] chore(prisma-next): mark vendored/generated EQL v3 artifacts in .gitattributes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The ~0.5 MB EQL v3 SQL bundle is committed in four forms (fixture, generated .ts, package ops.json, example ops.json) plus generated contract/migration snapshots — ~95% of the diff. Mark them linguist-vendored/linguist-generated so GitHub collapses them and surfaces the ~2.2k lines of authored source/tests. --- examples/prisma/.gitattributes | 12 ++++++++++++ packages/prisma-next/.gitattributes | 10 +++++++++- 2 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 examples/prisma/.gitattributes diff --git a/examples/prisma/.gitattributes b/examples/prisma/.gitattributes new file mode 100644 index 00000000..dc8643a3 --- /dev/null +++ b/examples/prisma/.gitattributes @@ -0,0 +1,12 @@ +# Generated by `prisma-next contract emit` / `migration plan`. The cipherstash +# `ops.json` embeds the ~0.5 MB vendored EQL bundle; the *-contract snapshots and +# contract.{json,d.ts} are emitted IR. Mark generated so GitHub collapses them in +# diffs and language stats, surfacing the hand-authored schema/tests. +migrations/**/ops.json linguist-generated +migrations/**/migration.json linguist-generated +migrations/**/start-contract.json linguist-generated +migrations/**/end-contract.json linguist-generated +migrations/**/start-contract.d.ts linguist-generated +migrations/**/end-contract.d.ts linguist-generated +src/prisma/contract.json linguist-generated +src/prisma/contract.d.ts linguist-generated diff --git a/packages/prisma-next/.gitattributes b/packages/prisma-next/.gitattributes index 1693ee5b..9f1bd1cc 100644 --- a/packages/prisma-next/.gitattributes +++ b/packages/prisma-next/.gitattributes @@ -1 +1,9 @@ -__tests__/fixtures/cipherstash-encrypt-v3.sql linguist-vendored +# Vendored EQL SQL bundles — copied byte-for-byte from upstream +# cipherstash/encrypt-query-language. Collapse in diffs + exclude from language stats. +__tests__/fixtures/*.sql linguist-vendored + +# Generated artifacts that embed the vendored bundle (each ~0.5 MB). The `.generated.ts` +# is produced by scripts/vendor-eql-*-install.ts; the migration `ops.json` is emitted by +# `migration plan`. Mark generated so GitHub collapses them and reviewers see real source. +src/migration/*.generated.ts linguist-generated +migrations/**/ops.json linguist-generated