sqlvalidator icon indicating copy to clipboard operation
sqlvalidator copied to clipboard

Validator is not handling BigQuery CAST function properly

Open alexandregirbal-loxsolution opened this issue 2 years ago • 3 comments

Using Python3.8 in a virtual environment, this query is showing an error even though it's working properly for Google BigQuery:

query = """
SELECT
    CAST(
        DATE_ADD(invoice_date, INTERVAL payment_term DAY) 
    AS STRING) AS invoice_due_date,
    
FROM Invoicing
"""
parsed_query = sqlvalidator.parse(query)
parsed_query.is_valid() # crashes here

Here is the error:

  File "home/alexandre/TestSqlValidator/venv/lib/python3.8/site-packages/sqlvalidator/sql_validator.py", line 25, in is_valid
    self._validate()
  File "home/alexandre/TestSqlValidator/venv/lib/python3.8/site-packages/sqlvalidator/sql_validator.py", line 31, in _validate
    self.errors = self.sql_query.validate()
  File "home/alexandre/TestSqlValidator/venv/lib/python3.8/site-packages/sqlvalidator/grammar/sql.py", line 133, in validate
    errors += e.validate(known_fields)
  File "home/alexandre/TestSqlValidator/venv/lib/python3.8/site-packages/sqlvalidator/grammar/sql.py", line 1064, in validate
    errors += self.expression.validate(known_fields)
  File "home/alexandre/TestSqlValidator/venv/lib/python3.8/site-packages/sqlvalidator/grammar/sql.py", line 557, in validate
    errors += a.validate(known_fields)
AttributeError: 'str' object has no attribute 'validate'

@alexandregirbal-loxsolution this pull request also solves your issue: https://github.com/David-Wobrock/sqlvalidator/pull/52#issue-1636366911

mozart-segfy avatar Mar 22 '23 19:03 mozart-segfy

Is this able to be merged? I am also running into the same issue where validating with cast is not working

walshbm15 avatar Apr 25 '23 20:04 walshbm15

Also seeing this issue

frg100 avatar Mar 24 '24 07:03 frg100