diff --git a/sqlvalidator/grammar/sql.py b/sqlvalidator/grammar/sql.py index d2c3701..4c687a7 100644 --- a/sqlvalidator/grammar/sql.py +++ b/sqlvalidator/grammar/sql.py @@ -553,7 +553,11 @@ def __str__(self): def validate(self, known_fields): errors = super().validate(known_fields) - for a in self.args: + if self.function_name == 'cast': + tovalidate = [xa for xa in self.args if xa != 'AS'] + else: + tovalidate = self.args + for a in tovalidate: errors += a.validate(known_fields) return errors @@ -835,7 +839,7 @@ def validate(self, known_fields): class Type(Expression): - VALUES = ("int", "float", "day", "month", "timestamp", "int64", "string", "date") + VALUES = ("int", "float", "day", "month", "timestamp", "int64", "string", "date", "numeric") def __str__(self): return self.value.upper()