summaryrefslogtreecommitdiff
path: root/venv/lib/python3.11/site-packages/sqlalchemy/dialects/postgresql/operators.py
diff options
context:
space:
mode:
authorcyfraeviolae <cyfraeviolae>2024-04-03 03:10:44 -0400
committercyfraeviolae <cyfraeviolae>2024-04-03 03:10:44 -0400
commit6d7ba58f880be618ade07f8ea080fe8c4bf8a896 (patch)
treeb1c931051ffcebd2bd9d61d98d6233ffa289bbce /venv/lib/python3.11/site-packages/sqlalchemy/dialects/postgresql/operators.py
parent4f884c9abc32990b4061a1bb6997b4b37e58ea0b (diff)
venv
Diffstat (limited to 'venv/lib/python3.11/site-packages/sqlalchemy/dialects/postgresql/operators.py')
-rw-r--r--venv/lib/python3.11/site-packages/sqlalchemy/dialects/postgresql/operators.py129
1 files changed, 129 insertions, 0 deletions
diff --git a/venv/lib/python3.11/site-packages/sqlalchemy/dialects/postgresql/operators.py b/venv/lib/python3.11/site-packages/sqlalchemy/dialects/postgresql/operators.py
new file mode 100644
index 0000000..53e175f
--- /dev/null
+++ b/venv/lib/python3.11/site-packages/sqlalchemy/dialects/postgresql/operators.py
@@ -0,0 +1,129 @@
+# dialects/postgresql/operators.py
+# Copyright (C) 2005-2024 the SQLAlchemy authors and contributors
+# <see AUTHORS file>
+#
+# This module is part of SQLAlchemy and is released under
+# the MIT License: https://www.opensource.org/licenses/mit-license.php
+# mypy: ignore-errors
+from ...sql import operators
+
+
+_getitem_precedence = operators._PRECEDENCE[operators.json_getitem_op]
+_eq_precedence = operators._PRECEDENCE[operators.eq]
+
+# JSON + JSONB
+ASTEXT = operators.custom_op(
+ "->>",
+ precedence=_getitem_precedence,
+ natural_self_precedent=True,
+ eager_grouping=True,
+)
+
+JSONPATH_ASTEXT = operators.custom_op(
+ "#>>",
+ precedence=_getitem_precedence,
+ natural_self_precedent=True,
+ eager_grouping=True,
+)
+
+# JSONB + HSTORE
+HAS_KEY = operators.custom_op(
+ "?",
+ precedence=_eq_precedence,
+ natural_self_precedent=True,
+ eager_grouping=True,
+ is_comparison=True,
+)
+
+HAS_ALL = operators.custom_op(
+ "?&",
+ precedence=_eq_precedence,
+ natural_self_precedent=True,
+ eager_grouping=True,
+ is_comparison=True,
+)
+
+HAS_ANY = operators.custom_op(
+ "?|",
+ precedence=_eq_precedence,
+ natural_self_precedent=True,
+ eager_grouping=True,
+ is_comparison=True,
+)
+
+# JSONB
+DELETE_PATH = operators.custom_op(
+ "#-",
+ precedence=_getitem_precedence,
+ natural_self_precedent=True,
+ eager_grouping=True,
+)
+
+PATH_EXISTS = operators.custom_op(
+ "@?",
+ precedence=_eq_precedence,
+ natural_self_precedent=True,
+ eager_grouping=True,
+ is_comparison=True,
+)
+
+PATH_MATCH = operators.custom_op(
+ "@@",
+ precedence=_eq_precedence,
+ natural_self_precedent=True,
+ eager_grouping=True,
+ is_comparison=True,
+)
+
+# JSONB + ARRAY + HSTORE + RANGE
+CONTAINS = operators.custom_op(
+ "@>",
+ precedence=_eq_precedence,
+ natural_self_precedent=True,
+ eager_grouping=True,
+ is_comparison=True,
+)
+
+CONTAINED_BY = operators.custom_op(
+ "<@",
+ precedence=_eq_precedence,
+ natural_self_precedent=True,
+ eager_grouping=True,
+ is_comparison=True,
+)
+
+# ARRAY + RANGE
+OVERLAP = operators.custom_op(
+ "&&",
+ precedence=_eq_precedence,
+ is_comparison=True,
+)
+
+# RANGE
+STRICTLY_LEFT_OF = operators.custom_op(
+ "<<", precedence=_eq_precedence, is_comparison=True
+)
+
+STRICTLY_RIGHT_OF = operators.custom_op(
+ ">>", precedence=_eq_precedence, is_comparison=True
+)
+
+NOT_EXTEND_RIGHT_OF = operators.custom_op(
+ "&<", precedence=_eq_precedence, is_comparison=True
+)
+
+NOT_EXTEND_LEFT_OF = operators.custom_op(
+ "&>", precedence=_eq_precedence, is_comparison=True
+)
+
+ADJACENT_TO = operators.custom_op(
+ "-|-", precedence=_eq_precedence, is_comparison=True
+)
+
+# HSTORE
+GETITEM = operators.custom_op(
+ "->",
+ precedence=_getitem_precedence,
+ natural_self_precedent=True,
+ eager_grouping=True,
+)