]> git.saurik.com Git - wxWidgets.git/blobdiff - src/iodbc/catalog.c
no significant changes
[wxWidgets.git] / src / iodbc / catalog.c
index 6c28eabdcfd9545fbe0bbab0d79eb121d06fc9e7..37b134df47e049bc82b04ad2fc4f09ad480b183a 100644 (file)
-/** Catalog functions of iODBC driver manager
+/*
+ *  catalog.c
+ *
+ *  $Id$
+ *
+ *  Catalog functions
+ *
+ *  The iODBC driver manager.
+ *  
+ *  Copyright (C) 1995 by Ke Jin <kejin@empress.com> 
+ *
+ *  This library is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU Library General Public
+ *  License as published by the Free Software Foundation; either
+ *  version 2 of the License, or (at your option) any later version.
+ *
+ *  This library is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *  Library General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Library General Public
+ *  License along with this library; if not, write to the Free
+ *  Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include       "config.h"
+
+#include       "isql.h"
+#include       "isqlext.h"
+
+#include       "dlproc.h"
+
+#include       "herr.h"
+#include       "henv.h"
+#include       "hdbc.h"
+#include       "hstmt.h"
+
+#include       "itrace.h"
+
+#ifndef NULL
+#define NULL 0
+#endif
 
-    Copyright (C) 1995 by Ke Jin <kejin@empress.com>
+static RETCODE 
+_iodbcdm_cata_state_ok (
+    HSTMT hstmt,
+    int fidx)
+/* check state for executing catalog functions */
+{
+  STMT_t FAR *pstmt = (STMT_t FAR *) hstmt;
+  int sqlstat = en_00000;
+
+  if (pstmt->asyn_on == en_NullProc)
+    {
+      switch (pstmt->state)
+        {
+        case en_stmt_needdata:
+        case en_stmt_mustput:
+        case en_stmt_canput:
+          sqlstat = en_S1010;
+          break;
+
+        case en_stmt_fetched:
+        case en_stmt_xfetched:
+          sqlstat = en_24000;
+          break;
+
+        default:
+          break;
+        }
+    }
+  else if (pstmt->asyn_on != fidx)
+    {
+      sqlstat = en_S1010;
+    }
+
+  if (sqlstat != en_00000)
+    {
+      PUSHSQLERR (pstmt->herr, sqlstat);
+
+      return SQL_ERROR;
+    }
+
+  return SQL_SUCCESS;
+}
 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or
-    (at your option) any later version.
 
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-**/
+static RETCODE 
+_iodbcdm_cata_state_tr (
+    HSTMT hstmt,
+    int fidx,
+    RETCODE result)
+/* state transition for catalog function */
+{
+  STMT_t FAR *pstmt = (STMT_t FAR *) hstmt;
+  DBC_t FAR *pdbc;
+
+  pdbc = (DBC_t FAR *) (pstmt->hdbc);
+
+  if (pstmt->asyn_on == fidx)
+    {
+      switch (result)
+        {
+        case SQL_SUCCESS:
+        case SQL_SUCCESS_WITH_INFO:
+        case SQL_ERROR:
+          pstmt->asyn_on = en_NullProc;
+          break;
+
+        case SQL_STILL_EXECUTING:
+        default:
+          return result;
+        }
+    }
+
+  if (pstmt->state <= en_stmt_executed)
+    {
+      switch (result)
+        {
+        case SQL_SUCCESS:
+        case SQL_SUCCESS_WITH_INFO:
+          pstmt->state = en_stmt_cursoropen;
+          break;
+
+        case SQL_ERROR:
+          pstmt->state = en_stmt_allocated;
+          pstmt->prep_state = 0;
+          break;
+
+        case SQL_STILL_EXECUTING:
+          pstmt->asyn_on = fidx;
+          break;
+
+        default:
+          break;
+        }
+    }
+
+  return result;
+}
 
-#include       <../iodbc/iodbc.h>
 
-#include       <../iodbc/isql.h>
-#include       <../iodbc/isqlext.h>
+RETCODE SQL_API 
+SQLGetTypeInfo (
+    HSTMT hstmt,
+    SWORD fSqlType)
+{
+  STMT_t FAR *pstmt = (STMT_t FAR *) hstmt;
+  HPROC hproc = SQL_NULL_HPROC;
+  int sqlstat = en_00000;
+  RETCODE retcode;
+
+  if (hstmt == SQL_NULL_HSTMT || pstmt->hdbc == SQL_NULL_HDBC)
+    {
+      return SQL_INVALID_HANDLE;
+    }
+
+  for (;;)
+    {
+      if (fSqlType > SQL_TYPE_MAX)
+       {
+         sqlstat = en_S1004;
+         break;
+       }
+
+      /* Note: SQL_TYPE_DRIVER_START is a negative number So, we use ">" */
+      if (fSqlType < SQL_TYPE_MIN && fSqlType > SQL_TYPE_DRIVER_START)
+       {
+         sqlstat = en_S1004;
+         break;
+       }
+
+      retcode = _iodbcdm_cata_state_ok (hstmt, en_GetTypeInfo);
+
+      if (retcode != SQL_SUCCESS)
+       {
+         return SQL_ERROR;
+       }
+
+      hproc = _iodbcdm_getproc (pstmt->hdbc, en_GetTypeInfo);
+
+      if (hproc == SQL_NULL_HPROC)
+       {
+         sqlstat = en_IM001;
+         break;
+       }
+
+      sqlstat = en_00000;
+      if (1)                   /* turn off solaris warning message */
+       break;
+    }
+
+  if (sqlstat != en_00000)
+    {
+      PUSHSQLERR (pstmt->herr, sqlstat);
+
+      return SQL_ERROR;
+    }
+
+  CALL_DRIVER ( pstmt->hdbc, retcode, hproc, en_GetTypeInfo, 
+    (pstmt->dhstmt, fSqlType))
+
+  return _iodbcdm_cata_state_tr (hstmt, en_GetTypeInfo, retcode);
+}
 
-#include        <../iodbc/dlproc.h>
 
-#include       <../iodbc/herr.h>
-#include       <../iodbc/henv.h>
-#include       <../iodbc/hdbc.h>
-#include       <../iodbc/hstmt.h>
+RETCODE SQL_API 
+SQLSpecialColumns (
+    HSTMT hstmt,
+    UWORD fColType,
+    UCHAR FAR * szTableQualifier,
+    SWORD cbTableQualifier,
+    UCHAR FAR * szTableOwner,
+    SWORD cbTableOwner,
+    UCHAR FAR * szTableName,
+    SWORD cbTableName,
+    UWORD fScope,
+    UWORD fNullable)
+{
+  STMT_t FAR *pstmt = (STMT_t FAR *) hstmt;
+  HPROC hproc = SQL_NULL_HPROC;
+  RETCODE retcode;
+  int sqlstat = en_00000;
+
+  if (hstmt == SQL_NULL_HSTMT || pstmt->hdbc == SQL_NULL_HDBC)
+    {
+      return SQL_INVALID_HANDLE;
+    }
+
+  for (;;)
+    {
+      if ((cbTableQualifier < 0 && cbTableQualifier != SQL_NTS)
+         || (cbTableOwner < 0 && cbTableOwner != SQL_NTS)
+         || (cbTableName < 0 && cbTableName != SQL_NTS))
+       {
+         sqlstat = en_S1090;
+         break;
+       }
+
+      if (fColType != SQL_BEST_ROWID && fColType != SQL_ROWVER)
+       {
+         sqlstat = en_S1097;
+         break;
+       }
+
+      if (fScope != SQL_SCOPE_CURROW
+         && fScope != SQL_SCOPE_TRANSACTION
+         && fScope != SQL_SCOPE_SESSION)
+       {
+         sqlstat = en_S1098;
+         break;
+       }
+
+      if (fNullable != SQL_NO_NULLS && fNullable != SQL_NULLABLE)
+       {
+         sqlstat = en_S1099;
+         break;
+       }
+
+      retcode = _iodbcdm_cata_state_ok (hstmt, en_SpecialColumns);
+
+      if (retcode != SQL_SUCCESS)
+       {
+         return SQL_ERROR;
+       }
+
+      hproc = _iodbcdm_getproc (pstmt->hdbc, en_SpecialColumns);
+
+      if (hproc == SQL_NULL_HPROC)
+       {
+         sqlstat = en_IM001;
+         break;
+       }
+
+      sqlstat = en_00000;
+      if (1)                   /* turn off solaris warning message */
+       break;
+    }
+
+  if (sqlstat != en_00000)
+    {
+      PUSHSQLERR (pstmt->herr, sqlstat);
+
+      return SQL_ERROR;
+    }
+
+  CALL_DRIVER (pstmt->hdbc, retcode, hproc, en_SpecialColumns, (
+         pstmt->dhstmt,
+         fColType,
+         szTableQualifier,
+         cbTableQualifier,
+         szTableOwner,
+         cbTableOwner,
+         szTableName,
+         cbTableName,
+         fScope,
+         fNullable))
+
+  return _iodbcdm_cata_state_tr (hstmt, en_SpecialColumns, retcode);
+}
 
