Hi, On Sat, 2010-03-06 at 13:12 -0700, Patrick H. wrote:
Yes, I signed the CLA and sent it in to info@balabit.com (thats where the instructions say to send it). I also put it all in a bug report (https://bugzilla.balabit.com/show_bug.cgi?id=73).
I ended up not doing anything with prepared statements as the only way to do so without ripping out the libdbi driver and replacing it with one that has prepared statements built is to do server side prepared statements. I was originally considering this before I found a little oracle setting that you can set when you establish a session (cursor_sharing=force, basically recognizes that a query is the same as a previous one, so it doesnt have to do permission checks and all that stuff every time). But to support that I had to add a setting which will run a specified statement when a new session is established.
I've started integrating your patches to OSE 3.2, but I'm afraid it is not completely ready for prime time yet. flush_timeout() handling was racy, and since it is not trivial to solve that, I've commented that out. Also, I've added explicit "BEGIN" commands and an explicit flag to enable explicit BEGIN/COMMIT commands. This is the commit message: commit d41bc26a63986e9ce06a9a9b0fa50fa82eae2002 Author: Balazs Scheidler <bazsi@balabit.hu> Date: Sat Apr 10 16:36:19 2010 +0200 afsql: Added explicit COMMIT support Instead of committing all INSERT statements separately, use flush_lines parameter to control transaction size. e.g. with the following configuration destination d_sql { sql(... flags(explicit-commits) flush-lines(100)); }; The SQL driver will generate a transaction for every 100 lines. This patch was originally contributed by Patrick Hemmer, was somewhat modified by me. The patch is not yet complete, time based transaction closure is commented out as its submitted implementation was not thread safe. Submitted-By: Patrick Hemmer Thanks for your contribution. -- Bazsi