Skip to content

Parse error: Numeric literal in scientific notation #6608

@pjpjean

Description

@pjpjean

Fully reproducible code snippet

Numeric literal in scientific notation

from sqlglot import parse_one
sql="SELECT tbl.x*1e4+tbl.y FROM tbl;"

# Base dialect
parse_one(sql)

Result: ParseError: Invalid expression / Unexpected token. Line 1, Col: 21.

# DuckDB dialect
parse_one(sql, dialect='duckdb')

Result: ParseError: Invalid expression / Unexpected token. Line 1, Col: 21.

# Hive dialect
parse_one(sql, dialect='hive')

Result: No error, but parses '1e4+tbl' as a table identifier 

Regular numeric literal

from sqlglot import parse_one
sql2="SELECT tbl.x*10000+tbl.y FROM tbl;"

# Base, duckdb, hive (and probably other) dialects
parse_one(sql2)
parse_one(sql2, dialect='duckdb')
parse_one(sql2, dialect='hive')

Result: No error, correct ast

Package Version
sqlglot 28.3.0

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions