I've found several edge cases where the exist qualifier doesn't work because the SQL it generates is invalid - partly because the WebObjects JDBCPlugIn class has a bug that simply sets the table alias to t0 no matter what you do.
But there's good news! I've rewritten the qualifier from the ground up and determined the fix for the PlugIn that needs to be implemented in all the JDBCPlugIn plugins.
I believe it now works across any number relationships, including flattened and compound PK tables - but it no longer has the option to use IN clause instead of an EXISTS clause.
I'll go back to the room and document it a bit better and then release it into the wild.
That sounds great Dave. Some questions:
1. Are you planning on committing an actual update to ERXExistsQualifier? That would certainly be what I'd like to see. I think Wonder has way too many deprecated classes (and methods) and class variants—you're not planning on adding ERXExistsQualifier2, are you? :-)
2. Assuming it's updating the existing class, will it be backwards-compatible? I make a reasonable amount of use of ERXExistsQualifier—will it just be a drop-in replacement?
3. Can you (or anyone) comment on any downside to not being able to generate EXISTS-based SQL? (I never use it, just curious.)
4. You mention plugin updates being required—how much work will be involved there? Have you done any of it? Can we help? Will the changes to the plugins be isolated to using this qualifier? That is, is there any risk of breaking the plugins? (Personally I only care about PostgreSQL, but every plugin has some users.)
Thanks for working on this. It's a great qualifier.