--- sql/oracle/parser3oracle.C 2003/07/24 10:09:40 1.32 +++ sql/oracle/parser3oracle.C 2003/10/02 09:40:51 1.36 @@ -7,7 +7,7 @@ 2001.07.30 using Oracle 8.1.6 [@test tested with Oracle 7.x.x] */ -static const char *RCSId="$Id: parser3oracle.C,v 1.32 2003/07/24 10:09:40 paf Exp $"; +static const char *RCSId="$Id: parser3oracle.C,v 1.36 2003/10/02 09:40:51 paf Exp $"; #include "config_includes.h" @@ -38,7 +38,7 @@ inline int max(int a, int b) { return a> inline int min(int a, int b){ return a "''" - *to++='\''; result++; + *to++='\''; break; } *to++=*from++; @@ -467,6 +467,7 @@ private: // private funcs o[0]=='/' && o[1]=='*' && o[2]=='*') { // name start + const char* saved_o=o; o+=3; const char *name_begin=o; while(*o) @@ -475,6 +476,7 @@ private: // private funcs o[1]=='*' && o[2]=='/' && o[3]=='\'') { // name end + saved_o=0; // found, marking that const char *name_end=o; o+=4; OracleSQL_query_lobs::Item &item=lobs.items[lobs.count++]; @@ -506,6 +508,10 @@ private: // private funcs break; } else o++; // /**skip**/'xxx' + if(saved_o) { + o=saved_o; + *n++=*o++; + } } else *n++=*o++; } @@ -657,8 +663,9 @@ private: // private funcs { size_t size=(size_t)col_name_len; - char *ptr=(char *)services.malloc_atomic(size); + char *ptr=(char *)services.malloc_atomic(size+1); tolower(ptr, (char *)col_name, size); + ptr[size]=0; check(cs, handlers.add_column(cs.sql_error, ptr, size)); } @@ -730,7 +737,7 @@ private: // private funcs } default: if(const char *value=cols[i].str) { - size=strlen(str); + size=strlen(value); str=(char*)services.malloc_atomic(size+1); memcpy(str, value, size+1); } else {