Thread: BUG #2112: query kills db thread
The following bug has been logged online: Bug reference: 2112 Logged by: Jim Dew Email address: jdew@yggdrasil.ca PostgreSQL version: 8.1.0 Operating system: OpenBSD Description: query kills db thread Details: Stumbled upon a (broken) query that causes the 8.1.0 thread handling the query to die: select foo from (select null) as foo Now, this query just produces an error on 8.0.3 8.1.0: Welcome to psql 8.1.0, the PostgreSQL interactive terminal. Type: \copyright for distribution terms \h for help with SQL commands \? for help with psql commands \g or terminate with semicolon to execute query \q to quit suth=# select foo from (select null) as foo; server closed the connection unexpectedly This probably means the server terminated abnormally before or while processing the request. The connection to the server was lost. Attempting reset: Failed. !> 8.0.3: Welcome to psql 8.0.3, the PostgreSQL interactive terminal. Type: \copyright for distribution terms \h for help with SQL commands \? for help with psql commands \g or terminate with semicolon to execute query \q to quit suth=# select foo from (select null) as foo; ERROR: subquery foo does not have attribute 0 suth=#
"Jim Dew" <jdew@yggdrasil.ca> writes: > Stumbled upon a (broken) query that causes the 8.1.0 thread handling the > query to die: > select foo from (select null) as foo Confirmed here --- will look into it. Thanks for the report! > Now, this query just produces an error on 8.0.3 However, there's something rotten in the state of Denmark in 8.0 too: regression=# select foo from (select null) as foo; ERROR: subquery foo does not have attribute 0 7.4 gives what I'd consider a reasonable error message: regression=# select foo from (select null) as foo; ERROR: relation reference "foo" cannot be used as a select-list entry HINT: Write "foo".* to denote all the columns of the relation. Maybe we need a regression test to exercise this case, because it seems we've been backsliding on this rather badly ... regards, tom lane
"Jim Dew" <jdew@yggdrasil.ca> writes: > Stumbled upon a (broken) query that causes the 8.1.0 thread handling the > query to die: > select foo from (select null) as foo Fixed in 8.0 and up. If you need the patch for 8.1, it's pretty simple: Index: src/backend/executor/execQual.c =================================================================== RCS file: /cvsroot/pgsql/src/backend/executor/execQual.c,v retrieving revision 1.183.2.1 diff -c -r1.183.2.1 execQual.c *** src/backend/executor/execQual.c 22 Nov 2005 18:23:08 -0000 1.183.2.1 --- src/backend/executor/execQual.c 14 Dec 2005 16:25:05 -0000 *************** *** 541,547 **** Assert(variable->varno != OUTER); slot = econtext->ecxt_scantuple; ! tuple = slot->tts_tuple; tupleDesc = slot->tts_tupleDescriptor; /* --- 541,547 ---- Assert(variable->varno != OUTER); slot = econtext->ecxt_scantuple; ! tuple = ExecFetchSlotTuple(slot); tupleDesc = slot->tts_tupleDescriptor; /* Thanks for the report! regards, tom lane