Browse Source

HUE-7847 [search] Show PK field in the right assist

jdesjean 7 năm trước cách đây
mục cha
commit
243604cddf

+ 11 - 2
desktop/libs/libsolr/src/libsolr/api.py

@@ -692,8 +692,17 @@ class SolrApi(object):
       params = self._get_params() + (
           ('wt', 'json'),
       )
-      response = self._root.get('%(core)s/schema/fields' % {'core': core}, params=params)
-      return self._get_json(response)
+      response = self._root.get('%(core)s/schema' % {'core': core}, params=params)
+      response_json = self._get_json(response)
+      fields = response_json['schema']['fields']
+      if response_json['schema'].get('uniqueKey'):
+        for field in fields:
+          if field['name'] == response_json['schema']['uniqueKey']:
+            field['primary_key'] = 'true'
+      return {
+        'fields': fields,
+        'responseHeader': response_json['responseHeader']
+      }
     except RestException, e:
       raise PopupException(e, title=_('Error while accessing Solr'))
 

+ 1 - 1
desktop/libs/notebook/src/notebook/connectors/solr.py

@@ -203,7 +203,7 @@ class Assist():
     ]
 
   def get_columns(self, database, table):
-    return [{'name': field['name'], 'type': field['type'], 'comment': ''} for field in self.db.schema_fields(table)['fields']]
+    return [{'name': field['name'], 'type': field['type'], 'comment': '', 'primary_key': field.get('primary_key')} for field in self.db.schema_fields(table)['fields']]
 
   def get_sample_data(self, database, table, column=None):
     # Note: currently ignores dynamic fields