summaryrefslogtreecommitdiff
path: root/src/backend/utils/adt/enum.c
diff options
context:
space:
mode:
authorPavan Deolasee2011-05-20 15:06:06 +0000
committerPavan Deolasee2011-05-20 15:06:06 +0000
commitf65ae81fa4c6436093915410222dc962ec657b33 (patch)
treea7aa88a822cda01d1447ef46c68f369b7f81ff64 /src/backend/utils/adt/enum.c
parent9bf28d03c9ca4f8a791b5e455f77b39d092dfa6c (diff)
parent1084f317702e1a039696ab8a37caf900e55ec8f2 (diff)
Merge commit '1084f317702e1a039696ab8a37caf900e55ec8f2' into int-pgxc
Merge 9.0 PostgreSQL release into PGXC. Resolve conflicts thrown by git and fix some issues raised during compilation. We still don't compile fine at this point, but we should have resolved many conflicts to make further progress. Some of the changes in the regression tests are merged to reflect whats there in 9.0 release. Those are easy to fix later when we run regressions Conflicts: contrib/Makefile contrib/pgbench/pgbench.c src/Makefile src/backend/Makefile src/backend/access/transam/varsup.c src/backend/catalog/Makefile src/backend/catalog/dependency.c src/backend/catalog/genbki.sh src/backend/commands/dbcommands.c src/backend/commands/explain.c src/backend/commands/vacuum.c src/backend/executor/execMain.c src/backend/executor/execProcnode.c src/backend/executor/execTuples.c src/backend/parser/analyze.c src/backend/parser/gram.y src/backend/parser/parse_utilcmd.c src/backend/postmaster/postmaster.c src/backend/rewrite/rewriteHandler.c src/backend/storage/ipc/procarray.c src/backend/storage/lmgr/proc.c src/backend/tcop/postgres.c src/backend/tcop/utility.c src/backend/utils/cache/relcache.c src/backend/utils/init/postinit.c src/backend/utils/misc/guc.c src/bin/pg_ctl/pg_ctl.c src/include/Makefile src/include/access/twophase.h src/include/bootstrap/bootstrap.h src/include/catalog/catversion.h src/include/catalog/dependency.h src/include/catalog/indexing.h src/include/catalog/pg_proc.h src/include/nodes/nodes.h src/include/storage/lwlock.h src/include/storage/proc.h src/include/storage/procarray.h src/include/utils/lsyscache.h src/test/regress/expected/delete.out src/test/regress/expected/float4.out src/test/regress/expected/float8.out src/test/regress/expected/geometry.out src/test/regress/expected/join.out src/test/regress/expected/point.out src/test/regress/expected/rowtypes.out src/test/regress/expected/timestamp.out src/test/regress/expected/timestamptz.out src/test/regress/expected/tsearch.out src/test/regress/sql/numeric.sql src/test/regress/sql/point.sql
Diffstat (limited to 'src/backend/utils/adt/enum.c')
-rw-r--r--src/backend/utils/adt/enum.c42
1 files changed, 17 insertions, 25 deletions
diff --git a/src/backend/utils/adt/enum.c b/src/backend/utils/adt/enum.c
index 009c6c3f92..9000d1ca16 100644
--- a/src/backend/utils/adt/enum.c
+++ b/src/backend/utils/adt/enum.c
@@ -3,11 +3,11 @@
* enum.c
* I/O functions, operators, aggregates etc for enum types
*
- * Copyright (c) 2006-2009, PostgreSQL Global Development Group
+ * Copyright (c) 2006-2010, PostgreSQL Global Development Group
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/adt/enum.c,v 1.7 2009/01/01 17:23:49 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/enum.c,v 1.11 2010/02/26 02:01:08 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -45,10 +45,9 @@ enum_in(PG_FUNCTION_ARGS)
format_type_be(enumtypoid),
name)));
- tup = SearchSysCache(ENUMTYPOIDNAME,
- ObjectIdGetDatum(enumtypoid),
- CStringGetDatum(name),
- 0, 0);
+ tup = SearchSysCache2(ENUMTYPOIDNAME,
+ ObjectIdGetDatum(enumtypoid),
+ CStringGetDatum(name));
if (!HeapTupleIsValid(tup))
ereport(ERROR,
(errcode(ERRCODE_INVALID_TEXT_REPRESENTATION),
@@ -56,6 +55,10 @@ enum_in(PG_FUNCTION_ARGS)
format_type_be(enumtypoid),
name)));
+ /*
+ * This comes from pg_enum.oid and stores system oids in user tables. This
+ * oid must be preserved by binary upgrades.
+ */
enumoid = HeapTupleGetOid(tup);
ReleaseSysCache(tup);
@@ -71,9 +74,7 @@ enum_out(PG_FUNCTION_ARGS)
HeapTuple tup;
Form_pg_enum en;
- tup = SearchSysCache(ENUMOID,
- ObjectIdGetDatum(enumval),
- 0, 0, 0);
+ tup = SearchSysCache1(ENUMOID, ObjectIdGetDatum(enumval));
if (!HeapTupleIsValid(tup))
ereport(ERROR,
(errcode(ERRCODE_INVALID_BINARY_REPRESENTATION),
@@ -109,10 +110,9 @@ enum_recv(PG_FUNCTION_ARGS)
format_type_be(enumtypoid),
name)));
- tup = SearchSysCache(ENUMTYPOIDNAME,
- ObjectIdGetDatum(enumtypoid),
- CStringGetDatum(name),
- 0, 0);
+ tup = SearchSysCache2(ENUMTYPOIDNAME,
+ ObjectIdGetDatum(enumtypoid),
+ CStringGetDatum(name));
if (!HeapTupleIsValid(tup))
ereport(ERROR,
(errcode(ERRCODE_INVALID_TEXT_REPRESENTATION),
@@ -137,9 +137,7 @@ enum_send(PG_FUNCTION_ARGS)
HeapTuple tup;
Form_pg_enum en;
- tup = SearchSysCache(ENUMOID,
- ObjectIdGetDatum(enumval),
- 0, 0, 0);
+ tup = SearchSysCache1(ENUMOID, ObjectIdGetDatum(enumval));
if (!HeapTupleIsValid(tup))
ereport(ERROR,
(errcode(ERRCODE_INVALID_BINARY_REPRESENTATION),
@@ -265,9 +263,7 @@ enum_first(PG_FUNCTION_ARGS)
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
errmsg("could not determine actual enum type")));
- list = SearchSysCacheList(ENUMTYPOIDNAME, 1,
- ObjectIdGetDatum(enumtypoid),
- 0, 0, 0);
+ list = SearchSysCacheList1(ENUMTYPOIDNAME, ObjectIdGetDatum(enumtypoid));
num = list->n_members;
for (i = 0; i < num; i++)
{
@@ -306,9 +302,7 @@ enum_last(PG_FUNCTION_ARGS)
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
errmsg("could not determine actual enum type")));
- list = SearchSysCacheList(ENUMTYPOIDNAME, 1,
- ObjectIdGetDatum(enumtypoid),
- 0, 0, 0);
+ list = SearchSysCacheList1(ENUMTYPOIDNAME, ObjectIdGetDatum(enumtypoid));
num = list->n_members;
for (i = 0; i < num; i++)
{
@@ -389,9 +383,7 @@ enum_range_internal(Oid enumtypoid, Oid lower, Oid upper)
j;
Datum *elems;
- list = SearchSysCacheList(ENUMTYPOIDNAME, 1,
- ObjectIdGetDatum(enumtypoid),
- 0, 0, 0);
+ list = SearchSysCacheList1(ENUMTYPOIDNAME, ObjectIdGetDatum(enumtypoid));
total = list->n_members;
elems = (Datum *) palloc(total * sizeof(Datum));