Make the driver ODBC 3 only.
authorDave Page <dpage@pgadmin.org>
Wed, 21 Jul 2004 12:29:59 +0000 (12:29 +0000)
committerDave Page <dpage@pgadmin.org>
Wed, 21 Jul 2004 12:29:59 +0000 (12:29 +0000)
22 files changed:
bind.c
connection.c
connection.h
convert.c
descriptor.c
descriptor.h
execute.c
info.c
info30.c
odbcapi.c
odbcapi30.c
odbcapi30w.c
odbcapiw.c
parse.c
pgapi30.c
pgapifunc.h
pgtypes.c
psqlodbc.h
results.c
setup.c
statement.c
statement.h

diff --git a/bind.c b/bind.c
index c80ecfa803f862b3f8d5f2922321ae5cbe28f790..0d5bdc98680cc4845c330a1a79203a1cc80caf9f 100644 (file)
--- a/bind.c
+++ b/bind.c
@@ -80,7 +80,7 @@ PGAPI_BindParameter(
    ipdopts->parameters[ipar].precision = 0;
    ipdopts->parameters[ipar].scale = 0;
    ipdopts->parameters[ipar].PGType = sqltype_to_pgtype(stmt, fSqlType);
-#if (ODBCVER >= 0x0300)
+
    switch (fCType)
    {
        case SQL_C_NUMERIC:
@@ -96,7 +96,6 @@ PGAPI_BindParameter(
    }
    apdopts->parameters[ipar].precision = ipdopts->parameters[ipar].precision;
    apdopts->parameters[ipar].scale = ipdopts->parameters[ipar].scale;
-#endif /* ODBCVER */
 
    /*
     * If rebinding a parameter that had data-at-exec stuff in it, then
@@ -187,9 +186,8 @@ PGAPI_BindCol(
            switch (fCType)
            {
                case SQL_C_BOOKMARK:
-#if (ODBCVER >= 0x0300)
                case SQL_C_VARBOOKMARK:
-#endif /* ODBCVER */
+
                    break;
                default:
                    SC_set_error(stmt, STMT_PROGRAM_TYPE_OUT_OF_RANGE, "Bind column 0 is not of type SQL_C_BOOKMARK");
@@ -254,11 +252,10 @@ inolog("Bind column 0 is type %d not of type SQL_C_BOOKMARK", fCType);
        opts->bindings[icol].buffer = rgbValue;
        opts->bindings[icol].used = (Int4 *) pcbValue;
        opts->bindings[icol].returntype = fCType;
-#if (ODBCVER >= 0x0300)
+
        if (SQL_C_NUMERIC == fCType)
            opts->bindings[icol].precision = 32;
        else
-#endif /* ODBCVER */
            opts->bindings[icol].precision = 0;
        opts->bindings[icol].scale = 0;
 
index aeeea89c7f762a8e51455cfa1c6b035e8e50fad4..bc77ff8b57fd234cb8f2097c0c2b8cce7ee97705 100644 (file)
@@ -277,14 +277,12 @@ CC_Constructor()
        memset(rv->stmts, 0, sizeof(StatementClass *) * STMT_INCREMENT);
 
        rv->num_stmts = STMT_INCREMENT;
-#if (ODBCVER >= 0x0300)
        rv->descs = (DescriptorClass **) malloc(sizeof(DescriptorClass *) * STMT_INCREMENT);
        if (!rv->descs)
            return NULL;
        memset(rv->descs, 0, sizeof(DescriptorClass *) * STMT_INCREMENT);
 
        rv->num_descs = STMT_INCREMENT;
-#endif /* ODBCVER */
 
        rv->lobj_type = PG_TYPE_LO_UNDEFINED;
 
@@ -341,13 +339,13 @@ CC_Destructor(ConnectionClass *self)
        free(self->stmts);
        self->stmts = NULL;
    }
-#if (ODBCVER >= 0x0300)
+
    if (self->descs)
    {
        free(self->descs);
        self->descs = NULL;
    }
-#endif /* ODBCVER */
+
    mylog("after free statement holders\n");
 
    if (self->__error_message)
@@ -506,7 +504,7 @@ CC_cleanup(ConnectionClass *self)
            self->stmts[i] = NULL;
        }
    }
-#if (ODBCVER >= 0x0300)
+
    /* Free all the descs on this connection */
    for (i = 0; i < self->num_descs; i++)
    {
@@ -519,7 +517,6 @@ CC_cleanup(ConnectionClass *self)
            self->descs[i] = NULL;
        }
    }
-#endif /* ODBCVER */
 
    /* Check for translation dll */
 #ifdef WIN32
index 8715ac37027824a06ff826ecdeb04dece2a3b85e..d44765f46765a0d309758d12fa83ad23ee8c2bc2 100644 (file)
@@ -386,10 +386,8 @@ struct ConnectionClass_
    char        *current_schema;
    int     num_discardp;
    char        **discardp;
-#if (ODBCVER >= 0x0300)
    int     num_descs;
    DescriptorClass **descs;
-#endif /* ODBCVER */
 #if defined(WIN_MULTITHREAD_SUPPORT)
    CRITICAL_SECTION    cs;
 #elif defined(POSIX_THREADMUTEX_SUPPORT)
@@ -423,12 +421,9 @@ char       CC_abort(ConnectionClass *self);
 int            CC_set_translation(ConnectionClass *self);
 char       CC_connect(ConnectionClass *self, char password_req, char *salt);
 char       CC_add_statement(ConnectionClass *self, StatementClass *stmt);
-char       CC_remove_statement(ConnectionClass *self, StatementClass *stmt)
-;
-#if (ODBCVER >= 0x0300)
+char       CC_remove_statement(ConnectionClass *self, StatementClass *stmt);
 char       CC_add_descriptor(ConnectionClass *self, DescriptorClass *desc);
 char       CC_remove_descriptor(ConnectionClass *self, DescriptorClass *desc);
-#endif /* ODBCVER */
 void       CC_set_error(ConnectionClass *self, int number, const char *message);
 void       CC_set_errormsg(ConnectionClass *self, const char *message);
 char       CC_get_error(ConnectionClass *self, int *number, char **message);
index 38343a34ff7859304b399621807c2ecfd34af65c..9d64080c1409b44f44d2a12f1806efd6974ad390 100644 (file)
--- a/convert.c
+++ b/convert.c
@@ -980,9 +980,8 @@ inolog("2stime fr=%d\n", std_time.fr);
        switch (fCType)
        {
            case SQL_C_DATE:
-#if (ODBCVER >= 0x0300)
            case SQL_C_TYPE_DATE:       /* 91 */
-#endif
+
                len = 6;
                {
                    DATE_STRUCT *ds;
@@ -998,9 +997,8 @@ inolog("2stime fr=%d\n", std_time.fr);
                break;
 
            case SQL_C_TIME:
-#if (ODBCVER >= 0x0300)
            case SQL_C_TYPE_TIME:       /* 92 */
-#endif
+
                len = 6;
                {
                    TIME_STRUCT *ts;
@@ -1016,9 +1014,8 @@ inolog("2stime fr=%d\n", std_time.fr);
                break;
 
            case SQL_C_TIMESTAMP:
-#if (ODBCVER >= 0x0300)
            case SQL_C_TYPE_TIMESTAMP:  /* 93 */
-#endif
+
                len = 16;
                {
                    TIMESTAMP_STRUCT *ts;
@@ -1108,7 +1105,6 @@ inolog("2stime fr=%d\n", std_time.fr);
                break;
            }
 
-#if (ODBCVER >= 0x0300)
            case SQL_C_NUMERIC:
            {
                SQL_NUMERIC_STRUCT      *ns;
@@ -1185,7 +1181,6 @@ inolog("2stime fr=%d\n", std_time.fr);
 
                break;
            }
-#endif /* ODBCVER */
 
            case SQL_C_SSHORT:
            case SQL_C_SHORT:
@@ -1221,7 +1216,7 @@ inolog("2stime fr=%d\n", std_time.fr);
                    *((UDWORD *) rgbValue + bind_row) = ATOI32U(neut_str);
                break;
 
-#if (ODBCVER >= 0x0300) && defined(ODBCINT64)
+#ifdef ODBCINT64
            case SQL_C_SBIGINT:
            case SQL_BIGINT: /* Is this needed ? */
                len = 8;
@@ -2326,7 +2321,6 @@ inner_process_tokens(QueryParse *qp, QueryBuild *qb)
    return SQL_SUCCESS;
 }
 
-#if (ODBCVER >= 0x0300)
 static BOOL
 ResolveNumericParam(const SQL_NUMERIC_STRUCT *ns, char *chrform)
 {
@@ -2449,7 +2443,6 @@ ResolveNumericParam(const SQL_NUMERIC_STRUCT *ns, char *chrform)
    chrform[newlen] = '\0';
    return TRUE;
 }
-#endif /* ODBCVER */
 
 /*
  *
@@ -2666,7 +2659,7 @@ ResolveOneParam(QueryBuild *qb)
                    *((SDWORD *) buffer));
            break;
 
-#if (ODBCVER >= 0x0300) && defined(ODBCINT64)
+#ifdef ODBCINT64
        case SQL_C_SBIGINT:
            sprintf(param_string, FORMATI64,
                    *((SQLBIGINT *) buffer));
@@ -2714,9 +2707,7 @@ ResolveOneParam(QueryBuild *qb)
            }
 
        case SQL_C_DATE:
-#if (ODBCVER >= 0x0300)
        case SQL_C_TYPE_DATE:       /* 91 */
-#endif
            {
                DATE_STRUCT *ds = (DATE_STRUCT *) buffer;
 
@@ -2728,9 +2719,7 @@ ResolveOneParam(QueryBuild *qb)
            }
 
        case SQL_C_TIME:
-#if (ODBCVER >= 0x0300)
        case SQL_C_TYPE_TIME:       /* 92 */
-#endif
            {
                TIME_STRUCT *ts = (TIME_STRUCT *) buffer;
 
@@ -2742,9 +2731,7 @@ ResolveOneParam(QueryBuild *qb)
            }
 
        case SQL_C_TIMESTAMP:
-#if (ODBCVER >= 0x0300)
        case SQL_C_TYPE_TIMESTAMP:  /* 93 */
-#endif
            {
                TIMESTAMP_STRUCT *tss = (TIMESTAMP_STRUCT *) buffer;
 
@@ -2761,11 +2748,9 @@ ResolveOneParam(QueryBuild *qb)
                break;
 
            }
-#if (ODBCVER >= 0x0300)
        case SQL_C_NUMERIC:
            if (ResolveNumericParam((SQL_NUMERIC_STRUCT *) buffer, param_string))
                break;
-#endif
        default:
            /* error */
            qb->errormsg = "Unrecognized C_parameter type in copy_statement_with_parameters";
@@ -2812,9 +2797,7 @@ ResolveOneParam(QueryBuild *qb)
            break;
 
        case SQL_DATE:
-#if (ODBCVER >= 0x0300)
        case SQL_TYPE_DATE: /* 91 */
-#endif
            if (buf)
            {               /* copy char data to time */
                my_strcpy(cbuf, sizeof(cbuf), buf, used);
@@ -2827,9 +2810,7 @@ ResolveOneParam(QueryBuild *qb)
            break;
 
        case SQL_TIME:
-#if (ODBCVER >= 0x0300)
        case SQL_TYPE_TIME: /* 92 */
-#endif
            if (buf)
            {               /* copy char data to time */
                my_strcpy(cbuf, sizeof(cbuf), buf, used);
@@ -2842,9 +2823,7 @@ ResolveOneParam(QueryBuild *qb)
            break;
 
        case SQL_TIMESTAMP:
-#if (ODBCVER >= 0x0300)
        case SQL_TYPE_TIMESTAMP:    /* 93 */
-#endif
 
            if (buf)
            {
index cf1074e129e03d5f6e2563795abf5a9a9d5094cb..6e1bd81425dbd4bf5252c6f6c6965db743e739a3 100644 (file)
@@ -151,9 +151,7 @@ void
 InitializeARDFields(ARDFields *opt)
 {
    memset(opt, 0, sizeof(ARDFields));
-#if (ODBCVER >= 0x0300)
    opt->size_of_rowset = 1;
-#endif /* ODBCVER */
    opt->bind_size = 0;     /* default is to bind by column */
    opt->size_of_rowset_odbc2 = 1;
 }
@@ -179,8 +177,6 @@ BindInfoClass   *ARD_AllocBookmark(ARDFields *ardopts)
    return ardopts->bookmark;
 }
 
-#if (ODBCVER >= 0x0300)
-
 #define    DESC_INCREMENT  10
 char CC_add_descriptor(ConnectionClass *self, DescriptorClass *desc)
 {
@@ -569,4 +565,3 @@ PGAPI_DescError(    SQLHDESC hdesc,
                pcbErrorMsg, flag);
 }
 
-#endif /* ODBCVER */
index 45aff330f171827069a6bdd58e10549bec864e64..ca72a6fed0bc4591cec30f805e2503e30e5d7661 100644 (file)
@@ -5,7 +5,7 @@
  *
  * Comments:       See "notice.txt" for copyright and license information.
  *
- * $Id: descriptor.h,v 1.12 2003/12/09 10:01:37 hinoue Exp $
+ * $Id: descriptor.h,v 1.13 2004/07/21 12:29:58 dpage Exp $
  *
  */
 
@@ -64,9 +64,7 @@ typedef struct DescriptorHeader_
  */
 struct ARDFields_
 {
-#if (ODBCVER >= 0x0300)
    int     size_of_rowset; /* for ODBC3 fetch operation */
-#endif /* ODBCVER */
    int     bind_size;  /* size of each structure if using
                     * Row-wise Binding */
    UInt2       *row_operation_ptr;
@@ -154,7 +152,6 @@ BindInfoClass   *ARD_AllocBookmark(ARDFields *self);
 void   ARD_unbind_cols(ARDFields *self, BOOL freeall);
 void   APD_free_params(APDFields *self, char option);
 void   IPD_free_params(IPDFields *self, char option);
-#if (ODBCVER >= 0x0300)
 RETCODE    DC_set_stmt(DescriptorClass *desc, StatementClass *stmt);
 void   DC_clear_error(DescriptorClass *desc);
 void   DC_set_error(DescriptorClass *desc, int errornumber, const char * errormsg);
@@ -163,7 +160,6 @@ PG_ErrorInfo *DC_get_error(DescriptorClass *self);
 int    DC_get_errornumber(const DescriptorClass *self);
 const char *DC_get_errormsg(const DescriptorClass *self);
 void   DC_log_error(const char *func, const char *desc, const DescriptorClass *self);
-#endif /* ODBCVER */
 
 /* Error numbers about descriptor handle */
 #define DESC_OK                        0
index 981d8bd3c262fca11b63b44ad3a6958566ea3340..fb6d3f00820a2919ace0114e956a935b3c27bd48 100644 (file)
--- a/execute.c
+++ b/execute.c
@@ -317,7 +317,7 @@ RETCODE Exec_with_parameters_resolved(StatementClass *stmt, BOOL *exec_end)
            stmt->execute_statement = NULL;
        }
    }
-#if (ODBCVER >= 0x0300)
+
    ipdopts = SC_get_IPDF(stmt);
    if (ipdopts->param_status_ptr)
    {
@@ -334,7 +334,7 @@ RETCODE Exec_with_parameters_resolved(StatementClass *stmt, BOOL *exec_end)
                break;
        }
    }
-#endif /* ODBCVER */
+
    if (end_row = stmt->exec_end_row, end_row < 0)
    {
        apdopts = SC_get_APDF(stmt);
@@ -350,7 +350,7 @@ RETCODE Exec_with_parameters_resolved(StatementClass *stmt, BOOL *exec_end)
        stmt->exec_current_row++;
    if (res)
    {
-#if (ODBCVER >= 0x0300)
+
            EnvironmentClass *env = (EnvironmentClass *) (conn->henv);
        const char *cmd = QR_get_command(res);
 
@@ -367,7 +367,7 @@ RETCODE Exec_with_parameters_resolved(StatementClass *stmt, BOOL *exec_end)
            if (0 == count)
                retval = SQL_NO_DATA;
        }
-#endif /* ODBCVER */
+
        stmt->diag_row_count = res->recent_processed_row_count;
    }
    /*
@@ -503,7 +503,7 @@ PGAPI_Execute(HSTMT hstmt, UWORD flag)
    {
        if (ipdopts->param_processed_ptr)
            *ipdopts->param_processed_ptr = 0;
-#if (ODBCVER >= 0x0300)
+
        /*
         *  Initialize the param_status_ptr 
         */
@@ -512,13 +512,13 @@ PGAPI_Execute(HSTMT hstmt, UWORD flag)
            for (i = 0; i <= end_row; i++)
                ipdopts->param_status_ptr[i] = SQL_PARAM_UNUSED;
        }
-#endif /* ODBCVER */
+
        if (recycle && !recycled)
            SC_recycle_statement(stmt);
    }
 
 next_param_row:
