fix: Allow "EXPLAIN" queries when "Allow DML" setting is False (#11348)

Co-authored-by: Beto Dealmeida <roberto@dealmeida.net>
This commit is contained in:
Hugh A. Miles II
2020-10-21 12:58:57 -07:00
committed by GitHub
parent 54c2ad4308
commit dfbcbcce67
2 changed files with 55 additions and 1 deletions

View File

@@ -111,7 +111,13 @@ class ParsedQuery:
return self._parsed[0].get_type() == "SELECT"
def is_explain(self) -> bool:
return self.stripped().upper().startswith("EXPLAIN")
# Remove comments
statements_without_comments = sqlparse.format(
self.stripped(), strip_comments=True
)
# Explain statements will only be the first statement
return statements_without_comments.startswith("EXPLAIN")
def is_unknown(self) -> bool:
return self._parsed[0].get_type() == "UNKNOWN"