Checks if all values has the same type
If they have the same type, return it or return None
Check That function call arguments types are matches the parameter types
Return a Diagnostic Error if anything is wrong
Resolve dynamic data type depending on the parameters and arguments types to actual DataType
Check that all selected fields types are defined correctly in selected tables
Return the columns classified for each table
Return a Diagnostic Error if anything is wrong
Check that all projection columns are valid for this table name
Return a Diagnostic Error if anything is wrong