Trouble with postgres_fdw & dblink extensions

2018-11-15 Thread Lukáš Sobotka
Hi guys,

I would be grateful for some help. I am writing you because I am confused
about using data foreign wrappers and dblink. I attached simplified script
describing the problem.

What I am trying to do?
I have two databases and I need to copy table from local database to the
remote one. For copying is used function which contains a few parts:

   -

   loading setting from foreign table (this part became a problematic)
   -

   creating destination table on remote db
   -

   importing foreign table
   -

   insert data into foreign table

If query using foreign table (with setting) is performed, command for
importing schema does not import new created table (it looks like table is
not created yet). So copying ends with error. The second calling of
function is all right (because destination table is already created from
first calling).
If function does not use foreign table, the first calling of function
copies all data.

Why the new created remote table can not be imported to local database when
I had performed query on other foreign table? What am I missing?

I am using PG 9.6 (PostgreSQL 9.6.10 on x86_64-pc-linux-gnu, compiled by
gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28), 64-bit).

Best regards, Lukas


script.sql
Description: application/sql


Foreign table & Connection reset by peer

2019-02-23 Thread Lukáš Sobotka
Hi guys,

I would be grateful for some advice about foreign tables. I attached
simplified script describing the problem for better understanding.

What I am trying to do:

I am copying tables between two databases and for copying is used function
which are called from bash script.

What is problem:

I am creating foreign tables, selecting from them, dropping them and
everything works well. But always when I am working with them and the
session ends, message about connection resetting appears in log file of
remote database. It is showing "postgres@adam_db LOG:  could not receive
data from client: Connection reset by peer". I am calling the command
often, so this message fill my log file quite a fast. I tried to find some
info about this message, without success.
Where can be problem?

Is there some different/correct way how to use foreign tables?
How can I closed connection properly?

For reproducing you can use attached script and after that execute next
command:
*psql -c 'SELECT * FROM ft_numbers'
"postgresql://localhost:5432/bety_db?user=postgres&password=postgres"*

I also tried to drop server after selection but it also logs the message.
Command which I executed:
*psql -c 'SELECT * FROM ft_numbers; DROP SERVER adam_server CASCADE;'
"postgresql://localhost:5432/bety_db?user=postgres&password=postgres"*
I tried to replicate problem in databases with different versions - all of
them ended with the message in log. Used versions:


   - PostgreSQL 9.6.10 on x86_64-pc-linux-gnu (Ubuntu
   9.6.10-1.pgdg16.04+1), compiled by gcc (Ubuntu 5.4.0-6ubuntu1~16.04.10)
   5.4.0 20160609, 64-bit
   - PostgreSQL 10.5 (Ubuntu 10.5-1.pgdg16.04+1) on x86_64-pc-linux-gnu,
   compiled by gcc (Ubuntu 5.4.0-6ubuntu1~16.04.10) 5.4.0 20160609, 64-bit
   - PostgreSQL 11.2 (Ubuntu 11.2-1.pgdg16.04+1) on x86_64-pc-linux-gnu,
   compiled by gcc (Ubuntu 5.4.0-6ubuntu1~16.04.11) 5.4.0 20160609, 64-bit

Best regards,

Lukas


script.sql
Description: application/sql


Re: Foreign table & Connection reset by peer

2019-02-24 Thread Lukáš Sobotka
Thanks for quick answer. I am feeling a little embarrassed that I did not
find this before... The thread definitely helped me to understand more.

When I execute query with foreign tables, the connection is created
(according pg_stat_activity). The question is what I should do for ending
the connection. I can get PID of connection and force to end it by
pg_terminate_backend, but that is not "clean way".

Unfortunately I can not disable SSL encryption as it is mentioned in the
thread. But it is interesting for me, that the log message (resetting by
peer) is created only in encrypted connection, because in both way the
connection stayed defined in pg_stat_activity after query on foreign
table.

so 23. 2. 2019 v 22:48 odesílatel Adrian Klaver 
napsal:

> On 2/23/19 1:28 PM, Lukáš Sobotka wrote:
> > Hi guys,
> >
> > I would be grateful for some advice about foreign tables. I attached
> > simplified script describing the problem for better understanding.
> >
> > What I am trying to do:
> >
> > I am copying tables between two databases and for copying is used
> > function which are called from bash script.
> >
> > What is problem:
> >
> > I am creating foreign tables, selecting from them, dropping them and
> > everything works well. But always when I am working with them and the
> > session ends, message about connection resetting appears in log file of
> > remote database. It is showing "postgres@adam_db LOG:  could not
> receive
> > data from client: Connection reset by peer". I am calling the command
> > often, so this message fill my log file quite a fast. I tried to find
> > some info about this message, without success.
> >
> > Where can be problem?
>
> See if the thread below applies:
>
> https://www.postgresql.org/message-id/4004.1521759312%40sss.pgh.pa.us
>
> >
> > Is there some different/correct way how to use foreign tables?
> > How can I closed connection properly?
> >
> > For reproducing you can use attached script and after that execute next
> > command:
> > /psql -c 'SELECT * FROM ft_numbers'
> > "postgresql://localhost:5432/bety_db?user=postgres&password=postgres"/
> >
> > I also tried to drop server after selection but it also logs the
> > message. Command which I executed:/
> > psql -c 'SELECT * FROM ft_numbers; DROP SERVER adam_server CASCADE;'
> > "postgresql://localhost:5432/bety_db?user=postgres&password=postgres"/
> >
> > I tried to replicate problem in databases with different versions - all
> > of them ended with the message in log.Used versions:
> >
> >   * PostgreSQL 9.6.10 on x86_64-pc-linux-gnu (Ubuntu
> > 9.6.10-1.pgdg16.04+1), compiled by gcc (Ubuntu
> > 5.4.0-6ubuntu1~16.04.10) 5.4.0 20160609, 64-bit
> >   * PostgreSQL 10.5 (Ubuntu 10.5-1.pgdg16.04+1) on x86_64-pc-linux-gnu,
> > compiled by gcc (Ubuntu 5.4.0-6ubuntu1~16.04.10) 5.4.0 20160609,
> 64-bit
> >   * PostgreSQL 11.2 (Ubuntu 11.2-1.pgdg16.04+1) on x86_64-pc-linux-gnu,
> > compiled by gcc (Ubuntu 5.4.0-6ubuntu1~16.04.11) 5.4.0 20160609,
> 64-bit
> >
> > Best regards,
> >
> > Lukas
> >
>
>
> --
> Adrian Klaver
> adrian.kla...@aklaver.com
>