Skip to content

Commit dfbbfe9

Browse files
committed
add timeplus sql statment
1 parent d35e6fc commit dfbbfe9

File tree

2 files changed

+47
-0
lines changed

2 files changed

+47
-0
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
from timeplus_connect.tp_superset.db_engine_spec import TimeplusEngineSpec
2+
import timeplus_connect.tp_superset.sql_statment
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
2+
from superset.sql.parse import SQLStatement, SQLScript, TBaseSQLStatement
3+
from sqlglot import exp
4+
5+
class TimeplusSQLStatment(SQLStatement):
6+
"""
7+
A Timeplus SQL statement.
8+
"""
9+
10+
def __init__(self, statement, engine, ast = None):
11+
super().__init__(statement, engine, ast)
12+
13+
14+
def is_mutating(self) -> bool:
15+
"""
16+
Check if the statement mutates data (DDL/DML).
17+
18+
:return: True if the statement mutates data.
19+
"""
20+
print(f"===========================: {self._parsed}")
21+
for node in self._parsed.walk():
22+
print(f"====================== {node}, {node.name}")
23+
if isinstance(
24+
node,
25+
(
26+
exp.Insert,
27+
exp.Update,
28+
exp.Delete,
29+
exp.Merge,
30+
exp.Create,
31+
exp.Drop,
32+
exp.TruncateTable,
33+
),
34+
):
35+
return True
36+
37+
if isinstance(node, exp.Command) and node.name == "ALTER":
38+
return True
39+
return False
40+
41+
SQLScript.special_engines.update("timeplusdb", TimeplusSQLStatment)
42+
43+
44+
45+
46+

0 commit comments

Comments
 (0)