Don, if PostgreSQL 8.0 had been released 4+ years ago I probably
wouldn't be using Oracle at all, either. And, probably, if 8 or 9
years ago Illustra (PostgreSQL's uncle?) had worked half as well as
PostgreSQL does now, Philip would never have even tried Oracle, and
ACS and OpenACS never would have used it all!
But, fundamentally, why is supporting multiple databases so costly in
OpenACS? And must it necessarily be so? (I suspect the answer is
"mostly yes", but I am not at all sure.)
ACS 4.0 added the first hooks for multi-db support, but at the same
time also made multi-db support harder by moving so much
functionality into PL/SQL code. That seems rather ironic.
Lots of other projects claim to support every database under the sun,
and even that doing so is easy. My impression however, is that most
of those do so via dead-simple data models, and generally making
trivial demands on the RDBMS. And thus presumably many of those
applications pay an extremely heavy price for their
"multi-RDBMS support", whether their authors realize that or not.
(The cost is merely hidden under other accounts, like "can't scale"
and "general suckiness".)
Considering alternate realities can be educational, sometimes. So,
what I'm wondering about, is or was there some middle ground? Some
way that, if you were hypothetically starting from scratch, you could
get 80 to 90% of the RDBMS power goodness of OpenACS, while reducing
the cost of multi-db support down to, say, 10% of what it is now?