Subject: patch: fixing dublicates foreign-tables

From: Andrej Antonov <[email-masked]>
Date: Mon, 07 Dec 2015 17:17:43 +0300

fixing dublicates foreign-tables (see attachment file).

this email -- it is just copy of pull-request 
https://github.com/postgres/pgadmin3/pull/11 .

thanks in advance.

-- 
Андрей Антонов,
инженер-программист отдела информационных технологий и программирования,
компания «Импульс М»

From bb387659342f3be62a4f25d758dd731ad2d4f9de Mon Sep 17 00:00:00 2001
From: "Andrej Antonov (impulsm.work)" <[email-masked]>
Date: Mon, 7 Dec 2015 15:57:16 +0300
Subject: [PATCH] ``pgForeignTableFactory::CreateObjects(..)`` -- use ``... AND
 des.objsubid=0``

(cherry picked from commit bff01a372780b87692e93ec434dcf7a541d9d90a)
---
 pgadmin/schema/pgForeignTable.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/pgadmin/schema/pgForeignTable.cpp b/pgadmin/schema/pgForeignTable.cpp
index 928934c..18e9ab0 100644
--- a/pgadmin/schema/pgForeignTable.cpp
+++ b/pgadmin/schema/pgForeignTable.cpp
@@ -360,7 +360,8 @@ pgObject *pgForeignTableFactory::CreateObjects(pgCollection *collection, ctlTree
 	                wxT("  FROM pg_class c\n")
 	                wxT("  JOIN pg_foreign_table ft ON c.oid=ft.ftrelid\n")
 	                wxT("  LEFT OUTER JOIN pg_foreign_server fs ON ft.ftserver=fs.oid\n")
-	                wxT("  LEFT OUTER JOIN pg_description des ON (des.objoid=c.oid AND des.classoid='pg_class'::regclass)\n")
+	                wxT("  LEFT OUTER JOIN pg_description des ON (des.objoid=c.oid AND des.classoid='pg_class'::regclass\n")
+	                wxT("    AND des.objsubid=0)\n")
 	                wxT(" WHERE c.relnamespace = ") + collection->GetSchema()->GetOidStr() + wxT("\n")
 	                + restriction +
 	                wxT(" ORDER BY c.relname");
-- 
2.6.3

-- 
Sent via pgadmin-hackers mailing list ([email-masked])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-hackers

---

From: Dave Page <[email-masked]>
Date: Tue, 8 Dec 2015 05:39:56 +0000

Akshay, can you review this please?

-- 
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

---

From: Akshay Joshi <[email-masked]>
Date: Tue, 8 Dec 2015 11:15:53 +0530

> Akshay, can you review this please?

   Sure, Dave.

-- 
*Akshay Joshi*
*Principal Software Engineer *

*Phone: +91 20-3058-9517Mobile: +91 976-788-8246*

---

From: Akshay Joshi <[email-masked]>
Date: Tue, 8 Dec 2015 15:51:01 +0530

Hi Andrej

Can you please share the reproduction step of the issue that you have
fixed.

On Tue, Dec 8, 2015 at 11:15 AM, Akshay Joshi <[email-masked]
> wrote:

---

From: Andrej Antonov <[email-masked]>
Date: Tue, 08 Dec 2015 13:53:42 +0300

hello, Akshay!

screenshot:

"Screenshot from 2015-12-08 13-43-54 with-labels.png" (as attachment 
file).

script to reproduce:

         CREATE FOREIGN DATA WRAPPER postgresql
           VALIDATOR postgresql_fdw_validator;

         CREATE SERVER film_server FOREIGN DATA WRAPPER postgresql 
OPTIONS (host 'foo', dbname 'foodb', port '5432');

         CREATE FOREIGN TABLE films1 (
             code        char(5) NOT NULL,
             title       varchar(40) NOT NULL,
             did         integer NOT NULL,
             date_prod   date,
             kind        varchar(10),
             len         interval hour to minute
         )
         SERVER film_server;

         CREATE FOREIGN TABLE films2 (
             code        char(5) NOT NULL,
             title       varchar(40) NOT NULL,
             did         integer NOT NULL,
             date_prod   date,
             kind        varchar(10),
             len         interval hour to minute
         )
         SERVER film_server;

         COMMENT ON FOREIGN TABLE films1 IS 'description A';
         COMMENT ON FOREIGN TABLE films2 IS 'description B';

         COMMENT ON COLUMN films1.code IS 'descr code A';
         COMMENT ON COLUMN films1.title IS 'descr title A';
         COMMENT ON COLUMN films1.did IS 'descr did A';
         COMMENT ON COLUMN films2.code IS 'descr code B';
         COMMENT ON COLUMN films2.title IS 'descr title B';
         COMMENT ON COLUMN films2.did IS 'descr did B';

Akshay Joshi писал 2015-12-08 13:21:
> On Tue, Dec 8, 2015 at 11:15 AM, Akshay Joshi
> <[email-masked]> wrote:
> 
>>>> https://github.com/postgres/pgadmin3/pull/11 [1] .
>>>> 
>>>> thanks in advance.
>>>> 
>>>> --
>>>> Андрей Антонов,
>>>> инженер-программист отдела
>>> информационных технологий и
>>> программирования,
>>>> компания «Импульс М»
>>>> 
>>>> --
>>>> http://www.postgresql.org/mailpref/pgadmin-hackers [2]
>>>> 
>>> 
>>> --
>>> Dave Page
>>> Blog: http://pgsnake.blogspot.com [3]
>>> Twitter: @pgsnake
>>> 
>>> EnterpriseDB UK: http://www.enterprisedb.com [4]
>> AKSHAY JOSHI
>> PRINCIPAL SOFTWARE ENGINEER
>> 
>> Phone: +91 20-3058-9517
>> Mobile: +91 976-788-8246
> 
> --
> 
> AKSHAY JOSHI
> PRINCIPAL SOFTWARE ENGINEER
> 
> Phone: +91 20-3058-9517
> Mobile: +91 976-788-8246
> 
> Links:
> ------
> [1] https://github.com/postgres/pgadmin3/pull/11
> [2] http://www.postgresql.org/mailpref/pgadmin-hackers
> [3] http://pgsnake.blogspot.com
> [4] http://www.enterprisedb.com

---

From: Akshay Joshi <[email-masked]>
Date: Tue, 8 Dec 2015 17:31:10 +0530

Hi Andrej

Your patch looks good to me. During testing I came across one more issue
when user select the existing foreign table and click on Properties menu
entry in the "Foreign Server" combo box is blank. I have fixed the issue
and attached is the patch with combined fix.

*Issue *:- As per the code "SetValue()" method of the wxComboBox is called
in case of existing foreign table, but in the documentation of the wxWidget
it is mentioned that "For a combobox with wxCB_READONLY style the string
must be in the combobox choices list otherwise the call to SetValue() is
ignored"

*Fix*:- Insert the value of Foreign Servers before calling the "SetValue()"
method.

On Tue, Dec 8, 2015 at 4:23 PM, Andrej Antonov <[email-masked]> wrote:

> hello, Akshay!
>
> screenshot:
>
> "Screenshot from 2015-12-08 13-43-54 with-labels.png" (as attachment file).
>
> script to reproduce:
>
>
>
>         CREATE SERVER film_server FOREIGN DATA WRAPPER postgresql OPTIONS
> (host 'foo', dbname 'foodb', port '5432');
>
>>>>> Sent via pgadmin-hackers mailing list
>>>>>
>>>> ([email-masked])
>>>>