Logical Decoding - Execute join query - Mailing list pgsql-hackers

From hari.prasath
Subject Logical Decoding - Execute join query
Date
Msg-id 153d1319053.113f9e732191.4201921686265189928@zohocorp.com
Whole thread Raw
Responses Re: Logical Decoding - Execute join query  (Andres Freund <andres@anarazel.de>)
List pgsql-hackers
Hi all,
     
      I tried to execute a join query using SPI_execute() in logical decoding part and got inconsistent values (i am referring it as inconsistent since it is returning the old values which is present at the postgresql server start).

My data directory has to tables
  • table1(a integer PRIMARY KEY, b integer, c integer)
  • table2(x integer PRIMARY KEY, y integer, z integer)

I have table1 as 

 a | b | c 

---+---+---

 1 | 1 | 1

 2 | 2 | 2


and table 2 as

x | y | z 

---+---+---

 1 | 1 | 1

 2 | 2 | 2


Then through psql client inserted a new row to table1 as:      insert into table1(3,3,3);

While decoding this insert query i am trying to execute the below query using SPI_execute 
SELECT * FROM (table1 LEFT JOIN table2 ON ((table1.a = table2.x)));

And got only 2 rows.
I cant able to get any new rows that are inserted. Are these new values get locked somewhere?
 
Is there a way to get inserted changes?


PS:When i restart the pgsql server i can able to get those new values that are inserted/updated in previous instance.



cheers
- Harry

pgsql-hackers by date:

Previous
From: Aleksander Alekseev
Date:
Subject: Re: Small patch: --disable-setproctitle flag
Next
From: Aleksander Alekseev
Date:
Subject: Re: WIP: Access method extendability