From commits-return-2395-archive-asf-public=cust-asf.ponee.io@superset.incubator.apache.org Fri Mar 15 16:19:40 2019 Return-Path: X-Original-To: archive-asf-public@cust-asf.ponee.io Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx-eu-01.ponee.io (Postfix) with SMTP id E1E65180627 for ; Fri, 15 Mar 2019 17:19:39 +0100 (CET) Received: (qmail 91729 invoked by uid 500); 15 Mar 2019 16:19:39 -0000 Mailing-List: contact commits-help@superset.incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@superset.incubator.apache.org Delivered-To: mailing list commits@superset.incubator.apache.org Received: (qmail 91720 invoked by uid 99); 15 Mar 2019 16:19:39 -0000 Received: from ec2-52-202-80-70.compute-1.amazonaws.com (HELO gitbox.apache.org) (52.202.80.70) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 15 Mar 2019 16:19:39 +0000 Received: by gitbox.apache.org (ASF Mail Server at gitbox.apache.org, from userid 33) id 782028531F; Fri, 15 Mar 2019 16:19:38 +0000 (UTC) Date: Fri, 15 Mar 2019 16:19:38 +0000 To: "commits@superset.apache.org" Subject: [incubator-superset] branch master updated: [sqlparse] Fixing table name extraction for ill-defined query (#7029) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Message-ID: <155266677805.4987.2510915692661124556@gitbox.apache.org> From: johnbodley@apache.org X-Git-Host: gitbox.apache.org X-Git-Repo: incubator-superset X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: 7d7210d6ce5f3a962196923034edeb36ea11ce4f X-Git-Newrev: 07c340cf8203f13222f16efad1e55e202deb1865 X-Git-Rev: 07c340cf8203f13222f16efad1e55e202deb1865 X-Git-NotificationType: ref_changed_plus_diff X-Git-Multimail-Version: 1.5.dev Auto-Submitted: auto-generated This is an automated email from the ASF dual-hosted git repository. johnbodley pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/incubator-superset.git The following commit(s) were added to refs/heads/master by this push: new 07c340c [sqlparse] Fixing table name extraction for ill-defined query (#7029) 07c340c is described below commit 07c340cf8203f13222f16efad1e55e202deb1865 Author: John Bodley <4567245+john-bodley@users.noreply.github.com> AuthorDate: Fri Mar 15 09:19:30 2019 -0700 [sqlparse] Fixing table name extraction for ill-defined query (#7029) --- superset/sql_parse.py | 6 +++--- tests/sql_parse_tests.py | 5 +++++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/superset/sql_parse.py b/superset/sql_parse.py index b653c88..8076f09 100644 --- a/superset/sql_parse.py +++ b/superset/sql_parse.py @@ -76,7 +76,7 @@ class ParsedQuery(object): @staticmethod def __get_full_name(identifier): - if len(identifier.tokens) > 1 and identifier.tokens[1].value == '.': + if len(identifier.tokens) > 2 and identifier.tokens[1].value == '.': return '{}.{}'.format(identifier.tokens[0].value, identifier.tokens[2].value) return identifier.get_real_name() @@ -89,8 +89,8 @@ class ParsedQuery(object): # exclude subselects if '(' not in str(identifier): table_name = self.__get_full_name(identifier) - if not table_name.startswith(CTE_PREFIX): - self._table_names.add(self.__get_full_name(identifier)) + if table_name and not table_name.startswith(CTE_PREFIX): + self._table_names.add(table_name) return # store aliases diff --git a/tests/sql_parse_tests.py b/tests/sql_parse_tests.py index e821fce..5695939 100644 --- a/tests/sql_parse_tests.py +++ b/tests/sql_parse_tests.py @@ -47,6 +47,11 @@ class SupersetTestCase(unittest.TestCase): {'schemaname.tbname'}, self.extract_tables('SELECT * FROM schemaname.tbname')) + # Ill-defined schema/table. + self.assertEquals( + set(), + self.extract_tables('SELECT * FROM schemaname.')) + # quotes query = 'SELECT field1, field2 FROM tb_name' self.assertEquals({'tb_name'}, self.extract_tables(query))