On 8/23/06, Andrus Adamchik <[EMAIL PROTECTED]> wrote:
I am not surprised that translator code is so hard to refactor - it was one of the first pieces we wrote in Cayenne and some rework was long overdue.
Glad to hear it. It's definitely improved in my current checkout :-)
I guess I can check the details once you have a patch in place. Now I just wanted to make sure I understand proposed null handling. So you are planning to convert all "NOT SOMETHING" expressions to the form like this "t0.X IS NULL OR t0.X <> ?" (if the bound parameter is not null itself I guess). Probably the right way to handle it.
Yep, that's what I eventually ended up doing. I forgot the "bound parameter is not null" exclusion at first, but the preexisting unit tests caught it :-)
Do you think it is worth having a separate patch just for this feature?
Possibly. I can probably make this into a separate patch. Once I have everything done, it'll probably be a week or so before I can clean it up to a final state. I probably can separate out the translator cleanup from the outer join support, but we'll have to see if that makes any sense.
