Re: Bug#387256: pgadmin3: missing schema parameter during backup - Mailing list pgadmin-hackers

From Raphaël Enrici
Subject Re: Bug#387256: pgadmin3: missing schema parameter during backup
Date
Msg-id 451AE28D.2010408@club-internet.fr
Whole thread Raw
Responses Re: Bug#387256: pgadmin3: missing schema parameter during backup
List pgadmin-hackers
Hi Luca,

sorry for the delay. I confim I can reproduce this and the the solution
you propose seems to be viable. I've managed to produce a patch for it
I'm sending upstream so that it can be validated.

@pgadmin-hackers: Luca is facing the issue described below. In short,
when you try to export a table from a schema A which is also present in
a schema B, both the table are tried for backup. The patch attached
forces the table's schema name to be passed as an argument to pg_dump.

Something off topic, @Luca: it seems you are using an old backport of
pgAdmin III although apt prefers unstable. Any reason for not upgrading
to latest 1.4.3-1?

Regards,
Raph

Luca Arzeni wrote:
> Package: pgadmin3
> Version: 1.4.0-0.3.release.sarge.2
> Severity: normal
> Tags: patch
>
> I define two or more schemas in a database (say schema1 and
> schema2) and restrict user access to them (say user1 can work on schema1
> only, and user2 can work on schema2 only).
>
> user1 creates table "addressbook" in schema1
> user2 creates table "addressbook" in schema2
>
> They work fine on their tables, but if user1 select table addressbook in
> pgadmin3 object browser and tries to backup that table, pgadmin3 refuses
> to  execute the requested operation saying that user1 has not enough
> rights to access table addressbook.
>
> Problem is:
> pgadmin3 invokes command line tool pg_dump, without
> specifying the --schema=schema1 option in the command line.
>
> Solution/Patch:
> add --schema=schemaNameOfTheSelectedTable to the command line of pg_dump
>
>
> -- System Information:
> Debian Release: 3.1
>   APT prefers unstable
>   APT policy: (500, 'unstable')
> Architecture: i386 (i686)
> Kernel: Linux 2.6.11.5-686-smp-p4-w4l-himem
> Locale: LANG=en_US, LC_CTYPE=en_US (charmap=ISO-8859-1)
>
> Versions of packages pgadmin3 depends on:
> ii  libc6         2.3.2.ds1-22               GNU C Library: Shared libraries an
> ii  libgcc1       1:3.4.3-13sarge1           GCC support library
> ii  libpq3        7.4.7-6sarge2              PostgreSQL C client library
> ii  libssl0.9.7   0.9.7e-3sarge2             SSL shared libraries
> ii  libstdc++5    1:3.3.5-13                 The GNU Standard C++ Library v3
> ii  libwxgtk2.6-0 2.6.1.0-0.pgadmin3.sarge.1 wxWidgets Cross-platform C++ GUI t
> ii  pgadmin3-data 1.4.0-0.3.release.sarge.2  Graphical administration tool for
>
> -- no debconf information
>
>
>
Index: pgadmin3-1.4.3/src/frm/frmBackup.cpp
===================================================================
--- pgadmin3-1.4.3/src/frm/frmBackup.cpp    (révision 5401)
+++ pgadmin3-1.4.3/src/frm/frmBackup.cpp    (copie de travail)
@@ -251,8 +251,10 @@
     pgSchema *schema=0;
     if (object->GetMetaType() == PGM_SCHEMA)
         schema =(pgSchema*)object;
-    else if (object->GetMetaType() == PGM_TABLE)
+    else if (object->GetMetaType() == PGM_TABLE) {
         cmd.Append(wxT(" -t ") + ((pgTable*)object)->GetQuotedIdentifier());
+        cmd.Append(wxT(" -n ") + ((pgTable*)object)->GetSchema()->GetQuotedIdentifier());
+    }

     if (schema)
         cmd.Append(wxT(" -n ") + schema->GetQuotedIdentifier());

pgadmin-hackers by date:

Previous
From: Raphaël Enrici
Date:
Subject: Re: Bug#383901: pgadmin3: Lost key presses when other view is active.
Next
From: Guillaume Lelarge
Date:
Subject: Re: Patches and a .po file