aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/adt/geo_selfuncs.c
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>1997-03-09 20:41:02 +0000
committerBruce Momjian <bruce@momjian.us>1997-03-09 20:41:02 +0000
commitb913dd1f9e0a0fccf1f9589a1173865f1c2af54b (patch)
treef2962d34e20a2f95640a1c55fc5de08f71c75d93 /src/backend/utils/adt/geo_selfuncs.c
parentd8023a00bdd7bc73f15032666e6ac87d4de99b47 (diff)
downloadpostgresql-b913dd1f9e0a0fccf1f9589a1173865f1c2af54b.tar.gz
postgresql-b913dd1f9e0a0fccf1f9589a1173865f1c2af54b.zip
Add prototypes for oracle-compat functions. Rename geo-*.c adt to geo_*.c
Diffstat (limited to 'src/backend/utils/adt/geo_selfuncs.c')
-rw-r--r--src/backend/utils/adt/geo_selfuncs.c125
1 files changed, 125 insertions, 0 deletions
diff --git a/src/backend/utils/adt/geo_selfuncs.c b/src/backend/utils/adt/geo_selfuncs.c
new file mode 100644
index 00000000000..a4d3eccb51d
--- /dev/null
+++ b/src/backend/utils/adt/geo_selfuncs.c
@@ -0,0 +1,125 @@
+/*-------------------------------------------------------------------------
+ *
+ * geo-selfuncs.c--
+ * Selectivity routines registered in the operator catalog in the
+ * "oprrest" and "oprjoin" attributes.
+ *
+ * Copyright (c) 1994, Regents of the University of California
+ *
+ *
+ * IDENTIFICATION
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/geo_selfuncs.c,v 1.1 1997/03/09 20:40:57 momjian Exp $
+ *
+ * XXX These are totally bogus.
+ *
+ *-------------------------------------------------------------------------
+ */
+#include "postgres.h"
+
+#include "access/attnum.h"
+#include "utils/geo-decls.h" /* where function declarations go */
+#include "utils/palloc.h"
+#include "utils/builtins.h"
+
+float64
+areasel(Oid opid,
+ Oid relid,
+ AttrNumber attno,
+ char *value,
+ int32 flag)
+{
+ float64 result;
+
+ result = (float64) palloc(sizeof(float64data));
+ *result = 1.0 / 4.0;
+ return(result);
+}
+
+float64
+areajoinsel(Oid opid,
+ Oid relid,
+ AttrNumber attno,
+ char *value,
+ int32 flag)
+{
+ float64 result;
+
+ result = (float64) palloc(sizeof(float64data));
+ *result = 1.0 / 4.0;
+ return(result);
+}
+
+/*
+ * Selectivity functions for rtrees. These are bogus -- unless we know
+ * the actual key distribution in the index, we can't make a good prediction
+ * of the selectivity of these operators.
+ *
+ * In general, rtrees need to search multiple subtrees in order to guarantee
+ * that all occurrences of the same key have been found. Because of this,
+ * the heuristic selectivity functions we return are higher than they would
+ * otherwise be.
+ */
+
+/*
+ * left_sel -- How likely is a box to be strictly left of (right of, above,
+ * below) a given box?
+ */
+
+float64
+leftsel(Oid opid,
+ Oid relid,
+ AttrNumber attno,
+ char *value,
+ int32 flag)
+{
+ float64 result;
+
+ result = (float64) palloc(sizeof(float64data));
+ *result = 1.0 / 6.0;
+ return(result);
+}
+
+float64
+leftjoinsel(Oid opid,
+ Oid relid,
+ AttrNumber attno,
+ char *value,
+ int32 flag)
+{
+ float64 result;
+
+ result = (float64) palloc(sizeof(float64data));
+ *result = 1.0 / 6.0;
+ return(result);
+}
+
+/*
+ * contsel -- How likely is a box to contain (be contained by) a given box?
+ */
+float64
+contsel(Oid opid,
+ Oid relid,
+ AttrNumber attno,
+ char *value,
+ int32 flag)
+{
+ float64 result;
+
+ result = (float64) palloc(sizeof(float64data));
+ *result = 1.0 / 10.0;
+ return(result);
+}
+
+float64
+contjoinsel(Oid opid,
+ Oid relid,
+ AttrNumber attno,
+ char *value,
+ int32 flag)
+{
+ float64 result;
+
+ result = (float64) palloc(sizeof(float64data));
+ *result = 1.0 / 10.0;
+ return(result);
+}