Return-Path: Delivered-To: apmail-apr-commits-archive@www.apache.org Received: (qmail 81196 invoked from network); 31 Mar 2006 12:10:41 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 31 Mar 2006 12:10:41 -0000 Received: (qmail 63526 invoked by uid 500); 31 Mar 2006 12:10:40 -0000 Delivered-To: apmail-apr-commits-archive@apr.apache.org Received: (qmail 63419 invoked by uid 500); 31 Mar 2006 12:10:39 -0000 Mailing-List: contact commits-help@apr.apache.org; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: Reply-To: dev@apr.apache.org List-Id: Delivered-To: mailing list commits@apr.apache.org Received: (qmail 63407 invoked by uid 99); 31 Mar 2006 12:10:39 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 31 Mar 2006 04:10:39 -0800 X-ASF-Spam-Status: No, hits=-9.4 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received: from [209.237.227.194] (HELO minotaur.apache.org) (209.237.227.194) by apache.org (qpsmtpd/0.29) with SMTP; Fri, 31 Mar 2006 04:10:39 -0800 Received: (qmail 80787 invoked by uid 65534); 31 Mar 2006 12:10:18 -0000 Message-ID: <20060331121018.80786.qmail@minotaur.apache.org> Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r390400 - /apr/apr-util/trunk/dbd/apr_dbd_oracle.c Date: Fri, 31 Mar 2006 12:10:18 -0000 To: commits@apr.apache.org From: niq@apache.org X-Mailer: svnmailer-1.0.7 X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Author: niq Date: Fri Mar 31 04:10:16 2006 New Revision: 390400 URL: http://svn.apache.org/viewcvs?rev=390400&view=rev Log: apr_dbd_get_name patch for Oracle driver (Chris Darroch) Modified: apr/apr-util/trunk/dbd/apr_dbd_oracle.c Modified: apr/apr-util/trunk/dbd/apr_dbd_oracle.c URL: http://svn.apache.org/viewcvs/apr/apr-util/trunk/dbd/apr_dbd_oracle.c?rev=390400&r1=390399&r2=390400&view=diff ============================================================================== --- apr/apr-util/trunk/dbd/apr_dbd_oracle.c (original) +++ apr/apr-util/trunk/dbd/apr_dbd_oracle.c Fri Mar 31 04:10:16 2006 @@ -181,6 +181,7 @@ char *stringval; OCILobLocator *lobval; } buf; + const char *name; } define_arg; struct apr_dbd_prepared_t { @@ -525,6 +526,16 @@ } #endif +static const char *dbd_oracle_get_name(const apr_dbd_results_t *res, int n) +{ + define_arg *val = &res->statement->out[n]; + + if ((n < 0) || (n >= res->statement->nout)) { + return NULL; + } + return val->name; +} + static int dbd_oracle_get_row(apr_pool_t *pool, apr_dbd_results_t *res, apr_dbd_row_t **rowp, int rownum) { @@ -988,6 +999,8 @@ int_errorcode; ub2 paramtype[DBD_ORACLE_MAX_COLUMNS]; ub2 paramsize[DBD_ORACLE_MAX_COLUMNS]; + const char *paramname[DBD_ORACLE_MAX_COLUMNS]; + ub4 paramnamelen[DBD_ORACLE_MAX_COLUMNS]; /* Perl uses 0 where we used 1 */ sql->status = OCIStmtExecute(sql->svc, stmt->stmt, sql->err, 0, 0, NULL, NULL, OCI_DESCRIBE_ONLY); @@ -1016,6 +1029,10 @@ sql->status = OCIAttrGet(parms, OCI_DTYPE_PARAM, ¶msize[stmt->nout], 0, OCI_ATTR_DATA_SIZE, sql->err); + sql->status = OCIAttrGet(parms, OCI_DTYPE_PARAM, + ¶mname[stmt->nout], + ¶mnamelen[stmt->nout], + OCI_ATTR_NAME, sql->err); ++stmt->nout; } } @@ -1033,6 +1050,8 @@ for (i=0; inout; ++i) { stmt->out[i].type = paramtype[i]; stmt->out[i].len = stmt->out[i].sz = paramsize[i]; + stmt->out[i].name = apr_pstrmemdup(stmt->pool, + paramname[i], paramnamelen[i]); switch (stmt->out[i].type) { default: switch (stmt->out[i].type) { @@ -1890,6 +1909,7 @@ dbd_oracle_pvquery, dbd_oracle_pvselect, dbd_oracle_pquery, - dbd_oracle_pselect + dbd_oracle_pselect, + dbd_oracle_get_name }; #endif