Re: info on unixODBC/Postgres driver port to IRIX 6.5.7 64bit

Поиск
Список
Период
Сортировка
От Bruce Momjian
Тема Re: info on unixODBC/Postgres driver port to IRIX 6.5.7 64bit
Дата
Msg-id 200006151416.KAA06583@candle.pha.pa.us
обсуждение исходный текст
Ответ на info on unixODBC/Postgres driver port to IRIX 6.5.7 64bit  (Murad Nayal <murad@godel.bioc.columbia.edu>)
Список pgsql-hackers
Is this patch based on the current snapshot?  I have applied several
unixODBC patches in the past several days that may already fix these
problems.


>
>
> Hello,
>
> This is a report on my attempts to install unixODBC (1.8.9) and postgres
> odbc driver on IRIX 6.5.7 64bit using the native compiler. There are a
> number of changes that were necessary to be made on both the
> configuration files and source to get it to compile. patches are
> attached. some of these were derived from 1.8.8, but they all apply
> successfully on 1.8.9.
>
> UnixODBC
> --------
>
> 1- you can ignore the changes to acinclude.m4. they are a hack to
> augment the qt libraries for my platform. a more thoughtful allowance
> for this possibility though might be needed.
>
> 2- I had to propagate USER_LDFLAGS into DataManager/Makefile.in,
> ODBCConfig/Makefile.in and odbctest/Makefile.am adding it to LDADD
> flags. There is no reason not to and they were needed in my case to find
> all qt related libraries.
>
> 3- The IRIX native compiler does not like having new lines in strings. I
> had to delete spurious new lines from a few strings in
> DataManager/classLogin.cpp and DataManager/classISQL.cpp
>
> 4- default values for function arguments were defined twice in a number
> of files. in the headers as well as in cpp files. IRIX compiler does not
> like that besides it is a maintenance burden. I kept the default
> arguments in the header files only (see patch).
>
> 5- Needed to insert explicit type casts in some places as well as
> leading function prototypes (see patch).
>
> Postgres ODBC driver
> --------------------
>
> 6- One bug that was hard to track was related to the postgres driver.
> The driver defines #define Int4 long int; in psqlodbc.h. unfortunately,
> when compiling 64bit a long int is 8 bytes. for my setup I hacked it by
> changing that to #define Int4 int; which I think is probably appropriate
> on most platforms. But this type should really be determined at
> configure time.
>
> Regards
>
>
> --
> Murad Nayal M.D. Ph.D.
> Department of Biochemistry and Molecular Biophysics
> College of Physicians and Surgeons of Columbia University
> 630 West 168th Street. New York, NY 10032
> Tel: 212-305-6884    Fax: 212-305-6926

