Re: [HACKERS] Regarding identifying a foreign scan

2012-10-08 Thread Merlin Moncure
On Sun, Oct 7, 2012 at 10:29 AM, Tom Lane t...@sss.pgh.pa.us wrote:
 Atri Sharma atri.j...@gmail.com writes:
 Does that mean that using (some) global storage is the cause of the problem?

 If you're using global storage for state that needs to be replicated
 per-scan, yes, probably.  But it's hard to be sure when you're being
 so vague about what you're doing.

yeah -- the problem here is that Atri is not using
ForeignScanState-fdw_state properly for storage (this in jdbc-fdw).
I think he knows what to do -- he's going to fix it up.

merlin


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] Regarding identifying a foreign scan

2012-10-07 Thread Tom Lane
Atri Sharma atri.j...@gmail.com writes:
 Does that mean that using (some) global storage is the cause of the problem?

If you're using global storage for state that needs to be replicated
per-scan, yes, probably.  But it's hard to be sure when you're being
so vague about what you're doing.

regards, tom lane


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


[HACKERS] Regarding identifying a foreign scan

2012-10-06 Thread Atri Sharma
Hi,

I am trying to identify foreign scans uniquely.I am trying to do that
by struct ForeignScanState,but I am confused as to how I can identify
the scan.

Is there a member of ForeignScanState that can be used for this purpose?

Atri

-- 
Regards,

Atri
l'apprenant


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] Regarding identifying a foreign scan

2012-10-06 Thread Tom Lane
Atri Sharma atri.j...@gmail.com writes:
 I am trying to identify foreign scans uniquely.

What do you mean by identify?  What are you trying to accomplish,
and in what context?

regards, tom lane


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] Regarding identifying a foreign scan

2012-10-06 Thread Atri Sharma
On Sat, Oct 6, 2012 at 3:45 PM, Tom Lane t...@sss.pgh.pa.us wrote:
 Atri Sharma atri.j...@gmail.com writes:
 I am trying to identify foreign scans uniquely.

 What do you mean by identify?  What are you trying to accomplish,
 and in what context?

 regards, tom lane

Hi Tom,

I am trying to identify the situation where a query has multiple
foreign scans.In that case,I need to check whether the current scan is
the same as a previous scan or not.If not,then I think it means that
multiple scans are in progress on the same backend.

Atri

-- 
Regards,

Atri
l'apprenant


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] Regarding identifying a foreign scan

2012-10-06 Thread Tom Lane
Atri Sharma atri.j...@gmail.com writes:
 On Sat, Oct 6, 2012 at 3:45 PM, Tom Lane t...@sss.pgh.pa.us wrote:
 Atri Sharma atri.j...@gmail.com writes:
 I am trying to identify foreign scans uniquely.

 What do you mean by identify?  What are you trying to accomplish,
 and in what context?

 I am trying to identify the situation where a query has multiple
 foreign scans.In that case,I need to check whether the current scan is
 the same as a previous scan or not.If not,then I think it means that
 multiple scans are in progress on the same backend.

Well, if you search the plan tree and find more than one ForeignScan
node, it means there's more than one foreign scan.  It doesn't seem to
me to be very complicated.  Now, if you're wondering whether they
reference the same server or not, that's a bit harder.  I guess you
could look at the RTEs, fetch the foreign-table data for each FT
relation OID, and see if the same server is referenced.

regards, tom lane


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] Regarding identifying a foreign scan

2012-10-06 Thread Atri Sharma
On Sat, Oct 6, 2012 at 4:05 PM, Tom Lane t...@sss.pgh.pa.us wrote:
 Atri Sharma atri.j...@gmail.com writes:
 On Sat, Oct 6, 2012 at 3:45 PM, Tom Lane t...@sss.pgh.pa.us wrote:
 Atri Sharma atri.j...@gmail.com writes:
 I am trying to identify foreign scans uniquely.

 What do you mean by identify?  What are you trying to accomplish,
 and in what context?

 I am trying to identify the situation where a query has multiple
 foreign scans.In that case,I need to check whether the current scan is
 the same as a previous scan or not.If not,then I think it means that
 multiple scans are in progress on the same backend.

 Well, if you search the plan tree and find more than one ForeignScan
 node, it means there's more than one foreign scan.  It doesn't seem to
 me to be very complicated.  Now, if you're wondering whether they
 reference the same server or not, that's a bit harder.  I guess you
 could look at the RTEs, fetch the foreign-table data for each FT
 relation OID, and see if the same server is referenced.

 regards, tom lane

Hi Tom,

Thanks for the extensive reply.

The issue I am trying to resolve is that if two scans are taking place
on the same backend(due to the same query),then,the server is
crashing.

e.g. foreign_table is a foreign table

SELECT * FROM foreign_table UNION SELECT * FROM foreign_table; results
in a crash of the server.

I think it is because I am not saving the state of the scan,so,if
multiple scans a re running on the same backend,then,it is causing the
crash.

Any hints on how I can detect this condition please?

Atri

-- 
Regards,

Atri
l'apprenant


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] Regarding identifying a foreign scan

2012-10-06 Thread Tom Lane
Atri Sharma atri.j...@gmail.com writes:
 The issue I am trying to resolve is that if two scans are taking place
 on the same backend(due to the same query),then,the server is
 crashing.

That sounds like an FDW bug ... which FDW are we talking about?

 I think it is because I am not saving the state of the scan,so,if
 multiple scans a re running on the same backend,then,it is causing the
 crash.

The FDW should certainly not assume that only one scan can happen at a
time.  I would not think this would be a problem as long as you're using
reasonable coding techniques, like keeping scan-local state in
scan-local storage and not globally.

 Any hints on how I can detect this condition please?

If you are imagining that you'd do something differently depending on
whether the current query contains multiple ForeignScan nodes for your
FDW, that's still doomed to lose, because of nested queries.  You really
need to manage storage in a way that doesn't make assumptions of this
sort.

regards, tom lane


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers