Diff for /sql/pgsql/parser3pgsql.C between versions 1.18 and 1.19

version 1.18, 2004/03/05 10:16:41 version 1.19, 2004/03/26 13:29:40
Line 232  public: Line 232  public:
                 SQL_Driver_query_event_handlers& handlers) {                  SQL_Driver_query_event_handlers& handlers) {
 //              _asm int 3;  //              _asm int 3;
                 Connection& connection=*static_cast<Connection*>(aconnection);                  Connection& connection=*static_cast<Connection*>(aconnection);
                   const char* cstrClientCharset=connection.cstrClientCharset;
                 SQL_Driver_services& services=*connection.services;                  SQL_Driver_services& services=*connection.services;
                 PGconn *conn=connection.conn;                  PGconn *conn=connection.conn;
   
                 // transcode from $request:charset to connect-string?client_charset                  // transcode from $request:charset to connect-string?client_charset
                 if(const char* cstrClientCharset=connection.cstrClientCharset) {                  if(cstrClientCharset) {
                         size_t transcoded_statement_size;                          size_t transcoded_statement_size;
                         services.transcode(astatement, strlen(astatement),                          services.transcode(astatement, strlen(astatement),
                                 astatement, transcoded_statement_size,                                  astatement, transcoded_statement_size,
Line 281  public: Line 282  public:
                 for(int i=0; i<column_count; i++){                  for(int i=0; i<column_count; i++){
                         char *name=PQfname(res, i);                          char *name=PQfname(res, i);
                         size_t length=strlen(name);                          size_t length=strlen(name);
                         char* str=(char*)services.malloc(length+1);                          char* strm=(char*)services.malloc(length+1);
                         memcpy(str, name, length+1);                          memcpy(strm, name, length+1);
                           const char* str=strm;
   
                         // transcode to $request:charset from connect-string?client_charset                          // transcode to $request:charset from connect-string?client_charset
                         if(const char* cstrClientCharset=connection.cstrClientCharset) {                          if(cstrClientCharset) 
                                 services.transcode(str, length,                                  services.transcode(str, length,
                                         str, length,                                          str, length,
                                         cstrClientCharset,                                          cstrClientCharset,
                                         services.request_charset());                                          services.request_charset());
                         }  
   
                         CHECK(handlers.add_column(sql_error, str, length));                          CHECK(handlers.add_column(sql_error, str, length));
                 }                  }
Line 303  public: Line 304  public:
                                 for(int i=0; i<column_count; i++){                                  for(int i=0; i<column_count; i++){
                                         const char *cell=PQgetvalue(res, r, i);                                          const char *cell=PQgetvalue(res, r, i);
                                         size_t length;                                          size_t length;
                                         char* str;                                          const char* str;
                                         if(PQftype(res, i)==OIDOID) {                                          if(PQftype(res, i)==OIDOID) {
                                                 // ObjectID column, read object bytes                                                  // ObjectID column, read object bytes
   
Line 324  public: Line 325  public:
                                                         length=(size_t)size_tell;                                                          length=(size_t)size_tell;
                                                         if(length) {                                                          if(length) {
                                                                 // read                                                                   // read 
                                                                 str=(char*)services.malloc(length+1);                                                                  char* strm=(char*)services.malloc(length+1);
                                                                 if(!lo_read_ex(conn, fd, str, size_tell))                                                                  if(!lo_read_ex(conn, fd, strm, size_tell))
                                                                         PQclear_throw("lo_read can not read all bytes of object");                                                                          PQclear_throw("lo_read can not read all bytes of object");
                                                                 str[length]=0;                                                                  strm[length]=0;
                                                                   str=strm;
                                                         } else                                                          } else
                                                                 str=0;                                                                  str=0;
                                                         if(lo_close(conn, fd)<0)                                                          if(lo_close(conn, fd)<0)
Line 338  public: Line 340  public:
                                                 // normal column, read it normally                                                  // normal column, read it normally
                                                 length=(size_t)PQgetlength(res, r, i);                                                  length=(size_t)PQgetlength(res, r, i);
                                                 if(length) {                                                  if(length) {
                                                         str=(char*)services.malloc(length+1);                                                          char* strm=(char*)services.malloc(length+1);
                                                         memcpy(str, cell, length+1);                                                          memcpy(strm, cell, length+1);
                                                           str=strm;
                                                 } else                                                  } else
                                                         str=0;                                                          str=0;
                                         }                                          }
   
                                         if(str && length) {                                          if(str && length) {
                                                 // transcode to $request:charset from connect-string?client_charset                                                  // transcode to $request:charset from connect-string?client_charset
                                                 if(const char* cstrClientCharset=connection.cstrClientCharset)                                                  if(cstrClientCharset)
                                                         services.transcode(str, length,                                                          services.transcode(str, length,
                                                                 str, length,                                                                  str, length,
                                                                 cstrClientCharset,                                                                  cstrClientCharset,

Removed from v.1.18  
changed lines
  Added in v.1.19


E-mail: