Skip to content

Commit d386f37

Browse files
committed
Refactor(sqlite): move generator methods within SQLite class
1 parent ff6be71 commit d386f37

File tree

1 file changed

+12
-16
lines changed

1 file changed

+12
-16
lines changed

sqlglot/dialects/sqlite.py

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -21,20 +21,6 @@
2121
from sqlglot.tokens import TokenType
2222

2323

24-
def _date_add_sql(self: SQLite.Generator, expression: exp.DateAdd) -> str:
25-
modifier = expression.expression
26-
modifier = modifier.name if modifier.is_string else self.sql(modifier)
27-
unit = expression.args.get("unit")
28-
modifier = f"'{modifier} {unit.name}'" if unit else f"'{modifier}'"
29-
return self.func("DATE", expression.this, modifier)
30-
31-
32-
def _json_extract_sql(self: SQLite.Generator, expression: exp.JSONExtract) -> str:
33-
if expression.expressions:
34-
return self.function_fallback_sql(expression)
35-
return arrow_json_extract_sql(self, expression)
36-
37-
3824
def _build_strftime(args: t.List) -> exp.Anonymous | exp.TimeToStr:
3925
if len(args) == 1:
4026
args.append(exp.CurrentTimestamp())
@@ -182,11 +168,9 @@ class Generator(generator.Generator):
182168
exp.CurrentTime: lambda *_: "CURRENT_TIME",
183169
exp.CurrentTimestamp: lambda *_: "CURRENT_TIMESTAMP",
184170
exp.ColumnDef: transforms.preprocess([_generated_to_auto_increment]),
185-
exp.DateAdd: _date_add_sql,
186171
exp.DateStrToDate: lambda self, e: self.sql(e, "this"),
187172
exp.If: rename_func("IIF"),
188173
exp.ILike: no_ilike_sql,
189-
exp.JSONExtract: _json_extract_sql,
190174
exp.JSONExtractScalar: arrow_json_extract_sql,
191175
exp.Levenshtein: unsupported_args("ins_cost", "del_cost", "sub_cost", "max_dist")(
192176
rename_func("EDITDIST3")
@@ -224,6 +208,18 @@ class Generator(generator.Generator):
224208

225209
LIMIT_FETCH = "LIMIT"
226210

211+
def jsonextract_sql(self, expression: exp.JSONExtract) -> str:
212+
if expression.expressions:
213+
return self.function_fallback_sql(expression)
214+
return arrow_json_extract_sql(self, expression)
215+
216+
def dateadd_sql(self, expression: exp.DateAdd) -> str:
217+
modifier = expression.expression
218+
modifier = modifier.name if modifier.is_string else self.sql(modifier)
219+
unit = expression.args.get("unit")
220+
modifier = f"'{modifier} {unit.name}'" if unit else f"'{modifier}'"
221+
return self.func("DATE", expression.this, modifier)
222+
227223
def cast_sql(self, expression: exp.Cast, safe_prefix: t.Optional[str] = None) -> str:
228224
if expression.is_type("date"):
229225
return self.func("DATE", expression.this)

0 commit comments

Comments
 (0)