diff options
author | Zuul <zuul@review.opendev.org> | 2021-06-10 01:23:35 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2021-06-10 01:23:35 +0000 |
commit | 252733dce7ae7d335b982d36e96b64e7a29d4ef2 (patch) | |
tree | 3e56d4b731527f27d63dea00910ef708f9aa5f2b | |
parent | 0783e46e33236dc29833c2896920ade3d3f45126 (diff) | |
parent | 2f8625efbdd5ceba2c5d7b5444a8e263547a1f9f (diff) | |
download | keystone-252733dce7ae7d335b982d36e96b64e7a29d4ef2.tar.gz |
Merge "Make DB queries compatible with SQLAlchemy 1.4.x"
-rw-r--r-- | keystone/common/sql/core.py | 8 | ||||
-rw-r--r-- | keystone/identity/shadow_backends/sql.py | 3 |
2 files changed, 10 insertions, 1 deletions
diff --git a/keystone/common/sql/core.py b/keystone/common/sql/core.py index ed84e5893..89169aaf3 100644 --- a/keystone/common/sql/core.py +++ b/keystone/common/sql/core.py @@ -119,6 +119,10 @@ ModelBase.__init__ = initialize_decorator(ModelBase.__init__) class JsonBlob(sql_types.TypeDecorator): impl = sql.Text + # NOTE(ralonsoh): set to True as any other TypeDecorator in SQLAlchemy + # https://docs.sqlalchemy.org/en/14/core/custom_types.html# \ + # sqlalchemy.types.TypeDecorator.cache_ok + cache_ok = True def process_bind_param(self, value, dialect): return jsonutils.dumps(value) @@ -144,6 +148,10 @@ class DateTimeInt(sql_types.TypeDecorator): impl = sql.BigInteger epoch = datetime.datetime.fromtimestamp(0, tz=pytz.UTC) + # NOTE(ralonsoh): set to True as any other TypeDecorator in SQLAlchemy + # https://docs.sqlalchemy.org/en/14/core/custom_types.html# \ + # sqlalchemy.types.TypeDecorator.cache_ok + cache_ok = True def process_bind_param(self, value, dialect): if value is None: diff --git a/keystone/identity/shadow_backends/sql.py b/keystone/identity/shadow_backends/sql.py index 1d817c038..3e04b332d 100644 --- a/keystone/identity/shadow_backends/sql.py +++ b/keystone/identity/shadow_backends/sql.py @@ -98,7 +98,8 @@ class ShadowUsers(base.ShadowUsersDriverBase): x for x in hints.filters if x['name'] not in ('idp_id', 'protocol_id', 'unique_id')] - query = query.filter(sqlalchemy.and_(*statements)) + if statements: + query = query.filter(sqlalchemy.and_(*statements)) return query def get_federated_users(self, hints): |