-#include       <../iodbc/itrace.h>
 
-static RETCODE  _iodbcdm_cata_state_ok (
-                                HSTMT   hstmt,
-                                int     fidx )
-/* check state for executing catalog functions */
+RETCODE SQL_API 
+SQLStatistics (
+    HSTMT hstmt,
+    UCHAR FAR * szTableQualifier,
+    SWORD cbTableQualifier,
+    UCHAR FAR * szTableOwner,
+    SWORD cbTableOwner,
+    UCHAR FAR * szTableName,
+    SWORD cbTableName,
+    UWORD fUnique,
+    UWORD fAccuracy)
 {
-        STMT_t FAR*     pstmt   = (STMT_t FAR*)hstmt;
-        int             sqlstat = en_00000;
-
-        if( pstmt->asyn_on == en_NullProc )
-        {
-                switch( pstmt->state )
-                {
-                        case en_stmt_needdata:
-                        case en_stmt_mustput:
-                        case en_stmt_canput:
-                                sqlstat = en_S1010;
-                                break;
-
-                        case en_stmt_fetched:
-                        case en_stmt_xfetched:
-                                sqlstat = en_24000;
-                                break;
-
-                        default:
-                                break;
-                }
-        }
-        else if( pstmt->asyn_on != fidx )
-        {
-                sqlstat = en_S1010;
-        }
-
-        if( sqlstat != en_00000 )
-        {
-                PUSHSQLERR ( pstmt->herr, sqlstat );
-
-                return SQL_ERROR;
-        }
-
-        return SQL_SUCCESS;
+  STMT_t FAR *pstmt = (STMT_t FAR *) hstmt;
+  HPROC hproc = SQL_NULL_HPROC;
+  RETCODE retcode;
+  int sqlstat = en_00000;
+
+  if (hstmt == SQL_NULL_HSTMT || pstmt->hdbc == SQL_NULL_HDBC)
+    {
+      return SQL_INVALID_HANDLE;
+    }
+
+  for (;;)
+    {
+      if ((cbTableQualifier < 0 && cbTableQualifier != SQL_NTS)
+         || (cbTableOwner < 0 && cbTableOwner != SQL_NTS)
+         || (cbTableName < 0 && cbTableName != SQL_NTS))
+       {
+         sqlstat = en_S1090;
+         break;
+       }
+
+      if (fUnique != SQL_INDEX_UNIQUE && fUnique != SQL_INDEX_ALL)
+       {
+         sqlstat = en_S1100;
+         break;
+       }
+
+      if (fAccuracy != SQL_ENSURE && fAccuracy != SQL_QUICK)
+       {
+         sqlstat = en_S1101;
+         break;
+       }
+
+      retcode = _iodbcdm_cata_state_ok (hstmt, en_Statistics);
+
+      if (retcode != SQL_SUCCESS)
+       {
+         return SQL_ERROR;
+       }
+
+      hproc = _iodbcdm_getproc (pstmt->hdbc, en_Statistics);
+
+      if (hproc == SQL_NULL_HPROC)
+       {
+         sqlstat = en_IM001;
+         break;
+       }
+
+      sqlstat = en_00000;
+
+      if (1)                   /* turn off solaris warning message */
+       break;
+    }
+
+  if (sqlstat != en_00000)
+    {
+      PUSHSQLERR (pstmt->herr, sqlstat);
+
+      return SQL_ERROR;
+    }
+
+  CALL_DRIVER (pstmt->hdbc, retcode, hproc, en_Statistics, (
+         pstmt->dhstmt,
+         szTableQualifier,
+         cbTableQualifier,
+         szTableOwner,
+         cbTableOwner,
+         szTableName,
+         cbTableName,
+         fUnique,
+         fAccuracy))
+
+  return _iodbcdm_cata_state_tr (hstmt, en_Statistics, retcode);
 }
 
-static RETCODE  _iodbcdm_cata_state_tr(
-                        HSTMT           hstmt,
-                        int             fidx,
-                        RETCODE         result )
-/* state transition for catalog function */
+
+RETCODE SQL_API 
+SQLTables (
+    HSTMT hstmt,
+    UCHAR FAR * szTableQualifier,
+    SWORD cbTableQualifier,
+    UCHAR FAR * szTableOwner,
+    SWORD cbTableOwner,
+    UCHAR FAR * szTableName,
+    SWORD cbTableName,
+    UCHAR FAR * szTableType,
+    SWORD cbTableType)
 {
-        STMT_t FAR*     pstmt = (STMT_t FAR*)hstmt;
-        DBC_t  FAR*     pdbc;
-
-        pdbc = (DBC_t FAR*)(pstmt->hdbc);
-
-        if( pstmt->asyn_on == fidx )
-        {
-                switch( result )
-                {
-                        case SQL_SUCCESS:
-                        case SQL_SUCCESS_WITH_INFO:
-                        case SQL_ERROR:
-                                pstmt->asyn_on = en_NullProc;
-                                break;
-
-                        case SQL_STILL_EXECUTING:
-                        default:
-                                return result;
-                }
-        }
-
-        if( pstmt->state <= en_stmt_executed )
-        {
-                switch( result )
-                {
-                        case SQL_SUCCESS:
-                        case SQL_SUCCESS_WITH_INFO:
-                                pstmt->state = en_stmt_cursoropen;
-                                break;
-
-                        case SQL_ERROR:
-                                pstmt->state = en_stmt_allocated;
-                                pstmt->prep_state = 0;
-                                break;
-
-                        case SQL_STILL_EXECUTING:
-                                pstmt->asyn_on = fidx;
-                                break;
-
-                        default:
-                                break;
-                }
-        }
-
-        return result;
+  STMT_t FAR *pstmt = (STMT_t FAR *) hstmt;
+  HPROC hproc = SQL_NULL_HPROC;
+  RETCODE retcode;
+  int sqlstat = en_00000;
+
+  if (hstmt == SQL_NULL_HSTMT || pstmt->hdbc == SQL_NULL_HDBC)
+    {
+      return SQL_INVALID_HANDLE;
+    }
+
+  for (;;)
+    {
+      if ((cbTableQualifier < 0 && cbTableQualifier != SQL_NTS)
+         || (cbTableOwner < 0 && cbTableOwner != SQL_NTS)
+         || (cbTableName < 0 && cbTableName != SQL_NTS)
+         || (cbTableType < 0 && cbTableType != SQL_NTS))
+       {
+         sqlstat = en_S1090;
+         break;
+       }
+
+      retcode = _iodbcdm_cata_state_ok (hstmt, en_Tables);
+
+      if (retcode != SQL_SUCCESS)
+       {
+         return SQL_ERROR;
+       }
+
+      hproc = _iodbcdm_getproc (pstmt->hdbc, en_Tables);
+
+      if (hproc == SQL_NULL_HPROC)
+       {
+         sqlstat = en_IM001;
+         break;
+       }
+
+      sqlstat = en_00000;
+
+      if (1)                   /* turn off solaris warning message */
+       break;
+    }
+
+  if (sqlstat != en_00000)
+    {
+      PUSHSQLERR (pstmt->herr, sqlstat);
+
+      return SQL_ERROR;
+    }
+
+  CALL_DRIVER (pstmt->hdbc, retcode, hproc, en_Tables, (
+         pstmt->dhstmt,
+         szTableQualifier,
+         cbTableQualifier,
+         szTableOwner,
+         cbTableOwner,
+         szTableName,
+         cbTableName,
+         szTableType,
+         cbTableType))
+
+  return _iodbcdm_cata_state_tr (hstmt, en_Tables, retcode);
 }
 
