From: Tom Lane Date: Tue, 14 Sep 1999 20:26:02 +0000 (+0000) Subject: Last-minute fix for 6.5.2: repair optimizer coredump on X-Git-Url: http://git.postgresql.org/gitweb/?a=commitdiff_plain;h=5532d0e11cce057b7d69ee694e19d0a7e01adedb;p=users%2Fbernd%2Fpostgres.git Last-minute fix for 6.5.2: repair optimizer coredump on CASE clauses in WHERE. Surprised no one noticed this before. --- diff --git a/src/backend/optimizer/path/indxpath.c b/src/backend/optimizer/path/indxpath.c index 45e5a292fd..e292d31161 100644 --- a/src/backend/optimizer/path/indxpath.c +++ b/src/backend/optimizer/path/indxpath.c @@ -585,12 +585,13 @@ match_clause_to_indexkey(RelOptInfo *rel, Oid restrict_op = InvalidOid; bool isIndexable = false; - if (or_clause((Node *) clause) || - not_clause((Node *) clause) || single_node((Node *) clause)) - return (RestrictInfo *) NULL; - + /* Clause must be a binary opclause. */ + if (! is_opclause((Node *) clause)) + return NULL; leftop = get_leftop(clause); rightop = get_rightop(clause); + if (! leftop || ! rightop) + return NULL; /* * If this is not a join clause, check for clauses of the form: