mirror of
https://github.com/apache/superset.git
synced 2026-04-17 23:25:05 +00:00
chore: Support SET & SHOW commands as read only SQL commands (#11868)
* Support SET & SHOW commands as read only SQL commands * Move is_readonly definition into the engine spec * Rename & use super() Co-authored-by: bogdan kyryliuk <bogdankyryliuk@dropbox.com>
This commit is contained in:
@@ -376,14 +376,43 @@ class TestSupersetSqlParse(unittest.TestCase):
|
||||
def test_update_not_select(self):
|
||||
sql = ParsedQuery("UPDATE t1 SET col1 = NULL")
|
||||
self.assertEqual(False, sql.is_select())
|
||||
self.assertEqual(False, sql.is_readonly())
|
||||
|
||||
def test_set(self):
|
||||
sql = ParsedQuery(
|
||||
"""
|
||||
-- comment
|
||||
SET hivevar:desc='Legislators';
|
||||
"""
|
||||
)
|
||||
|
||||
self.assertEqual(True, sql.is_set())
|
||||
self.assertEqual(False, sql.is_select())
|
||||
|
||||
self.assertEqual(True, ParsedQuery("set hivevar:desc='bla'").is_set())
|
||||
self.assertEqual(False, ParsedQuery("SELECT 1").is_set())
|
||||
|
||||
def test_show(self):
|
||||
sql = ParsedQuery(
|
||||
"""
|
||||
-- comment
|
||||
SHOW LOCKS test EXTENDED;
|
||||
-- comment
|
||||
"""
|
||||
)
|
||||
|
||||
self.assertEqual(True, sql.is_show())
|
||||
self.assertEqual(False, sql.is_select())
|
||||
|
||||
self.assertEqual(True, ParsedQuery("SHOW TABLES").is_show())
|
||||
self.assertEqual(True, ParsedQuery("shOw TABLES").is_show())
|
||||
self.assertEqual(True, ParsedQuery("show TABLES").is_show())
|
||||
self.assertEqual(False, ParsedQuery("SELECT 1").is_show())
|
||||
|
||||
def test_explain(self):
|
||||
sql = ParsedQuery("EXPLAIN SELECT 1")
|
||||
|
||||
self.assertEqual(True, sql.is_explain())
|
||||
self.assertEqual(False, sql.is_select())
|
||||
self.assertEqual(True, sql.is_readonly())
|
||||
|
||||
def test_complex_extract_tables(self):
|
||||
query = """SELECT sum(m_examples) AS "sum__m_example"
|
||||
|
||||
Reference in New Issue
Block a user