> *** ./acinclude.m4.bk1    Wed Jun 14 13:30:52 2000
> --- ./acinclude.m4    Wed Jun 14 00:47:35 2000
> ***************
> *** 562,568 ****
>   fi
>   AC_MSG_CHECKING([for Qt])
>
> ! LIBQT="$LIBQT -lXext -lX11 $LIBSOCKET"
>   ac_qt_includes=NO ac_qt_libraries=NO ac_qt_bindir=NO
>   qt_libraries=""
>   qt_includes=""
> --- 562,568 ----
>   fi
>   AC_MSG_CHECKING([for Qt])
>
> ! LIBQT="$LIBQT -ljpeg -lSM -lICE -lXext -lX11 $LIBSOCKET"
>   ac_qt_includes=NO ac_qt_libraries=NO ac_qt_bindir=NO
>   qt_libraries=""
>   qt_includes=""
> ***************
> *** 693,699 ****
>   AC_SUBST(QT_LDFLAGS)
>   AC_PATH_QT_MOC
>
> ! LIB_QT='-lqt $(LIBPNG) -lXext $(LIB_X11)'
>   AC_SUBST(LIB_QT)
>
>   ])
> --- 693,699 ----
>   AC_SUBST(QT_LDFLAGS)
>   AC_PATH_QT_MOC
>
> ! LIB_QT='-lqt $(LIBPNG) -ljpeg -lSM -lICE -lXext $(LIB_X11)'
>   AC_SUBST(LIB_QT)
>
>   ])
> *** ./DataManager/Makefile.in.bk1    Wed Jun 14 13:28:47 2000
> --- ./DataManager/Makefile.in    Tue Jun 13 13:25:30 2000
> ***************
> *** 176,182 ****
>
>   @QT_TRUE@INCLUDES = -I../include @QT_INCLUDES@
>
> ! @QT_TRUE@DataManager_LDADD = @X_LDFLAGS@     @QT_LDFLAGS@     @LIB_QT@     ../odbcinst/libodbcinst.la
../DriverManager/libodbc.la 
>
>   @QT_TRUE@DataManager_DEPENDANCIES =     ../odbcinst/libodbcinst.la     ../DriverManager/libodbc.la
>
> --- 176,182 ----
>
>   @QT_TRUE@INCLUDES = -I../include @QT_INCLUDES@
>
> ! @QT_TRUE@DataManager_LDADD = @X_LDFLAGS@     @QT_LDFLAGS@ @USER_LDFLAGS@     @LIB_QT@
../odbcinst/libodbcinst.la    ../DriverManager/libodbc.la  
>
>   @QT_TRUE@DataManager_DEPENDANCIES =     ../odbcinst/libodbcinst.la     ../DriverManager/libodbc.la
>
> *** ./ODBCConfig/Makefile.in.bk1    Tue Jun 13 13:18:55 2000
> --- ./ODBCConfig/Makefile.in    Tue Jun 13 13:25:00 2000
> ***************
> *** 176,182 ****
>
>   @QT_TRUE@INCLUDES = -I../include @QT_INCLUDES@     -DSYSTEM_FILE_PATH=\"@sysconfdir@\" -DDEFLIB_PATH=\"@libdir@\"
$(INCLTDL)
>
> ! @QT_TRUE@ODBCConfig_LDADD = @X_LDFLAGS@     @QT_LDFLAGS@     @LIB_QT@     ../odbcinst/libodbcinst.la
../extras/libodbcextraslc.la
>
>   @QT_TRUE@ODBCConfig_DEPENDANCIES = ../odbcinst/libodbcinst.la ../extras/libodbcextraslc.la
>
> --- 176,182 ----
>
>   @QT_TRUE@INCLUDES = -I../include @QT_INCLUDES@     -DSYSTEM_FILE_PATH=\"@sysconfdir@\" -DDEFLIB_PATH=\"@libdir@\"
$(INCLTDL)
>
> ! @QT_TRUE@ODBCConfig_LDADD = @X_LDFLAGS@     @QT_LDFLAGS@ @USER_LDFLAGS@    @LIB_QT@     ../odbcinst/libodbcinst.la
  ../extras/libodbcextraslc.la 
