On Tuesday 13 May 2008, Henning Westerholt wrote: > For postgres in the stable branch a similar approach is used. The > emulation function (basically a stored procedure) defined for mysql is > just a small wrapper around the '&' operator. Using a user defined > procedure could be faster, but its not that easy to deploy them, as its > necessary to implement them as object files [1]. I found a nice > benchmark around the different function implementation, stored > procedures are about 50% slower then using an internal operator (see > 'adition benchmark', simplifing somewhat..) [2]. But even then its > possible to execute over 50k of them every second.
My idea was that each db module can offer functions like: inline str bitand(int a, int b) { } for mysql and postgres they can return "a & b" for oracle they can return "bitand(a, b)" and so on. They can be made available on the connection structure based on the db connection type one can use them like: db.api.bitand(a, b) whenever such operations that are different between databases are required > > The fastest solution would be to implement this bitand in C in the > usrloc. But i think that the overhead we get for this case is > managable. I think the above approach is easier and requires less work. -- Dan _______________________________________________ Devel mailing list Devel@lists.openser.org http://lists.openser.org/cgi-bin/mailman/listinfo/devel