aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/backend/optimizer/plan/planner.c3
-rw-r--r--src/backend/optimizer/util/plancat.c21
-rw-r--r--src/include/optimizer/plancat.h4
3 files changed, 18 insertions, 10 deletions
diff --git a/src/backend/optimizer/plan/planner.c b/src/backend/optimizer/plan/planner.c
index 91ce6f99c1b..c19cc7814eb 100644
--- a/src/backend/optimizer/plan/planner.c
+++ b/src/backend/optimizer/plan/planner.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/optimizer/plan/planner.c,v 1.81 2000/06/09 01:44:14 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/optimizer/plan/planner.c,v 1.82 2000/06/09 03:17:13 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -23,6 +23,7 @@
#include "optimizer/clauses.h"
#include "optimizer/internal.h"
#include "optimizer/paths.h"
+#include "optimizer/plancat.h"
#include "optimizer/planmain.h"
#include "optimizer/planner.h"
#include "optimizer/prep.h"
diff --git a/src/backend/optimizer/util/plancat.c b/src/backend/optimizer/util/plancat.c
index 42a2fb416a7..a34e8251fb8 100644
--- a/src/backend/optimizer/util/plancat.c
+++ b/src/backend/optimizer/util/plancat.c
@@ -10,9 +10,9 @@
*
* IDENTIFICATION
<<<<<<< plancat.c
- * $Header: /cvsroot/pgsql/src/backend/optimizer/util/plancat.c,v 1.54 2000/06/09 01:44:16 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/optimizer/util/plancat.c,v 1.55 2000/06/09 03:17:12 tgl Exp $
=======
- * $Header: /cvsroot/pgsql/src/backend/optimizer/util/plancat.c,v 1.54 2000/06/09 01:44:16 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/optimizer/util/plancat.c,v 1.55 2000/06/09 03:17:12 tgl Exp $
>>>>>>> 1.53
*
*-------------------------------------------------------------------------
@@ -292,13 +292,18 @@ find_inheritance_children(Oid inhparent)
* Currently has_subclass is only used as an efficiency hack, so this
* is ok.
*/
-bool has_subclass(Oid relationId)
+bool
+has_subclass(Oid relationId)
{
- HeapTuple tuple =
- SearchSysCacheTuple(RELOID,
- ObjectIdGetDatum(relationId),
- 0, 0, 0);
- return ((Form_pg_class) GETSTRUCT(tuple))->relhassubclass;
+ HeapTuple tuple =
+ SearchSysCacheTuple(RELOID,
+ ObjectIdGetDatum(relationId),
+ 0, 0, 0);
+
+ if (!HeapTupleIsValid(tuple))
+ elog(ERROR, "has_subclass: Relation %u not found",
+ relationId);
+ return ((Form_pg_class) GETSTRUCT(tuple))->relhassubclass;
}
#ifdef NOT_USED
diff --git a/src/include/optimizer/plancat.h b/src/include/optimizer/plancat.h
index 745d8dc73ef..a5c09f4935f 100644
--- a/src/include/optimizer/plancat.h
+++ b/src/include/optimizer/plancat.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2000, PostgreSQL, Inc
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Id: plancat.h,v 1.18 2000/04/12 17:16:42 momjian Exp $
+ * $Id: plancat.h,v 1.19 2000/06/09 03:17:11 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -24,6 +24,8 @@ extern List *find_secondary_indexes(Query *root, Index relid);
extern List *find_inheritance_children(Oid inhparent);
+extern bool has_subclass(Oid relationId);
+
extern Selectivity restriction_selectivity(Oid functionObjectId,
Oid operatorObjectId,
Oid relationObjectId,