Check for null pointer returned from get_opname().
authorThomas G. Lockhart
Sun, 16 Aug 1998 05:37:04 +0000 (05:37 +0000)
committerThomas G. Lockhart
Sun, 16 Aug 1998 05:37:04 +0000 (05:37 +0000)
Don't bother checking for alternate strategies if so
 since it was more likely a function or some other non-operator anyway.

src/backend/optimizer/path/indxpath.c

index 41583a1c1c6b54a8c017770f30e33c6697554612..f8fe91ed875abff1f3e7e1add009373385fb1253 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/backend/optimizer/path/indxpath.c,v 1.29 1998/08/14 16:13:07 thomas Exp $
+ *   $Header: /cvsroot/pgsql/src/backend/optimizer/path/indxpath.c,v 1.30 1998/08/16 05:37:04 thomas Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -642,7 +642,10 @@ match_clause_to_indexkey(RelOptInfo *rel,
                    Operator  newop;
 
                    opname = get_opname(restrict_op);
-                   newop = oper(opname, ltype, ltype, TRUE);
+                   if (opname != NULL)
+                       newop = oper(opname, ltype, ltype, TRUE);
+                   else
+                       newop = NULL;
 
                    /* actually have a different operator to try? */
                    if (HeapTupleIsValid(newop) && (oprid(newop) != restrict_op))
@@ -698,7 +701,10 @@ match_clause_to_indexkey(RelOptInfo *rel,
                    restrict_op = ((Oper *) ((Expr *) clause)->oper)->opno;
 
                    opname = get_opname(restrict_op);
-                   newop = oper(opname, rtype, rtype, TRUE);
+                   if (opname != NULL)
+                       newop = oper(opname, rtype, rtype, TRUE);
+                   else
+                       newop = NULL;
 
                    if (HeapTupleIsValid(newop) && (oprid(newop) != restrict_op))
                    {