diff options
author | Robert Haas <rhaas@postgresql.org> | 2010-02-02 18:52:33 +0000 |
---|---|---|
committer | Robert Haas <rhaas@postgresql.org> | 2010-02-02 18:52:33 +0000 |
commit | d8db6a6096d1b901f2ad9077148a87cd95fb3e86 (patch) | |
tree | e3881ace8641de0d61b32952363d9ac395fa7fa3 /src/backend/catalog/pg_conversion.c | |
parent | 4d32f6d7bf2e4e2715b1f79b379a7cfcca16993c (diff) | |
download | postgresql-d8db6a6096d1b901f2ad9077148a87cd95fb3e86.tar.gz |
Fold FindConversion() into FindConversionByName() and remove ACL check.
All callers of FindConversionByName() already do suitable permissions
checking already apart from this function, but this is not just dead
code removal: the unnecessary permissions check can actually lead to
spurious failures - there's no reason why inability to execute the
underlying function should prohibit renaming the conversion, for example.
(The error messages in these cases were also rather poor:
FindConversion would return InvalidOid, eventually leading to a complaint
that the conversion "did not exist", which was not correct.)
KaiGai Kohei
Diffstat (limited to 'src/backend/catalog/pg_conversion.c')
-rw-r--r-- | src/backend/catalog/pg_conversion.c | 37 |
1 files changed, 1 insertions, 36 deletions
diff --git a/src/backend/catalog/pg_conversion.c b/src/backend/catalog/pg_conversion.c index a795815e64..cb3654a893 100644 --- a/src/backend/catalog/pg_conversion.c +++ b/src/backend/catalog/pg_conversion.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/catalog/pg_conversion.c,v 1.48 2010/01/02 16:57:36 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/catalog/pg_conversion.c,v 1.49 2010/02/02 18:52:33 rhaas Exp $ * *------------------------------------------------------------------------- */ @@ -209,38 +209,3 @@ FindDefaultConversion(Oid name_space, int32 for_encoding, int32 to_encoding) ReleaseSysCacheList(catlist); return proc; } - -/* - * FindConversion - * - * Find conversion by namespace and conversion name. - * Returns conversion OID. - */ -Oid -FindConversion(const char *conname, Oid connamespace) -{ - HeapTuple tuple; - Oid procoid; - Oid conoid; - AclResult aclresult; - - /* search pg_conversion by connamespace and conversion name */ - tuple = SearchSysCache(CONNAMENSP, - PointerGetDatum(conname), - ObjectIdGetDatum(connamespace), - 0, 0); - if (!HeapTupleIsValid(tuple)) - return InvalidOid; - - procoid = ((Form_pg_conversion) GETSTRUCT(tuple))->conproc; - conoid = HeapTupleGetOid(tuple); - - ReleaseSysCache(tuple); - - /* Check we have execute rights for the function */ - aclresult = pg_proc_aclcheck(procoid, GetUserId(), ACL_EXECUTE); - if (aclresult != ACLCHECK_OK) - return InvalidOid; - - return conoid; -} |