Re: Patch for Bug No: 1254

Поиск
Список
Период
Сортировка
От Dave Page
Тема Re: Patch for Bug No: 1254
Дата
Msg-id E7F85A1B5FF8D44C8A1AF6885BC9A0E472C475@ratbert.vale-housing.co.uk
обсуждение исходный текст
Ответ на Patch for Bug No: 1254  ("Anoop Kumar" <anoopk@pervasive-postgres.com>)
Список pgsql-odbc
Thanks Anoop, patch applied, bug closed.

Regards, Dave.

> -----Original Message-----
> From: pgsql-odbc-owner@postgresql.org
> [mailto:pgsql-odbc-owner@postgresql.org] On Behalf Of Anoop Kumar
> Sent: 21 April 2005 10:09
> To: pgsql-odbc@postgresql.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
>

В списке pgsql-odbc по дате отправления:

Предыдущее
От: Petr Odložil
Дата:
Сообщение: Re: ForwardOnly ?
Следующее
От: "Joel Fradkin"
Дата:
Сообщение: Re: [PERFORM] Joel's Performance Issues WAS : Opteron vs Xeon