We may have uncovered an incompatibility with DBD::Pg (version 1.20 is
the latest we have) and the newly-released PostgreSQL 7.3.

It appears that the DESTROY method for database and/or statement handles
is referencing a system table ("pg_relcheck") that no longer exists. 
Attached is the trace that illustrates the problem.

    -> ping for DBD::Pg::db (DBI::db=HASH(0x8aca764)~0x8aca7d0)
dbd_db_ping
    <- ping= 1 at Table.pm line 1475
    -> prepare for DBD::Pg::db (DBI::db=HASH(0x8aca764)~0x8aca7d0 'SELECT * FROM 
job_methods LIMIT 1')
dbd_st_prepare: statement = >SELECT * FROM job_methods LIMIT 1<
dbd_st_preparse: statement = >SELECT * FROM job_methods LIMIT 1<
    <- prepare= DBI::st=HASH(0x8bf3694) at DBConnection.pm line 635
    -> execute for DBD::Pg::st (DBI::st=HASH(0x8bf3694)~0x8bf3868)
dbd_st_execute
dbd_st_execute: statement = >SELECT * FROM job_methods LIMIT 1<
    <- execute= 1 at Table.pm line 1321
    -> errstr for DBD::Pg::st (DBI::st=HASH(0x8bf3694)~0x8bf3868)
    <- errstr= undef at Table.pm line 1322
    -> FETCH for DBD::Pg::st (DBI::st=HASH(0x8bf3868)~INNER 'NAME_lc')
dbd_st_FETCH
1   -> FETCH for DBD::Pg::st (DBI::st=HASH(0x8bf3868)~INNER 'NAME')
dbd_st_FETCH
1   <- FETCH= [ 'method_id' 'method_name' ] at Table.pm line 1337
    <- FETCH= [ 'method_id' 'method_name' ] at Table.pm line 1337
    -> DESTROY for DBD::Pg::st (DBI::st=HASH(0x8bf3868)~INNER)
dbd_st_finish
dbd_st_destroy
    <- DESTROY= undef at Table.pm line 1341
    -> table_attributes for DBD::Pg::db (DBI::db=HASH(0x8aca764)~0x8aca7d0 
'job_methods')
1   -> selectall_arrayref in DBD::_::db for DBD::Pg::db (DBI::db=HASH(0x8aca7d0)~INNER 
'select a.attname, t.typname, a.attlen, a.atttypmod, a.attnotnull, a.atthasdef, 
a.attnum
              from pg_attribute a,
                   pg_class     c,
                   pg_type      t
              where c.relname  = ?
                and a.attrelid = c.oid
                and a.attnum  >= 0
                and t.oid      = a.atttypid
                order by 1 
             ' undef 'job_methods')
2   -> prepare for DBD::Pg::db (DBI::db=HASH(0x8aca7d0)~INNER 'select a.attname, 
t.typname, a.attlen, a.atttypmod, a.attnotnull, a.atthasdef, a.attnum
              from pg_attribute a,
                   pg_class     c,
                   pg_type      t
              where c.relname  = ?
                and a.attrelid = c.oid
                and a.attnum  >= 0
                and t.oid      = a.atttypid
                order by 1 
             ' undef)
dbd_st_prepare: statement = >select a.attname, t.typname, a.attlen, a.atttypmod, 
a.attnotnull, a.atthasdef, a.attnum
              from pg_attribute a,
                   pg_class     c,
                   pg_type      t
              where c.relname  = ?
                and a.attrelid = c.oid
                and a.attnum  >= 0
                and t.oid      = a.atttypid
                order by 1 
             <
dbd_st_preparse: statement = >select a.attname, t.typname, a.attlen, a.atttypmod, 
a.attnotnull, a.atthasdef, a.attnum
              from pg_attribute a,
                   pg_class     c,
                   pg_type      t
              where c.relname  = ?
                and a.attrelid = c.oid
                and a.attnum  >= 0
                and t.oid      = a.atttypid
                order by 1 
             <
    dbd_preparse scanned 1 distinct placeholders
2   <- prepare= DBI::st=HASH(0x8bf5520) at DBI.pm line 1251
    -> execute for DBD::Pg::st (DBI::st=HASH(0x8bf5520)~0x8adbb64 'job_methods')
dbd_bind_ph
         bind :p1 <== 'job_methods' (type 0)
dbd_st_rebind
       bind :p1 <== 'job_methods' (size 11/12/0, ptype 4, otype 1043)
dbd_st_execute
dbd_st_execute: statement = >select a.attname, t.typname, a.attlen, a.atttypmod, 
a.attnotnull, a.atthasdef, a.attnum
              from pg_attribute a,
                   pg_class     c,
                   pg_type      t
              where c.relname  = 'job_methods'
                and a.attrelid = c.oid
                and a.attnum  >= 0
                and t.oid      = a.atttypid
                order by 1 
             <
    <- execute= 2 at DBI.pm line 1253
    -> fetchall_arrayref for DBD::Pg::st (DBI::st=HASH(0x8bf5520)~0x8adbb64 undef 
undef)
1   -> fetch for DBD::Pg::st (DBI::st=HASH(0x8adbb64)~INNER)
dbd_st_fetch
1   <- fetch= [ 'method_id' 'int4' '4' '-1' '1' '0' '1' ] row1 at DBI.pm line 1577
1   -> fetch for DBD::Pg::st (DBI::st=HASH(0x8adbb64)~INNER)
dbd_st_fetch
1   <- fetch= [ 'method_name' 'text' '-1' '-1' '1' '0' '2' ] row2 at DBI.pm line 1577
1   -> fetch for DBD::Pg::st (DBI::st=HASH(0x8adbb64)~INNER)
dbd_st_fetch
1   <- fetch= undef row2 at DBI.pm line 1577
    <- fetchall_arrayref= [ ARRAY(0x8adbb7c) ARRAY(0x8bf5418) ] row2 at DBI.pm line 
1261
    -> DESTROY for DBD::Pg::st (DBI::st=HASH(0x8adbb64)~INNER)
dbd_st_destroy
    <- DESTROY= undef at perl5db.pl line 1487
1   <- selectall_arrayref= [ ARRAY(0x8adbb7c) ARRAY(0x8bf5418) ] at Pg.pm line 552
1   -> selectrow_array in DBD::_::db for DBD::Pg::db (DBI::db=HASH(0x8aca7d0)~INNER 
'SELECT pg_index.indkey
                            FROM   pg_class, pg_index
                            WHERE
                                   pg_class.oid          = pg_index.indrelid
                            AND    pg_class.relname      = 'job_methods'
                            AND    pg_index.indisprimary = 't'
                        ')
2   -> prepare for DBD::Pg::db (DBI::db=HASH(0x8aca7d0)~INNER 'SELECT pg_index.indkey
                            FROM   pg_class, pg_index
                            WHERE
                                   pg_class.oid          = pg_index.indrelid
                            AND    pg_class.relname      = 'job_methods'
                            AND    pg_index.indisprimary = 't'
                        ' undef)
dbd_st_prepare: statement = >SELECT pg_index.indkey
                            FROM   pg_class, pg_index
                            WHERE
                                   pg_class.oid          = pg_index.indrelid
                            AND    pg_class.relname      = 'job_methods'
                            AND    pg_index.indisprimary = 't'
                        <
dbd_st_preparse: statement = >SELECT pg_index.indkey
                            FROM   pg_class, pg_index
                            WHERE
                                   pg_class.oid          = pg_index.indrelid
                            AND    pg_class.relname      = 'job_methods'
                            AND    pg_index.indisprimary = 't'
                        <
2   <- prepare= DBI::st=HASH(0x8adbbc4) at DBI.pm line 1228
    -> execute for DBD::Pg::st (DBI::st=HASH(0x8adbbc4)~0x8bf9d9c)
dbd_st_execute
dbd_st_execute: statement = >SELECT pg_index.indkey
                            FROM   pg_class, pg_index
                            WHERE
                                   pg_class.oid          = pg_index.indrelid
                            AND    pg_class.relname      = 'job_methods'
                            AND    pg_index.indisprimary = 't'
                        <
    <- execute= 1 at DBI.pm line 1230
    -> fetchrow_arrayref for DBD::Pg::st (DBI::st=HASH(0x8adbbc4)~0x8bf9d9c)
dbd_st_fetch
    <- fetchrow_arrayref= [ '1' ] row1 at DBI.pm line 1232
    -> finish for DBD::Pg::st (DBI::st=HASH(0x8adbbc4)~0x8bf9d9c)
dbd_st_finish
    <- finish= 1 at DBI.pm line 1232
    -> DESTROY for DBD::Pg::st (DBI::st=HASH(0x8bf9d9c)~INNER)
dbd_st_destroy
    <- DESTROY= undef at perl5db.pl line 1487
1   <- selectrow_array= '1' at Pg.pm line 576
1   -> selectcol_arrayref in DBD::_::db for DBD::Pg::db (DBI::db=HASH(0x8aca7d0)~INNER 
'SELECT pg_attribute.attname
                                               FROM   pg_class, pg_attribute, pg_index
                                               WHERE  pg_class.oid          = 
pg_attribute.attrelid 
                                               AND    pg_class.oid          = 
pg_index.indrelid 
                                               AND    pg_attribute.attnum in (1)
                                    ...' undef 'job_methods')
2   -> prepare for DBD::Pg::db (DBI::db=HASH(0x8aca7d0)~INNER 'SELECT 
pg_attribute.attname
                                               FROM   pg_class, pg_attribute, pg_index
                                               WHERE  pg_class.oid          = 
pg_attribute.attrelid 
                                               AND    pg_class.oid          = 
pg_index.indrelid 
                                               AND    pg_attribute.attnum in (1)
                                    ...' undef)
dbd_st_prepare: statement = >SELECT pg_attribute.attname
                                               FROM   pg_class, pg_attribute, pg_index
                                               WHERE  pg_class.oid          = 
pg_attribute.attrelid 
                                               AND    pg_class.oid          = 
pg_index.indrelid 
                                               AND    pg_attribute.attnum in (1)
                                               AND    pg_index.indisprimary = 't'
                                               AND    pg_class.relname      = ?
                                               order by pg_attribute.attnum
                                               <
dbd_st_preparse: statement = >SELECT pg_attribute.attname
                                               FROM   pg_class, pg_attribute, pg_index
                                               WHERE  pg_class.oid          = 
pg_attribute.attrelid 
                                               AND    pg_class.oid          = 
pg_index.indrelid 
                                               AND    pg_attribute.attnum in (1)
                                               AND    pg_index.indisprimary = 't'
                                               AND    pg_class.relname      = ?
                                               order by pg_attribute.attnum
                                               <
    dbd_preparse scanned 1 distinct placeholders
2   <- prepare= DBI::st=HASH(0x8bf9e14) at DBI.pm line 1274
    -> execute for DBD::Pg::st (DBI::st=HASH(0x8bf9e14)~0x8adbb94 'job_methods')
dbd_bind_ph
         bind :p1 <== 'job_methods' (type 0)
dbd_st_rebind
       bind :p1 <== 'job_methods' (size 11/12/0, ptype 4, otype 1043)
dbd_st_execute
dbd_st_execute: statement = >SELECT pg_attribute.attname
                                               FROM   pg_class, pg_attribute, pg_index
                                               WHERE  pg_class.oid          = 
pg_attribute.attrelid 
                                               AND    pg_class.oid          = 
pg_index.indrelid 
                                               AND    pg_attribute.attnum in (1)
                                               AND    pg_index.indisprimary = 't'
                                               AND    pg_class.relname      = 
'job_methods'
                                               order by pg_attribute.attnum
                                               <
    <- execute= 1 at DBI.pm line 1276
    -> bind_col in DBD::_::st for DBD::Pg::st (DBI::st=HASH(0x8bf9e14)~0x8adbb94 1 
SCALAR(0x8adbbb8))
    <- bind_col= 1 at DBI.pm line 1281
    -> fetch for DBD::Pg::st (DBI::st=HASH(0x8bf9e14)~0x8adbb94)
dbd_st_fetch
    <- fetch= [ 'method_id' ] row1 at DBI.pm line 1284
    -> fetch for DBD::Pg::st (DBI::st=HASH(0x8bf9e14)~0x8adbb94)
dbd_st_fetch
    <- fetch= undef row1 at DBI.pm line 1284
    -> DESTROY for DBD::Pg::st (DBI::st=HASH(0x8adbb94)~INNER)
dbd_st_destroy
    <- DESTROY= undef at perl5db.pl line 1487
1   <- selectcol_arrayref= [ 'method_id' ] at Pg.pm line 586
1   -> selectrow_array for DBD::Pg::db (DBI::db=HASH(0x8aca7d0)~INNER 'select rcsrc 
from pg_relcheck where rcname = 'job_methods_method_name'')
2   -> prepare for DBD::Pg::db (DBI::db=HASH(0x8aca7d0)~INNER 'select rcsrc from 
pg_relcheck where rcname = 'job_methods_method_name'' undef)
dbd_st_prepare: statement = >select rcsrc from pg_relcheck where rcname = 
'job_methods_method_name'<
dbd_st_preparse: statement = >select rcsrc from pg_relcheck where rcname = 
'job_methods_method_name'<
2   <- prepare= DBI::st=HASH(0x8bf9dcc) at DBI.pm line 1228
    -> execute for DBD::Pg::st (DBI::st=HASH(0x8bf9dcc)~0x8adbb34)
dbd_st_execute
dbd_st_execute: statement = >select rcsrc from pg_relcheck where rcname = 
'job_methods_method_name'<
ERROR:  Relation "pg_relcheck" does not exist error 7 recorded: ERROR:  Relation 
"pg_relcheck" does not exist
    !! ERROR: 7 'ERROR:  Relation "pg_relcheck" does not exist'
    <- execute= undef at DBI.pm line 1230
    -> DESTROY for DBD::Pg::st (DBI::st=HASH(0x8adbb34)~INNER)
dbd_st_destroy
    <- DESTROY= undef at perl5db.pl line 1487
    !! ERROR: 7 'ERROR:  Relation "pg_relcheck" does not exist'
1   <- selectrow_array= ( ) [0 items] at Pg.pm line 619
1   -> selectrow_array for DBD::Pg::db (DBI::db=HASH(0x8aca7d0)~INNER 'select rcsrc 
from pg_relcheck where rcname = 'job_methods_method_id'')
2   -> prepare for DBD::Pg::db (DBI::db=HASH(0x8aca7d0)~INNER 'select rcsrc from 
pg_relcheck where rcname = 'job_methods_method_id'' undef)
dbd_st_prepare: statement = >select rcsrc from pg_relcheck where rcname = 
'job_methods_method_id'<
dbd_st_preparse: statement = >select rcsrc from pg_relcheck where rcname = 
'job_methods_method_id'<
2   <- prepare= DBI::st=HASH(0x8adbb64) at DBI.pm line 1228
    -> execute for DBD::Pg::st (DBI::st=HASH(0x8adbb64)~0x8adbbb8)
dbd_st_execute
dbd_st_execute: statement = >select rcsrc from pg_relcheck where rcname = 
'job_methods_method_id'<
ERROR:  current transaction is aborted, queries ignored until end of transaction block 
error 7 recorded: ERROR:  current transaction is aborted, queries ignored until end of 
transaction block
    !! ERROR: 7 'ERROR:  current transaction is aborted, queries ignored until end of 
transaction block'
    <- execute= undef at DBI.pm line 1230
    -> DESTROY for DBD::Pg::st (DBI::st=HASH(0x8adbbb8)~INNER)
dbd_st_destroy
    <- DESTROY= undef at perl5db.pl line 1487
    !! ERROR: 7 'ERROR:  current transaction is aborted, queries ignored until end of 
transaction block'
1   <- selectrow_array= ( ) [0 items] at Pg.pm line 619
    <- table_attributes= [ HASH(0x8adba74) HASH(0x8bf9dcc) ] at DBConnection.pm line 
635
    -> ping for DBD::Pg::db (DBI::db=HASH(0x8aca764)~0x8aca7d0)
dbd_db_ping
    <- ping= 1 at Table.pm line 1475
    -> ping for DBD::Pg::db (DBI::db=HASH(0x8aca764)~0x8aca7d0)
dbd_db_ping
    <- ping= 1 at Table.pm line 1475
    -> ping for DBD::Pg::db (DBI::db=HASH(0x8aca764)~0x8aca7d0)
dbd_db_ping
    <- ping= 1 at Table.pm line 1475
    -> ping for DBD::Pg::db (DBI::db=HASH(0x8aca764)~0x8aca7d0)
dbd_db_ping
    <- ping= 1 at Table.pm line 1475
    -> ping for DBD::Pg::db (DBI::db=HASH(0x8aca764)~0x8aca7d0)
dbd_db_ping
    <- ping= 1 at Table.pm line 1475
    -> ping for DBD::Pg::db (DBI::db=HASH(0x8aca764)~0x8aca7d0)
dbd_db_ping
    <- ping= 1 at Table.pm line 1475
    -> DESTROY for DBD::Pg::st (DBI::st=HASH(0x8bf36a0)~INNER)
dbd_st_destroy
    <- DESTROY= undef at perl5db.pl line 1468

-- 
Jeff Boes                                      vox 616.226.9550 ext 24
Database Engineer                                     fax 616.349.9076
Nexcerpt, Inc.                                 http://www.nexcerpt.com
           ...Nexcerpt... Extend your Expertise

Reply via email to