Selaa lähdekoodia

[sql] Only auto perform USE db statement for dialect supporting it

Romain Rigaux 5 vuotta sitten
vanhempi
commit
f5e71367f3

+ 22 - 0
desktop/core/src/desktop/lib/connectors/types.py

@@ -53,6 +53,7 @@ CONNECTOR_TYPES = [
       'has_auto_limit': False,
       'has_auto_limit': False,
       'has_reference_language': True,
       'has_reference_language': True,
       'has_reference_functions': True,
       'has_reference_functions': True,
+      'has_use_statement': True,
       'trim_statement_semicolon': False,
       'trim_statement_semicolon': False,
     }
     }
   },
   },
@@ -80,6 +81,7 @@ CONNECTOR_TYPES = [
       'has_auto_limit': False,
       'has_auto_limit': False,
       'has_reference_language': True,
       'has_reference_language': True,
       'has_reference_functions': True,
       'has_reference_functions': True,
+      'has_use_statement': True,
       'trim_statement_semicolon': False,
       'trim_statement_semicolon': False,
     }
     }
   },
   },
@@ -107,6 +109,7 @@ CONNECTOR_TYPES = [
       'has_auto_limit': False,
       'has_auto_limit': False,
       'has_reference_language': False,
       'has_reference_language': False,
       'has_reference_functions': False,
       'has_reference_functions': False,
+      'has_use_statement': False,
       'trim_statement_semicolon': True,
       'trim_statement_semicolon': True,
     }
     }
   },
   },
@@ -134,6 +137,7 @@ CONNECTOR_TYPES = [
       'has_auto_limit': False,
       'has_auto_limit': False,
       'has_reference_language': False,
       'has_reference_language': False,
       'has_reference_functions': False,
       'has_reference_functions': False,
+      'has_use_statement': False,
       'trim_statement_semicolon': False,
       'trim_statement_semicolon': False,
     }
     }
   },
   },
@@ -161,6 +165,7 @@ CONNECTOR_TYPES = [
       'has_auto_limit': False,
       'has_auto_limit': False,
       'has_reference_language': False,
       'has_reference_language': False,
       'has_reference_functions': False,
       'has_reference_functions': False,
+      'has_use_statement': False,
       'trim_statement_semicolon': True,
       'trim_statement_semicolon': True,
     }
     }
   },
   },
@@ -188,6 +193,7 @@ CONNECTOR_TYPES = [
       'has_auto_limit': False,
       'has_auto_limit': False,
       'has_reference_language': False,
       'has_reference_language': False,
       'has_reference_functions': False,
       'has_reference_functions': False,
+      'has_use_statement': False,
       'trim_statement_semicolon': False,
       'trim_statement_semicolon': False,
     }
     }
   },
   },
@@ -217,6 +223,7 @@ CONNECTOR_TYPES = [
       'has_auto_limit': False,
       'has_auto_limit': False,
       'has_reference_language': False,
       'has_reference_language': False,
       'has_reference_functions': False,
       'has_reference_functions': False,
+      'has_use_statement': True,
       'trim_statement_semicolon': False,
       'trim_statement_semicolon': False,
     }
     }
   },
   },
@@ -244,6 +251,7 @@ CONNECTOR_TYPES = [
       'has_auto_limit': False,
       'has_auto_limit': False,
       'has_reference_language': False,
       'has_reference_language': False,
       'has_reference_functions': False,
       'has_reference_functions': False,
+      'has_use_statement': False,
       'trim_statement_semicolon': False,
       'trim_statement_semicolon': False,
     }
     }
   },
   },
@@ -271,6 +279,7 @@ CONNECTOR_TYPES = [
       'has_auto_limit': False,
       'has_auto_limit': False,
       'has_reference_language': False,
       'has_reference_language': False,
       'has_reference_functions': False,
       'has_reference_functions': False,
+      'has_use_statement': True,
       'trim_statement_semicolon': True,
       'trim_statement_semicolon': True,
     }
     }
   },
   },
@@ -298,6 +307,7 @@ CONNECTOR_TYPES = [
       'has_auto_limit': False,
       'has_auto_limit': False,
       'has_reference_language': False,
       'has_reference_language': False,
       'has_reference_functions': False,
       'has_reference_functions': False,
+      'has_use_statement': True,
       'trim_statement_semicolon': False,
       'trim_statement_semicolon': False,
     }
     }
   },
   },
@@ -325,6 +335,7 @@ CONNECTOR_TYPES = [
       'has_auto_limit': False,
       'has_auto_limit': False,
       'has_reference_language': False,
       'has_reference_language': False,
       'has_reference_functions': False,
       'has_reference_functions': False,
+      'has_use_statement': False,
       'trim_statement_semicolon': False,
       'trim_statement_semicolon': False,
     }
     }
   },
   },
@@ -353,6 +364,7 @@ CONNECTOR_TYPES = [
       'has_auto_limit': False,
       'has_auto_limit': False,
       'has_reference_language': False,
       'has_reference_language': False,
       'has_reference_functions': False,
       'has_reference_functions': False,
+      'has_use_statement': True,
       'trim_statement_semicolon': True,
       'trim_statement_semicolon': True,
     }
     }
   },
   },
