Thread: FW: Bug Report - PGAdmin Version 1.6.3 - Restore
From: Sevim Mete [mailto:smete@cambian.com]
Sent: February 6, 2008 1:28 PM
To: 'pgadmin-support@postgresql.org'
Subject: Bug Report - PGAdmin Version 1.6.3 - Restore
Importance: High
Dear Postgres Support Team,
Please see the bug report below. Could you please let me know when we can get a fix?
Thanks
Sevim Mete
BUG REPORT:
Platform: Windows XP
Software: PGAdmin Version 1.6.3 Revision: 6112
Version: Postgres 8.2
PROBLEM:
When restoring, Pgadmin creates duplicate data.
STEPS:
1. Create a table
CREATE TABLE new_table
( id integer,
sub_id integer,
description character(30)) ;
2. Insert 3 records
INSERT INTO new_table (id, sub_id, description) VALUES (1, 2, 'test1 ');
INSERT INTO new_table (id, sub_id, description) VALUES (2, 3, 'test2 ');
INSERT INTO new_table (id, sub_id, description) VALUES (3, 15, 'test3 ');
INSERT INTO new_table (id, sub_id, description) VALUES (2, 3, 'test2 ');
INSERT INTO new_table (id, sub_id, description) VALUES (3, 15, 'test3 ');
3. Create a backup file
4. Create a new database
5. Restore from the backup file
D:\PostgreSQLNew\8.2\bin\pg_restore.exe -i -h localhost -p 5432 -U postgres -d abc -v "E:\test2"
pg_restore: connecting to database for restore
pg_restore: creating SCHEMA public
pg_restore: creating COMMENT SCHEMA public
pg_restore: creating PROCEDURAL LANGUAGE plpgsql
pg_restore: [archiver (db)] Error while PROCESSING TOC:
pg_restore: [archiver (db)] Error from TOC entry 262; 2612 16386 PROCEDURAL LANGUAGE plpgsql postgres
pg_restore: [archiver (db)] could not execute query: ERROR: language "plpgsql" already exists
Command was: CREATE PROCEDURAL LANGUAGE plpgsql;
pg_restore: creating TABLE new_table
pg_restore: restoring data for table "new_table"
pg_restore: setting owner and privileges for SCHEMA public
pg_restore: setting owner and privileges for COMMENT SCHEMA public
pg_restore: setting owner and privileges for ACL public
pg_restore: setting owner and privileges for PROCEDURAL LANGUAGE plpgsql
pg_restore: setting owner and privileges for TABLE new_table
WARNING: errors ignored on restore: 1
pg_restore: connecting to database for restore
pg_restore: creating SCHEMA public
pg_restore: creating COMMENT SCHEMA public
pg_restore: creating PROCEDURAL LANGUAGE plpgsql
pg_restore: [archiver (db)] Error while PROCESSING TOC:
pg_restore: [archiver (db)] Error from TOC entry 262; 2612 16386 PROCEDURAL LANGUAGE plpgsql postgres
pg_restore: [archiver (db)] could not execute query: ERROR: language "plpgsql" already exists
Command was: CREATE PROCEDURAL LANGUAGE plpgsql;
pg_restore: creating TABLE new_table
pg_restore: restoring data for table "new_table"
pg_restore: setting owner and privileges for SCHEMA public
pg_restore: setting owner and privileges for COMMENT SCHEMA public
pg_restore: setting owner and privileges for ACL public
pg_restore: setting owner and privileges for PROCEDURAL LANGUAGE plpgsql
pg_restore: setting owner and privileges for TABLE new_table
WARNING: errors ignored on restore: 1
Process returned exit code 1.
6. See the message above and click on OK again
D:\PostgreSQLNew\8.2\bin\pg_restore.exe -i -h localhost -p 5432 -U postgres -d abc -v "E:\test2"
pg_restore: connecting to database for restore
pg_restore: creating SCHEMA public
pg_restore: creating COMMENT SCHEMA public
pg_restore: creating PROCEDURAL LANGUAGE plpgsql
pg_restore: [archiver (db)] Error while PROCESSING TOC:
pg_restore: [archiver (db)] Error from TOC entry 262; 2612 16386 PROCEDURAL LANGUAGE plpgsql postgres
pg_restore: [archiver (db)] could not execute query: ERROR: language "plpgsql" already exists
Command was: CREATE PROCEDURAL LANGUAGE plpgsql;
pg_restore: creating TABLE new_table
pg_restore: [archiver (db)] Error from TOC entry 1267; 1259 6703586 TABLE new_table postgres
pg_restore: [archiver (db)] could not execute query: ERROR: relation "new_table" already exists
Command was: CREATE TABLE new_table (
id integer,
sub_id integer,
description character(30)
);
pg_restore: restoring data for table "new_table"
pg_restore: setting owner and privileges for SCHEMA public
pg_restore: setting owner and privileges for COMMENT SCHEMA public
pg_restore: setting owner and privileges for ACL public
pg_restore: setting owner and privileges for PROCEDURAL LANGUAGE plpgsql
pg_restore: setting owner and privileges for TABLE new_table
WARNING: errors ignored on restore: 2
pg_restore: connecting to database for restore
pg_restore: creating SCHEMA public
pg_restore: creating COMMENT SCHEMA public
pg_restore: creating PROCEDURAL LANGUAGE plpgsql
pg_restore: [archiver (db)] Error while PROCESSING TOC:
pg_restore: [archiver (db)] Error from TOC entry 262; 2612 16386 PROCEDURAL LANGUAGE plpgsql postgres
pg_restore: [archiver (db)] could not execute query: ERROR: language "plpgsql" already exists
Command was: CREATE PROCEDURAL LANGUAGE plpgsql;
pg_restore: creating TABLE new_table
pg_restore: [archiver (db)] Error from TOC entry 1267; 1259 6703586 TABLE new_table postgres
pg_restore: [archiver (db)] could not execute query: ERROR: relation "new_table" already exists
Command was: CREATE TABLE new_table (
id integer,
sub_id integer,
description character(30)
);
pg_restore: restoring data for table "new_table"
pg_restore: setting owner and privileges for SCHEMA public
pg_restore: setting owner and privileges for COMMENT SCHEMA public
pg_restore: setting owner and privileges for ACL public
pg_restore: setting owner and privileges for PROCEDURAL LANGUAGE plpgsql
pg_restore: setting owner and privileges for TABLE new_table
WARNING: errors ignored on restore: 2
Process returned exit code 1.
ACTUAL RESULTS:
The system restores data again and it results in duplicate records in the table.
EXPECTED RESULTS:
If user clicks on OK, pgAdmin Restore should not start restoring data again.
REPRODUCIBLE:
Yes
ATTACHMENT:
Please see the attached backup file.