Pārlūkot izejas kodu

[editor] Support executing queries on none default database

Romain Rigaux 9 gadi atpakaļ
vecāks
revīzija
3a9d3ed

+ 3 - 1
desktop/libs/notebook/src/notebook/connectors/hiveserver2.py

@@ -122,6 +122,7 @@ class HS2Api(Api):
     settings = snippet['properties'].get('settings', None)
     file_resources = snippet['properties'].get('files', None)
     functions = snippet['properties'].get('functions', None)
+    database = snippet.get('database') or 'default'
 
     if settings:
       settings = [{'key': s.rsplit('=', 1)[0], 'value': s.rsplit('=', 1)[1]} for s in settings] # TODO integrate with new binding
@@ -130,9 +131,10 @@ class HS2Api(Api):
     if functions:
       functions = [{'name': f.rsplit(' ', 1)[0], 'class_name': f.rsplit(' ', 1)[1]} for f in functions] # TODO protect for index out of bounds
 
-    query = hql_query(statement, query_type=QUERY_TYPES[0], settings=settings, file_resources=file_resources, functions=functions)
+    query = hql_query(statement, query_type=QUERY_TYPES[0], settings=settings, file_resources=file_resources, functions=functions, database=database)
 
     try:
+      db.use(database)
       handle = db.client.query(query)
     except QueryServerException, ex:
       raise QueryError(ex.message)

+ 3 - 2
desktop/libs/notebook/src/notebook/static/notebook/js/notebook.ko.js

@@ -397,7 +397,8 @@
         status: self.status,
         statement: self.statement,
         properties: self.properties,
-        result: self.result.getContext()
+        result: self.result.getContext(),
+        database: self.database
       };
     };
 
@@ -876,7 +877,7 @@
 
       $.post("/notebook/api/create_session", {
         notebook: ko.mapping.toJSON(self.getContext()),
-        session: ko.mapping.toJSON(session) // e.g. {'type': 'hive', 'properties': [{'name': driverCores', 'value', '2'}]}
+        session: ko.mapping.toJSON(session) // e.g. {'type': 'pyspark', 'properties': [{'name': driverCores', 'value', '2'}]}
         }, function (data) {
           if (data.status == 0) {
             ko.mapping.fromJS(data.session, {}, session);