fix: handle CTEs with comments on is_select (#16769)

This commit is contained in:
Beto Dealmeida
2021-09-21 16:23:54 -07:00
committed by GitHub
parent 493e804320
commit 48a61bacc5
2 changed files with 53 additions and 3 deletions

View File

@@ -131,13 +131,17 @@ class ParsedQuery:
return self._limit
def is_select(self) -> bool:
return self._parsed[0].get_type() == "SELECT"
# make sure we strip comments; prevents a bug with coments in the CTE
parsed = sqlparse.parse(self.strip_comments())
return parsed[0].get_type() == "SELECT"
def is_valid_ctas(self) -> bool:
return self._parsed[-1].get_type() == "SELECT"
parsed = sqlparse.parse(self.strip_comments())
return parsed[-1].get_type() == "SELECT"
def is_valid_cvas(self) -> bool:
return len(self._parsed) == 1 and self._parsed[0].get_type() == "SELECT"
parsed = sqlparse.parse(self.strip_comments())
return len(parsed) == 1 and parsed[0].get_type() == "SELECT"
def is_explain(self) -> bool:
# Remove comments