>
>   @QT_TRUE@ODBCConfig_DEPENDANCIES = ../odbcinst/libodbcinst.la ../extras/libodbcextraslc.la
>
> *** odbctest/Makefile.am.bk1    Wed Jun 14 15:16:22 2000
> --- odbctest/Makefile.am    Wed Jun 14 15:16:37 2000
> ***************
> *** 6,11 ****
> --- 6,12 ----
>
>   odbctest_LDADD = @X_LDFLAGS@ \
>       @QT_LDFLAGS@ \
> +     @USER_LDFLAGS@ \
>       @LIB_QT@ \
>       ../odbcinst/libodbcinst.la \
>       ../DriverManager/libodbc.la
> *** ./DataManager/classLogin.cpp.bk1    Tue Jun 13 14:20:07 2000
> --- ./DataManager/classLogin.cpp    Tue Jun 13 14:20:57 2000
> ***************
> *** 85,93 ****
>               QMessageBox::warning( this, "Data Manager", szBuf);
>           else
>   /* END TIM */
> !             QMessageBox::warning( this, "Data Manager",  "Login failed\n\nThis may
> ! be for one of these reasons;\n1. invalid ID and Password\n2. invalid Data
> ! Source config\n3. improper installation" );
>           return;
>       }
>
> --- 85,91 ----
>               QMessageBox::warning( this, "Data Manager", szBuf);
>           else
>   /* END TIM */
> !             QMessageBox::warning( this, "Data Manager",  "Login failed\n\nThis may be for one of these reasons;\n1.
invalidID and Password\n2. invalid Data Source config\n3. improper installation" ); 
>           return;
>       }
>
> *** ./DataManager/classISQL.cpp.bk1    Tue Jun 13 13:49:38 2000
> --- ./DataManager/classISQL.cpp    Tue Jun 13 13:50:56 2000
> ***************
> *** 140,147 ****
>       // CREATE A STATEMENT
>       iRC = SQLAllocStmt( hDbc, &hStmt );
>       if( SQL_SUCCESS != iRC )
> !         QMessageBox::critical( (QWidget *)this, "Data Manager", "Failed:
> ! SQLAllocStmt " );
>
>       if( SQL_SUCCESS != (iRC=SQLPrepare(hStmt,
>   (SQLCHAR*)(txtSQL->text().data()), SQL_NTS)) )
> --- 140,146 ----
>       // CREATE A STATEMENT
>       iRC = SQLAllocStmt( hDbc, &hStmt );
>       if( SQL_SUCCESS != iRC )
> !         QMessageBox::critical( (QWidget *)this, "Data Manager", "Failed: SQLAllocStmt " );
>
>       if( SQL_SUCCESS != (iRC=SQLPrepare(hStmt,
>   (SQLCHAR*)(txtSQL->text().data()), SQL_NTS)) )
> ***************
> *** 151,158 ****
>       if (retcode == SQL_SUCCESS)
>           QMessageBox::critical( (QWidget *)this, "Data Manager", szBuf);
>       else
> !         QMessageBox::critical( (QWidget *)this, "Data Manager", "Failed:
> ! SQLPrepare " );
>       }
>
>       // EXECUTE
> --- 150,156 ----
>       if (retcode == SQL_SUCCESS)
>           QMessageBox::critical( (QWidget *)this, "Data Manager", szBuf);
>       else
> !         QMessageBox::critical( (QWidget *)this, "Data Manager", "Failed: SQLPrepare " );
>       }
>
>       // EXECUTE
> ***************
> *** 163,170 ****
>       if (retcode == SQL_SUCCESS)
>           QMessageBox::critical( (QWidget *)this, "Data Manager", szBuf);
>       else
> !         QMessageBox::critical( (QWidget *)this, "Data Manager", "Failed:
> ! SQLExecute " );
>       }
>
>       // GET NUMBER OF ROWS AFFECTED
> --- 161,167 ----
>       if (retcode == SQL_SUCCESS)
>           QMessageBox::critical( (QWidget *)this, "Data Manager", szBuf);
>       else
> !         QMessageBox::critical( (QWidget *)this, "Data Manager", "Failed: SQLExecute " );
>       }
>
>       // GET NUMBER OF ROWS AFFECTED
> ***************
> *** 186,193 ****
>       // FREE STATEMENT
>       iRC = SQLFreeStmt( hStmt, SQL_DROP );
>       if( SQL_SUCCESS != iRC )
> !         QMessageBox::critical( (QWidget *)this, "Data Manager", "Failed:
> ! SQLFreeStmt " );
>
>       pTabBar->setCurrentTab( 1 );
>       txtResults->show();
> --- 183,189 ----
>       // FREE STATEMENT
>       iRC = SQLFreeStmt( hStmt, SQL_DROP );
>       if( SQL_SUCCESS != iRC )
> !         QMessageBox::critical( (QWidget *)this, "Data Manager", "Failed: SQLFreeStmt " );
>
>       pTabBar->setCurrentTab( 1 );
>       txtResults->show();
> *** ./odbctest/odbctest.cpp.bk1    Tue Jun 13 14:33:54 2000
> --- ./odbctest/odbctest.cpp    Tue Jun 13 14:34:23 2000
> ***************
> *** 687,693 ****
>       return a.exec();
>   }
>
> ! Handle::Handle( int t, SQLHANDLE h, QString desc = NULL, SQLHANDLE stmt = SQL_NULL_HANDLE )
>   {
>       type = t;
>       handle = h;
> --- 687,693 ----
>       return a.exec();
>   }
>
> ! Handle::Handle( int t, SQLHANDLE h, QString desc, SQLHANDLE stmt)
>   {
>       type = t;
>       handle = h;
> *** ./libltdl/ltdl.c.bk1    Sun Jun 11 23:35:11 2000
> --- ./libltdl/ltdl.c    Sun Jun 11 23:35:34 2000
> ***************
> *** 210,218 ****
>
>   /* dynamic linking with dlopen/dlsym */
>
> - #if HAVE_DLFCN_H
>   # include <dlfcn.h>
> - #endif
>
>   /*
>    * GLOBAL is not a good thing for us, it breaks perl amonst others
> --- 210,216 ----
> *** ./Drivers/txt/SQLStatistics.c.bk1    Fri May 26 16:55:21 2000
> --- ./Drivers/txt/SQLStatistics.c    Fri May 26 16:55:43 2000
> ***************
> *** 58,64 ****
>           return SQL_ERROR;
>       }
>
> !     hStmt->hStmtExtras->hBoundCols    = _CreateBoundCols( hStmt );
>
>       logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_INFO, LOG_INFO, "SQL_SUCCESS" );
>       return SQL_SUCCESS;
> --- 58,64 ----
>           return SQL_ERROR;
>       }
>
> !     hStmt->hStmtExtras->hBoundCols    = _CreateBoundCols((SQLHSTMT) hStmt );
>
>       logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_INFO, LOG_INFO, "SQL_SUCCESS" );
>       return SQL_SUCCESS;
> *** ./Drivers/txt/SQLColumns.c.bk1    Fri May 26 16:52:03 2000
> --- ./Drivers/txt/SQLColumns.c    Fri May 26 16:51:41 2000
> ***************
> *** 61,67 ****
>           logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING, hStmt->szSqlMsg );
>           return SQL_ERROR;
>       }
> !     hStmt->hStmtExtras->hBoundCols    = _CreateBoundCols( hStmt );
>
>       logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_INFO, LOG_INFO, "SQL_SUCCESS" );
>       return SQL_SUCCESS;
> --- 61,67 ----
>           logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING, hStmt->szSqlMsg );
>           return SQL_ERROR;
>       }
> !     hStmt->hStmtExtras->hBoundCols    = _CreateBoundCols((SQLHSTMT) hStmt );
>
>       logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_INFO, LOG_INFO, "SQL_SUCCESS" );
>       return SQL_SUCCESS;
> *** ./Drivers/txt/SQLSpecialColumns.c.bk1    Fri May 26 16:54:45 2000
> --- ./Drivers/txt/SQLSpecialColumns.c    Fri May 26 16:55:03 2000
> ***************
> *** 76,82 ****
>           return SQL_ERROR;
>       }
>
> !     hStmt->hStmtExtras->hBoundCols    = _CreateBoundCols( hStmt );
>
>       logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_INFO, LOG_INFO, "SQL_SUCCESS" );
>       return SQL_SUCCESS;
> --- 76,82 ----
>           return SQL_ERROR;
>       }
>
> !     hStmt->hStmtExtras->hBoundCols    = _CreateBoundCols((SQLHSTMT) hStmt );
>
>       logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_INFO, LOG_INFO, "SQL_SUCCESS" );
>       return SQL_SUCCESS;
> *** ./Drivers/txt/SQLTables.c.bk1    Fri May 26 16:56:02 2000
> --- ./Drivers/txt/SQLTables.c    Fri May 26 16:56:42 2000
> ***************
> *** 55,61 ****
>           return SQL_ERROR;
>       }
>
> !     hStmt->hStmtExtras->hBoundCols    = _CreateBoundCols( hStmt );
>
>       logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_INFO, LOG_INFO, "SQL_SUCCESS" );
>       return SQL_SUCCESS;
> --- 55,61 ----
>           return SQL_ERROR;
>       }
>
> !     hStmt->hStmtExtras->hBoundCols    = _CreateBoundCols((SQLHSTMT) hStmt );
>
>       logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_INFO, LOG_INFO, "SQL_SUCCESS" );
>       return SQL_SUCCESS;
> *** ./Drivers/txt/SQLPrimaryKeys.c.bk1    Fri May 26 16:53:27 2000
> --- ./Drivers/txt/SQLPrimaryKeys.c    Fri May 26 16:53:41 2000
> ***************
> *** 55,61 ****
>           return SQL_ERROR;
>       }
>
> !     hStmt->hStmtExtras->hBoundCols    = _CreateBoundCols( hStmt );
>
>       logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_INFO, LOG_INFO, "SQL_SUCCESS" );
>       return SQL_SUCCESS;
> --- 55,61 ----
>           return SQL_ERROR;
>       }
>
> !     hStmt->hStmtExtras->hBoundCols    = _CreateBoundCols((SQLHSTMT) hStmt );
>
>       logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_INFO, LOG_INFO, "SQL_SUCCESS" );
>       return SQL_SUCCESS;
> *** ./Drivers/template/SQLAllocStmt.c.bk1    Fri May 26 17:16:55 2000
> --- ./Drivers/template/SQLAllocStmt.c    Fri May 26 17:18:17 2000
> ***************
> *** 62,68 ****
>       (*phStmt)->pNext        = NULL;
>       (*phStmt)->pPrev        = NULL;
>       (*phStmt)->pszQuery        = NULL;
> !     sprintf( (*phStmt)->szCursorName, "CUR_%08lX", *phStmt );
>
>       /* ADD TO DBCs STATEMENT LIST */
>
> --- 65,71 ----
>       (*phStmt)->pNext        = NULL;
>       (*phStmt)->pPrev        = NULL;
>       (*phStmt)->pszQuery        = NULL;
> !     sprintf((char*) (*phStmt)->szCursorName, "CUR_%08lX", *phStmt );
>
>       /* ADD TO DBCs STATEMENT LIST */
>
> *** ./Drivers/template/SQLFreeEnv.c.bk1    Fri May 26 17:19:48 2000
> --- ./Drivers/template/SQLFreeEnv.c    Fri May 26 17:20:08 2000
> ***************
> *** 14,19 ****
> --- 14,22 ----
>    **********************************************************************/
>
>   #include "driver.h"
> +
> + SQLRETURN _FreeEnv(SQLHENV);
> +
>   SQLRETURN SQLFreeEnv( SQLHENV hDrvEnv )
>   {
>     return  _FreeEnv( hDrvEnv );
> *** ./Drivers/template/SQLFreeHandle.c.bk1    Fri May 26 17:21:17 2000
> --- ./Drivers/template/SQLFreeHandle.c    Fri May 26 17:21:27 2000
> ***************
> *** 25,31 ****
>           return _FreeConnect( (SQLHDBC)nHandle );
>
>       case SQL_HANDLE_STMT:
> !       //        return _FreeStmt( (SQLHSTMT)nHandle, 0 );
>           return _FreeStmt( (SQLHSTMT)nHandle );
>
>       case SQL_HANDLE_DESC:
> --- 25,31 ----
>           return _FreeConnect( (SQLHDBC)nHandle );
>
>       case SQL_HANDLE_STMT:
> !       /*        return _FreeStmt( (SQLHSTMT)nHandle, 0 ); */
>           return _FreeStmt( (SQLHSTMT)nHandle );
>
>       case SQL_HANDLE_DESC:
> *** ./Drivers/PostgreSQL/environ.c.bk1    Fri May 26 15:14:24 2000
> --- ./Drivers/PostgreSQL/environ.c    Fri May 26 15:35:46 2000
> ***************
> *** 425,431 ****
>
>       /* Free any connections belonging to this environment */
>       for (lf = 0; lf < MAX_CONNECTIONS; lf++) {
> !         if (conns[lf] && conns[lf]->henv == self)
>               rv = rv && CC_Destructor(conns[lf]);
>       }
>
> --- 425,431 ----
>
>       /* Free any connections belonging to this environment */
>       for (lf = 0; lf < MAX_CONNECTIONS; lf++) {
> !         if (conns[lf] && conns[lf]->henv == (HENV) self)
>               rv = rv && CC_Destructor(conns[lf]);
>       }
>
> ***************
> *** 459,465 ****
>
>       for (i = 0; i < MAX_CONNECTIONS; i++) {
>           if ( ! conns[i]) {
> !             conn->henv = self;
>               conns[i] = conn;
>
>               mylog("       added at i =%d, conn->henv = %u, conns[i]->henv = %u\n", i, conn->henv, conns[i]->henv);
> --- 459,465 ----
>
>       for (i = 0; i < MAX_CONNECTIONS; i++) {
>           if ( ! conns[i]) {
> !             conn->henv = (HENV) self;
>               conns[i] = conn;
>
>               mylog("       added at i =%d, conn->henv = %u, conns[i]->henv = %u\n", i, conn->henv, conns[i]->henv);
> *** ./Drivers/PostgreSQL/execute.c.bk1    Fri May 26 15:36:14 2000
> --- ./Drivers/PostgreSQL/execute.c    Sun Jun 11 21:42:40 2000
> ***************
> *** 445,451 ****
>
>           mylog("SQLCancel:  SQLFreeStmt returned %d\n", result);
>
> !         SC_clear_error(hstmt);
>           return SQL_SUCCESS;
>       }
>
> --- 445,451 ----
>
>           mylog("SQLCancel:  SQLFreeStmt returned %d\n", result);
>
> !         SC_clear_error( (StatementClass *) hstmt);
>           return SQL_SUCCESS;
>       }
>
> ***************
> *** 728,734 ****
>                   }
>               }
>               else {
> !                 current_param->EXEC_buffer = malloc(cbValue + 1);
>                   if ( ! current_param->EXEC_buffer) {
>                       stmt->errornumber = STMT_NO_MEMORY_ERROR;
>                       stmt->errormsg = "Out of memory in SQLPutData (2)";
> --- 728,734 ----
>                   }
>               }
>               else {
> !                 current_param->EXEC_buffer = (char*) malloc(cbValue + 1);
>                   if ( ! current_param->EXEC_buffer) {
>                       stmt->errornumber = STMT_NO_MEMORY_ERROR;
>                       stmt->errormsg = "Out of memory in SQLPutData (2)";
> ***************
> *** 758,764 ****
>               buffer = current_param->EXEC_buffer;
>
>               if (cbValue == SQL_NTS) {
> !                 buffer = realloc(buffer, strlen(buffer) + strlen(rgbValue) + 1);
>                   if ( ! buffer) {
>                       stmt->errornumber = STMT_NO_MEMORY_ERROR;
>                       stmt->errormsg = "Out of memory in SQLPutData (3)";
> --- 758,764 ----
>               buffer = current_param->EXEC_buffer;
>
>               if (cbValue == SQL_NTS) {
> !                 buffer = (char*) realloc(buffer, strlen(buffer) + strlen(rgbValue) + 1);
>                   if ( ! buffer) {
>                       stmt->errornumber = STMT_NO_MEMORY_ERROR;
>                       stmt->errormsg = "Out of memory in SQLPutData (3)";
> ***************
> *** 784,790 ****
>                   mylog("        cbValue = %d, old_pos = %d, *used = %d\n", cbValue, old_pos,
*current_param->EXEC_used);
>
>                   /* dont lose the old pointer in case out of memory */
> !                 buffer = realloc(current_param->EXEC_buffer, *current_param->EXEC_used + 1);
>                   if ( ! buffer) {
>                       stmt->errornumber = STMT_NO_MEMORY_ERROR;
>                       stmt->errormsg = "Out of memory in SQLPutData (3)";
> --- 784,790 ----
>                   mylog("        cbValue = %d, old_pos = %d, *used = %d\n", cbValue, old_pos,
*current_param->EXEC_used);
>
>                   /* dont lose the old pointer in case out of memory */
> !                 buffer = (char*) realloc(current_param->EXEC_buffer, *current_param->EXEC_used + 1);
>                   if ( ! buffer) {
>                       stmt->errornumber = STMT_NO_MEMORY_ERROR;
>                       stmt->errormsg = "Out of memory in SQLPutData (3)";
> *** ./Drivers/PostgreSQL/info.c.bk1    Fri May 26 15:39:45 2000
> --- ./Drivers/PostgreSQL/info.c    Fri May 26 15:44:56 2000
> ***************
> *** 1028,1034 ****
>
>       result = PG__SQLExecDirect(htbl_stmt, tables_query, strlen(tables_query));
>       if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
> !         stmt->errormsg = SC_create_errormsg(htbl_stmt);
>           stmt->errornumber = tbl_stmt->errornumber;
>           SC_log_error(func, "", stmt);
>           PG__SQLFreeStmt(htbl_stmt, SQL_DROP);
> --- 1028,1034 ----
>
>       result = PG__SQLExecDirect(htbl_stmt, tables_query, strlen(tables_query));
>       if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
> !         stmt->errormsg = SC_create_errormsg((StatementClass *) htbl_stmt);
>           stmt->errornumber = tbl_stmt->errornumber;
>           SC_log_error(func, "", stmt);
>           PG__SQLFreeStmt(htbl_stmt, SQL_DROP);
> ***************
> *** 1149,1155 ****
>           result = PG__SQLFetch(htbl_stmt);
>       }
>       if(result != SQL_NO_DATA_FOUND) {
> !         stmt->errormsg = SC_create_errormsg(htbl_stmt);
>           stmt->errornumber = tbl_stmt->errornumber;
>           SC_log_error(func, "", stmt);
>           PG__SQLFreeStmt(htbl_stmt, SQL_DROP);
> --- 1149,1155 ----
>           result = PG__SQLFetch(htbl_stmt);
>       }
>       if(result != SQL_NO_DATA_FOUND) {
> !         stmt->errormsg = SC_create_errormsg((StatementClass *) htbl_stmt);
>           stmt->errornumber = tbl_stmt->errornumber;
>           SC_log_error(func, "", stmt);
>           PG__SQLFreeStmt(htbl_stmt, SQL_DROP);
> ***************
> *** 1240,1246 ****
>       result = PG__SQLExecDirect(hcol_stmt, columns_query,
>                              strlen(columns_query));
>       if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
> !         stmt->errormsg = SC_create_errormsg(hcol_stmt);
>           stmt->errornumber = col_stmt->errornumber;
>           SC_log_error(func, "", stmt);
>           PG__SQLFreeStmt(hcol_stmt, SQL_DROP);
> --- 1240,1246 ----
>       result = PG__SQLExecDirect(hcol_stmt, columns_query,
>                              strlen(columns_query));
>       if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
> !         stmt->errormsg = SC_create_errormsg((StatementClass *) hcol_stmt);
>           stmt->errornumber = col_stmt->errornumber;
>           SC_log_error(func, "", stmt);
>           PG__SQLFreeStmt(hcol_stmt, SQL_DROP);
> ***************
> *** 1470,1476 ****
>
>       }
>       if(result != SQL_NO_DATA_FOUND) {
> !         stmt->errormsg = SC_create_errormsg(hcol_stmt);
>           stmt->errornumber = col_stmt->errornumber;
>           SC_log_error(func, "", stmt);
>           PG__SQLFreeStmt(hcol_stmt, SQL_DROP);
> --- 1470,1476 ----
>
>       }
>       if(result != SQL_NO_DATA_FOUND) {
> !         stmt->errormsg = SC_create_errormsg((StatementClass *) hcol_stmt);
>           stmt->errornumber = col_stmt->errornumber;
>           SC_log_error(func, "", stmt);
>           PG__SQLFreeStmt(hcol_stmt, SQL_DROP);
> ***************
> *** 1760,1766 ****
>           result = PG__SQLFetch(hcol_stmt);
>       }
>       if(result != SQL_NO_DATA_FOUND || total_columns == 0) {
> !             stmt->errormsg = SC_create_errormsg(hcol_stmt); /*// "Couldn't get column names in SQLStatistics."; */
>               stmt->errornumber = col_stmt->errornumber;
>               PG__SQLFreeStmt(hcol_stmt, SQL_DROP);
>                  goto SEEYA;
> --- 1760,1766 ----
>           result = PG__SQLFetch(hcol_stmt);
>       }
>       if(result != SQL_NO_DATA_FOUND || total_columns == 0) {
> !             stmt->errormsg = SC_create_errormsg((StatementClass *) hcol_stmt); /*// "Couldn't get column names in
SQLStatistics.";*/ 
>               stmt->errornumber = col_stmt->errornumber;
>               PG__SQLFreeStmt(hcol_stmt, SQL_DROP);
>                  goto SEEYA;
> ***************
> *** 1784,1790 ****
>
>       result = PG__SQLExecDirect(hindx_stmt, index_query, strlen(index_query));
>       if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
> !         stmt->errormsg = SC_create_errormsg(hindx_stmt); /*// "Couldn't execute index query (w/SQLExecDirect) in
SQLStatistics.";*/ 
>           stmt->errornumber = indx_stmt->errornumber;
>           PG__SQLFreeStmt(hindx_stmt, SQL_DROP);
>             goto SEEYA;
> --- 1784,1790 ----
>
>       result = PG__SQLExecDirect(hindx_stmt, index_query, strlen(index_query));
>       if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
> !         stmt->errormsg = SC_create_errormsg((StatementClass *) hindx_stmt); /*// "Couldn't execute index query
(w/SQLExecDirect)in SQLStatistics."; */ 
>           stmt->errornumber = indx_stmt->errornumber;
>           PG__SQLFreeStmt(hindx_stmt, SQL_DROP);
>             goto SEEYA;
> ***************
> *** 1924,1930 ****
>           result = PG__SQLFetch(hindx_stmt);
>       }
>       if(result != SQL_NO_DATA_FOUND) {
> !         stmt->errormsg = SC_create_errormsg(hindx_stmt); /*// "SQLFetch failed in SQLStatistics."; */
>           stmt->errornumber = indx_stmt->errornumber;
>           PG__SQLFreeStmt(hindx_stmt, SQL_DROP);
>           goto SEEYA;
> --- 1924,1930 ----
>           result = PG__SQLFetch(hindx_stmt);
>       }
>       if(result != SQL_NO_DATA_FOUND) {
> !         stmt->errormsg = SC_create_errormsg((StatementClass *) hindx_stmt); /*// "SQLFetch failed in
SQLStatistics.";*/ 
>           stmt->errornumber = indx_stmt->errornumber;
>           PG__SQLFreeStmt(hindx_stmt, SQL_DROP);
>           goto SEEYA;
> ***************
> *** 2076,2082 ****
>
>       result = PG__SQLExecDirect(htbl_stmt, tables_query, strlen(tables_query));
>       if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
> !         stmt->errormsg = SC_create_errormsg(htbl_stmt);
>           stmt->errornumber = tbl_stmt->errornumber;
>           SC_log_error(func, "", stmt);
>           PG__SQLFreeStmt(htbl_stmt, SQL_DROP);
> --- 2076,2082 ----
>
>       result = PG__SQLExecDirect(htbl_stmt, tables_query, strlen(tables_query));
>       if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
> !         stmt->errormsg = SC_create_errormsg((StatementClass *) htbl_stmt);
>           stmt->errornumber = tbl_stmt->errornumber;
>           SC_log_error(func, "", stmt);
>           PG__SQLFreeStmt(htbl_stmt, SQL_DROP);
> ***************
> *** 2120,2126 ****
>       }
>
>       if(result != SQL_NO_DATA_FOUND) {
> !         stmt->errormsg = SC_create_errormsg(htbl_stmt);
>           stmt->errornumber = tbl_stmt->errornumber;
>           SC_log_error(func, "", stmt);
>           PG__SQLFreeStmt(htbl_stmt, SQL_DROP);
> --- 2120,2126 ----
>       }
>
>       if(result != SQL_NO_DATA_FOUND) {
> !         stmt->errormsg = SC_create_errormsg((StatementClass *) htbl_stmt);
>           stmt->errornumber = tbl_stmt->errornumber;
>           SC_log_error(func, "", stmt);
>           PG__SQLFreeStmt(htbl_stmt, SQL_DROP);
> ***************
> *** 2272,2278 ****
>
>           result = PG__SQLExecDirect(htbl_stmt, tables_query, strlen(tables_query));
>           if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
> !             stmt->errormsg = SC_create_errormsg(htbl_stmt);
>               stmt->errornumber = tbl_stmt->errornumber;
>               SC_log_error(func, "", stmt);
>               PG__SQLFreeStmt(htbl_stmt, SQL_DROP);
> --- 2272,2278 ----
>
>           result = PG__SQLExecDirect(htbl_stmt, tables_query, strlen(tables_query));
>           if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
> !             stmt->errormsg = SC_create_errormsg((StatementClass *) htbl_stmt);
>               stmt->errornumber = tbl_stmt->errornumber;
>               SC_log_error(func, "", stmt);
>               PG__SQLFreeStmt(htbl_stmt, SQL_DROP);
> ***************
> *** 2314,2320 ****
>               return SQL_SUCCESS;
>
>           if(result != SQL_SUCCESS) {
> !             stmt->errormsg = SC_create_errormsg(htbl_stmt);
>               stmt->errornumber = tbl_stmt->errornumber;
>               SC_log_error(func, "", stmt);
>               PG__SQLFreeStmt(htbl_stmt, SQL_DROP);
> --- 2314,2320 ----
>               return SQL_SUCCESS;
>
>           if(result != SQL_SUCCESS) {
> !             stmt->errormsg = SC_create_errormsg((StatementClass *) htbl_stmt);
>               stmt->errornumber = tbl_stmt->errornumber;
>               SC_log_error(func, "", stmt);
>               PG__SQLFreeStmt(htbl_stmt, SQL_DROP);
> ***************
> *** 2447,2453 ****
>
>           result = PG__SQLExecDirect(htbl_stmt, tables_query, strlen(tables_query));
>           if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
> !             stmt->errormsg = SC_create_errormsg(htbl_stmt);
>               stmt->errornumber = tbl_stmt->errornumber;
>               SC_log_error(func, "", stmt);
>               PG__SQLFreeStmt(htbl_stmt, SQL_DROP);
> --- 2447,2453 ----
>
>           result = PG__SQLExecDirect(htbl_stmt, tables_query, strlen(tables_query));
>           if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
> !             stmt->errormsg = SC_create_errormsg((StatementClass *) htbl_stmt);
>               stmt->errornumber = tbl_stmt->errornumber;
>               SC_log_error(func, "", stmt);
>               PG__SQLFreeStmt(htbl_stmt, SQL_DROP);
> ***************
> *** 2499,2505 ****
>               return SQL_SUCCESS;
>
>           if(result != SQL_SUCCESS) {
> !             stmt->errormsg = SC_create_errormsg(htbl_stmt);
>               stmt->errornumber = tbl_stmt->errornumber;
>               SC_log_error(func, "", stmt);
>               PG__SQLFreeStmt(htbl_stmt, SQL_DROP);
> --- 2499,2505 ----
>               return SQL_SUCCESS;
>
>           if(result != SQL_SUCCESS) {
> !             stmt->errormsg = SC_create_errormsg((StatementClass *) htbl_stmt);
>               stmt->errornumber = tbl_stmt->errornumber;
>               SC_log_error(func, "", stmt);
>               PG__SQLFreeStmt(htbl_stmt, SQL_DROP);
> *** ./Drivers/PostgreSQL/psqlodbc.h.bk1    Mon Jun 12 01:45:27 2000
> --- ./Drivers/PostgreSQL/psqlodbc.h    Mon Jun 12 01:45:39 2000
> ***************
> *** 18,24 ****
>   #include <stdio.h>    /* for FILE* pointers: see GLOBAL_VALUES */
>
>   #ifndef WIN32
> ! #define Int4 long int
>   #define UInt4 unsigned int
>   #define Int2 short
>   #define UInt2 unsigned short
> --- 18,24 ----
>   #include <stdio.h>    /* for FILE* pointers: see GLOBAL_VALUES */
>
>   #ifndef WIN32
> ! #define Int4 int
>   #define UInt4 unsigned int
>   #define Int2 short
>   #define UInt2 unsigned short


--
  Bruce Momjian                        |  http://www.op.net/~candle
  pgman@candle.pha.pa.us               |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Thomas Lockhart
Дата:
Сообщение: Re: Re: Big 7.1 open items
Следующее
От: Zeugswetter Andreas SB
Дата:
Сообщение: AW: AW: Big 7.1 open items