diff options
Diffstat (limited to 'lib/sqlalchemy/dialects/postgresql/json.py')
-rw-r--r-- | lib/sqlalchemy/dialects/postgresql/json.py | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/lib/sqlalchemy/dialects/postgresql/json.py b/lib/sqlalchemy/dialects/postgresql/json.py index 05c4d014d..821018471 100644 --- a/lib/sqlalchemy/dialects/postgresql/json.py +++ b/lib/sqlalchemy/dialects/postgresql/json.py @@ -17,33 +17,42 @@ from ... import util __all__ = ('JSON', 'JSONB') +idx_precedence = operators._PRECEDENCE[operators.json_getitem_op] + ASTEXT = operators.custom_op( - "->>", precedence=15, natural_self_precedent=True, + "->>", precedence=idx_precedence, natural_self_precedent=True, + eager_grouping=True ) JSONPATH_ASTEXT = operators.custom_op( - "#>>", precedence=15, natural_self_precedent=True, + "#>>", precedence=idx_precedence, natural_self_precedent=True, + eager_grouping=True ) HAS_KEY = operators.custom_op( - "?", precedence=15, natural_self_precedent=True + "?", precedence=idx_precedence, natural_self_precedent=True, + eager_grouping=True ) HAS_ALL = operators.custom_op( - "?&", precedence=15, natural_self_precedent=True + "?&", precedence=idx_precedence, natural_self_precedent=True, + eager_grouping=True ) HAS_ANY = operators.custom_op( - "?|", precedence=15, natural_self_precedent=True + "?|", precedence=idx_precedence, natural_self_precedent=True, + eager_grouping=True ) CONTAINS = operators.custom_op( - "@>", precedence=15, natural_self_precedent=True + "@>", precedence=idx_precedence, natural_self_precedent=True, + eager_grouping=True ) CONTAINED_BY = operators.custom_op( - "<@", precedence=15, natural_self_precedent=True + "<@", precedence=idx_precedence, natural_self_precedent=True, + eager_grouping=True ) |