Skip site navigation (1) Skip section navigation (2)

Patch for Bug No: 1254

From: "Anoop Kumar" <anoopk(at)pervasive-postgres(dot)com>
To: <pgsql-odbc(at)postgresql(dot)org>
Subject: Patch for Bug No: 1254
Date: 2005-04-21 09:09:16
Message-ID: 02767D4600E59A4487233B23AEF5C5991F1733@blrmail1.aus.pervasive.com (view raw or flat)
Thread:
Lists: pgsql-odbc
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);

------------------------------------------------------------------------
---------------------------------------------

pgsql-odbc by date

Next:From: Mohan, RossDate: 2005-04-21 14:42:16
Subject: Re: Joel's Performance Issues WAS : Opteron vs Xeon
Previous:From: Delio Costa Cavalcanti - DATAPREVCEDate: 2005-04-20 11:29:28
Subject: ODBC error

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group