-RETCODE SQL_API SQLGetTypeInfo(
-                        HSTMT           hstmt,
-                        SWORD           fSqlType )
-{
-        STMT_t FAR*     pstmt   = (STMT_t FAR*)hstmt;
-        HPROC           hproc;
-        int             sqlstat = en_00000;
-        RETCODE         retcode;
-
-        if( hstmt == SQL_NULL_HSTMT
-         || pstmt->hdbc == SQL_NULL_HDBC )
-        {
-                return SQL_INVALID_HANDLE;
-        }
-
-        for(;;)
-        {
-                if( fSqlType > SQL_TYPE_MAX )
-                {
-                        sqlstat = en_S1004;
-                        break;
-                }
-
-                if( fSqlType < SQL_TYPE_MIN
-                 && fSqlType > SQL_TYPE_DRIVER_START )
-                /* Note: SQL_TYPE_DRIVER_START is a nagtive
-                 * number So, we use ">" */
-                {
-                        sqlstat = en_S1004;
-                        break;
-                }
-
-                retcode = _iodbcdm_cata_state_ok( hstmt, en_GetTypeInfo );
-
-                if( retcode != SQL_SUCCESS )
-                {
-                        return SQL_ERROR;
-                }
-
-                hproc = _iodbcdm_getproc ( pstmt->hdbc, en_GetTypeInfo );
-
-                if( hproc == SQL_NULL_HPROC )
-                {
-                        sqlstat = en_IM001;
-                        break;
-                }
-
-                sqlstat = en_00000;
-                if( 1 ) /* turn off solaris warning message */
-                        break;
-        }
-
-        if( sqlstat != en_00000 )
-        {
-                PUSHSQLERR ( pstmt->herr, sqlstat );
-
-                return SQL_ERROR;
-        }
-
-        CALL_DRIVER ( pstmt->hdbc, retcode, hproc,
-                en_GetTypeInfo, ( pstmt->dhstmt, fSqlType) )
-
-#if 0
-        retcode = hproc ( pstmt->dhstmt, fSqlType );
-#endif
 
-        return _iodbcdm_cata_state_tr( hstmt, en_GetTypeInfo, retcode );
+RETCODE SQL_API 
+SQLColumnPrivileges (
+    HSTMT hstmt,
+    UCHAR FAR * szTableQualifier,
+    SWORD cbTableQualifier,
+    UCHAR FAR * szTableOwner,
+    SWORD cbTableOwner,
+    UCHAR FAR * szTableName,
+    SWORD cbTableName,
+    UCHAR FAR * szColumnName,
+    SWORD cbColumnName)
+{
+  STMT_t FAR *pstmt = (STMT_t FAR *) hstmt;
+  HPROC hproc = SQL_NULL_HPROC;
+  RETCODE retcode;
+  int sqlstat = en_00000;
+
+  if (hstmt == SQL_NULL_HSTMT || pstmt->hdbc == SQL_NULL_HDBC)
+    {
+      return SQL_INVALID_HANDLE;
+    }
+
+  for (;;)
+    {
+      if ((cbTableQualifier < 0 && cbTableQualifier != SQL_NTS)
+         || (cbTableOwner < 0 && cbTableOwner != SQL_NTS)
+         || (cbTableName < 0 && cbTableName != SQL_NTS)
+         || (cbColumnName < 0 && cbColumnName != SQL_NTS))
+       {
+         sqlstat = en_S1090;
+         break;
+       }
+
+      retcode = _iodbcdm_cata_state_ok (hstmt, en_ColumnPrivileges);
+
+      if (retcode != SQL_SUCCESS)
+       {
+         return SQL_ERROR;
+       }
+
+      hproc = _iodbcdm_getproc (pstmt->hdbc, en_ColumnPrivileges);
+
+      if (hproc == SQL_NULL_HPROC)
+       {
+         sqlstat = en_IM001;
+         break;
+       }
+
+      sqlstat = en_00000;
+
+      if (1)                   /* turn off solaris warning message */
+       break;
+    }
+
+  if (sqlstat != en_00000)
+    {
+      PUSHSQLERR (pstmt->herr, sqlstat);
+
+      return SQL_ERROR;
+    }
+
+  CALL_DRIVER (pstmt->hdbc, retcode, hproc, en_ColumnPrivileges, (
+         pstmt->dhstmt,
+         szTableQualifier,
+         cbTableQualifier,
+         szTableOwner,
+         cbTableOwner,
+         szTableName,
+         cbTableName,
+         szColumnName,
+         cbColumnName))
+
+  return _iodbcdm_cata_state_tr (hstmt, en_ColumnPrivileges, retcode);
 }
 
-RETCODE SQL_API SQLSpecialColumns(
-                        HSTMT           hstmt,
-                        UWORD           fColType,
-                        UCHAR FAR*      szTableQualifier,
-                        SWORD           cbTableQualifier,
-                        UCHAR FAR*      szTableOwner,
-                        SWORD           cbTableOwner,
-                        UCHAR FAR*      szTableName,
-                        SWORD           cbTableName,
-                        UWORD           fScope,
-                        UWORD           fNullable )
-{
-        STMT_t FAR*     pstmt   = (STMT_t FAR*)hstmt;
-        HPROC           hproc;
-        RETCODE         retcode;
-        int             sqlstat = en_00000;
-
-        if( hstmt == SQL_NULL_HSTMT
-         || pstmt->hdbc == SQL_NULL_HDBC )
-        {
-                return SQL_INVALID_HANDLE;
-        }
-
-        for(;;)
-        {
-                if( ( cbTableQualifier < 0 && cbTableQualifier != SQL_NTS )
-                 || ( cbTableOwner     < 0 && cbTableOwner     != SQL_NTS )
-                 || ( cbTableName      < 0 && cbTableName      != SQL_NTS ) )
-                {
-                        sqlstat = en_S1090;
-                        break;
-                }
-
-                if( fColType != SQL_BEST_ROWID
-                 && fColType != SQL_ROWVER )
-                {
-                        sqlstat = en_S1097;
-                        break;
-                }
-
-                if( fScope != SQL_SCOPE_CURROW
-                 && fScope != SQL_SCOPE_TRANSACTION
-                 && fScope != SQL_SCOPE_SESSION )
-                {
-                        sqlstat = en_S1098;
-                        break;
-                }
-
-                if( fNullable != SQL_NO_NULLS
-                 && fNullable != SQL_NULLABLE )
-                {
-                        sqlstat = en_S1099;
-                        break;
-                }
-
-                retcode = _iodbcdm_cata_state_ok ( hstmt, en_SpecialColumns );
-
-                if( retcode != SQL_SUCCESS )
-                {
-                        return SQL_ERROR;
-                }
-
-                hproc = _iodbcdm_getproc( pstmt->hdbc, en_SpecialColumns );
-
-                if( hproc == SQL_NULL_HPROC )
-                {
-                        sqlstat = en_IM001;
-                        break;
-                }
-
-                sqlstat = en_00000;
-                if( 1 ) /* turn off solaris warning message */
-                        break;
-        }
-
-        if( sqlstat != en_00000 )
-        {
-                PUSHSQLERR ( pstmt->herr, sqlstat );
-
-                return SQL_ERROR;
-        }
-
-        CALL_DRIVER ( pstmt->hdbc, retcode, hproc, en_SpecialColumns, (
-                        pstmt->dhstmt,
-                        fColType,
-                        szTableQualifier,
-                        cbTableQualifier,
-                        szTableOwner,
-                        cbTableOwner,
-                        szTableName,
-                        cbTableName,
-                        fScope,
-                        fNullable ) )
-
-#if 0
-        retcode = hproc(pstmt->dhstmt,
-                        fColType,
-                        szTableQualifier,
-                        cbTableQualifier,
-                        szTableOwner,
-                        cbTableOwner,
-                        szTableName,
-                        cbTableName,
-                        fScope,
-                        fNullable );
-#endif
 
-        return _iodbcdm_cata_state_tr( hstmt, en_SpecialColumns, retcode );
+RETCODE SQL_API 
+SQLColumns (
+    HSTMT hstmt,
+    UCHAR FAR * szTableQualifier,
+    SWORD cbTableQualifier,
+    UCHAR FAR * szTableOwner,
+    SWORD cbTableOwner,
+    UCHAR FAR * szTableName,
+    SWORD cbTableName,
+    UCHAR FAR * szColumnName,
+    SWORD cbColumnName)
+{
+  STMT_t FAR *pstmt = (STMT_t FAR *) hstmt;
+  HPROC hproc = SQL_NULL_HPROC;
+  RETCODE retcode;
+  int sqlstat = en_00000;
+
+  if (hstmt == SQL_NULL_HSTMT || pstmt->hdbc == SQL_NULL_HDBC)
+    {
+      return SQL_INVALID_HANDLE;
+    }
+
+  for (;;)
+    {
+      if ((cbTableQualifier < 0 && cbTableQualifier != SQL_NTS)
+         || (cbTableOwner < 0 && cbTableOwner != SQL_NTS)
+         || (cbTableName < 0 && cbTableName != SQL_NTS)
+         || (cbColumnName < 0 && cbColumnName != SQL_NTS))
+       {
+         sqlstat = en_S1090;
+         break;
+       }
+
+      retcode = _iodbcdm_cata_state_ok (hstmt, en_Columns);
+
+      if (retcode != SQL_SUCCESS)
+       {
+         return SQL_ERROR;
+       }
+
+      hproc = _iodbcdm_getproc (pstmt->hdbc, en_Columns);
+
+      if (hproc == SQL_NULL_HPROC)
+       {
+         sqlstat = en_IM001;
+         break;
+       }
+
+      sqlstat = en_00000;
+
+      if (1)                   /* turn off solaris warning message */
+       break;
+    }
+
+  if (sqlstat != en_00000)
+    {
+      PUSHSQLERR (pstmt->herr, sqlstat);
+
+      return SQL_ERROR;
+    }
+
+  CALL_DRIVER (pstmt->hdbc, retcode, hproc, en_Columns, (
+         pstmt->dhstmt,
+         szTableQualifier,
+         cbTableQualifier,
+         szTableOwner,
+         cbTableOwner,
+         szTableName,
+         cbTableName,
+         szColumnName,
+         cbColumnName))
+
+  return _iodbcdm_cata_state_tr (hstmt, en_Columns, retcode);
 }
 
-RETCODE SQL_API SQLStatistics(
-                        HSTMT           hstmt,
-                        UCHAR FAR*      szTableQualifier,
-                        SWORD           cbTableQualifier,
-                        UCHAR FAR*      szTableOwner,
-                        SWORD           cbTableOwner,
-                        UCHAR FAR*      szTableName,
-                        SWORD           cbTableName,
-                        UWORD           fUnique,
-                        UWORD           fAccuracy )
-{
-        STMT_t FAR*     pstmt   = (STMT_t FAR*)hstmt;
-        HPROC           hproc;
-        RETCODE         retcode;
-        int             sqlstat = en_00000;
-
-        if( hstmt == SQL_NULL_HSTMT
-         || pstmt->hdbc == SQL_NULL_HDBC )
-        {
-                return SQL_INVALID_HANDLE;
-        }
-
-        for(;;)
-        {
-                if( ( cbTableQualifier < 0 && cbTableQualifier != SQL_NTS )
-                 || ( cbTableOwner     < 0 && cbTableOwner     != SQL_NTS )
-                 || ( cbTableName      < 0 && cbTableName      != SQL_NTS ) )
-                {
-                        sqlstat = en_S1090;
-                        break;
-                }
-
-                if( fUnique != SQL_INDEX_UNIQUE
-                 && fUnique != SQL_INDEX_ALL )
-                {
-                        sqlstat = en_S1100;
-                        break;
-                }
-
-                if( fAccuracy != SQL_ENSURE
-                 && fAccuracy != SQL_QUICK )
-                {
-                        sqlstat = en_S1101;
-                        break;
-                }
-
-                retcode = _iodbcdm_cata_state_ok ( hstmt, en_Statistics );
-
-                if( retcode != SQL_SUCCESS )
-                {
-                        return SQL_ERROR;
-                }
-
-                hproc = _iodbcdm_getproc( pstmt->hdbc, en_Statistics );
-
-                if( hproc == SQL_NULL_HPROC )
-                {
-                        sqlstat = en_IM001;
-                        break;
-                }
-
-                sqlstat = en_00000;
-
-                if( 1 ) /* turn off solaris warning message */
-                        break;
-        }
-
-        if( sqlstat != en_00000 )
-        {
-                PUSHSQLERR ( pstmt->herr, sqlstat );
-
-                return SQL_ERROR;
-        }
-
-        CALL_DRIVER ( pstmt->hdbc, retcode, hproc, en_Statistics, (
-                        pstmt->dhstmt,
-                        szTableQualifier,
-                        cbTableQualifier,
-                        szTableOwner,
-                        cbTableOwner,
-                        szTableName,
-                        cbTableName,
-                        fUnique,
-                        fAccuracy ) )
-
-#if 0
-        retcode = hproc(pstmt->dhstmt,
-                        szTableQualifier,
-                        cbTableQualifier,
-                        szTableOwner,
-                        cbTableOwner,
-                        szTableName,
-                        cbTableName,
-                        fUnique,
-                        fAccuracy );
-#endif
 
-        return _iodbcdm_cata_state_tr( hstmt, en_Statistics, retcode );
+RETCODE SQL_API 
+SQLForeignKeys (
+    HSTMT hstmt,
+    UCHAR FAR * szPkTableQualifier,
+    SWORD cbPkTableQualifier,
+    UCHAR FAR * szPkTableOwner,
+    SWORD cbPkTableOwner,
+    UCHAR FAR * szPkTableName,
+    SWORD cbPkTableName,
+    UCHAR FAR * szFkTableQualifier,
+    SWORD cbFkTableQualifier,
+    UCHAR FAR * szFkTableOwner,
+    SWORD cbFkTableOwner,
+    UCHAR FAR * szFkTableName,
+    SWORD cbFkTableName)
+{
+  STMT_t FAR *pstmt = (STMT_t FAR *) hstmt;
+  HPROC hproc = SQL_NULL_HPROC;
+  RETCODE retcode;
+  int sqlstat = en_00000;
+
+  if (hstmt == SQL_NULL_HSTMT || pstmt->hdbc == SQL_NULL_HDBC)
+    {
+      return SQL_INVALID_HANDLE;
+    }
+
+  for (;;)
+    {
+      if ((cbPkTableQualifier < 0 && cbPkTableQualifier != SQL_NTS)
+         || (cbPkTableOwner < 0 && cbPkTableOwner != SQL_NTS)
+         || (cbPkTableName < 0 && cbPkTableName != SQL_NTS)
+         || (cbFkTableQualifier < 0 && cbFkTableQualifier != SQL_NTS)
+         || (cbFkTableOwner < 0 && cbFkTableOwner != SQL_NTS)
+         || (cbFkTableName < 0 && cbFkTableName != SQL_NTS))
+       {
+         sqlstat = en_S1090;
+         break;
+       }
+
+      retcode = _iodbcdm_cata_state_ok (hstmt, en_ForeignKeys);
+
+      if (retcode != SQL_SUCCESS)
+       {
+         return SQL_ERROR;
+       }
+
+      hproc = _iodbcdm_getproc (pstmt->hdbc, en_ForeignKeys);
+
+      if (hproc == SQL_NULL_HPROC)
+       {
+         sqlstat = en_IM001;
+         break;
+       }
+
+      sqlstat = en_00000;
+
+      if (1)                   /* turn off solaris warning message */
+       break;
+    }
+
+  if (sqlstat != en_00000)
+    {
+      PUSHSQLERR (pstmt->herr, sqlstat);
+
+      return SQL_ERROR;
+    }
+
+  CALL_DRIVER (pstmt->hdbc, retcode, hproc, en_ForeignKeys, (
+         pstmt->dhstmt,
+         szPkTableQualifier,
+         cbPkTableQualifier,
+         szPkTableOwner,
+         cbPkTableOwner,
+         szPkTableName,
+         cbPkTableName,
+         szFkTableQualifier,
+         cbFkTableQualifier,
+         szFkTableOwner,
+         cbFkTableOwner,
+         szFkTableName,
+         cbFkTableName))
+
+  return _iodbcdm_cata_state_tr (hstmt, en_ForeignKeys, retcode);
 }
 
-RETCODE SQL_API SQLTables(
-                        HSTMT           hstmt,
-                        UCHAR FAR*      szTableQualifier,
-                        SWORD           cbTableQualifier,
-                        UCHAR FAR*      szTableOwner,
-                        SWORD           cbTableOwner,
-                        UCHAR FAR*      szTableName,
-                        SWORD           cbTableName,
-                        UCHAR FAR*      szTableType,
-                        SWORD           cbTableType )
-{
-        STMT_t FAR*     pstmt   = (STMT_t FAR*)hstmt;
-        HPROC           hproc;
-        RETCODE         retcode;
-        int             sqlstat = en_00000;
-
-        if( hstmt == SQL_NULL_HSTMT
-         || pstmt->hdbc == SQL_NULL_HDBC )
-        {
-                return SQL_INVALID_HANDLE;
-        }
-
-        for(;;)
-        {
-                if( ( cbTableQualifier < 0 && cbTableQualifier != SQL_NTS )
-                 || ( cbTableOwner     < 0 && cbTableOwner     != SQL_NTS )
-                 || ( cbTableName      < 0 && cbTableName      != SQL_NTS )
-                 || ( cbTableType      < 0 && cbTableType      != SQL_NTS ) )
-                {
-                        sqlstat = en_S1090;
-                        break;
-                }
-
-                retcode = _iodbcdm_cata_state_ok ( hstmt, en_Tables );
-
-                if( retcode != SQL_SUCCESS )
-                {
-                        return SQL_ERROR;
-                }
-
-                hproc = _iodbcdm_getproc( pstmt->hdbc, en_Tables );
-
-                if( hproc == SQL_NULL_HPROC )
-                {
-                        sqlstat = en_IM001;
-                        break;
-                }
-
-                sqlstat = en_00000;
-
-                if( 1 ) /* turn off solaris warning message */
-                        break;
-        }
-
-        if( sqlstat != en_00000 )
-        {
-                PUSHSQLERR ( pstmt->herr, sqlstat );
-
-                return SQL_ERROR;
-        }
-
-        CALL_DRIVER ( pstmt->hdbc, retcode, hproc, en_Tables, (
-                        pstmt->dhstmt,
-                        szTableQualifier,
-                        cbTableQualifier,
-                        szTableOwner,
-                        cbTableOwner,
-                        szTableName,
-                        cbTableName,
-                        szTableType,
-                        cbTableType ) )
-
-#if 0
-        retcode = hproc(pstmt->dhstmt,
-                        szTableQualifier,
-                        cbTableQualifier,
-                        szTableOwner,
-                        cbTableOwner,
-                        szTableName,
-                        cbTableName,
-                        szTableType,
-                        cbTableType );
-#endif
 
-        return _iodbcdm_cata_state_tr( hstmt, en_Tables, retcode );
+RETCODE SQL_API 
+SQLPrimaryKeys (
+    HSTMT hstmt,
+    UCHAR FAR * szTableQualifier,
+    SWORD cbTableQualifier,
+    UCHAR FAR * szTableOwner,
+    SWORD cbTableOwner,
+    UCHAR FAR * szTableName,
+    SWORD cbTableName)
+{
+  STMT_t FAR *pstmt = (STMT_t FAR *) hstmt;
+  HPROC hproc = SQL_NULL_HPROC;
+  RETCODE retcode;
+  int sqlstat = en_00000;
+
+  if (hstmt == SQL_NULL_HSTMT || pstmt->hdbc == SQL_NULL_HDBC)
+    {
+      return SQL_INVALID_HANDLE;
+    }
+
+  for (;;)
+    {
+      if ((cbTableQualifier < 0 && cbTableQualifier != SQL_NTS)
+         || (cbTableOwner < 0 && cbTableOwner != SQL_NTS)
+         || (cbTableName < 0 && cbTableName != SQL_NTS))
+       {
+         sqlstat = en_S1090;
+         break;
+       }
+
+      retcode = _iodbcdm_cata_state_ok (hstmt, en_PrimaryKeys);
+
+      if (retcode != SQL_SUCCESS)
+       {
+         return SQL_ERROR;
+       }
+
+      hproc = _iodbcdm_getproc (pstmt->hdbc, en_PrimaryKeys);
+
+      if (hproc == SQL_NULL_HPROC)
+       {
+         sqlstat = en_IM001;
+         break;
+       }
+
+      sqlstat = en_00000;
+
+      if (1)                   /* turn off solaris warning message */
+       break;
+    }
+
+  if (sqlstat != en_00000)
+    {
+      PUSHSQLERR (pstmt->herr, sqlstat);
+
+      return SQL_ERROR;
+    }
+
+  CALL_DRIVER (pstmt->hdbc, retcode, hproc, en_PrimaryKeys, (
+         pstmt->dhstmt,
+         szTableQualifier,
+         cbTableQualifier,
+         szTableOwner,
+         cbTableOwner,
+         szTableName,
+         cbTableName))
+
+  return _iodbcdm_cata_state_tr (hstmt, en_PrimaryKeys, retcode);
 }
 
-RETCODE SQL_API SQLColumnPrivileges(
-                        HSTMT           hstmt,
-                        UCHAR FAR*      szTableQualifier,
-                        SWORD           cbTableQualifier,
-                        UCHAR FAR*      szTableOwner,
-                        SWORD           cbTableOwner,
-                        UCHAR FAR*      szTableName,
-                        SWORD           cbTableName,
-                        UCHAR FAR*      szColumnName,
-                        SWORD           cbColumnName )
-{
-        STMT_t FAR*     pstmt   = (STMT_t FAR*)hstmt;
-        HPROC           hproc;
-        RETCODE         retcode;
-        int             sqlstat = en_00000;
-
-        if( hstmt == SQL_NULL_HSTMT
-         || pstmt->hdbc == SQL_NULL_HDBC )
-        {
-                return SQL_INVALID_HANDLE;
-        }
-
-        for(;;)
-        {
-                if( ( cbTableQualifier < 0 && cbTableQualifier != SQL_NTS )
-                 || ( cbTableOwner     < 0 && cbTableOwner     != SQL_NTS )
-                 || ( cbTableName      < 0 && cbTableName      != SQL_NTS )
-                 || ( cbColumnName     < 0 && cbColumnName     != SQL_NTS ) )
-                {
-                        sqlstat = en_S1090;
-                        break;
-                }
-
-                retcode = _iodbcdm_cata_state_ok ( hstmt, en_ColumnPrivileges );
-
-                if( retcode != SQL_SUCCESS )
-                {
-                        return SQL_ERROR;
-                }
-
-                hproc = _iodbcdm_getproc( pstmt->hdbc, en_ColumnPrivileges );
-
-                if( hproc == SQL_NULL_HPROC )
-                {
-                        sqlstat = en_IM001;
-                        break;
-                }
-
-                sqlstat = en_00000;
-
-                if( 1 ) /* turn off solaris warning message */
-                        break;
-        }
-
-        if( sqlstat != en_00000 )
-        {
-                PUSHSQLERR ( pstmt->herr, sqlstat );
-
-                return SQL_ERROR;
-        }
-
-        CALL_DRIVER ( pstmt->hdbc, retcode, hproc, en_ColumnPrivileges, (
-                        pstmt->dhstmt,
-                        szTableQualifier,
-                        cbTableQualifier,
-                        szTableOwner,
-                        cbTableOwner,
-                        szTableName,
-                        cbTableName,
-                        szColumnName,
-                        cbColumnName ) )
-
-#if 0
-        retcode = hproc(pstmt->dhstmt,
-                        szTableQualifier,
-                        cbTableQualifier,
-                        szTableOwner,
-                        cbTableOwner,
-                        szTableName,
-                        cbTableName,
-                        szColumnName,
-                        cbColumnName );
-#endif
 
-        return _iodbcdm_cata_state_tr( hstmt, en_ColumnPrivileges, retcode );
+RETCODE SQL_API 
+SQLProcedureColumns (
+    HSTMT hstmt,
+    UCHAR FAR * szProcQualifier,
+    SWORD cbProcQualifier,
+    UCHAR FAR * szProcOwner,
+    SWORD cbProcOwner,
+    UCHAR FAR * szProcName,
+    SWORD cbProcName,
+    UCHAR FAR * szColumnName,
+    SWORD cbColumnName)
+{
+  STMT_t FAR *pstmt = (STMT_t FAR *) hstmt;
+  HPROC hproc = SQL_NULL_HPROC;
+  RETCODE retcode;
+  int sqlstat = en_00000;
+
+  if (hstmt == SQL_NULL_HSTMT || pstmt->hdbc == SQL_NULL_HDBC)
+    {
+      return SQL_INVALID_HANDLE;
+    }
+
+  for (;;)
+    {
+      if ((cbProcQualifier < 0 && cbProcQualifier != SQL_NTS)
+         || (cbProcOwner < 0 && cbProcOwner != SQL_NTS)
+         || (cbProcName < 0 && cbProcName != SQL_NTS)
+         || (cbColumnName < 0 && cbColumnName != SQL_NTS))
+       {
+         sqlstat = en_S1090;
+         break;
+       }
+
+      retcode = _iodbcdm_cata_state_ok (hstmt, en_ProcedureColumns);
+
+      if (retcode != SQL_SUCCESS)
+       {
+         return SQL_ERROR;
+       }
+
+      hproc = _iodbcdm_getproc (pstmt->hdbc, en_ProcedureColumns);
+
+      if (hproc == SQL_NULL_HPROC)
+       {
+         sqlstat = en_IM001;
+         break;
+       }
+
+      sqlstat = en_00000;
+
+      if (1)                   /* turn off solaris warning message */
+       break;
+    }
+
+  if (sqlstat != en_00000)
+    {
+      PUSHSQLERR (pstmt->herr, sqlstat);
+
+      return SQL_ERROR;
+    }
+
+  CALL_DRIVER (pstmt->hdbc, retcode, hproc, en_ProcedureColumns, (
+         pstmt->dhstmt,
+         szProcQualifier,
+         cbProcQualifier,
+         szProcOwner,
+         cbProcOwner,
+         szProcName,
+         cbProcName,
+         szColumnName,
+         cbColumnName))
+
+  return _iodbcdm_cata_state_tr (hstmt, en_ProcedureColumns, retcode);
 }
 
-RETCODE SQL_API SQLColumns(
-                        HSTMT           hstmt,
-                        UCHAR FAR*      szTableQualifier,
-                        SWORD           cbTableQualifier,
-                        UCHAR FAR*      szTableOwner,
-                        SWORD           cbTableOwner,
-                        UCHAR FAR*      szTableName,
-                        SWORD           cbTableName,
-                        UCHAR FAR*      szColumnName,
-                        SWORD           cbColumnName )
-{
-        STMT_t FAR*     pstmt   = (STMT_t FAR*)hstmt;
-        HPROC           hproc;
-        RETCODE         retcode;
-        int             sqlstat = en_00000;
-
-        if( hstmt == SQL_NULL_HSTMT
-         || pstmt->hdbc == SQL_NULL_HDBC )
-        {
-                return SQL_INVALID_HANDLE;
-        }
-
-        for(;;)
-        {
-                if( ( cbTableQualifier < 0 && cbTableQualifier != SQL_NTS )
-                 || ( cbTableOwner     < 0 && cbTableOwner     != SQL_NTS )
-                 || ( cbTableName      < 0 && cbTableName      != SQL_NTS )
-                 || ( cbColumnName     < 0 && cbColumnName     != SQL_NTS ) )
-                {
-                        sqlstat = en_S1090;
-                        break;
-                }
-
-                retcode = _iodbcdm_cata_state_ok ( hstmt, en_Columns );
-
-                if( retcode != SQL_SUCCESS )
-                {
-                        return SQL_ERROR;
-                }
-
-                hproc = _iodbcdm_getproc( pstmt->hdbc, en_Columns );
-
-                if( hproc == SQL_NULL_HPROC )
-                {
-                        sqlstat = en_IM001;
-                        break;
-                }
-
-                sqlstat = en_00000;
-
-                if( 1 ) /* turn off solaris warning message */
-                        break;
-        }
-
-        if( sqlstat != en_00000 )
-        {
-                PUSHSQLERR ( pstmt->herr, sqlstat );
-
-                return SQL_ERROR;
-        }
-
-        CALL_DRIVER ( pstmt->hdbc, retcode, hproc, en_Columns, (
-                        pstmt->dhstmt,
-                        szTableQualifier,
-                        cbTableQualifier,
-                        szTableOwner,
-                        cbTableOwner,
-                        szTableName,
-                        cbTableName,
-                        szColumnName,
-                        cbColumnName ) )
-
-#if 0
-        retcode = hproc(pstmt->dhstmt,
-                        szTableQualifier,
-                        cbTableQualifier,
-                        szTableOwner,
-                        cbTableOwner,
-                        szTableName,
-                        cbTableName,
-                        szColumnName,
-                        cbColumnName );
-#endif
 
-        return _iodbcdm_cata_state_tr( hstmt, en_Columns, retcode );
+RETCODE SQL_API 
+SQLProcedures (
+    HSTMT hstmt,
+    UCHAR FAR * szProcQualifier,
+    SWORD cbProcQualifier,
+    UCHAR FAR * szProcOwner,
+    SWORD cbProcOwner,
+    UCHAR FAR * szProcName,
+    SWORD cbProcName)
+{
+  STMT_t FAR *pstmt = (STMT_t FAR *) hstmt;
+  HPROC hproc = SQL_NULL_HPROC;
+  RETCODE retcode;
+  int sqlstat = en_00000;
+
+  if (hstmt == SQL_NULL_HSTMT || pstmt->hdbc == SQL_NULL_HDBC)
+    {
+      return SQL_INVALID_HANDLE;
+    }
+
+  for (;;)
+    {
+      if ((cbProcQualifier < 0 && cbProcQualifier != SQL_NTS)
+         || (cbProcOwner < 0 && cbProcOwner != SQL_NTS)
+         || (cbProcName < 0 && cbProcName != SQL_NTS))
+       {
+         sqlstat = en_S1090;
+         break;
+       }
+
+      retcode = _iodbcdm_cata_state_ok (hstmt, en_Procedures);
+
+      if (retcode != SQL_SUCCESS)
+       {
+         return SQL_ERROR;
+       }
+
+      hproc = _iodbcdm_getproc (pstmt->hdbc, en_Procedures);
+
+      if (hproc == SQL_NULL_HPROC)
+       {
+         sqlstat = en_IM001;
+         break;
+       }
+
+      sqlstat = en_00000;
+
+      if (1)                   /* turn off solaris warning message */
+       break;
+    }
+
+  if (sqlstat != en_00000)
+    {
+      PUSHSQLERR (pstmt->herr, sqlstat);
+
+      return SQL_ERROR;
+    }
+
+  CALL_DRIVER (pstmt->hdbc, retcode, hproc, en_Procedures, (
+         pstmt->dhstmt,
+         szProcQualifier,
+         cbProcQualifier,
+         szProcOwner,
+         cbProcOwner,
+         szProcName,
+         cbProcName))
+
+  return _iodbcdm_cata_state_tr (hstmt, en_Procedures, retcode);
 }
 
-RETCODE SQL_API SQLForeignKeys(
-                        HSTMT           hstmt,
-                        UCHAR FAR*      szPkTableQualifier,
-                        SWORD           cbPkTableQualifier,
-                        UCHAR FAR*      szPkTableOwner,
-                        SWORD           cbPkTableOwner,
-                        UCHAR FAR*      szPkTableName,
-                        SWORD           cbPkTableName,
-                        UCHAR FAR*      szFkTableQualifier,
-                        SWORD           cbFkTableQualifier,
-                        UCHAR FAR*      szFkTableOwner,
-                        SWORD           cbFkTableOwner,
-                        UCHAR FAR*      szFkTableName,
-                        SWORD           cbFkTableName )
+
+RETCODE SQL_API 
+SQLTablePrivileges (
+    HSTMT hstmt,
+    UCHAR FAR * szTableQualifier,
+    SWORD cbTableQualifier,
+    UCHAR FAR * szTableOwner,
+    SWORD cbTableOwner,
+    UCHAR FAR * szTableName,
+    SWORD cbTableName)
 {
-        STMT_t FAR*     pstmt   = (STMT_t FAR*)hstmt;
-        HPROC           hproc;
-        RETCODE         retcode;
-        int             sqlstat = en_00000;
-
-        if( hstmt == SQL_NULL_HSTMT
-         || pstmt->hdbc == SQL_NULL_HDBC )
-        {
-                return SQL_INVALID_HANDLE;
-        }
-
-        for(;;)
-        {
-                if( ( cbPkTableQualifier < 0 && cbPkTableQualifier != SQL_NTS )
-                 || ( cbPkTableOwner     < 0 && cbPkTableOwner     != SQL_NTS )
-                 || ( cbPkTableName      < 0 && cbPkTableName      != SQL_NTS )
-                 || ( cbFkTableQualifier < 0 && cbFkTableQualifier != SQL_NTS )
-                 || ( cbFkTableOwner     < 0 && cbFkTableOwner     != SQL_NTS )
-                 || ( cbFkTableName      < 0 && cbFkTableName      != SQL_NTS ) )
-                {
-                        sqlstat = en_S1090;
-                        break;
-                }
-
-                retcode = _iodbcdm_cata_state_ok ( hstmt, en_ForeignKeys );
-
-                if( retcode != SQL_SUCCESS )
-                {
-                        return SQL_ERROR;
-                }
-
-                hproc = _iodbcdm_getproc( pstmt->hdbc, en_ForeignKeys );
-
-                if( hproc == SQL_NULL_HPROC )
-                {
-                        sqlstat = en_IM001;
-                        break;
-                }
-
-                sqlstat = en_00000;
-
-                if( 1 ) /* turn off solaris warning message */
-                        break;
-        }
-
-        if( sqlstat != en_00000 )
-        {
-                PUSHSQLERR ( pstmt->herr, sqlstat );
-
-                return SQL_ERROR;
-        }
-
-        CALL_DRIVER ( pstmt->hdbc, retcode, hproc, en_ForeignKeys, (
-                        pstmt->dhstmt,
-                        szPkTableQualifier,
-                        cbPkTableQualifier,
-                        szPkTableOwner,
-                        cbPkTableOwner,
-                        szPkTableName,
-                        cbPkTableName,
-                        szFkTableQualifier,
-                        cbFkTableQualifier,
-                        szFkTableOwner,
-                        cbFkTableOwner,
-                        szFkTableName,
-                        cbFkTableName ) )
-
-#if 0
-        retcode = hproc(pstmt->dhstmt,
-                        szPkTableQualifier,
-                        cbPkTableQualifier,
-                        szPkTableOwner,
-                        cbPkTableOwner,
-                        szPkTableName,
-                        cbPkTableName,
-                        szFkTableQualifier,
-                        cbFkTableQualifier,
-                        szFkTableOwner,
-                        cbFkTableOwner,
-                        szFkTableName,
-                        cbFkTableName );
-#endif
 
-        return _iodbcdm_cata_state_tr( hstmt, en_ForeignKeys, retcode );
-}
+  STMT_t FAR *pstmt = (STMT_t FAR *) hstmt;
+  HPROC hproc = SQL_NULL_HPROC;
+  RETCODE retcode;
+  int sqlstat = en_00000;
 
-RETCODE SQL_API SQLPrimaryKeys(
-                        HSTMT           hstmt,
-                        UCHAR FAR*      szTableQualifier,
-                        SWORD           cbTableQualifier,
-                        UCHAR FAR*      szTableOwner,
-                        SWORD           cbTableOwner,
-                        UCHAR FAR*      szTableName,
-                        SWORD           cbTableName )
-{
-        STMT_t FAR*     pstmt   = (STMT_t FAR*)hstmt;
-        HPROC           hproc;
-        RETCODE         retcode;
-        int             sqlstat = en_00000;
-
-        if( hstmt == SQL_NULL_HSTMT
-         || pstmt->hdbc == SQL_NULL_HDBC )
-        {
-                return SQL_INVALID_HANDLE;
-        }
-
-        for(;;)
-        {
-                if( ( cbTableQualifier < 0 && cbTableQualifier != SQL_NTS )
-                 || ( cbTableOwner     < 0 && cbTableOwner     != SQL_NTS )
-                 || ( cbTableName      < 0 && cbTableName      != SQL_NTS ) )
-                {
-                        sqlstat = en_S1090;
-                        break;
-                }
-
-                retcode = _iodbcdm_cata_state_ok ( hstmt, en_PrimaryKeys );
-
-                if( retcode != SQL_SUCCESS )
-                {
-                        return SQL_ERROR;
-                }
-
-                hproc = _iodbcdm_getproc( pstmt->hdbc, en_PrimaryKeys );
-
-                if( hproc == SQL_NULL_HPROC )
-                {
-                        sqlstat = en_IM001;
-                        break;
-                }
-
-                sqlstat = en_00000;
-
-                if( 1 ) /* turn off solaris warning message */
-                        break;
-        }
-
-        if( sqlstat != en_00000 )
-        {
-                PUSHSQLERR ( pstmt->herr, sqlstat );
-
-                return SQL_ERROR;
-        }
-
-        CALL_DRIVER ( pstmt->hdbc, retcode, hproc, en_PrimaryKeys, (
-                        pstmt->dhstmt,
-                        szTableQualifier,
-                        cbTableQualifier,
-                        szTableOwner,
-                        cbTableOwner,
-                        szTableName,
-                        cbTableName ) )
-
-#if 0
-        retcode = hproc(pstmt->dhstmt,
-                        szTableQualifier,
-                        cbTableQualifier,
-                        szTableOwner,
-                        cbTableOwner,
-                        szTableName,
-                        cbTableName );
-#endif
+  if (hstmt == SQL_NULL_HSTMT || pstmt->hdbc == SQL_NULL_HDBC)
+    {
+      return SQL_INVALID_HANDLE;
+    }
 
-        return _iodbcdm_cata_state_tr( hstmt, en_PrimaryKeys, retcode );
-}
+  for (;;)
+    {
+      if ((cbTableQualifier < 0 && cbTableQualifier != SQL_NTS)
+         || (cbTableOwner < 0 && cbTableOwner != SQL_NTS)
+         || (cbTableName < 0 && cbTableName != SQL_NTS))
+       {
+         sqlstat = en_S1090;
+         break;
+       }
 
-RETCODE SQL_API SQLProcedureColumns(
-                        HSTMT           hstmt,
-                        UCHAR FAR*      szProcQualifier,
-                        SWORD           cbProcQualifier,
-                        UCHAR FAR*      szProcOwner,
-                        SWORD           cbProcOwner,
-                        UCHAR FAR*      szProcName,
-                        SWORD           cbProcName,
-                        UCHAR FAR*      szColumnName,
-                        SWORD           cbColumnName )
-{
-        STMT_t FAR*     pstmt   = (STMT_t FAR*)hstmt;
-        HPROC           hproc;
-        RETCODE         retcode;
-        int             sqlstat = en_00000;
-
-        if( hstmt == SQL_NULL_HSTMT
-         || pstmt->hdbc == SQL_NULL_HDBC )
-        {
-                return SQL_INVALID_HANDLE;
-        }
-
-        for(;;)
-        {
-                if( ( cbProcQualifier < 0 && cbProcQualifier != SQL_NTS )
-                 || ( cbProcOwner     < 0 && cbProcOwner     != SQL_NTS )
-                 || ( cbProcName      < 0 && cbProcName      != SQL_NTS )
-                 || ( cbColumnName    < 0 && cbColumnName    != SQL_NTS ) )
-                {
-                        sqlstat = en_S1090;
-                        break;
-                }
-
-                retcode = _iodbcdm_cata_state_ok ( hstmt, en_ProcedureColumns );
-
-                if( retcode != SQL_SUCCESS )
-                {
-                        return SQL_ERROR;
-                }
-
-                hproc = _iodbcdm_getproc( pstmt->hdbc, en_ProcedureColumns );
-
-                if( hproc == SQL_NULL_HPROC )
-                {
-                        sqlstat = en_IM001;
-                        break;
-                }
-
-                sqlstat = en_00000;
-
-                if( 1 ) /* turn off solaris warning message */
-                        break;
-        }
-
-        if( sqlstat != en_00000 )
-        {
-                PUSHSQLERR ( pstmt->herr, sqlstat );
-
-                return SQL_ERROR;
-        }
-
-        CALL_DRIVER ( pstmt->hdbc, retcode, hproc, en_ProcedureColumns, (
-                        pstmt->dhstmt,
-                        szProcQualifier,
-                        cbProcQualifier,
-                        szProcOwner,
-                        cbProcOwner,
-                        szProcName,
-                        cbProcName,
-                        szColumnName,
-                        cbColumnName ) )
-
-#if 0
-        retcode = hproc(pstmt->dhstmt,
-                        szProcQualifier,
-                        cbProcQualifier,
-                        szProcOwner,
-                        cbProcOwner,
-                        szProcName,
-                        cbProcName,
-                        szColumnName,
-                        cbColumnName );
-#endif
+      retcode = _iodbcdm_cata_state_ok (hstmt, en_TablePrivileges);
 
-        return _iodbcdm_cata_state_tr( hstmt, en_ProcedureColumns, retcode );
-}
+      if (retcode != SQL_SUCCESS)
+       {
+         return SQL_ERROR;
+       }
 
-RETCODE SQL_API SQLProcedures(
-                        HSTMT           hstmt,
-                        UCHAR FAR*      szProcQualifier,
-                        SWORD           cbProcQualifier,
-                        UCHAR FAR*      szProcOwner,
-                        SWORD           cbProcOwner,
-                        UCHAR FAR*      szProcName,
-                        SWORD           cbProcName )
-{
-        STMT_t FAR*     pstmt   = (STMT_t FAR*)hstmt;
-        HPROC           hproc;
-        RETCODE         retcode;
-        int             sqlstat = en_00000;
-
-        if( hstmt == SQL_NULL_HSTMT
-         || pstmt->hdbc == SQL_NULL_HDBC )
-        {
-                return SQL_INVALID_HANDLE;
-        }
-
-        for(;;)
-        {
-                if( ( cbProcQualifier < 0 && cbProcQualifier != SQL_NTS )
-                 || ( cbProcOwner     < 0 && cbProcOwner     != SQL_NTS )
-                 || ( cbProcName      < 0 && cbProcName      != SQL_NTS ) )
-                {
-                        sqlstat = en_S1090;
-                        break;
-                }
-
-                retcode = _iodbcdm_cata_state_ok ( hstmt, en_Procedures );
-
-                if( retcode != SQL_SUCCESS )
-                {
-                        return SQL_ERROR;
-                }
-
-                hproc = _iodbcdm_getproc( pstmt->hdbc, en_Procedures );
-
-                if( hproc == SQL_NULL_HPROC )
-                {
-                        sqlstat = en_IM001;
-                        break;
-                }
-
-                sqlstat = en_00000;
-
-                if( 1 ) /* turn off solaris warning message */
-                        break;
-        }
-
-        if( sqlstat != en_00000 )
-        {
-                PUSHSQLERR ( pstmt->herr, sqlstat );
-
-                return SQL_ERROR;
-        }
-
-        CALL_DRIVER ( pstmt->hdbc, retcode, hproc, en_Procedures, (
-                        pstmt->dhstmt,
-                        szProcQualifier,
-                        cbProcQualifier,
-                        szProcOwner,
-                        cbProcOwner,
-                        szProcName,
-                        cbProcName ) )
-
-#if 0
-        retcode = hproc(pstmt->dhstmt,
-                        szProcQualifier,
-                        cbProcQualifier,
-                        szProcOwner,
-                        cbProcOwner,
-                        szProcName,
-                        cbProcName );
-#endif
+      hproc = _iodbcdm_getproc (pstmt->hdbc, en_TablePrivileges);
 
-        return _iodbcdm_cata_state_tr( hstmt, en_Procedures, retcode );
-}
+      if (hproc == SQL_NULL_HPROC)
+       {
+         sqlstat = en_IM001;
+         break;
+       }
 
-RETCODE SQL_API SQLTablePrivileges(
-                        HSTMT           hstmt,
-                        UCHAR FAR*      szTableQualifier,
-                        SWORD           cbTableQualifier,
-                        UCHAR FAR*      szTableOwner,
-                        SWORD           cbTableOwner,
-                        UCHAR FAR*      szTableName,
-                        SWORD           cbTableName )
-{
+      sqlstat = en_00000;
 
-        STMT_t FAR*     pstmt   = (STMT_t FAR*)hstmt;
-        HPROC           hproc;
-        RETCODE         retcode;
-        int             sqlstat = en_00000;
-
-        if( hstmt == SQL_NULL_HSTMT
-         || pstmt->hdbc == SQL_NULL_HDBC )
-        {
-                return SQL_INVALID_HANDLE;
-        }
-
-        for(;;)
-        {
-                if( ( cbTableQualifier < 0 && cbTableQualifier != SQL_NTS )
-                 || ( cbTableOwner     < 0 && cbTableOwner     != SQL_NTS )
-                 || ( cbTableName      < 0 && cbTableName      != SQL_NTS ) )
-                {
-                        sqlstat = en_S1090;
-                        break;
-                }
-
-                retcode = _iodbcdm_cata_state_ok ( hstmt, en_TablePrivileges );
-
-                if( retcode != SQL_SUCCESS )
-                {
-                        return SQL_ERROR;
-                }
-
-                hproc = _iodbcdm_getproc( pstmt->hdbc, en_TablePrivileges );
-
-                if( hproc == SQL_NULL_HPROC )
-                {
-                        sqlstat = en_IM001;
-                        break;
-                }
-
-                sqlstat = en_00000;
-
-                if( 1 ) /* turn off solaris warning message */
-                        break;
-        }
-
-        if( sqlstat != en_00000 )
-        {
-                PUSHSQLERR ( pstmt->herr, sqlstat );
-
-                return SQL_ERROR;
-        }
-
-        CALL_DRIVER ( pstmt->hdbc, retcode, hproc, en_TablePrivileges, (
-                        pstmt->dhstmt,
-                        szTableQualifier,
-                        cbTableQualifier,
-                        szTableOwner,
-                        cbTableOwner,
-                        szTableName,
-                        cbTableName ) )
-
-#if 0
-        retcode = hproc(pstmt->dhstmt,
-                        szTableQualifier,
-                        cbTableQualifier,
-                        szTableOwner,
-                        cbTableOwner,
-                        szTableName,
-                        cbTableName );
-#endif
+      if (1)                   /* turn off solaris warning message */
+       break;
+    }
+
+  if (sqlstat != en_00000)
+    {
+      PUSHSQLERR (pstmt->herr, sqlstat);
+
+      return SQL_ERROR;
+    }
+
+  CALL_DRIVER (pstmt->hdbc, retcode, hproc, en_TablePrivileges,
+    (pstmt->dhstmt, szTableQualifier, cbTableQualifier, szTableOwner,
+       cbTableOwner, szTableName, cbTableName))
 
-        return _iodbcdm_cata_state_tr( hstmt, en_TablePrivileges, retcode );
+  return _iodbcdm_cata_state_tr (hstmt, en_TablePrivileges, retcode);
 }