apr-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Chris Darroch <chr...@pearsoncmg.com>
Subject [PATCH 37664] apr_dbd_oracle parameter and output handling
Date Mon, 28 Nov 2005 16:08:06 GMT
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


Mime
View raw message