A bug reported by Josh Drake, crashes 8.1 and CVS HEAD:

Test case is:

create table pk (id bigserial primary key);
insert into pk values (DEFAULT);
insert into pk values (DEFAULT);
insert into pk values (DEFAULT);
update pk set id = max(id) + 2;
-- SEGV

simple eh? :-)

The backtrace on HEAD looks like this:

(gdb) bt
#0  slot_getattr (slot=0x0, attnum=-1, 
    isnull=0x83fc3f9 "\177~\177\177\177\177\177¬\005A\b@")
    at /pgsql/source/00orig/src/backend/access/common/heaptuple.c:1288
#1  0x08168ae1 in ExecProject (projInfo=0x83fc40c, isDone=0xafecda2c)
    at /pgsql/source/00orig/src/backend/executor/execQual.c:3847
#2  0x08176c9d in ExecResult (node=0x83fbce0)
    at /pgsql/source/00orig/src/backend/executor/nodeResult.c:157
#3  0x081647e5 in ExecProcNode (node=0x83fbce0)
    at /pgsql/source/00orig/src/backend/executor/execProcnode.c:329
#4  0x0816315b in ExecutorRun (queryDesc=0x8404698, 
direction=ForwardScanDirection, 
    count=0) at /pgsql/source/00orig/src/backend/executor/execMain.c:1139
#5  0x081f8298 in ProcessQuery (parsetree=<value optimized out>, 
plan=0x8412670, 
    params=0x0, dest=0x8412754, completionTag=0xafecdcb8 "")
    at /pgsql/source/00orig/src/backend/tcop/pquery.c:174
#6  0x081f94c2 in PortalRun (portal=0x84024bc, count=2147483647, 
dest=0x8412754, 
    altdest=0x8412754, completionTag=0xafecdcb8 "")
    at /pgsql/source/00orig/src/backend/tcop/pquery.c:1079
#7  0x081f484f in exec_simple_query (
    query_string=0x83f0ffc "update pk set id = max(id) + 2;")
    at /pgsql/source/00orig/src/backend/tcop/postgres.c:1025

NULL slot!?

-- 
Alvaro Herrera                                http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.

---------------------------(end of broadcast)---------------------------
TIP 3: Have you checked our extensive FAQ?

               http://www.postgresql.org/docs/faq

Reply via email to