On Sat, Aug 27, 2005 at 10:28:30AM -0400, Tom Lane wrote:
> Oleg Bartunov <oleg@sai.msu.su> writes:
> > I finally narrow down my problem with postmaster crashing 8.1dev
> > (today's CVS):
>
> Can you provide a self-contained test case? The backtrace is
> interesting but it's not enough information to find the bug.
Here's a simple test case based on what I think Oleg is doing. It
needs tsearch2, and it needs to insert enough records that a bitmap
scan would be chosen (I think).
CREATE TABLE foo ( t text, tidx tsvector
);
CREATE INDEX foo_tidx_idx ON foo USING gist (tidx);
CREATE TRIGGER footrig BEFORE INSERT OR UPDATE ON foo FOR EACH ROW EXECUTE PROCEDURE tsearch2('tidx', 't');
INSERT INTO foo (t) SELECT 'test' || x FROM generate_series(1, 3000) AS g(x);
ANALYZE foo;
SET enable_bitmapscan TO off;
SELECT t FROM foo, to_tsquery('test1') AS query WHERE tidx @@ query; t
-------test1
(1 row)
SET enable_bitmapscan TO on;
SELECT t FROM foo, to_tsquery('test1') AS query WHERE tidx @@ query;
server closed the connection unexpectedly
My backtrace shows this:
#0 0x00112d14 in ExecEvalVar (exprstate=0x0, econtext=0x415588, isNull=0xffbfe34f "\b", isDone=0x0) at execQual.c:491
491 Assert(attnum <= tuple_type->natts);
(gdb) bt
#0 0x00112d14 in ExecEvalVar (exprstate=0x0, econtext=0x415588, isNull=0xffbfe34f "\b", isDone=0x0) at execQual.c:491
#1 0x00116128 in ExecEvalExprSwitchContext (expression=0x4154f0, econtext=0x10000, isNull=0xffbfe34f "\b", isDone=0x0)
at execQual.c:2808
#2 0x0011f75c in ExecIndexEvalRuntimeKeys (econtext=0x4154f0, run_keys=0x415588, scan_keys=0xffbfe34f, n_keys=0) at
nodeIndexscan.c:270
--
Michael Fuhr