]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Last-minute fix for 6.5.2: repair optimizer coredump on
authorTom Lane <tgl@sss.pgh.pa.us>
Tue, 14 Sep 1999 20:26:02 +0000 (20:26 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Tue, 14 Sep 1999 20:26:02 +0000 (20:26 +0000)
CASE clauses in WHERE.  Surprised no one noticed this before.

src/backend/optimizer/path/indxpath.c

index e1870912bffeebb604b15dcb49480d292091dda8..2b830f91c6c450db0915b8956faeed56abbcc884 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/optimizer/path/indxpath.c,v 1.57 1999/06/19 04:54:14 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/optimizer/path/indxpath.c,v 1.57.2.1 1999/09/14 20:26:02 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -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: