Author: turnstep
Date: Thu Nov 30 18:45:33 2006
New Revision: 8332

Modified:
   DBD-Pg/trunk/Changes
   DBD-Pg/trunk/Pg.pm

Log:
Fix pg_description join in table_info with patch from Max Cohan.


Modified: DBD-Pg/trunk/Changes
==============================================================================
--- DBD-Pg/trunk/Changes        (original)
+++ DBD-Pg/trunk/Changes        Thu Nov 30 18:45:33 2006
@@ -2,6 +2,7 @@
 
 1.50
        - Switch from cvs to subversion. Switch from gborg to perl.org.
+       - Fix pg_description join in table_info(). [EMAIL PROTECTED]
 
 1.49 May 7, 2006
        - Thanks to Backcountry.com for sponsoring work on this release. [GSM]

Modified: DBD-Pg/trunk/Pg.pm
==============================================================================
--- DBD-Pg/trunk/Pg.pm  (original)
+++ DBD-Pg/trunk/Pg.pm  Thu Nov 30 18:45:33 2006
@@ -937,6 +937,7 @@
                        my $showschema = "NULL::text";
                        my $schemajoin = '';
                        my $has_objsubid = '';
+                       my $objid_join = '';
                        my $tablespacejoin = '';
                        my $showtablespace = '';
                        my @search;
@@ -944,10 +945,12 @@
                                $showschema = "quote_ident(n.nspname)";
                                $schemajoin = "LEFT JOIN 
pg_catalog.pg_namespace n ON (n.oid = c.relnamespace)";
                                $has_objsubid = "AND d.objsubid = 0";
+                               $objid_join = "c.relfilenode = d.objoid";
                        }
                        if ($version >= 70500) {
                                $tablespacejoin = 'LEFT JOIN 
pg_catalog.pg_tablespace t ON (t.oid = c.reltablespace)';
                                $showtablespace = ', quote_ident(t.spcname) AS 
"pg_tablespace_name", quote_ident(t.spclocation) AS "pg_tablespace_location"';
+                               $objid_join = "c.oid = d.objoid AND c.tableoid 
= d.classoid";
                        }
 
                        ## If the schema or table has an underscore or a %, use 
a LIKE comparison
@@ -984,7 +987,7 @@
                                         , d.description AS "REMARKS" 
$showtablespace
                                FROM ${DBD::Pg::dr::CATALOG}pg_class AS c
                                        LEFT JOIN 
${DBD::Pg::dr::CATALOG}pg_description AS d
-                                               ON (c.relfilenode = d.objoid 
$has_objsubid)
+                                               ON ($objid_join $has_objsubid)
                                        $schemajoin $tablespacejoin
                                WHERE $whereclause
                                ORDER BY "TABLE_TYPE", "TABLE_CAT", 
"TABLE_SCHEM", "TABLE_NAME"

Reply via email to