Hi all, I've been thinking about using mako as a sql templating engine to dynamically generate sql. The reason for this is that recently I've realized 90% of time is really spent on generating some kind of analytic views (materialized into materialized views or tables) on existing oracle tables. Since oracle has this magic of rowid, most of the tables i deal with has no real keys or foreign constraints. Much of the "model" machinery is really useless to me. In addition, the model paradigm seems to fit only transactional type of work. For analytic work, very often i find myself using the "analytic functions" and some "model queries" built into Oracle sql. However, as anyone has worked with both python (as a frame of reference) and pl-sql, the latter is disgusting and quirky to the extreme. Sometimes I wish sqlalchemy could provide the flexibility to allow me to do all my work purely in python. But as due to the above reasons, I really can't quite get there yet.
So as i was playing around with pylons, I found that templating with mako really provide that extra flexibility lacked in sqlalchemy. For example, pivoting and unpivoting existing tables is something that I found myself do pretty often. For pivoting it's easy to write a template like: select col1 % for val in col2_distinct_vals: , max(decode(col2, ${val}, col3, null) as col_${val} % endfor from some_table group by col1 and fill col2_distinct_vals with select distinct col2 from some_table The above is quite intuitive compare to the awkwardness and the insanity of hardcoded 500 line sql queries via union and maintained via find/replace (if tried hard enough, 95% of the stuff done in databases can somehow be cramped into 1 (oracle) query. But I guess only 1 person in only 1 instance of time would be capable of understanding it...). These can even be kept nicely packaged and documented. The sqlalchemy expression language can't really do very well here either (at least too proprietary in some ways...sort of like working with pylons versus working with a CMS like Plone, which both can be used to create a blog, but one gives more control, and the knowledge is more readily out there). Anyway, to keep this short, can anyone find a way to somehow integrate such a templating idea into sqlalchemy while leveraging the convention already established in ansi-sql and some python voodoo? (Of course, the existing stuff is great for creating transactional type of backend, like a blog or wiki, which then again, really occupies 10% of my time, and hopefully (or not) others as well.) Frank --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To post to this group, send email to sqlalchemy@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en -~----------~----~----~----~------~----~------~--~---