Re: Patch for Bug No: 1254

From: "Dave Page" <dpage(at)vale-housing(dot)co(dot)uk>
To: "Anoop Kumar" <anoopk(at)pervasive-postgres(dot)com>, <pgsql-odbc(at)postgresql(dot)org>
Subject: Re: Patch for Bug No: 1254
Date: 2005-04-25 08:11:23
Message-ID: E7F85A1B5FF8D44C8A1AF6885BC9A0E472C475@ratbert.vale-housing.co.uk
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-odbc

Thanks Anoop, patch applied, bug closed.

Regards, Dave.

> -----Original Message-----
> From: pgsql-odbc-owner(at)postgresql(dot)org
> [mailto:pgsql-odbc-owner(at)postgresql(dot)org] On Behalf Of Anoop Kumar
> Sent: 21 April 2005 10:09
> To: pgsql-odbc(at)postgresql(dot)org
> Subject: [ODBC] Patch for Bug No: 1254
>
> I am sending a patch for the following bug:
>
> http://gborg.postgresql.org/project/psqlodbc/bugs/bugupdate.php?1254
>
> The patch was tested on postgresql (ver. 8.0.1), psqlodbc (ver.
> 08.00.0101), Windows XP (client side) and Windows XP with SP2 (Server
> end)/Fedora Core 3 (Server end).
>
>
> Regards
>
> Anoop
>
> --------------------------------------------------------------
> ----------
> -----------------------------------------
> Index: info.c
> ===================================================================
> RCS file: /usr/local/cvsroot/psqlodbc/info.c,v
> retrieving revision 1.1.1.1
> diff -u -r1.1.1.1 info.c
> --- info.c 21 Apr 2005 05:27:13 -0000 1.1.1.1
> +++ info.c 21 Apr 2005 05:29:28 -0000
> @@ -1217,6 +1217,7 @@
> table_types[MAX_INFO_STRING];
> char show_system_tables,
> show_regular_tables,
> + remarks[254], //Added for holding Table
> Description, if any.
> show_views;
> char regular_table,
> view,
> @@ -1254,9 +1255,18 @@
> if (conn->schema_support)
> {
> /* view is represented by its relkind since 7.1 */
> - strcpy(tables_query, "select relname, nspname, relkind"
> - " from pg_catalog.pg_class c, pg_catalog.pg_namespace
> n");
> - strcat(tables_query, " where relkind in ('r', 'v')");
> +
> + /* Previously it was:
> + * strcpy(tables_query, "select relname, nspname,
> relkind"
> + * from pg_catalog.pg_class c, pg_catalog.pg_namespace
> n");
> + * strcat(tables_query, " where relkind in ('r', 'v')");
> + * Modified query to retrieve the description of the
> table:
> + */
> +
> + strcpy(tables_query,"SELECT DISTINCT tt.relname,
> tt.nspname, tt.relkind, COALESCE(d.description,'') from");
> + strcat(tables_query," (SELECT c.oid as oid, c.tableoid as
> tableoid, n.nspname as nspname, c.relname, c.relkind");
> + strcat(tables_query," FROM pg_catalog.pg_class c LEFT
> JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace");
> + strcat(tables_query," WHERE c.relkind IN ('r', 'v') ");
> }
> else if (PG_VERSION_GE(conn, 7.1))
> {
> @@ -1367,7 +1377,16 @@
> strcat(tables_query, " and relname !~ '^xinv[0-9]+'");
>
> if (conn->schema_support)
> - strcat(tables_query, " and n.oid = relnamespace order by
> nspname, relname");
> + {
> + /* Previously it was:
> + * strcat(tables_query, " and n.oid = relnamespace order
> by nspname, relname");
> + * Modified query to retrieve the description of the
> table:
> + */
> +
> + strcat(tables_query," ) AS tt LEFT JOIN
> pg_catalog.pg_description d ");
> + strcat(tables_query," ON (tt.oid = d.objoid AND
> tt.tableoid = d.classoid AND d.objsubid = 0)");
> + strcat(tables_query," order by nspname, relname");
> + }
> else
> strcat(tables_query, " and usesysid = relowner order by
> relname");
>
> @@ -1427,7 +1446,15 @@
> SC_error_copy(stmt, tbl_stmt);
> goto cleanup;
> }
> -
> + /* Binds the description column to variable 'remarks' */
> + result = PGAPI_BindCol(htbl_stmt, 4, internal_asis_type,
> + remarks, 254,
> NULL);
> + if ((result != SQL_SUCCESS) && (result !=
> SQL_SUCCESS_WITH_INFO))
> + {
> + SC_error_copy(stmt, tbl_stmt);
> + goto cleanup;
> + }
> +
> if (res = QR_Constructor(), !res)
> {
> SC_set_error(stmt, STMT_NO_MEMORY_ERROR, "Couldn't
> allocate memory for PGAPI_Tables result.");
> @@ -1525,7 +1552,7 @@
> set_tuplefield_null(&row->tuple[1]);
> set_tuplefield_string(&row->tuple[2],
> table_name);
> set_tuplefield_string(&row->tuple[3], systable ?
> "SYSTEM TABLE" : (view ? "VIEW" : "TABLE"));
> - set_tuplefield_string(&row->tuple[4], "");
> + set_tuplefield_string(&row->tuple[4], remarks);
> /*** set_tuplefield_string(&row->tuple[4],
> "TABLE"); ***/
>
> QR_add_tuple(res, row);
>
> --------------------------------------------------------------
> ----------
> ---------------------------------------------
>
> ---------------------------(end of
> broadcast)---------------------------
> TIP 7: don't forget to increase your free space map settings
>

Browse pgsql-odbc by date

  From Date Subject
Next Message Ben Trewern 2005-04-25 09:07:41 Re: Another post 7.3.02 bug Was: ODBC and encodings problem
Previous Message Petr Odložil 2005-04-25 06:20:27 Re: ForwardOnly ?