From 9d36d39f479690128edc6b8e9d006e7e8802a75d Mon Sep 17 00:00:00 2001 From: Adam Griffiths Date: Mon, 16 Jan 2017 11:45:06 +1100 Subject: [PATCH] Fix for #1521 The merge from #1521 fixed the invalid variable error but it fixed in in a way that introduced another error: "dictionary changed size during iteration" This correctly applies the fix. --- redash/query_runner/elasticsearch.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/redash/query_runner/elasticsearch.py b/redash/query_runner/elasticsearch.py index 2e70e467..d0dff323 100644 --- a/redash/query_runner/elasticsearch.py +++ b/redash/query_runner/elasticsearch.py @@ -119,12 +119,13 @@ class BaseElasticSearch(BaseQueryRunner): return mappings, error def _get_query_mappings(self, url): - mappings, error = self._get_mappings(url) + mappings_data, error = self._get_mappings(url) if error: - return mappings, error + return mappings_data, error - for index_name in mappings: - index_mappings = mappings[index_name] + mappings = {} + for index_name in mappings_data: + index_mappings = mappings_data[index_name] for m in index_mappings.get("mappings", {}): for property_name in index_mappings["mappings"][m]["properties"]: property_data = index_mappings["mappings"][m]["properties"][property_name]