@@ -380,6 +392,7 @@ CONNECTOR_TYPES = [
       'has_auto_limit': False,
       'has_auto_limit': False,
       'has_reference_language': False,
       'has_reference_language': False,
       'has_reference_functions': False,
       'has_reference_functions': False,
+      'has_use_statement': False,
       'trim_statement_semicolon': False,
       'trim_statement_semicolon': False,
     }
     }
   },
   },
@@ -408,6 +421,7 @@ CONNECTOR_TYPES = [
       'has_auto_limit': False,
       'has_auto_limit': False,
       'has_reference_language': False,
       'has_reference_language': False,
       'has_reference_functions': False,
       'has_reference_functions': False,
+      'has_use_statement': False,
       'trim_statement_semicolon': False,
       'trim_statement_semicolon': False,
     }
     }
   },
   },
@@ -437,6 +451,7 @@ CONNECTOR_TYPES = [
       'has_auto_limit': False,
       'has_auto_limit': False,
       'has_reference_language': False,
       'has_reference_language': False,
       'has_reference_functions': False,
       'has_reference_functions': False,
+      'has_use_statement': False,
       'trim_statement_semicolon': False,
       'trim_statement_semicolon': False,
     }
     }
   },
   },
@@ -462,6 +477,7 @@ CONNECTOR_TYPES = [
       'has_auto_limit': False,
       'has_auto_limit': False,
       'has_reference_language': False,
       'has_reference_language': False,
       'has_reference_functions': False,
       'has_reference_functions': False,
+      'has_use_statement': False,
       'trim_statement_semicolon': False,
       'trim_statement_semicolon': False,
     }
     }
   },
   },
@@ -487,6 +503,7 @@ CONNECTOR_TYPES = [
       'has_auto_limit': False,
       'has_auto_limit': False,
       'has_reference_language': False,
       'has_reference_language': False,
       'has_reference_functions': False,
       'has_reference_functions': False,
+      'has_use_statement': False,
       'trim_statement_semicolon': False,
       'trim_statement_semicolon': False,
     }
     }
   },
   },
@@ -513,6 +530,7 @@ CONNECTOR_TYPES = [
       'has_auto_limit': False,
       'has_auto_limit': False,
       'has_reference_language': False,
       'has_reference_language': False,
       'has_reference_functions': False,
       'has_reference_functions': False,
+      'has_use_statement': False,
       'trim_statement_semicolon': False,
       'trim_statement_semicolon': False,
     }
     }
   },
   },
@@ -540,6 +558,7 @@ CONNECTOR_TYPES = [
       'has_auto_limit': False,
       'has_auto_limit': False,
       'has_reference_language': False,
       'has_reference_language': False,
       'has_reference_functions': False,
       'has_reference_functions': False,
+      'has_use_statement': False,
       'trim_statement_semicolon': False,
       'trim_statement_semicolon': False,
     }
     }
   },
   },
@@ -567,6 +586,7 @@ CONNECTOR_TYPES = [
       'has_auto_limit': False,
       'has_auto_limit': False,
       'has_reference_language': False,
       'has_reference_language': False,
       'has_reference_functions': False,
       'has_reference_functions': False,
+      'has_use_statement': False,
       'trim_statement_semicolon': False,
       'trim_statement_semicolon': False,
     }
     }
   },
   },
@@ -594,6 +614,7 @@ CONNECTOR_TYPES = [
       'has_auto_limit': False,
       'has_auto_limit': False,
       'has_reference_language': False,
       'has_reference_language': False,
       'has_reference_functions': False,
       'has_reference_functions': False,
+      'has_use_statement': False,
       'trim_statement_semicolon': False,
       'trim_statement_semicolon': False,
     }
     }
   },
   },
@@ -624,6 +645,7 @@ CONNECTOR_TYPES = [
       'has_auto_limit': False,
       'has_auto_limit': False,
       'has_reference_language': False,
       'has_reference_language': False,
       'has_reference_functions': False,
       'has_reference_functions': False,
+      'has_use_statement': False,
       'trim_statement_semicolon': False,
       'trim_statement_semicolon': False,
     }
     }
   },
   },

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

@@ -227,7 +227,7 @@ class SqlAlchemyApi(Api):
         self.interpreter.get('dialect_properties') and self.interpreter['dialect_properties']['trim_statement_semicolon']:
         self.interpreter.get('dialect_properties') and self.interpreter['dialect_properties']['trim_statement_semicolon']:
       statement = statement.strip().rstrip(';')
       statement = statement.strip().rstrip(';')
 
 
-    if snippet.get('database'):
+    if self.interpreter.get('dialect_properties', {}).get('has_use_statement') and snippet.get('database'):
       connection.execute('USE ' + snippet['database'])
       connection.execute('USE ' + snippet['database'])
 
 
     result = connection.execute(statement)
     result = connection.execute(statement)