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

HUE-3228 Add filtering on a text facet

Romain Rigaux 9 жил өмнө
parent
commit
6e30eb1049

+ 12 - 1
apps/impala/src/impala/dashboards.py

@@ -66,7 +66,7 @@ def query(request):
     table = dashboard['properties'][0]['table']
 
     if fqs:
-      filters = ' AND '.join(['%s = %s' % (fq['field'], value) for fq in fqs for value in fq['filter']])
+      filters = ' AND '.join(['%s = %s' % (fq['field'], _get_escaped_value(value, fq['field'], dashboard)) for fq in fqs for value in fq['filter']])
     else:
       filters = ''
 
@@ -137,6 +137,17 @@ def query(request):
   return JsonResponse(result)
 
 
+
+def _get_field_type(name, dashboard):
+  return [f for f in dashboard['properties'][0]['fields'] if f['name'] == name][0]['type']
+
+def _get_escaped_value(value, field_name, dashboard):
+  if _get_field_type(field_name, dashboard) == 'string':
+    return "'%s'" % value
+  else:
+    return value
+
+
 def new_facet(request):
   result = {'status': -1, 'message': 'Error'}
 

+ 1 - 1
apps/impala/src/impala/urls.py

@@ -30,7 +30,7 @@ urlpatterns = patterns('impala.api',
 urlpatterns += patterns('impala.dashboards',
   url(r'^dashboard/$', 'dashboard', name='dashboard'),
   url(r'^dashboard/query', 'query', name='query'),
-  
+
   url(r'^dashboard/new_facet$', 'new_facet', name='new_facet'),
   url(r'^dashboard/new_search$', 'new_search', name='new_search'),
   url(r'^dashboard/save$', 'save', name='save'),