From the "Oracle does it differently" department, here is a nasty issue.
Say you have a filter that compares an attribute with a string, e.g. BAZ = 'hey'
Now way that BAZ is a CHAR(10) in the database, and there is a 'hey" string in the db. Well, the current result is that the record won't be found.
There are two ways to fix the issue:
- right pad the string so that it's 10 chars in leght
- use the custom method setFixedChar(col, value) that only the oracle prepared statement has (so, unwrap the prepared statement, cast, and use the method, oh joy).
Both methods require that the code knows it's dealing with a CHAR, and its lenght. We could add both informations into the attribute descriptor, but then we'd have to
modify FilterToSql so that the full descriptor, and not only the binding, percolates down to visit(Literal, context).