Эх сурвалжийг харах

HUE-1863 [dbquery] Explain query doesn't work correctly

Abraham Elmahrek 12 жил өмнө
parent
commit
f19016d

+ 1 - 1
apps/rdbms/src/rdbms/api.py

@@ -181,7 +181,7 @@ def explain_query(request):
 
     if form.is_valid():
       query = SQLdesign(form, query_type=query_type)
-      query_server = dbms.get_query_server_config(app_name)
+      query_server = dbms.get_query_server_config(request.POST.get('server'))
       db = dbms.get(request.user, query_server)
 
       try:

+ 10 - 0
apps/rdbms/src/rdbms/tests.py

@@ -131,6 +131,16 @@ class TestAPI(TestSQLiteRdbmsBase):
     response_dict = json.loads(response.content)
     assert_equal(1, len(response_dict['results']['rows']), response_dict)
 
+  def test_explain_query(self):
+    data = {
+      'server': 'sqlitee',
+      'database': self.database,
+      'query': 'SELECT * FROM test1'
+    }
+    response = self.client.post(reverse('rdbms:api_explain_query'), data, follow=True)
+    response_dict = json.loads(response.content)
+    assert_true(len(response_dict['results']['rows']) > 0, response_dict)
+
   def test_options(self):
     finish = rdbms_conf.DATABASES['sqlitee'].OPTIONS.set_for_testing({'nonsensical': None})
     try:

+ 1 - 1
desktop/libs/librdbms/src/librdbms/server/rdbms_base_lib.py

@@ -76,7 +76,7 @@ class BaseRDMSClient(object):
 
   def explain(self, query):
     q = query.get_query_statement(0)
-    if q[:8].upper().startswith('EXPLAIN'):
+    if q.upper().startswith('EXPLAIN'):
       return self.execute_statement(q)
     else:
       return self.execute_statement('EXPLAIN ' + q)