Skip to content

Commit aaa63f9

Browse files
committed
fix(parser): Literal number strings
1 parent ea678d2 commit aaa63f9

File tree

2 files changed

+8
-5
lines changed

2 files changed

+8
-5
lines changed

sqlglot/expressions.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2612,11 +2612,14 @@ class Literal(Condition):
26122612
def number(cls, number) -> Literal | Neg:
26132613
expr: Literal | Neg = cls(this=str(number), is_string=False)
26142614

2615-
to_py = expr.to_py()
2615+
try:
2616+
to_py = expr.to_py()
26162617

2617-
if not isinstance(to_py, str) and to_py < 0:
2618-
expr.set("this", str(abs(to_py)))
2619-
expr = Neg(this=expr)
2618+
if not isinstance(to_py, str) and to_py < 0:
2619+
expr.set("this", str(abs(to_py)))
2620+
expr = Neg(this=expr)
2621+
except Exception:
2622+
pass
26202623

26212624
return expr
26222625

tests/test_expressions.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1286,7 +1286,7 @@ def test_hash_large_ast(self):
12861286
assert expr == expr
12871287

12881288
def test_literal_number(self):
1289-
for number in (1, -1.1, 1.1, 0, "-1", "1", "1.1", "-1.1", "1e6"):
1289+
for number in (1, -1.1, 1.1, 0, "-1", "1", "1.1", "-1.1", "1e6", "inf"):
12901290
with self.subTest(f"Test Literal number method for: {repr(number)}"):
12911291
literal = exp.Literal.number(number)
12921292

0 commit comments

Comments
 (0)