Em seg, 23 de set de 2019 às 01:59, movead li <movead.li@highgo.ca> escreveu:
>
> I find several problems as below when I test the patches:
>
First of all, thanks for your review.
> 1. There be some regression problem after apply 0001.patch~0005.patch
> The regression problem is solved in 0006.patch
>
Which regression?
> 2. There be a data wrong after create subscription if the relation contains
> inherits table, for example:
>
Ouch. Good catch! Forgot about the ONLY in COPY with query. I will add
a test for it.
> 3. I am puzzled when I test the update.
> Use the tables in problem 2 and test as below:
> #########################
> On publication:
> postgres=# insert into cities values('t1',123, 34);
> INSERT 0 1
>
INSERT isn't replicated.
> postgres=# update cities SET altitude = 134 where altitude = 34;
> UPDATE 1
>
There should be an error because you don't have a PK or REPLICA IDENTITY.
postgres=# update cities SET altitude = 134 where altitude = 34;
ERROR: cannot update table "cities" because it does not have a
replica identity and publishes updates
HINT: To enable updating the table, set REPLICA IDENTITY using ALTER TABLE.
Even if you create a PK or REPLICA IDENTITY, it won't turn this UPDATE
into a INSERT and send it to the other node (indeed UPDATE will be
sent however there isn't a tuple to update). Also, filter columns must
be in PK or REPLICA IDENTITY. I explain this in documentation.
> 4. SQL splicing code in fetch_remote_table_info() function is too long
>
I split it into small pieces. I also run pgindent to improve code style.
I'll send a patchset later today.
Regards,
--
Euler Taveira Timbira -
http://www.timbira.com.br/
PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento