From d49108fd7316bf925b649ea85ac191ed654c4e94 Mon Sep 17 00:00:00 2001 From: Tatsuo Ishii Date: Tue, 16 Jul 2002 06:58:14 +0000 Subject: [PATCH] Add FindDefaultConversionProc --- src/backend/catalog/namespace.c | 25 ++++++++++++++++++++++++- src/include/catalog/namespace.h | 4 +++- 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/src/backend/catalog/namespace.c b/src/backend/catalog/namespace.c index ad5a0c0d6a3..e78bde1d7bb 100644 --- a/src/backend/catalog/namespace.c +++ b/src/backend/catalog/namespace.c @@ -13,7 +13,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/catalog/namespace.c,v 1.24 2002/07/12 18:43:15 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/catalog/namespace.c,v 1.25 2002/07/16 06:58:14 ishii Exp $ * *------------------------------------------------------------------------- */ @@ -26,6 +26,7 @@ #include "catalog/dependency.h" #include "catalog/heap.h" #include "catalog/namespace.h" +#include "catalog/pg_conversion.h" #include "catalog/pg_inherits.h" #include "catalog/pg_namespace.h" #include "catalog/pg_opclass.h" @@ -1268,6 +1269,28 @@ PopSpecialNamespace(Oid namespaceId) namespaceSearchPathValid = false; } +/* + * FindDefaultConversionProc - find default encoding cnnversion proc + */ +Oid FindDefaultConversionProc(int4 for_encoding, int4 to_encoding) +{ + Oid proc; + List *lptr; + + recomputeNamespacePath(); + + foreach(lptr, namespaceSearchPath) + { + Oid namespaceId = (Oid) lfirsti(lptr); + + proc = FindDefaultConversion(namespaceId, for_encoding, to_encoding); + if (OidIsValid(proc)) + return proc; + } + + /* Not found in path */ + return InvalidOid; +} /* * recomputeNamespacePath - recompute path derived variables if needed. diff --git a/src/include/catalog/namespace.h b/src/include/catalog/namespace.h index 4d7fa7ec3e5..5341027c071 100644 --- a/src/include/catalog/namespace.h +++ b/src/include/catalog/namespace.h @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: namespace.h,v 1.15 2002/06/20 20:29:43 momjian Exp $ + * $Id: namespace.h,v 1.16 2002/07/16 06:58:13 ishii Exp $ * *------------------------------------------------------------------------- */ @@ -75,6 +75,8 @@ extern bool isTempNamespace(Oid namespaceId); extern void PushSpecialNamespace(Oid namespaceId); extern void PopSpecialNamespace(Oid namespaceId); +extern Oid FindDefaultConversionProc(int4 for_encoding, int4 to_encoding); + /* initialization & transaction cleanup code */ extern void InitializeSearchPath(void); extern void AtEOXact_Namespace(bool isCommit);