Fix a SQLDescribeCol(SQLColAttribute) bug.
authorHiroshi Inoue <inoue@tpf.co.jp>
Tue, 20 Jun 2006 13:42:42 +0000 (13:42 +0000)
committerHiroshi Inoue <inoue@tpf.co.jp>
Tue, 20 Jun 2006 13:42:42 +0000 (13:42 +0000)
odbcapi30w.c
parse.c
version.h

index 136909ce92c7fed8fb3319bbbe2f20f5596ab3cc..0bb966520c9e4f93cc61f7352cb5b09487a1cb71 100644 (file)
@@ -370,7 +370,7 @@ RETCODE SQL_API SQLGetDiagFieldW(
                if (SQL_SUCCESS == ret && blen * WCLEN >= cbDiagInfoMax)
                {
                    ret = SQL_SUCCESS_WITH_INFO;
-               SC_set_error(stmt, STMT_TRUNCATED, "The buffer was too small for the rgbDiagInfo.", func);
+                   SC_set_error(stmt, STMT_TRUNCATED, "The buffer was too small for the rgbDiagInfo.", func);
                }
                if (pcbDiagInfo)
                    *pcbDiagInfo = blen * WCLEN;
diff --git a/parse.c b/parse.c
index b66d4fff9a6d0e7579d9ac1e701e814793d33010..008c209f050873057dffa50344f043ae3e598bc2 100644 (file)
--- a/parse.c
+++ b/parse.c
@@ -288,25 +288,26 @@ searchColInfo(COL_INFO *col_info, FIELD_INFO *fi)
                cmp, attnum;
    char       *col;
 
-inolog("searchColInfo %d\n", QR_get_num_cached_tuples(col_info->result));
+inolog("searchColInfo num_cols=%d col=%s\n", QR_get_num_cached_tuples(col_info->result), PRINT_NAME(fi->column_name));
    if (fi->attnum < 0)
        return FALSE;
    for (k = 0; k < QR_get_num_cached_tuples(col_info->result); k++)
    {
-       attnum = atoi(QR_get_value_backend_row(col_info->result, k, COLUMNS_PHYSICAL_NUMBER));
-       col = QR_get_value_backend_row(col_info->result, k, COLUMNS_COLUMN_NAME);
-inolog("searchColInfo %d col=%s\n", k, col);
-       if (0 != attnum)
+       if (fi->attnum > 0)
        {
-           if (fi->attnum == attnum)
+           attnum = atoi(QR_get_value_backend_row(col_info->result, k, COLUMNS_PHYSICAL_NUMBER));
+inolog("searchColInfo %d attnum=%d\n", k, attnum);
+           if (attnum == fi->attnum)
            {
                getColInfo(col_info, fi, k);
-               mylog("PARSE: searchColInfo by attnum\n");
+               mylog("PARSE: searchColInfo by attnum=%d\n", attnum);
                return TRUE;
            }
        }
        else if (NAME_IS_VALID(fi->column_name))
        {
+           col = QR_get_value_backend_row(col_info->result, k, COLUMNS_COLUMN_NAME);
+inolog("searchColInfo %d col=%s\n", k, col);
            if (fi->dquote)
                cmp = strcmp(col, GET_NAME(fi->column_name));
            else
@@ -550,7 +551,10 @@ static BOOL ColAttSet(StatementClass *stmt, TABLE_INFO *rti)
            attid = (Int2) QR_get_attid(res, i);
            wfi->attnum = attid;
            if (searchColInfo(col_info, wfi))
+           {
+               STR_TO_NAME(wfi->column_alias, QR_get_fieldname(res, i));
                wfi->updatable = updatable;
+           }
            else
            {
                xxxxx(wfi, res, i);
index cd29f7a20bb33512ba5e39cc0927bb660e5a36f2..1709db87c6447bafd8bf1e8872c168cdc3a582f7 100644 (file)
--- a/version.h
+++ b/version.h
@@ -11,6 +11,6 @@
 
 #define POSTGRESDRIVERVERSION      "08.02.0005"
 #define POSTGRES_RESOURCE_VERSION  "08.02.0005\0"
-#define PG_DRVFILE_VERSION     8,2,0,05 
+#define PG_DRVFILE_VERSION     8,2,0,05
 
 #endif