-#if (ODBCVER >= 0x0300)
+
    if (apdopts->param_operation_ptr)
    {
        while (apdopts->param_operation_ptr[stmt->exec_current_row] == SQL_PARAM_IGNORE)
@@ -536,7 +536,7 @@ next_param_row:
     */
    if (ipdopts->param_status_ptr)
        ipdopts->param_status_ptr[stmt->exec_current_row] = SQL_PARAM_ERROR;
-#endif /* ODBCVER */
+
    /*
     * Check if statement has any data-at-execute parameters when it is
     * not in SC_pre_execute.
diff --git a/info.c b/info.c
index 257ae06e891892a0f8e9bfaffde47ecb3be16bf8..d24adcc7908d7999f470042a3d9976fd7517ae3e 100644 (file)
--- a/info.c
+++ b/info.c
@@ -105,7 +105,6 @@ PGAPI_GetInfo(
            value = SQL_AT_ADD_COLUMN;
            if (PG_VERSION_GE(conn, 7.3))
                value |= SQL_AT_DROP_COLUMN;
-#if (ODBCVER >= 0x0300)
            value |= SQL_AT_ADD_COLUMN_SINGLE;
            if (PG_VERSION_GE(conn, 7.1))
                value |= SQL_AT_ADD_CONSTRAINT
@@ -118,7 +117,6 @@ PGAPI_GetInfo(
                    | SQL_AT_DROP_TABLE_CONSTRAINT_CASCADE
                    | SQL_AT_DROP_COLUMN_RESTRICT
                    | SQL_AT_DROP_COLUMN_CASCADE;
-#endif /* ODBCVER */
            break;
 
        case SQL_BOOKMARK_PERSISTENCE:  /* ODBC 2.0 */
@@ -820,11 +818,7 @@ PGAPI_GetTypeInfo(
    }
    SC_set_Result(stmt, res);
 
-#if (ODBCVER >= 0x0300)
    result_cols = 19;
-#else
-   result_cols = 15;
-#endif /* ODBCVER */
    extend_column_bindings(SC_get_ARDF(stmt), result_cols);
 
    QR_set_num_fields(res, result_cols);
@@ -843,12 +837,10 @@ PGAPI_GetTypeInfo(
    QR_set_field_info(res, 12, "LOCAL_TYPE_NAME", PG_TYPE_VARCHAR, MAX_INFO_STRING);
    QR_set_field_info(res, 13, "MINIMUM_SCALE", PG_TYPE_INT2, 2);
    QR_set_field_info(res, 14, "MAXIMUM_SCALE", PG_TYPE_INT2, 2);
-#if (ODBCVER >=0x0300)
    QR_set_field_info(res, 15, "SQL_DATA_TYPE", PG_TYPE_INT2, 2);
    QR_set_field_info(res, 16, "SQL_DATATIME_SUB", PG_TYPE_INT2, 2);
    QR_set_field_info(res, 17, "NUM_PREC_RADIX", PG_TYPE_INT4, 4);
    QR_set_field_info(res, 18, "INTERVAL_PRECISION", PG_TYPE_INT2, 2);
-#endif /* ODBCVER */
 
    for (i = 0, sqlType = sqlTypes[0]; sqlType; sqlType = sqlTypes[++i])
    {
@@ -906,12 +898,10 @@ inolog("serial in\n");
            }
            set_nullfield_int2(&row->tuple[13], pgtype_min_decimal_digits(stmt, pgType));
            set_nullfield_int2(&row->tuple[14], pgtype_max_decimal_digits(stmt, pgType));
-#if (ODBCVER >=0x0300)
            set_nullfield_int2(&row->tuple[15], pgtype_to_sqldesctype(stmt, pgType, PG_STATIC));
            set_nullfield_int2(&row->tuple[16], pgtype_to_datetime_sub(stmt, pgType));
            set_nullfield_int4(&row->tuple[17], pgtype_radix(stmt, pgType));
            set_nullfield_int4(&row->tuple[18], 0);
-#endif /* ODBCVER */
 
            QR_add_tuple(res, row);
 
@@ -942,99 +932,76 @@ PGAPI_GetFunctions(
 
    if (fFunction == SQL_API_ALL_FUNCTIONS)
    {
-#if (ODBCVER < 0x0300)
-       if (ci->drivers.lie)
-       {
-           int         i;
-
-           memset(pfExists, 0, sizeof(UWORD) * 100);
-
-           pfExists[SQL_API_SQLALLOCENV] = TRUE;
-           pfExists[SQL_API_SQLFREEENV] = TRUE;
-           for (i = SQL_API_SQLALLOCCONNECT; i <= SQL_NUM_FUNCTIONS; i++)
-               pfExists[i] = TRUE;
-           for (i = SQL_EXT_API_START; i <= SQL_EXT_API_LAST; i++)
-               pfExists[i] = TRUE;
-       }
+       memset(pfExists, 0, sizeof(UWORD) * 100);
+
+       /* ODBC core functions */
+       pfExists[SQL_API_SQLALLOCCONNECT] = TRUE;
+       pfExists[SQL_API_SQLALLOCENV] = TRUE;
+       pfExists[SQL_API_SQLALLOCSTMT] = TRUE;
+       pfExists[SQL_API_SQLBINDCOL] = TRUE;
+       pfExists[SQL_API_SQLCANCEL] = TRUE;
+       pfExists[SQL_API_SQLCOLATTRIBUTES] = TRUE;
+       pfExists[SQL_API_SQLCONNECT] = TRUE;
+       pfExists[SQL_API_SQLDESCRIBECOL] = TRUE;        /* partial */
+       pfExists[SQL_API_SQLDISCONNECT] = TRUE;
+       pfExists[SQL_API_SQLERROR] = TRUE;
+       pfExists[SQL_API_SQLEXECDIRECT] = TRUE;
+       pfExists[SQL_API_SQLEXECUTE] = TRUE;
+       pfExists[SQL_API_SQLFETCH] = TRUE;
+       pfExists[SQL_API_SQLFREECONNECT] = TRUE;
+       pfExists[SQL_API_SQLFREEENV] = TRUE;
+       pfExists[SQL_API_SQLFREESTMT] = TRUE;
+       pfExists[SQL_API_SQLGETCURSORNAME] = TRUE;
+       pfExists[SQL_API_SQLNUMRESULTCOLS] = TRUE;
+       pfExists[SQL_API_SQLPREPARE] = TRUE;            /* complete? */
+       pfExists[SQL_API_SQLROWCOUNT] = TRUE;
+       pfExists[SQL_API_SQLSETCURSORNAME] = TRUE;
+       pfExists[SQL_API_SQLSETPARAM] = FALSE;          /* odbc 1.0 */
+       pfExists[SQL_API_SQLTRANSACT] = TRUE;
+
+       /* ODBC level 1 functions */
+       pfExists[SQL_API_SQLBINDPARAMETER] = TRUE;
+       pfExists[SQL_API_SQLCOLUMNS] = TRUE;
+       pfExists[SQL_API_SQLDRIVERCONNECT] = TRUE;
+       pfExists[SQL_API_SQLGETCONNECTOPTION] = TRUE;       /* partial */
+       pfExists[SQL_API_SQLGETDATA] = TRUE;
+       pfExists[SQL_API_SQLGETFUNCTIONS] = TRUE;
+       pfExists[SQL_API_SQLGETINFO] = TRUE;
+       pfExists[SQL_API_SQLGETSTMTOPTION] = TRUE;      /* partial */
+       pfExists[SQL_API_SQLGETTYPEINFO] = TRUE;
+       pfExists[SQL_API_SQLPARAMDATA] = TRUE;
+       pfExists[SQL_API_SQLPUTDATA] = TRUE;
+       pfExists[SQL_API_SQLSETCONNECTOPTION] = TRUE;       /* partial */
+       pfExists[SQL_API_SQLSETSTMTOPTION] = TRUE;
+       pfExists[SQL_API_SQLSPECIALCOLUMNS] = TRUE;
+       pfExists[SQL_API_SQLSTATISTICS] = TRUE;
+       pfExists[SQL_API_SQLTABLES] = TRUE;
+
+       /* ODBC level 2 functions */
+       pfExists[SQL_API_SQLBROWSECONNECT] = FALSE;
+       pfExists[SQL_API_SQLCOLUMNPRIVILEGES] = FALSE;
+       pfExists[SQL_API_SQLDATASOURCES] = FALSE;       /* only implemented by DM */
+       pfExists[SQL_API_SQLDESCRIBEPARAM] = FALSE;     /* not properly implemented */
+       pfExists[SQL_API_SQLDRIVERS] = FALSE;           /* only implemented by DM */
+       pfExists[SQL_API_SQLEXTENDEDFETCH] = TRUE;
+       pfExists[SQL_API_SQLFOREIGNKEYS] = TRUE;
+       pfExists[SQL_API_SQLMORERESULTS] = TRUE;
+       pfExists[SQL_API_SQLNATIVESQL] = TRUE;
+       pfExists[SQL_API_SQLNUMPARAMS] = TRUE;
+       pfExists[SQL_API_SQLPARAMOPTIONS] = TRUE;
+       pfExists[SQL_API_SQLPRIMARYKEYS] = TRUE;
+       if (PG_VERSION_LT(conn, 6.5))
+           pfExists[SQL_API_SQLPROCEDURECOLUMNS] = FALSE;
        else
-#endif
-       {
-           memset(pfExists, 0, sizeof(UWORD) * 100);
-
-           /* ODBC core functions */
-           pfExists[SQL_API_SQLALLOCCONNECT] = TRUE;
-           pfExists[SQL_API_SQLALLOCENV] = TRUE;
-           pfExists[SQL_API_SQLALLOCSTMT] = TRUE;
-           pfExists[SQL_API_SQLBINDCOL] = TRUE;
-           pfExists[SQL_API_SQLCANCEL] = TRUE;
-           pfExists[SQL_API_SQLCOLATTRIBUTES] = TRUE;
-           pfExists[SQL_API_SQLCONNECT] = TRUE;
-           pfExists[SQL_API_SQLDESCRIBECOL] = TRUE;    /* partial */
-           pfExists[SQL_API_SQLDISCONNECT] = TRUE;
-           pfExists[SQL_API_SQLERROR] = TRUE;
-           pfExists[SQL_API_SQLEXECDIRECT] = TRUE;
-           pfExists[SQL_API_SQLEXECUTE] = TRUE;
-           pfExists[SQL_API_SQLFETCH] = TRUE;
-           pfExists[SQL_API_SQLFREECONNECT] = TRUE;
-           pfExists[SQL_API_SQLFREEENV] = TRUE;
-           pfExists[SQL_API_SQLFREESTMT] = TRUE;
-           pfExists[SQL_API_SQLGETCURSORNAME] = TRUE;
-           pfExists[SQL_API_SQLNUMRESULTCOLS] = TRUE;
-           pfExists[SQL_API_SQLPREPARE] = TRUE;        /* complete? */
-           pfExists[SQL_API_SQLROWCOUNT] = TRUE;
-           pfExists[SQL_API_SQLSETCURSORNAME] = TRUE;
-           pfExists[SQL_API_SQLSETPARAM] = FALSE;      /* odbc 1.0 */
-           pfExists[SQL_API_SQLTRANSACT] = TRUE;
-
-           /* ODBC level 1 functions */
-           pfExists[SQL_API_SQLBINDPARAMETER] = TRUE;
-           pfExists[SQL_API_SQLCOLUMNS] = TRUE;
-           pfExists[SQL_API_SQLDRIVERCONNECT] = TRUE;
-           pfExists[SQL_API_SQLGETCONNECTOPTION] = TRUE;       /* partial */
-           pfExists[SQL_API_SQLGETDATA] = TRUE;
-           pfExists[SQL_API_SQLGETFUNCTIONS] = TRUE;
-           pfExists[SQL_API_SQLGETINFO] = TRUE;
-           pfExists[SQL_API_SQLGETSTMTOPTION] = TRUE;  /* partial */
-           pfExists[SQL_API_SQLGETTYPEINFO] = TRUE;
-           pfExists[SQL_API_SQLPARAMDATA] = TRUE;
-           pfExists[SQL_API_SQLPUTDATA] = TRUE;
-           pfExists[SQL_API_SQLSETCONNECTOPTION] = TRUE;       /* partial */
-           pfExists[SQL_API_SQLSETSTMTOPTION] = TRUE;
-           pfExists[SQL_API_SQLSPECIALCOLUMNS] = TRUE;
-           pfExists[SQL_API_SQLSTATISTICS] = TRUE;
-           pfExists[SQL_API_SQLTABLES] = TRUE;
-
-           /* ODBC level 2 functions */
-           pfExists[SQL_API_SQLBROWSECONNECT] = FALSE;
-           pfExists[SQL_API_SQLCOLUMNPRIVILEGES] = FALSE;
-           pfExists[SQL_API_SQLDATASOURCES] = FALSE;   /* only implemented by
-                                                        * DM */
-           pfExists[SQL_API_SQLDESCRIBEPARAM] = FALSE; /* not properly
-                                                        * implemented */
-           pfExists[SQL_API_SQLDRIVERS] = FALSE;       /* only implemented by
-                                                        * DM */
-           pfExists[SQL_API_SQLEXTENDEDFETCH] = TRUE;
-           pfExists[SQL_API_SQLFOREIGNKEYS] = TRUE;
-           pfExists[SQL_API_SQLMORERESULTS] = TRUE;
-           pfExists[SQL_API_SQLNATIVESQL] = TRUE;
-           pfExists[SQL_API_SQLNUMPARAMS] = TRUE;
-           pfExists[SQL_API_SQLPARAMOPTIONS] = TRUE;
-           pfExists[SQL_API_SQLPRIMARYKEYS] = TRUE;
-           if (PG_VERSION_LT(conn, 6.5))
-               pfExists[SQL_API_SQLPROCEDURECOLUMNS] = FALSE;
-           else
-               pfExists[SQL_API_SQLPROCEDURECOLUMNS] = TRUE;
-           if (PG_VERSION_LT(conn, 6.5))
-               pfExists[SQL_API_SQLPROCEDURES] = FALSE;
-           else
-               pfExists[SQL_API_SQLPROCEDURES] = TRUE;
-           pfExists[SQL_API_SQLSETPOS] = TRUE;
-           pfExists[SQL_API_SQLSETSCROLLOPTIONS] = TRUE;       /* odbc 1.0 */
-           pfExists[SQL_API_SQLTABLEPRIVILEGES] = TRUE;
-#if (ODBCVER >= 0x0300)
-           pfExists[SQL_API_SQLBULKOPERATIONS] = TRUE;
-#endif /* ODBCVER */
-       }
+           pfExists[SQL_API_SQLPROCEDURECOLUMNS] = TRUE;
+       if (PG_VERSION_LT(conn, 6.5))
+           pfExists[SQL_API_SQLPROCEDURES] = FALSE;
+       else
+           pfExists[SQL_API_SQLPROCEDURES] = TRUE;
+       pfExists[SQL_API_SQLSETPOS] = TRUE;
+       pfExists[SQL_API_SQLSETSCROLLOPTIONS] = TRUE;       /* odbc 1.0 */
+       pfExists[SQL_API_SQLTABLEPRIVILEGES] = TRUE;
+       pfExists[SQL_API_SQLBULKOPERATIONS] = TRUE;
    }
    else
    {
@@ -1044,28 +1011,13 @@ PGAPI_GetFunctions(
        {
            switch (fFunction)
            {
-#if (ODBCVER < 0x0300)
-               case SQL_API_SQLALLOCCONNECT:
-                   *pfExists = TRUE;
-                   break;
-               case SQL_API_SQLALLOCENV:
-                   *pfExists = TRUE;
-                   break;
-               case SQL_API_SQLALLOCSTMT:
-                   *pfExists = TRUE;
-                   break;
-#endif /* ODBCVER */
                case SQL_API_SQLBINDCOL:
                    *pfExists = TRUE;
                    break;
                case SQL_API_SQLCANCEL:
                    *pfExists = TRUE;
                    break;
-#if (ODBCVER >= 0x0300)
                case SQL_API_SQLCOLATTRIBUTE:
-#else
-               case SQL_API_SQLCOLATTRIBUTES:
-#endif /* ODBCVER */
                    *pfExists = TRUE;
                    break;
                case SQL_API_SQLCONNECT:
@@ -1077,11 +1029,6 @@ PGAPI_GetFunctions(
                case SQL_API_SQLDISCONNECT:
                    *pfExists = TRUE;
                    break;
-#if (ODBCVER < 0x0300)
-               case SQL_API_SQLERROR:
-                   *pfExists = TRUE;
-                   break;
-#endif /* ODBCVER */
                case SQL_API_SQLEXECDIRECT:
                    *pfExists = TRUE;
                    break;
@@ -1091,14 +1038,6 @@ PGAPI_GetFunctions(
                case SQL_API_SQLFETCH:
                    *pfExists = TRUE;
                    break;
-#if (ODBCVER < 0x0300)
-               case SQL_API_SQLFREECONNECT:
-                   *pfExists = TRUE;
-                   break;
-               case SQL_API_SQLFREEENV:
-                   *pfExists = TRUE;
-                   break;
-#endif /* ODBCVER */
                case SQL_API_SQLFREESTMT:
                    *pfExists = TRUE;
                    break;
@@ -1117,16 +1056,7 @@ PGAPI_GetFunctions(
                case SQL_API_SQLSETCURSORNAME:
                    *pfExists = TRUE;
                    break;
-#if (ODBCVER < 0x0300)
-               case SQL_API_SQLSETPARAM:
-                   *pfExists = FALSE;
-                   break;      /* odbc 1.0 */
-               case SQL_API_SQLTRANSACT:
-                   *pfExists = TRUE;
-                   break;
-#endif /* ODBCVER */
-
-                   /* ODBC level 1 functions */
+               /* ODBC level 1 functions */
                case SQL_API_SQLBINDPARAMETER:
                    *pfExists = TRUE;
                    break;
@@ -1136,11 +1066,6 @@ PGAPI_GetFunctions(
                case SQL_API_SQLDRIVERCONNECT:
                    *pfExists = TRUE;
                    break;
-#if (ODBCVER < 0x0300)
-               case SQL_API_SQLGETCONNECTOPTION:
-                   *pfExists = TRUE;
-                   break;      /* partial */
-#endif /* ODBCVER */
                case SQL_API_SQLGETDATA:
                    *pfExists = TRUE;
                    break;
@@ -1150,11 +1075,6 @@ PGAPI_GetFunctions(
                case SQL_API_SQLGETINFO:
                    *pfExists = TRUE;
                    break;
-#if (ODBCVER < 0x0300)
-               case SQL_API_SQLGETSTMTOPTION:
-                   *pfExists = TRUE;
-                   break;      /* partial */
-#endif /* ODBCVER */
                case SQL_API_SQLGETTYPEINFO:
                    *pfExists = TRUE;
                    break;
@@ -1164,14 +1084,6 @@ PGAPI_GetFunctions(
                case SQL_API_SQLPUTDATA:
                    *pfExists = TRUE;
                    break;
-#if (ODBCVER < 0x0300)
-               case SQL_API_SQLSETCONNECTOPTION:
-                   *pfExists = TRUE;
-                   break;      /* partial */
-               case SQL_API_SQLSETSTMTOPTION:
-                   *pfExists = TRUE;
-                   break;
-#endif /* ODBCVER */
                case SQL_API_SQLSPECIALCOLUMNS:
                    *pfExists = TRUE;
                    break;
@@ -1182,7 +1094,7 @@ PGAPI_GetFunctions(
                    *pfExists = TRUE;
                    break;
 
-                   /* ODBC level 2 functions */
+               /* ODBC level 2 functions */
                case SQL_API_SQLBROWSECONNECT:
                    *pfExists = FALSE;
                    break;
@@ -1213,11 +1125,6 @@ PGAPI_GetFunctions(
                case SQL_API_SQLNUMPARAMS:
                    *pfExists = TRUE;
                    break;
-#if (ODBCVER < 0x0300)
-               case SQL_API_SQLPARAMOPTIONS:
-                   *pfExists = TRUE;
-                   break;
-#endif /* ODBCVER */
                case SQL_API_SQLPRIMARYKEYS:
                    *pfExists = TRUE;
                    break;
@@ -1236,15 +1143,9 @@ PGAPI_GetFunctions(
                case SQL_API_SQLSETPOS:
                    *pfExists = TRUE;
                    break;
-#if (ODBCVER < 0x0300)
-               case SQL_API_SQLSETSCROLLOPTIONS:
-                   *pfExists = TRUE;
-                   break;      /* odbc 1.0 */
-#endif /* ODBCVER */
                case SQL_API_SQLTABLEPRIVILEGES:
                    *pfExists = TRUE;
                    break;
-#if (ODBCVER >= 0x0300)
                case SQL_API_SQLBULKOPERATIONS: /* 24 */
                case SQL_API_SQLALLOCHANDLE:    /* 1001 */
                case SQL_API_SQLBINDPARAM:  /* 1002 */
@@ -1269,7 +1170,6 @@ PGAPI_GetFunctions(
                case SQL_API_SQLCOPYDESC:   /* 1004 */
                    *pfExists = FALSE;
                    break;
-#endif /* ODBCVER */
                default:
                    *pfExists = FALSE;
                    break;
@@ -1986,17 +1886,12 @@ retry_public_schema:
    }
    SC_set_Result(stmt, res);
 
-   /* the binding structure for a statement is not set up until */
-
-   /*
+   /* the binding structure for a statement is not set up until
     * a statement is actually executed, so we'll have to do this
     * ourselves.
     */
-#if (ODBCVER >= 0x0300)
    reserved_cols = 18;
-#else
-   reserved_cols = 12;
-#endif /* ODBCVER */
+
    result_cols = reserved_cols + 2;
    extend_column_bindings(SC_get_ARDF(stmt), result_cols);
 
@@ -2016,14 +1911,12 @@ retry_public_schema:
    QR_set_field_info(res, 11, "REMARKS", PG_TYPE_VARCHAR, 254);
 
    /* User defined fields */
-#if (ODBCVER >= 0x0300)
    QR_set_field_info(res, 12, "COLUMN_DEF", PG_TYPE_INT4, 254);
    QR_set_field_info(res, 13, "SQL_DATA_TYPE", PG_TYPE_INT2, 2);
    QR_set_field_info(res, 14, "SQL_DATETIME_SUB", PG_TYPE_INT2, 2);
    QR_set_field_info(res, 15, "CHAR_OCTET_LENGTH", PG_TYPE_INT4, 4);
    QR_set_field_info(res, 16, "ORDINAL_POSITION", PG_TYPE_INT4, 4);
    QR_set_field_info(res, 17, "IS_NULLABLE", PG_TYPE_VARCHAR, 254);
-#endif /* ODBCVER */
    QR_set_field_info(res, reserved_cols, "DISPLAY_SIZE", PG_TYPE_INT4, 4);
    QR_set_field_info(res, reserved_cols + 1, "FIELD_TYPE", PG_TYPE_INT4, 4);
 
@@ -2070,15 +1963,12 @@ retry_public_schema:
            set_nullfield_int2(&row->tuple[9], pgtype_radix(stmt, the_type));
            set_tuplefield_int2(&row->tuple[10], SQL_NO_NULLS);
            set_tuplefield_string(&row->tuple[11], "");
-
-#if (ODBCVER >= 0x0300)
            set_tuplefield_null(&row->tuple[12]);
            set_tuplefield_int2(&row->tuple[13], sqltype);
            set_tuplefield_null(&row->tuple[14]);
            set_tuplefield_int4(&row->tuple[15], pgtype_transfer_octet_length(stmt, the_type, PG_STATIC, PG_STATIC));
            set_tuplefield_int4(&row->tuple[16], ordinal);
            set_tuplefield_string(&row->tuple[17], "No");
-#endif /* ODBCVER */
            set_tuplefield_int4(&row->tuple[reserved_cols], pgtype_display_size(stmt, the_type, PG_STATIC, PG_STATIC));
            set_tuplefield_int4(&row->tuple[reserved_cols + 1], the_type);
 
@@ -2142,9 +2032,7 @@ retry_public_schema:
                set_tuplefield_int4(&row->tuple[6], column_size);
                set_tuplefield_int4(&row->tuple[7], column_size + 2);       /* sign+dec.point */
                set_nullfield_int2(&row->tuple[8], decimal_digits);
-#if (ODBCVER >= 0x0300)
                set_tuplefield_null(&row->tuple[15]);
-#endif /* ODBCVER */
                set_tuplefield_int4(&row->tuple[reserved_cols], column_size + 2);   /* sign+dec.point */
            }
        }
@@ -2179,9 +2067,7 @@ retry_public_schema:
 
            set_tuplefield_int4(&row->tuple[6], mod_length);
            set_tuplefield_int4(&row->tuple[7], mod_length);
-#if (ODBCVER >= 0x0300)
            set_tuplefield_int4(&row->tuple[15], pgtype_transfer_octet_length(stmt, field_type, PG_STATIC, PG_STATIC));
-#endif /* ODBCVER */
            set_tuplefield_int4(&row->tuple[reserved_cols], mod_length);
        }
 
@@ -2191,9 +2077,7 @@ retry_public_schema:
 
            set_tuplefield_int4(&row->tuple[6], pgtype_column_size(stmt, field_type, PG_STATIC, PG_STATIC));
            set_tuplefield_int4(&row->tuple[7], pgtype_buffer_length(stmt, field_type, PG_STATIC, PG_STATIC));
-#if (ODBCVER >= 0x0300)
            set_tuplefield_null(&row->tuple[15]);
-#endif /* ODBCVER */
            set_tuplefield_int4(&row->tuple[reserved_cols], pgtype_display_size(stmt, field_type, PG_STATIC, PG_STATIC));
        }
        if (useStaticScale)
@@ -2213,13 +2097,11 @@ retry_public_schema:
        set_nullfield_int2(&row->tuple[9], pgtype_radix(stmt, field_type));
        set_tuplefield_int2(&row->tuple[10], (Int2) (not_null[0] == '1' ? SQL_NO_NULLS : pgtype_nullable(stmt, field_type)));
        set_tuplefield_string(&row->tuple[11], "");
-#if (ODBCVER >= 0x0300)
        set_tuplefield_null(&row->tuple[12]);
        set_tuplefield_int2(&row->tuple[13], concise_type);
        set_nullfield_int2(&row->tuple[14], pgtype_to_datetime_sub(stmt, field_type));
        set_tuplefield_int4(&row->tuple[16], ordinal);
        set_tuplefield_null(&row->tuple[17]);
-#endif /* ODBCVER */
        set_tuplefield_int4(&row->tuple[reserved_cols + 1], field_type);
 
        QR_add_tuple(res, row);
@@ -2262,14 +2144,12 @@ retry_public_schema:
        set_nullfield_int2(&row->tuple[9], pgtype_radix(stmt, the_type));
        set_tuplefield_int2(&row->tuple[10], SQL_NO_NULLS);
        set_tuplefield_string(&row->tuple[11], "");
-#if (ODBCVER >= 0x0300)
        set_tuplefield_null(&row->tuple[12]);
        set_tuplefield_int2(&row->tuple[13], sqltype);
        set_tuplefield_null(&row->tuple[14]);
        set_tuplefield_int4(&row->tuple[15], pgtype_transfer_octet_length(stmt, the_type, PG_STATIC, PG_STATIC));
        set_tuplefield_int4(&row->tuple[16], ordinal);
        set_tuplefield_string(&row->tuple[17], "No");
-#endif /* ODBCVER */
        set_tuplefield_int4(&row->tuple[reserved_cols], pgtype_display_size(stmt, the_type, PG_STATIC, PG_STATIC));
        set_tuplefield_int4(&row->tuple[reserved_cols + 1], the_type);
 
@@ -3565,10 +3445,7 @@ PGAPI_ForeignKeys(
                upd_rule_type = 0,
                del_rule_type = 0;
    SWORD       internal_asis_type = SQL_C_CHAR;
-
-#if (ODBCVER >= 0x0300)
    SWORD       defer_type;
-#endif
    char        pkey[MAX_INFO_STRING];
    Int2        result_cols;
    UInt4       relid1, relid2;
@@ -3595,11 +3472,7 @@ PGAPI_ForeignKeys(
     * a statement is actually executed, so we'll have to do this
     * ourselves.
     */
-#if (ODBCVER >= 0x0300)
    result_cols = 15;
-#else
-   result_cols = 14;
-#endif /* ODBCVER */
    extend_column_bindings(SC_get_ARDF(stmt), result_cols);
 
    /* set the field names */
@@ -3618,9 +3491,7 @@ PGAPI_ForeignKeys(
    QR_set_field_info(res, 11, "FK_NAME", PG_TYPE_VARCHAR, MAX_INFO_STRING);
    QR_set_field_info(res, 12, "PK_NAME", PG_TYPE_VARCHAR, MAX_INFO_STRING);
    QR_set_field_info(res, 13, "TRIGGER_NAME", PG_TYPE_VARCHAR, MAX_INFO_STRING);
-#if (ODBCVER >= 0x0300)
    QR_set_field_info(res, 14, "DEFERRABILITY", PG_TYPE_INT2, 2);
-#endif   /* ODBCVER >= 0x0300 */
 
    /*
     * also, things need to think that this statement is finished so the
@@ -3943,7 +3814,6 @@ PGAPI_ForeignKeys(
            else if (!strcmp(upd_rule, "RI_FKey_setnull_del"))
                del_rule_type = SQL_SET_NULL;
 
-#if (ODBCVER >= 0x0300)
            /* Set deferrability type */
            if (!strcmp(trig_initdeferred, "y"))
                defer_type = SQL_INITIALLY_DEFERRED;
@@ -3951,7 +3821,6 @@ PGAPI_ForeignKeys(
                defer_type = SQL_INITIALLY_IMMEDIATE;
            else
                defer_type = SQL_NOT_DEFERRABLE;
-#endif   /* ODBCVER >= 0x0300 */
 
            /* Get to first primary key */
            pkey_ptr = trig_args;
@@ -3984,9 +3853,7 @@ PGAPI_ForeignKeys(
                set_tuplefield_null(&row->tuple[11]);
                set_tuplefield_null(&row->tuple[12]);
                set_tuplefield_string(&row->tuple[13], trig_args);
-#if (ODBCVER >= 0x0300)
                set_tuplefield_int2(&row->tuple[14], defer_type);
-#endif   /* ODBCVER >= 0x0300 */
 
                QR_add_tuple(res, row);
                if (fkey_alloced)
@@ -4221,7 +4088,6 @@ PGAPI_ForeignKeys(
            else if (!strcmp(upd_rule, "RI_FKey_setnull_del"))
                del_rule_type = SQL_SET_NULL;
 
-#if (ODBCVER >= 0x0300)
            /* Set deferrability type */
            if (!strcmp(trig_initdeferred, "y"))
                defer_type = SQL_INITIALLY_DEFERRED;
@@ -4229,7 +4095,6 @@ PGAPI_ForeignKeys(
                defer_type = SQL_INITIALLY_IMMEDIATE;
            else
                defer_type = SQL_NOT_DEFERRABLE;
-#endif   /* ODBCVER >= 0x0300 */
 
            mylog("Foreign Key Case#1: trig_nargs = %d, num_keys = %d\n", trig_nargs, num_keys);
 
@@ -4275,10 +4140,8 @@ PGAPI_ForeignKeys(
 
                set_tuplefield_string(&row->tuple[13], trig_args);
 
-#if (ODBCVER >= 0x0300)
                mylog(" defer_type = %d\n", defer_type);
                set_tuplefield_int2(&row->tuple[14], defer_type);
-#endif   /* ODBCVER >= 0x0300 */
 
                QR_add_tuple(res, row);
                if (pkey_alloced)
@@ -4414,11 +4277,7 @@ PGAPI_ProcedureColumns(
     * a statement is actually executed, so we'll have to do this
     * ourselves.
     */
-#if (ODBCVER >= 0x0300)
    result_cols = 19;
-#else
-   result_cols = 13;
-#endif /* ODBCVER */
    extend_column_bindings(SC_get_ARDF(stmt), result_cols);
 
    /* set the field names */
@@ -4436,14 +4295,12 @@ PGAPI_ProcedureColumns(
    QR_set_field_info(res, 10, "NUM_PREC_RADIX", PG_TYPE_INT2, 2);
    QR_set_field_info(res, 11, "NULLABLE", PG_TYPE_INT2, 2);
    QR_set_field_info(res, 12, "REMARKS", PG_TYPE_VARCHAR, MAX_INFO_STRING);
-#if (ODBCVER >= 0x0300)
    QR_set_field_info(res, 13, "COLUMN_DEF", PG_TYPE_VARCHAR, MAX_INFO_STRING);
    QR_set_field_info(res, 14, "SQL_DATA_TYPE", PG_TYPE_INT2, 2);
    QR_set_field_info(res, 15, "SQL_DATATIME_SUB", PG_TYPE_INT2, 2);
    QR_set_field_info(res, 16, "CHAR_OCTET_LENGTH", PG_TYPE_INT4, 4);
    QR_set_field_info(res, 17, "ORIDINAL_POSITION", PG_TYPE_INT4, 4);
    QR_set_field_info(res, 18, "IS_NULLABLE", PG_TYPE_VARCHAR, MAX_INFO_STRING);
-#endif   /* ODBCVER >= 0x0300 */
 
    if (0 == cbColumnName || !szColumnName || !szColumnName[0])
        tcount = QR_get_num_total_tuples(tres);
@@ -4473,14 +4330,12 @@ PGAPI_ProcedureColumns(
            set_nullfield_int2(&row->tuple[10], pgtype_radix(stmt, pgtype));
            set_tuplefield_int2(&row->tuple[11], SQL_NULLABLE_UNKNOWN);
            set_tuplefield_null(&row->tuple[12]);
-#if (ODBCVER >= 0x0300)
            set_tuplefield_null(&row->tuple[13]);
            set_nullfield_int2(&row->tuple[14], pgtype_to_sqldesctype(stmt, pgtype, PG_STATIC));
            set_nullfield_int2(&row->tuple[15], pgtype_to_datetime_sub(stmt, pgtype));
            set_nullfield_int4(&row->tuple[16], pgtype_transfer_octet_length(stmt, pgtype, PG_STATIC, PG_STATIC));
            set_tuplefield_int4(&row->tuple[17], 0);
            set_tuplefield_string(&row->tuple[18], "");
-#endif   /* ODBCVER >= 0x0300 */
            QR_add_tuple(res, row);
        }
        paramcount = atoi(QR_get_value_backend_row(tres, i, 3));
@@ -4504,14 +4359,12 @@ PGAPI_ProcedureColumns(
            set_nullfield_int2(&row->tuple[10], pgtype_radix(stmt, pgtype));
            set_tuplefield_int2(&row->tuple[11], SQL_NULLABLE_UNKNOWN);
            set_tuplefield_null(&row->tuple[12]);
-#if (ODBCVER >= 0x0300)
            set_tuplefield_null(&row->tuple[13]);
            set_nullfield_int2(&row->tuple[14], pgtype_to_sqldesctype(stmt, pgtype, PG_STATIC));
            set_nullfield_int2(&row->tuple[15], pgtype_to_datetime_sub(stmt, pgtype));
            set_nullfield_int4(&row->tuple[16], pgtype_transfer_octet_length(stmt, pgtype, PG_STATIC, PG_STATIC));
            set_tuplefield_int4(&row->tuple[17], j + 1);
            set_tuplefield_string(&row->tuple[18], "");
-#endif   /* ODBCVER >= 0x0300 */
            QR_add_tuple(res, row);
            while (isdigit(*params))
                params++;
index 0b4623f6bf9332d1ae2253ecc256547da8e99c1a..c17eecb26e18ea998c703431e0eee9b77b09cbff 100644 (file)
--- a/info30.c
+++ b/info30.c
@@ -8,7 +8,6 @@
 
 #include "psqlodbc.h"
 
-#if (ODBCVER >= 0x0300)
 #include "connection.h"
 #include "pgapifunc.h"
 
@@ -405,4 +404,4 @@ PGAPI_GetInfo30(HDBC hdbc, UWORD fInfoType, PTR rgbInfoValue,
        *pcbInfoValue = len;
    return result;
 }
-#endif /* ODBCVER >= 0x0300 */
+
index cfd97ba70d44b5e8b25a520e0d1ba95907d43b39..d75048d026861c3d0caaf75d6daeec26c93117f0 100644 (file)
--- a/odbcapi.c
+++ b/odbcapi.c
@@ -36,7 +36,6 @@
 #include "statement.h"
 #include "qresult.h"
 
-#if (ODBCVER < 0x0300)
 RETCODE        SQL_API
 SQLAllocConnect(HENV EnvironmentHandle,
                HDBC FAR * ConnectionHandle)
@@ -75,7 +74,6 @@ SQLAllocStmt(HDBC ConnectionHandle,
    LEAVE_CONN_CS(conn);
    return ret;
 }
-#endif /* ODBCVER */
 
 RETCODE        SQL_API
 SQLBindCol(HSTMT StatementHandle,
@@ -285,28 +283,6 @@ SQLDisconnect(HDBC ConnectionHandle)
    return ret;
 }
 
-#if (ODBCVER < 0x0300)
-RETCODE        SQL_API
-SQLError(HENV EnvironmentHandle,
-        HDBC ConnectionHandle, HSTMT StatementHandle,
-        SQLCHAR *Sqlstate, SQLINTEGER *NativeError,
-        SQLCHAR *MessageText, SQLSMALLINT BufferLength,
-        SQLSMALLINT *TextLength)
-{
-   RETCODE ret;
-
-   mylog("[SQLError]");
-   if (NULL != EnvironmentHandle)
-       ENTER_ENV_CS((EnvironmentClass *) EnvironmentHandle);
-   ret = PGAPI_Error(EnvironmentHandle, ConnectionHandle, StatementHandle,
-          Sqlstate, NativeError, MessageText, BufferLength,
-       TextLength);
-   if (NULL != EnvironmentHandle)
-       LEAVE_ENV_CS((EnvironmentClass *) EnvironmentHandle);
-   return ret;
-}
-#endif /* ODBCVER */
-
 RETCODE        SQL_API
 SQLExecDirect(HSTMT StatementHandle,
              SQLCHAR *StatementText, SQLINTEGER TextLength)
@@ -353,7 +329,6 @@ SQLFetch(HSTMT StatementHandle)
 
    ENTER_STMT_CS(stmt);
    SC_clear_error(stmt);
-#if (ODBCVER >= 0x0300)
    if (SC_get_conn(stmt)->driver_version >= 0x0300)
    {
        IRDFields   *irdopts = SC_get_IRDF(stmt);
@@ -367,7 +342,6 @@ SQLFetch(HSTMT StatementHandle)
        stmt->transition_status = 6;
    }
    else
-#endif
    {
        mylog("[%s]", func);
        ret = PGAPI_Fetch(StatementHandle);
@@ -376,28 +350,6 @@ SQLFetch(HSTMT StatementHandle)
    return ret;
 }
 
-#if (ODBCVER < 0x0300) 
-RETCODE        SQL_API
-SQLFreeConnect(HDBC ConnectionHandle)
-{
-   RETCODE ret;
-
-   mylog("[SQLFreeConnect]");
-   ret = PGAPI_FreeConnect(ConnectionHandle);
-   return ret;
-}
-
-RETCODE        SQL_API
-SQLFreeEnv(HENV EnvironmentHandle)
-{
-   RETCODE ret;
-
-   mylog("[SQLFreeEnv]");
-   ret = PGAPI_FreeEnv(EnvironmentHandle);
-   return ret;
-}
-#endif /* ODBCVER */ 
-
 RETCODE        SQL_API
 SQLFreeStmt(HSTMT StatementHandle,
            SQLUSMALLINT Option)
@@ -409,23 +361,6 @@ SQLFreeStmt(HSTMT StatementHandle,
    return ret;
 }
 
-#if (ODBCVER < 0x0300)
-RETCODE        SQL_API
-SQLGetConnectOption(HDBC ConnectionHandle,
-                   SQLUSMALLINT Option, PTR Value)
-{
-   RETCODE ret;
-   ConnectionClass *conn = (ConnectionClass *) ConnectionHandle;
-
-   mylog("[SQLGetConnectOption]");
-   ENTER_CONN_CS(conn);
-   CC_clear_error(conn);
-   ret = PGAPI_GetConnectOption(ConnectionHandle, Option, Value);
-   LEAVE_CONN_CS(conn);
-   return ret;
-}
-#endif /* ODBCVER */
-
 RETCODE        SQL_API
 SQLGetCursorName(HSTMT StatementHandle,
                 SQLCHAR *CursorName, SQLSMALLINT BufferLength,
@@ -471,11 +406,10 @@ SQLGetFunctions(HDBC ConnectionHandle,
    mylog("[SQLGetFunctions]");
    ENTER_CONN_CS(conn);
    CC_clear_error(conn);
-#if (ODBCVER >= 0x0300)
+
    if (FunctionId == SQL_API_ODBC3_ALL_FUNCTIONS)
        ret = PGAPI_GetFunctions30(ConnectionHandle, FunctionId, Supported);
    else
-#endif
    {
        ret = PGAPI_GetFunctions(ConnectionHandle, FunctionId, Supported);
    }
@@ -492,7 +426,7 @@ SQLGetInfo(HDBC ConnectionHandle,
 
    ENTER_CONN_CS(conn);
    CC_clear_error(conn);
-#if (ODBCVER >= 0x0300)
+
    mylog("[SQLGetInfo(30)]");
    if ((ret = PGAPI_GetInfo(ConnectionHandle, InfoType, InfoValue,
                             BufferLength, StringLength)) == SQL_ERROR)
@@ -506,32 +440,10 @@ SQLGetInfo(HDBC ConnectionHandle,
    }
    if (SQL_ERROR == ret)
        CC_log_error("SQLGetInfo30", "", conn);
-#else
-   mylog("[SQLGetInfo]");
-   if (ret = PGAPI_GetInfo(ConnectionHandle, InfoType, InfoValue,
-           BufferLength, StringLength), SQL_ERROR == ret)
-       CC_log_error("PGAPI_GetInfo", "", conn);
-#endif
-   LEAVE_CONN_CS(conn);
-   return ret;
-}
 
-#if (ODBCVER < 0x0300)
-RETCODE        SQL_API
-SQLGetStmtOption(HSTMT StatementHandle,
-                SQLUSMALLINT Option, PTR Value)
-{
-   RETCODE ret;
-   StatementClass *stmt = (StatementClass *) StatementHandle;
-
-   mylog("[SQLGetStmtOption]");
-   ENTER_STMT_CS(stmt);
-   SC_clear_error(stmt);
-   ret = PGAPI_GetStmtOption(StatementHandle, Option, Value);
-   LEAVE_STMT_CS(stmt);
+   LEAVE_CONN_CS(conn);
    return ret;
 }
-#endif /* ODBCVER */
 
 RETCODE        SQL_API
 SQLGetTypeInfo(HSTMT StatementHandle,
@@ -627,23 +539,6 @@ SQLRowCount(HSTMT StatementHandle,
    return ret;
 }
 
-#if (ODBCVER < 0x0300)
-RETCODE        SQL_API
-SQLSetConnectOption(HDBC ConnectionHandle,
-                   SQLUSMALLINT Option, SQLUINTEGER Value)
-{
-   RETCODE ret;
-   ConnectionClass *conn = (ConnectionClass *) ConnectionHandle;
-
-   mylog("[SQLSetConnectionOption]");
-   ENTER_CONN_CS(conn);
-   CC_clear_error(conn);
-   ret = PGAPI_SetConnectOption(ConnectionHandle, Option, Value);
-   LEAVE_CONN_CS(conn);
-   return ret;
-}
-#endif /* ODBCVER */
-
 RETCODE        SQL_API
 SQLSetCursorName(HSTMT StatementHandle,
                 SQLCHAR *CursorName, SQLSMALLINT NameLength)
@@ -677,23 +572,6 @@ SQLSetParam(HSTMT StatementHandle,
    return SQL_ERROR;
 }
 
-#if (ODBCVER < 0x0300)
-RETCODE        SQL_API
-SQLSetStmtOption(HSTMT StatementHandle,
-                SQLUSMALLINT Option, SQLUINTEGER Value)
-{
-   RETCODE ret;
-   StatementClass *stmt = (StatementClass *) StatementHandle;
-
-   mylog("[SQLSetStmtOption]");
-   ENTER_STMT_CS(stmt);
-   SC_clear_error(stmt);
-   ret = PGAPI_SetStmtOption(StatementHandle, Option, Value);
-   LEAVE_STMT_CS(stmt);
-   return ret;
-}
-#endif /* ODBCVER */
-
 RETCODE        SQL_API
 SQLSpecialColumns(HSTMT StatementHandle,
                  SQLUSMALLINT IdentifierType, SQLCHAR *CatalogName,
@@ -878,49 +756,6 @@ SQLTables(HSTMT StatementHandle,
    return ret;
 }
 
-#if (ODBCVER < 0x0300)
-RETCODE        SQL_API
-SQLTransact(HENV EnvironmentHandle,
-           HDBC ConnectionHandle, SQLUSMALLINT CompletionType)
-{
-   RETCODE ret;
-
-   mylog("[SQLTransact]");
-   if (NULL != EnvironmentHandle)
-       ENTER_ENV_CS((EnvironmentClass *) EnvironmentHandle);
-   else
-       ENTER_CONN_CS((ConnectionClass *) ConnectionHandle);
-   ret = PGAPI_Transact(EnvironmentHandle, ConnectionHandle, CompletionType);
-   if (NULL != EnvironmentHandle)
-       LEAVE_ENV_CS((EnvironmentClass *) EnvironmentHandle);
-   else
-       LEAVE_CONN_CS((ConnectionClass *) ConnectionHandle);
-   return ret;
-}
-
-RETCODE        SQL_API
-SQLColAttributes(
-                HSTMT hstmt,
-                SQLUSMALLINT icol,
-                SQLUSMALLINT fDescType,
-                PTR rgbDesc,
-                SQLSMALLINT cbDescMax,
-                SQLSMALLINT *pcbDesc,
-                SQLINTEGER *pfDesc)
-{
-   RETCODE ret;
-   StatementClass *stmt = (StatementClass *) hstmt;
-
-   mylog("[SQLColAttributes]");
-   ENTER_STMT_CS(stmt);
-   SC_clear_error(stmt);
-   ret = PGAPI_ColAttributes(hstmt, icol, fDescType, rgbDesc,
-                              cbDescMax, pcbDesc, pfDesc);
-   LEAVE_STMT_CS(stmt);
-   return ret;
-}
-#endif /* ODBCVER */
-
 RETCODE        SQL_API
 SQLColumnPrivileges(
                    HSTMT hstmt,
index abe9ebe49dca0c746fda11442f2c46328b631bec..aceaf8ab8b8ba798f0888f586b6619f92c70e8b8 100644 (file)
@@ -20,7 +20,6 @@
 
 #include "psqlodbc.h"
 
-#if (ODBCVER >= 0x0300)
 #include <stdio.h>
 #include <string.h>
 
@@ -633,4 +632,4 @@ SQLBulkOperations(HSTMT hstmt, SQLSMALLINT operation)
    LEAVE_STMT_CS(stmt);
    return ret;
 }  
-#endif /* ODBCVER >= 0x0300 */
+
index d0bdc89913f740cf1a92c472d665fa3baac89e9c..5388304fc0054f4197acac5de5cc0720f1f745f9 100644 (file)
@@ -14,7 +14,6 @@
 
 #include "psqlodbc.h"
 
-#if (ODBCVER >= 0x0300)
 #include <stdio.h>
 #include <string.h>
 
@@ -349,4 +348,3 @@ RETCODE SQL_API SQLGetDiagFieldW(
    return ret;
 }
 
-#endif /* ODBCVER >= 0x0300 */
index fd62b05db0bf9b2eeab3fb1e60ae8a0942d18658..b4270ddc4a3ac9a3e83ee8612a673e4be0eb4343 100644 (file)
@@ -263,7 +263,7 @@ RETCODE  SQL_API SQLGetInfoW(HDBC ConnectionHandle,
    ENTER_CONN_CS((ConnectionClass *) ConnectionHandle);
    conn->unicode = 1;
    CC_clear_error(conn);
-#if (ODBCVER >= 0x0300)
+
    mylog("[SQLGetInfoW(30)]");
    if ((ret = PGAPI_GetInfo(ConnectionHandle, InfoType, InfoValue,
                BufferLength, StringLength)) == SQL_ERROR)
@@ -277,13 +277,7 @@ RETCODE  SQL_API SQLGetInfoW(HDBC ConnectionHandle,
    }
    if (SQL_ERROR == ret)
        CC_log_error("SQLGetInfoW(30)", "", conn);
-#else
-   mylog("[SQLGetInfoW]");
-   ret = PGAPI_GetInfo(ConnectionHandle, InfoType, InfoValue,
-               BufferLength, StringLength);
-   if (SQL_ERROR == ret)
-       CC_log_error("SQLGetInfoW", "", conn);
-#endif
+
    LEAVE_CONN_CS((ConnectionClass *) ConnectionHandle);
    return ret;
 }
diff --git a/parse.c b/parse.c
index 03226fbfa0775e1efa0cbeedff85467d2fe7c4f3..fa4d73f5199b72bd668575bb768cd414528d23e7 100644 (file)
--- a/parse.c
+++ b/parse.c
@@ -245,11 +245,8 @@ getColInfo(COL_INFO *col_info, FIELD_INFO *fi, int k)
    char       *str;
    Int2    reserved_cols;
 
-#if (ODBCVER >= 0x0300)
    reserved_cols = 18;
-#else
-   reserved_cols = 12;
-#endif /* ODBCVER */
+
    if (fi->name[0] == '\0')
        strcpy(fi->name, QR_get_value_manual(col_info->result, k, 3));
 
index 32c5a8df79476048e0afb4c1a3f211a7ed6addb6..2a72938fad10059ec6a24507467acc90eb3495dd 100644 (file)
--- a/pgapi30.c
+++ b/pgapi30.c
@@ -16,7 +16,6 @@
 
 #include "psqlodbc.h"
 
-#if (ODBCVER >= 0x0300)
 #include <stdio.h>
 #include <string.h>
 
@@ -1846,4 +1845,4 @@ PGAPI_BulkOperations(HSTMT hstmt, SQLSMALLINT operationX)
    return ret;
 }  
 #endif /* DRIVER_CURSOR_IMPLEMENT */
-#endif /* ODBCVER >= 0x0300 */
+
index 484f6505a4daf19bf056c2f8c77650916c1758a8..825e0e08161f69e0c04c5410f755718d214f4e7e 100644 (file)
@@ -267,7 +267,6 @@ RETCODE SQL_API PGAPI_SetScrollOptions(
                       SDWORD crowKeyset,
                       UWORD crowRowset);
 
-#if (ODBCVER >= 0x0300)
 RETCODE SQL_API PGAPI_GetDiagRec(SQLSMALLINT HandleType, SQLHANDLE Handle,
        SQLSMALLINT RecNumber, SQLCHAR *Sqlstate,
        SQLINTEGER *NativeError, SQLCHAR *MessageText,
@@ -305,5 +304,5 @@ RETCODE SQL_API PGAPI_DescError(SQLHDESC DescriptorHandle, SWORD RecNumber,
            SQLCHAR *Sqlstate, SQLINTEGER *NativeError,
            SQLCHAR *MessageText, SQLSMALLINT BufferLength,
            SQLSMALLINT *TextLength, UWORD flag);
-#endif /* ODBCVER */
+           
 #endif   /* define_PG_API_FUNC_H__ */
index caab8ebcff8bb69e72014082049a36c101ae27ff..8e2ff75e2613bc945b48b7643c919e8c377b50ff 100644 (file)
--- a/pgtypes.c
+++ b/pgtypes.c
@@ -78,9 +78,7 @@ Int2      sqlTypes[] = {
    /* SQL_BINARY, -- Commented out because VarBinary is more correct. */
    SQL_BIT,
    SQL_CHAR,
-#if (ODBCVER >= 0x0300)
    SQL_TYPE_DATE,
-#endif /* ODBCVER */
    SQL_DATE,
    SQL_DECIMAL,
    SQL_DOUBLE,
@@ -91,10 +89,8 @@ Int2     sqlTypes[] = {
    SQL_NUMERIC,
    SQL_REAL,
    SQL_SMALLINT,
-#if (ODBCVER >= 0x0300)
    SQL_TYPE_TIME,
    SQL_TYPE_TIMESTAMP,
-#endif /* ODBCVER */
    SQL_TIME,
    SQL_TIMESTAMP,
    SQL_TINYINT,
@@ -106,12 +102,12 @@ Int2      sqlTypes[] = {
    0
 };
 
-#if (ODBCVER >= 0x0300) && defined(ODBCINT64)
+#ifdef ODBCINT64
 #define    ALLOWED_C_BIGINT    SQL_C_SBIGINT
 /* #define ALLOWED_C_BIGINT    SQL_C_CHAR */ /* Delphi should be either ? */
 #else
 #define    ALLOWED_C_BIGINT    SQL_C_CHAR
-#endif
+#endif /* ODBCINT64 */
 
 Int4
 sqltype_to_pgtype(StatementClass *stmt, SWORD fSqlType)
@@ -138,11 +134,7 @@ sqltype_to_pgtype(StatementClass *stmt, SWORD fSqlType)
            pgType = ci->drivers.bools_as_char ? PG_TYPE_CHAR : PG_TYPE_BOOL;
            break;
 
-#if (ODBCVER >= 0x0300)
        case SQL_TYPE_DATE:
-#else
-       case SQL_DATE:
-#endif /* ODBCVER */
            pgType = PG_TYPE_DATE;
            break;
 
@@ -189,16 +181,12 @@ sqltype_to_pgtype(StatementClass *stmt, SWORD fSqlType)
            break;
 
        case SQL_TIME:
-#if (ODBCVER >= 0x0300)
        case SQL_TYPE_TIME:
-#endif /* ODBCVER */
            pgType = PG_TYPE_TIME;
            break;
 
        case SQL_TIMESTAMP:
-#if (ODBCVER >= 0x0300)
        case SQL_TYPE_TIMESTAMP:
-#endif /* ODBCVER */
            pgType = PG_TYPE_DATETIME;
            break;
 
@@ -240,9 +228,8 @@ pgtype_to_concise_type(StatementClass *stmt, Int4 type, int col)
 {
    ConnectionClass *conn = SC_get_conn(stmt);
    ConnInfo    *ci = &(conn->connInfo);
-#if (ODBCVER >= 0x0300)
+
    EnvironmentClass *env = (EnvironmentClass *) (conn->henv);
-#endif /* ODBCVER */
 
    switch (type)
    {
@@ -292,11 +279,8 @@ pgtype_to_concise_type(StatementClass *stmt, Int4 type, int col)
                return ci->int8_as;
            if (conn->ms_jet) 
                return SQL_NUMERIC; /* maybe a little better than SQL_VARCHAR */
-#if (ODBCVER >= 0x0300)
+           
            return SQL_BIGINT;
-#else
-           return SQL_VARCHAR;
-#endif /* ODBCVER */
 
        case PG_TYPE_NUMERIC:
            return SQL_NUMERIC;
@@ -306,25 +290,19 @@ pgtype_to_concise_type(StatementClass *stmt, Int4 type, int col)
        case PG_TYPE_FLOAT8:
            return SQL_FLOAT;
        case PG_TYPE_DATE:
-#if (ODBCVER >= 0x0300)
            if (EN_is_odbc3(env))
                return SQL_TYPE_DATE;
-#endif /* ODBCVER */
            return SQL_DATE;
        case PG_TYPE_TIME:
-#if (ODBCVER >= 0x0300)
            if (EN_is_odbc3(env))
                return SQL_TYPE_TIME;
-#endif /* ODBCVER */
            return SQL_TIME;
        case PG_TYPE_ABSTIME:
        case PG_TYPE_DATETIME:
        case PG_TYPE_TIMESTAMP_NO_TMZONE:
        case PG_TYPE_TIMESTAMP:
-#if (ODBCVER >= 0x0300)
            if (EN_is_odbc3(env))
                return SQL_TYPE_TIMESTAMP;
-#endif /* ODBCVER */
            return SQL_TIMESTAMP;
        case PG_TYPE_MONEY:
            return SQL_FLOAT;
@@ -353,12 +331,10 @@ pgtype_to_sqldesctype(StatementClass *stmt, Int4 type, int col)
 
    switch (rettype = pgtype_to_concise_type(stmt, type, col))
    {
-#if (ODBCVER >= 0x0300)
        case SQL_TYPE_DATE:
        case SQL_TYPE_TIME:
        case SQL_TYPE_TIMESTAMP:
            return SQL_DATETIME;
-#endif /* ODBCVER */
    }
    return rettype;
 }
@@ -368,14 +344,12 @@ pgtype_to_datetime_sub(StatementClass *stmt, Int4 type)
 {
    switch (pgtype_to_concise_type(stmt, type, PG_STATIC))
    {
-#if (ODBCVER >= 0x0300)
        case SQL_TYPE_DATE:
            return SQL_CODE_DATE;
        case SQL_TYPE_TIME:
            return SQL_CODE_TIME;
        case SQL_TYPE_TIMESTAMP:
            return SQL_CODE_TIMESTAMP;
-#endif /* ODBCVER */
    }
    return -1;
 }
@@ -386,17 +360,15 @@ pgtype_to_ctype(StatementClass *stmt, Int4 type)
 {
    ConnectionClass *conn = SC_get_conn(stmt);
    ConnInfo    *ci = &(conn->connInfo);
-#if (ODBCVER >= 0x0300)
+
    EnvironmentClass *env = (EnvironmentClass *) (conn->henv);
-#endif /* ODBCVER */
+
 
    switch (type)
    {
        case PG_TYPE_INT8:
-#if (ODBCVER >= 0x0300)
            if (!conn->ms_jet)
                return ALLOWED_C_BIGINT;
-#endif /* ODBCVER */
            return SQL_C_CHAR;
        case PG_TYPE_NUMERIC:
            return SQL_C_CHAR;
@@ -411,25 +383,19 @@ pgtype_to_ctype(StatementClass *stmt, Int4 type)
        case PG_TYPE_FLOAT8:
            return SQL_C_DOUBLE;
        case PG_TYPE_DATE:
-#if (ODBCVER >= 0x0300)
            if (EN_is_odbc3(env))
                return SQL_C_TYPE_DATE;
-#endif /* ODBCVER */
            return SQL_C_DATE;
        case PG_TYPE_TIME:
-#if (ODBCVER >= 0x0300)
            if (EN_is_odbc3(env))
                return SQL_C_TYPE_TIME;
-#endif /* ODBCVER */
            return SQL_C_TIME;
        case PG_TYPE_ABSTIME:
        case PG_TYPE_DATETIME:
        case PG_TYPE_TIMESTAMP_NO_TMZONE:
        case PG_TYPE_TIMESTAMP:
-#if (ODBCVER >= 0x0300)
            if (EN_is_odbc3(env))
                return SQL_C_TYPE_TIMESTAMP;
-#endif /* ODBCVER */
            return SQL_C_TIMESTAMP;
        case PG_TYPE_MONEY:
            return SQL_C_FLOAT;
@@ -705,10 +671,7 @@ getCharColumnSize(StatementClass *stmt, Int4 type, int col, int handle_unknown_s
            case PG_TYPE_BPCHAR:
                if (conn->unicode || conn->ms_jet)
                    return attlen;
-#if (ODBCVER >= 0x0300)
                return attlen;
-#endif /* ODBCVER */
-               return p;
        }
    }
 
@@ -1430,14 +1393,9 @@ sqltype_to_default_ctype(const ConnectionClass *conn, Int2 sqltype)
        case SQL_LONGVARCHAR:
        case SQL_DECIMAL:
        case SQL_NUMERIC:
-#if (ODBCVER < 0x0300)
-       case SQL_BIGINT:
-           return SQL_C_CHAR;
-#else
            return SQL_C_CHAR;
        case SQL_BIGINT:
            return ALLOWED_C_BIGINT;
-#endif
        case SQL_WCHAR:
        case SQL_WVARCHAR:
        case SQL_WLONGVARCHAR:
@@ -1478,7 +1436,6 @@ sqltype_to_default_ctype(const ConnectionClass *conn, Int2 sqltype)
        case SQL_TIMESTAMP:
            return SQL_C_TIMESTAMP;
 
-#if (ODBCVER >= 0x0300)
        case SQL_TYPE_DATE:
            return SQL_C_TYPE_DATE;
 
@@ -1487,7 +1444,6 @@ sqltype_to_default_ctype(const ConnectionClass *conn, Int2 sqltype)
 
        case SQL_TYPE_TIMESTAMP:
            return SQL_C_TYPE_TIMESTAMP;
-#endif /* ODBCVER */
 
        default:
            /* should never happen */
@@ -1531,21 +1487,15 @@ ctype_length(Int2 ctype)
            return sizeof(UCHAR);
 
        case SQL_C_DATE:
-#if (ODBCVER >= 0x0300)
        case SQL_C_TYPE_DATE:
-#endif /* ODBCVER */
            return sizeof(DATE_STRUCT);
 
        case SQL_C_TIME:
-#if (ODBCVER >= 0x0300)
        case SQL_C_TYPE_TIME:
-#endif /* ODBCVER */
            return sizeof(TIME_STRUCT);
 
        case SQL_C_TIMESTAMP:
-#if (ODBCVER >= 0x0300)
        case SQL_C_TYPE_TIMESTAMP:
-#endif /* ODBCVER */
            return sizeof(TIMESTAMP_STRUCT);
 
        case SQL_C_BINARY:
index 6d8a913dce85d7a8ea7e8fe24c622d2fbabab17b..e83671767a7d1e987bed3a15233baa6f73121f05 100644 (file)
@@ -5,7 +5,7 @@
  *
  * Comments:       See "notice.txt" for copyright and license information.
  *
- * $Id: psqlodbc.h,v 1.86 2004/07/19 15:20:46 dpage Exp $
+ * $Id: psqlodbc.h,v 1.87 2004/07/21 12:29:59 dpage Exp $
  *
  */
 
@@ -27,7 +27,7 @@
 /* Must come before sql.h */
 #ifndef ODBCVER
 #define ODBCVER                        0x0300
-#endif   /* ODBCVER_REP */
+#endif   /* ODBCVER */
 
 #define NAMEDATALEN_V72                    32
 #define NAMEDATALEN_V73                    64
index 5d081e1a622c6887bd1e39eb60b07e9b08335810..ac1b52df4275ae30c94b720bf483817a21d5fa3b 100644 (file)
--- a/results.c
+++ b/results.c
@@ -205,7 +205,7 @@ PGAPI_DescribeCol(
    SC_clear_error(stmt);
 
    irdflds = SC_get_IRDF(stmt);
-#if (ODBCVER >= 0x0300)
+
    if (0 == icol) /* bookmark column */
    {
        SQLSMALLINT fType = stmt->options.use_bookmarks == SQL_UB_VARIABLE ? SQL_BINARY : SQL_INTEGER;
@@ -224,7 +224,7 @@ PGAPI_DescribeCol(
            *pfNullable = SQL_NO_NULLS;
        return SQL_SUCCESS;
    }
-#endif /* ODBCVER */
+
    /*
     * Dont check for bookmark column. This is the responsibility of the
     * driver manager.
@@ -430,7 +430,6 @@ PGAPI_ColAttributes(
     * is ignored anyway, so it may be 0.
     */
 
-#if (ODBCVER >= 0x0300)
    if (0 == icol && SQL_DESC_COUNT != fDescType) /* bookmark column */
    {
        switch (fDescType)
@@ -446,7 +445,7 @@ PGAPI_ColAttributes(
        }
        return SQL_SUCCESS;
    }
-#endif /* ODBCVER */
+
    col_idx = icol - 1;
 
    /* atoi(ci->unknown_sizes); */
@@ -471,11 +470,8 @@ PGAPI_ColAttributes(
         * Column Count is a special case.  The Column number is ignored
         * in this case.
         */
-#if (ODBCVER >= 0x0300)
+
        if (fDescType == SQL_DESC_COUNT)
-#else
-       if (fDescType == SQL_COLUMN_COUNT)
-#endif /* ODBCVER */
        {
            if (pfDesc)
                *pfDesc = cols;
@@ -521,11 +517,7 @@ PGAPI_ColAttributes(
         * Column Count is a special case.  The Column number is ignored
         * in this case.
         */
-#if (ODBCVER >= 0x0300)
        if (fDescType == SQL_DESC_COUNT)
-#else
-       if (fDescType == SQL_COLUMN_COUNT)
-#endif /* ODBCVER */
        {
            if (pfDesc)
                *pfDesc = cols;
@@ -584,11 +576,7 @@ inolog("AUTO_INCREMENT=%d\n", value);
            }
            /* otherwise same as column name -- FALL THROUGH!!! */
 
-#if (ODBCVER >= 0x0300)
        case SQL_DESC_NAME:
-#else
-       case SQL_COLUMN_NAME:
-#endif /* ODBCVER */
            p = fi ? (fi->alias[0] ? fi->alias : fi->name) : QR_get_fieldname(SC_get_Curres(stmt), col_idx);
 
            mylog("PGAPI_ColAttr: COLUMN_NAME = '%s'\n", p);
@@ -607,11 +595,7 @@ inolog("AUTO_INCREMENT=%d\n", value);
 inolog("COLUMN_MONEY=%d\n", value);
            break;
 
-#if (ODBCVER >= 0x0300)
        case SQL_DESC_NULLABLE:
-#else
-       case SQL_COLUMN_NULLABLE:
-#endif /* ODBCVER */
            value = fi ? fi->nullable : pgtype_nullable(stmt, field_type);
 inolog("COLUMN_NULLABLE=%d\n", value);
            break;
@@ -685,7 +669,7 @@ inolog("COLUMN_TYPE=%d\n", value);
 
            mylog("PGAPI_ColAttr: UPDATEABLE = %d\n", value);
            break;
-#if (ODBCVER >= 0x0300)
+
        case SQL_DESC_BASE_COLUMN_NAME:
 
            p = fi ? fi->name : QR_get_fieldname(SC_get_Curres(stmt), col_idx);
@@ -741,7 +725,7 @@ inolog("COLUMN_TYPE=%d\n", value);
        case SQL_DESC_UNNAMED:
            value = (fi && !fi->name[0] && !fi->alias[0]) ? SQL_UNNAMED : SQL_NAMED;
            break;
-#endif /* ODBCVER */
+
        case 1212: /* SQL_CA_SS_COLUMN_KEY ? */
            SC_set_error(stmt, STMT_OPTION_NOT_FOR_THE_DRIVER, "this request may be for MS SQL Server");
            return SQL_ERROR;
@@ -840,9 +824,7 @@ PGAPI_GetData(
        switch (fCType)
        {
            case SQL_C_BOOKMARK:
-#if (ODBCVER >= 0x0300)
            case SQL_C_VARBOOKMARK:
-#endif /* ODBCVER */
                break;
            default:
 inolog("GetData Column 0 is type %d not of type SQL_C_BOOKMARK", fCType);
@@ -2383,7 +2365,7 @@ pos_update_callback(RETCODE retcode, void *para)
        else
            s->res->keyset[s->global_ridx].status |= (SQL_ROW_UPDATED  | CURS_SELF_UPDATED);
    }
-#if (ODBCVER >= 0x0300)
+
    if (s->irdflds->rowStatusArray)
    {
        switch (ret)
@@ -2395,7 +2377,6 @@ pos_update_callback(RETCODE retcode, void *para)
                s->irdflds->rowStatusArray[s->irow] = ret;
        }
    }
-#endif /* ODBCVER */
 
    return ret;
 }
@@ -2637,7 +2618,7 @@ SC_pos_delete(StatementClass *stmt,
        else
            res->keyset[global_ridx].status |= (SQL_ROW_DELETED | CURS_SELF_DELETED);
    }
-#if (ODBCVER >= 0x0300)
+
    if (irdflds->rowStatusArray)
    {
        switch (ret)
@@ -2649,7 +2630,7 @@ SC_pos_delete(StatementClass *stmt,
                irdflds->rowStatusArray[irow] = ret;
        }
    }
-#endif /* ODBCVER */
+
    return ret;
 }
 
@@ -2755,7 +2736,7 @@ pos_add_callback(RETCODE retcode, void *para)
        else
            s->res->keyset[global_ridx].status |= (SQL_ROW_ADDED | CURS_SELF_ADDED);
    }
-#if (ODBCVER >= 0x0300)
+
    if (s->irdflds->rowStatusArray)
    {
        switch (ret)
@@ -2767,7 +2748,6 @@ pos_add_callback(RETCODE retcode, void *para)
                s->irdflds->rowStatusArray[s->irow] = ret;
        }
    }
-#endif /* ODBCVER */
 
    return ret;
 }
@@ -2912,9 +2892,8 @@ RETCODE
 SC_pos_refresh(StatementClass *stmt, UWORD irow , UDWORD global_ridx)
 {
    RETCODE ret;
-#if (ODBCVER >= 0x0300)
    IRDFields   *irdflds = SC_get_IRDF(stmt);
-#endif /* ODBCVER */
+
    /* save the last_fetch_count */
    int     last_fetch = stmt->last_fetch_count;
    int     last_fetch2 = stmt->last_fetch_count_include_ommitted;
@@ -2930,7 +2909,7 @@ SC_pos_refresh(StatementClass *stmt, UWORD irow , UDWORD global_ridx)
    stmt->last_fetch_count = last_fetch;
    stmt->last_fetch_count_include_ommitted = last_fetch2;
    stmt->bind_row = bind_save;
-#if (ODBCVER >= 0x0300)
+
    if (irdflds->rowStatusArray)
    {
        switch (ret)
@@ -2947,7 +2926,6 @@ SC_pos_refresh(StatementClass *stmt, UWORD irow , UDWORD global_ridx)
                break;
        }
    }
-#endif /* ODBCVER */
 
    return SQL_SUCCESS;
 }
@@ -3009,10 +2987,9 @@ RETCODE spos_callback(RETCODE retcode, void *para)
            continue;
        }   
        s->ridx = s->nrow;
-#if (ODBCVER >= 0x0300)
+
        if (0 != s->irow || !s->opts->row_operation_ptr || s->opts->row_operation_ptr[s->nrow] == SQL_ROW_PROCEED)
        {
-#endif /* ODBCVER */
            switch (s->fOption)
            {
 #ifdef DRIVER_CURSOR_IMPLEMENT
@@ -3040,9 +3017,7 @@ RETCODE spos_callback(RETCODE retcode, void *para)
                return ret;
            }
            s->processed++;
-#if (ODBCVER >= 0x0300)
        }
-#endif /* ODBCVER */
        if (SQL_ERROR != ret)
            s->nrow++;
    }
@@ -3115,11 +3090,8 @@ PGAPI_SetPos(
        return SQL_ERROR;
    }
 
-#if (ODBCVER >= 0x0300)
    rowsetSize = (s.stmt->transition_status == 7 ? s.opts->size_of_rowset_odbc2 : s.opts->size_of_rowset);
-#else
-   rowsetSize = s.opts->size_of_rowset_odbc2;
-#endif /* ODBCVER */
+
    if (s.irow == 0) /* bulk operation */
    {
        if (SQL_POSITION == s.fOption)
@@ -3186,10 +3158,9 @@ PGAPI_SetPos(
            continue;
        }
        ridx = nrow;
-#if (ODBCVER >= 0x0300)
+       
        if (0 != irow || !opts->row_operation_ptr || opts->row_operation_ptr[nrow] == SQL_ROW_PROCEED)
        {
-#endif /* ODBCVER */
            switch (fOption)
            {
 #ifdef DRIVER_CURSOR_IMPLEMENT
@@ -3212,9 +3183,7 @@ PGAPI_SetPos(
            processed++;
            if (SQL_ERROR == ret)
                break;
-#if (ODBCVER >= 0x0300)
        }
-#endif /* ODBCVER */
        nrow++;
    }
    if (SQL_ERROR == ret)
diff --git a/setup.c b/setup.c
index 70d63d7aab01fa7cb5ae260efc8c6381ff4f1f95..2ed8d0a060a6d6030304da368a416f0a15f71984 100644 (file)
--- a/setup.c
+++ b/setup.c
@@ -399,9 +399,8 @@ SetDSNAttributes(HWND hwndParent, LPSETUPDLG lpsetupdlg, DWORD *errcode)
        DWORD   err = SQL_ERROR;
        char    szMsg[SQL_MAX_MESSAGE_LENGTH];
 
-#if (ODBCVER >= 0x0300)
        ret = SQLInstallerError(1, &err, szMsg, sizeof(szMsg), NULL);
-#endif /* ODBCVER */
+
        if (hwndParent)
        {
            char        szBuf[MAXPGPATH];
index a92b07b293df1d4ba1f389c319cf564d4259e3ab..436aef6cd26c0de43b9581c9687904d4a94c168b 100644 (file)
@@ -219,9 +219,7 @@ InitializeStatementOptions(StatementOptions *opt)
    opt->cursor_type = SQL_CURSOR_FORWARD_ONLY;
    opt->retrieve_data = SQL_RD_ON;
    opt->use_bookmarks = SQL_UB_OFF;
-#if (ODBCVER >= 0x0300)
    opt->metadata_id = SQL_FALSE;
-#endif /* ODBCVER */
 }
 
 
@@ -1370,11 +1368,8 @@ SC_log_error(const char *func, const char *desc, const StatementClass *self)
        const APDFields *apdopts = SC_get_APDF(self);
        int rowsetSize;
 
-#if (ODBCVER >= 0x0300)
        rowsetSize = (7 == self->transition_status ? opts->size_of_rowset_odbc2 : opts->size_of_rowset);
-#else
-       rowsetSize = opts->size_of_rowset_odbc2;
-#endif /* ODBCVER */
+
        qlog("STATEMENT ERROR: func=%s, desc='%s', errnum=%d, errmsg='%s'\n", func, desc, self->__error_number, nullcheck(self->__error_message));
        mylog("STATEMENT ERROR: func=%s, desc='%s', errnum=%d, errmsg='%s'\n", func, desc, self->__error_number, nullcheck(self->__error_message));
        qlog("                 ------------------------------------------------------------\n");
index f43dd4bea7e70c2d6aba4b602a3f763694daef93..d1282c952b2aff5b5de9d9b291aa91d08b11d8e0 100644 (file)
@@ -252,11 +252,7 @@ struct StatementClass_
 #define    SC_get_errornumber(a) (a->__error_number)
 #define    SC_set_errornumber(a, n) (a->__error_number = n)
 #define    SC_get_errormsg(a) (a->__error_message)
-#if (ODBCVER >= 0x0300)
 #define    SC_is_lower_case(a, b) (a->options.metadata_id, b->connInfo.lower_case_identifier)
-#else
-#define    SC_is_lower_case(a, b) (b->connInfo.lower_case_identifier)
-#endif /* ODBCVER */
 
 #define    SC_MALLOC_return_with_error(t, tp, s, a, m, r) \
    { \