From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 19276 invoked by alias); 22 Oct 2004 02:22:14 -0000 Mailing-List: contact rhdb-explain-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Post: List-Help: , Sender: rhdb-explain-owner@sources.redhat.com Received: (qmail 19226 invoked from network); 22 Oct 2004 02:22:13 -0000 Mime-Version: 1.0 (Apple Message framework v619) Content-Transfer-Encoding: 7bit Message-Id: <2CDEED12-23D1-11D9-A663-000393C79B3C@visualdistortion.org> Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed To: rhdb-explain@sources.redhat.com From: Jeffrey Melloy Subject: Bug with large results Date: Fri, 22 Oct 2004 02:22:00 -0000 X-Mailer: Apple Mail (2.619) X-Spam-Checker-Version: SpamAssassin 2.64 (2004-01-11) on calvin.slamb.org X-Spam-Status: No, hits=-3.1 required=5.0 tests=AWL,BAYES_00, RCVD_IN_NJABL_DUL,RCVD_IN_SORBS_DUL autolearn=no version=2.64 X-Spam-Level: X-SW-Source: 2004-10/txt/msg00000.txt.bz2 I downloaded RHDB-explain (CVS) and stumbled across a bug. Small queries work fine, but a larger plan will fail with a null pointer exception. Using PostgreSQL 7.4.5 on OS X. Thanks, Jeff Error: java.lang.NullPointerException at com.redhat.rhdb.explain.ExplainParserV73.addQual(ExplainParserV73.java: 796) at com.redhat.rhdb.explain.ExplainParserV73.buildExplainTree(ExplainParserV 73.java:343) at com.redhat.rhdb.explain.ExplainParserV73.explain(ExplainParserV73.java: 187) at com.redhat.rhdb.explain.Explain$ExplainThread.run(Explain.java:298) Query: select * from message_v; plan: QUERY PLAN ------------------------------------------------------------------------ ----------------------------------- Hash Join (cost=34961.26..3454046.29 rows=155607 width=164) Hash Cond: ("outer".sender_id = "inner".user_id) Join Filter: (("inner".effdate <= "outer".message_date) AND (NOT (subplan))) -> Hash Join (cost=34923.29..2628055.36 rows=50978 width=115) Hash Cond: ("outer".recipient_id = "inner".user_id) Join Filter: (NOT (subplan)) -> Merge Join (cost=34916.77..50555.99 rows=297841 width=105) Merge Cond: ("outer".user_id = "inner".recipient_id) Join Filter: ("outer".effdate <= "inner".message_date) -> Sort (cost=46.03..47.35 rows=526 width=39) Sort Key: r_disp.user_id -> Seq Scan on user_display_name r_disp (cost=0.00..22.26 rows=526 width=39) -> Sort (cost=34870.74..35279.24 rows=163399 width=66) Sort Key: m.recipient_id -> Seq Scan on messages m (cost=0.00..6361.99 rows=163399 width=66) -> Hash (cost=5.81..5.81 rows=281 width=26) -> Seq Scan on users r (cost=0.00..5.81 rows=281 width=26) SubPlan -> Index Scan using im_display_user on user_display_name udn (cost=0.00..8.64 rows=1 width=0) Index Cond: (user_id = $4) Filter: ((effdate > $3) AND (effdate <= $2)) -> Hash (cost=36.66..36.66 rows=526 width=65) -> Hash Join (cost=6.51..36.66 rows=526 width=65) Hash Cond: ("outer".user_id = "inner".user_id) -> Seq Scan on user_display_name s_disp (cost=0.00..22.26 rows=526 width=39) -> Hash (cost=5.81..5.81 rows=281 width=26) -> Seq Scan on users s (cost=0.00..5.81 rows=281 width=26) SubPlan -> Index Scan using im_display_user on user_display_name udn (cost=0.00..8.64 rows=1 width=0) Index Cond: (user_id = $1) Filter: ((effdate > $0) AND (effdate <= $2)) (31 rows)