Explorar o código

HUE-8140 [editor] Add additional statement types to automatic multi query execution

Johan Ahlen %!s(int64=7) %!d(string=hai) anos
pai
achega
9b1b476b34

+ 20 - 18
desktop/libs/notebook/src/notebook/static/notebook/js/notebook.ko.js

@@ -959,27 +959,29 @@ var EditorViewModel = (function() {
           self.execute(true); // Execute next, need to wait as we disabled fast click
         }, 1000);
       }
-      var match = self.statement().match(/(?:CREATE|DROP)\s+TABLE\s+(?:IF\s+(?:NOT\s+)?EXISTS\s+)?(?:`([^`]+)`|([^;\s]+))\..*/i);
-      var path = [];
-      if (match) {
-        path.push(match[1] || match[2]); // group 1 backticked db name, group 2 regular db name
-      } else {
-        match = self.statement().match(/(?:CREATE|DROP)\s+(?:DATABASE|SCHEMA)\s+(?:IF\s+(?:NOT\s+)?EXISTS\s+)?(?:`([^`]+)`|([^;\s]+))/i);
+      if (self.lastExecutedStatement() && /CREATE|DROP/i.test(self.lastExecutedStatement().firstToken)) {
+        var match = self.statement().match(/(?:CREATE|DROP)\s+TABLE\s+(?:IF\s+(?:NOT\s+)?EXISTS\s+)?(?:`([^`]+)`|([^;\s]+))\..*/i);
+        var path = [];
         if (match) {
           path.push(match[1] || match[2]); // group 1 backticked db name, group 2 regular db name
-        } else if (self.database()) {
-          path.push(self.database());
+        } else {
+          match = self.statement().match(/(?:CREATE|DROP)\s+(?:DATABASE|SCHEMA)\s+(?:IF\s+(?:NOT\s+)?EXISTS\s+)?(?:`([^`]+)`|([^;\s]+))/i);
+          if (match) {
+            path.push(match[1] || match[2]); // group 1 backticked db name, group 2 regular db name
+          } else if (self.database()) {
+            path.push(self.database());
+          }
         }
-      }
 
-      if (path.length) {
-        window.clearTimeout(refreshTimeouts[path.join('.')]);
-        refreshTimeouts[path.join('.')] = window.setTimeout(function () {
-          ignoreNextAssistDatabaseUpdate = true;
-          DataCatalog.getEntry({ sourceType: self.type(), namespace: self.namespace(), compute: self.compute(), path: path }).done(function (entry) {
-            entry.clearCache({ invalidate: 'invalidate', cascade: true, silenceErrors: true });
-          });
-        }, 5000);
+        if (path.length) {
+          window.clearTimeout(refreshTimeouts[path.join('.')]);
+          refreshTimeouts[path.join('.')] = window.setTimeout(function () {
+            ignoreNextAssistDatabaseUpdate = true;
+            DataCatalog.getEntry({ sourceType: self.type(), namespace: self.namespace(), compute: self.compute(), path: path }).done(function (entry) {
+              entry.clearCache({ invalidate: 'invalidate', cascade: true, silenceErrors: true });
+            });
+          }, 5000);
+        }
       }
     };
 
@@ -1981,7 +1983,7 @@ var EditorViewModel = (function() {
     };
 
     self.checkDdlNotification = function() {
-      if (self.lastExecutedStatement() && /CREATE|DROP|ALTER/i.test(self.lastExecutedStatement().firstToken)) {
+      if (self.lastExecutedStatement() && /ALTER|CREATE|DELETE|DROP|GRANT|INSERT|LOAD|SET|TRUNCATE|UPDATE|UPSERT|USE/i.test(self.lastExecutedStatement().firstToken)) {
         self.onDdlExecute();
       }
     };