mirror of
https://github.com/apache/superset.git
synced 2026-04-09 19:35:21 +00:00
[fix] SQL parsing of table names (#7490)
This commit is contained in:
@@ -29,6 +29,12 @@ class SupersetTestCase(unittest.TestCase):
|
||||
query = 'SELECT * FROM tbname'
|
||||
self.assertEquals({'tbname'}, self.extract_tables(query))
|
||||
|
||||
query = 'SELECT * FROM tbname foo'
|
||||
self.assertEquals({'tbname'}, self.extract_tables(query))
|
||||
|
||||
query = 'SELECT * FROM tbname AS foo'
|
||||
self.assertEquals({'tbname'}, self.extract_tables(query))
|
||||
|
||||
# underscores
|
||||
query = 'SELECT * FROM tb_name'
|
||||
self.assertEquals({'tb_name'},
|
||||
@@ -47,11 +53,40 @@ class SupersetTestCase(unittest.TestCase):
|
||||
{'schemaname.tbname'},
|
||||
self.extract_tables('SELECT * FROM schemaname.tbname'))
|
||||
|
||||
# Ill-defined schema/table.
|
||||
self.assertEquals(
|
||||
{'schemaname.tbname'},
|
||||
self.extract_tables('SELECT * FROM "schemaname"."tbname"'))
|
||||
|
||||
self.assertEquals(
|
||||
{'schemaname.tbname'},
|
||||
self.extract_tables('SELECT * FROM schemaname.tbname foo'))
|
||||
|
||||
self.assertEquals(
|
||||
{'schemaname.tbname'},
|
||||
self.extract_tables('SELECT * FROM schemaname.tbname AS foo'))
|
||||
|
||||
# cluster
|
||||
self.assertEquals(
|
||||
{'clustername.schemaname.tbname'},
|
||||
self.extract_tables('SELECT * FROM clustername.schemaname.tbname'))
|
||||
|
||||
# Ill-defined cluster/schema/table.
|
||||
self.assertEquals(
|
||||
set(),
|
||||
self.extract_tables('SELECT * FROM schemaname.'))
|
||||
|
||||
self.assertEquals(
|
||||
set(),
|
||||
self.extract_tables('SELECT * FROM clustername.schemaname.'))
|
||||
|
||||
self.assertEquals(
|
||||
set(),
|
||||
self.extract_tables('SELECT * FROM clustername..'))
|
||||
|
||||
self.assertEquals(
|
||||
set(),
|
||||
self.extract_tables('SELECT * FROM clustername..tbname'))
|
||||
|
||||
# quotes
|
||||
query = 'SELECT field1, field2 FROM tb_name'
|
||||
self.assertEquals({'tb_name'}, self.extract_tables(query))
|
||||
|
||||
Reference in New Issue
Block a user