This query crashes the backend. pg_rules is a new system view:
BEGIN WORK;
DECLARE c_matches BINARY CURSOR FOR
SELECT count(*)
FROM pg_attrdef t1, pg_rules t2
WHERE t1.adrelid = t2.oid
END WORK;
Partial backtrace is below. It is crashing in the optimizer.
---------------------------------------------------------------------------
#0 0x80e8a5b in datumIsEqual (value1=0, value2=0, type=26, byVal=0, len=4)
at datum.c:216
#1 0x809d8fe in _equalConst (a=0x82daf10, b=0x82e2dd0) at equalfuncs.c:213
#2 0x809e7b7 in equal (a=0x82daf10, b=0x82e2dd0) at equalfuncs.c:668
#3 0x809e909 in equal (a=0x82e3490, b=0x82e3930) at equalfuncs.c:738
#4 0x809d634 in _equalExpr (a=0x82e2550, b=0x82e2d10) at equalfuncs.c:88
#5 0x809e737 in equal (a=0x82e2550, b=0x82e2d10) at equalfuncs.c:644
#6 0x809dab6 in _equalClauseInfo (a=0x82e2710, b=0x82e2cd0)
at equalfuncs.c:289
#7 0x809e7e7 in equal (a=0x82e2710, b=0x82e2cd0) at equalfuncs.c:677
#8 0x809b52a in member (l1=0x82e2cd0, l2=0x82e38f0) at list.c:371
#9 0x809b692 in set_difference (l1=0x82e3970, l2=0x82e38f0) at list.c:476
#10 0x80b0c23 in create_index_path (root=0x82e1290, rel=0x82e1490,
index=0x82e1a90, restriction_clauses=0x82e38f0, is_join_scan=0 '\000')
at pathnode.c:274
#11 0x80a7778 in create_index_paths (root=0x82e1290, rel=0x82e1490,
index=0x82e1a90, clausegroup_list=0x82e3910, join=0 '\000')
at indxpath.c:1381
#12 0x80a65b5 in find_index_paths (root=0x82e1290, rel=0x82e1490,
indices=0x82e38d0, clauseinfo_list=0x82e36f0, joininfo_list=0x0)
at indxpath.c:155
#13 0x80a55cb in find_rel_paths (root=0x82e1290, rels=0x82e3750)
at allpaths.c:124
--
Bruce Momjian | 830 Blythe Avenue
maillist@candle.pha.pa.us | Drexel Hill, Pennsylvania 19026
+ If your life is a hard drive, | (610) 353-9879(w)
+ Christ can be your backup. | (610) 853-3000(h)