You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@apr.apache.org by Chris Darroch <ch...@pearsoncmg.com> on 2005/11/28 17:08:06 UTC
[PATCH 37664] apr_dbd_oracle parameter and output handling
Hi --
Some patches for apr-util/trunk/dbd/apr_dbd_oracle.c, based on
testing and initial production usage (see patch #37664). More to come,
no doubt! :-)
- replaced leftover dbd_oracle_lob_size() declaration with
native dbd_oracle_long_size_set() function
- dbd_oracle_query() uses a private pool to ensure that both Stmt and
LOB callback cleanups are performed
- in dbd_oracle_prepare():
- don't count %% towards nargs
- don't attempt to support native Oracle params (e.g., :foo)
because we get fooled by SQL like TO_DATE(sysdate, 'HH:MM:SS')
- calculate length for orastr using maximum param length (:aprNNN...),
and add trailing '\0' for strlen(orastr)
- no need to iterate through orastr when calling OCIBindByPos(),
and avoids false detection of native params in SQL like
TO_DATE(sysdate, 'HH:MM:SS')
- always register freeStatement callback against pool; assumption
is that pool passed to dbd_oracle_prepare() lasts as long as
prepared statement will be retained
- for output params, handle common data types according to
"Perl standard" :-)
- in dbd_oracle_get_entry():
- removed USE_LOB_LOCATOR ifdef
- added handling for LVC/LVB long structures
Chris.
--
GPG Key ID: 366A375B
GPG Key Fingerprint: 485E 5041 17E1 E2BB C263 E4DE C8E3 FA36 366A 375B