--- sql/oracle/parser3oracle.C 2002/02/08 07:28:09 1.18 +++ sql/oracle/parser3oracle.C 2002/12/09 07:56:27 1.24 @@ -1,13 +1,13 @@ /** @file Parser Oracle driver. - Copyright(c) 2001, 2002 ArtLebedev Group(http://www.artlebedev.com) + Copyright(c) 2001, 2002 ArtLebedev Group (http://www.artlebedev.com) - Author: Alexander Petrosyan (http://design.ru/paf) + Author: Alexandr Petrosian (http://paf.design.ru) 2001.07.30 using Oracle 8.1.6 [@test tested with Oracle 7.x.x] */ -static const char *RCSId="$Id: parser3oracle.C,v 1.18 2002/02/08 07:28:09 paf Exp $"; +static const char *RCSId="$Id: parser3oracle.C,v 1.24 2002/12/09 07:56:27 paf Exp $"; #include "config_includes.h" @@ -68,18 +68,17 @@ static int pa_setenv(const char *name, c #else //#ifdef HAVE_SETENV if(value) { - char *buf; if(prev_value) { // MEM_LEAK_HERE - buf=(char *)::malloc(strlen(prev_value) + char *buf=(char *)::malloc(strlen(prev_value) +strlen(value) +1); strcpy(buf, prev_value); strcat(buf, value); - } else - buf=value; + value=buf; + } - return setenv(name, buf, 1/*overwrite*/); + return setenv(name, value, 1/*overwrite*/); } else { unsetenv(name); return 0; @@ -189,7 +188,6 @@ void tolower(char *out, const char *in, /** OracleSQL server driver - @test NLS_LANG=AMERICAN_AMERICA.CL8MSWIN1251 */ class OracleSQL_Driver : public SQL_Driver { public: @@ -608,7 +606,7 @@ private: // private funcs (dvoid *)&prefetch_rows, (ub4)0, (ub4)OCI_ATTR_PREFETCH_ROWS, (OCIError *)cs.errhp)); - ub4 prefetch_mem_size=100*1024; + ub4 prefetch_mem_size=100*0x400; check(services, cs, "AttrSet prefetch-memory", OCIAttrSet( (dvoid *)stmthp, (ub4)OCI_HTYPE_STMT, (dvoid *)&prefetch_mem_size, (ub4)0, @@ -695,7 +693,7 @@ private: // private funcs handlers.before_rows(); - for(unsigned long row=0; !limit||row