check for interrupts in set_rtable_names

From: Jeff Janes <jeff(dot)janes(at)gmail(dot)com>
To: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: check for interrupts in set_rtable_names
Date: 2015-11-13 22:51:08
Message-ID: CAMkU=1zq5a74E9JSftTDuyonqnSnSOxja8961qW+qq7Ua74u5w@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Someone sent my server a deranged query, it tripped my
auto_explain.log_min_duration setting, that hit some kind of
pathological case while assigning aliases, and now it sits
uninterruptibly in set_rtable_names for hours.

Is there any reason we can't check for interrupts in set_rtable_names,
like the attached?

I've tried it on a deranged query and it seems to do the job.

A deranged query:

perl -le 'print "explain"; print "select * from pgbench_accounts where
aid=5 union" foreach 1..5000; print "select * from pgbench_accounts
where aid=5 ;"'|psql

Cheers,

Jeff

Attachment Content-Type Size
rtable_names_interrupts.patch application/octet-stream 423 bytes

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2015-11-13 23:10:39 Re: Inaccurate results from numeric ln(), log(), exp() and pow()
Previous Message Robert Haas 2015-11-13 22:09:20 Re: [DESIGN] ParallelAppend