diff --git a/doc/src/sgml/func.sgml b/doc/src/sgml/func.sgml index ceda48e0fc..809ccb8047 100644 --- a/doc/src/sgml/func.sgml +++ b/doc/src/sgml/func.sgml @@ -18740,6 +18740,10 @@ SELECT collation for ('foo' COLLATE "de_DE"); pg_get_object_address + + pg_is_user_object + + lists functions related to database object identification and addressing. @@ -18768,6 +18772,11 @@ SELECT collation for ('foo' COLLATE "de_DE"); type text, object_names text[], object_args text[] get external representation of a database object's address + + pg_is_user_object(oid) + bool + true if oid is user defined object + pg_get_object_address(type text, object_names text[], object_args text[]) classid oid, objid oid, objsubid integer diff --git a/src/backend/utils/adt/ruleutils.c b/src/backend/utils/adt/ruleutils.c index 158784474d..335b13d52f 100644 --- a/src/backend/utils/adt/ruleutils.c +++ b/src/backend/utils/adt/ruleutils.c @@ -3202,6 +3202,16 @@ pg_get_function_arg_default(PG_FUNCTION_ARGS) PG_RETURN_TEXT_P(string_to_text(str)); } +/* + * Return true if the given oid is normal user object + */ +Datum +pg_is_user_object(PG_FUNCTION_ARGS) +{ + Oid oid = PG_GETARG_OID(0); + + PG_RETURN_BOOL(oid >= FirstNormalObjectId); +} /* * deparse_expression - General utility for deparsing expressions diff --git a/src/include/catalog/pg_proc.dat b/src/include/catalog/pg_proc.dat index 2228256907..2dbee10c1c 100644 --- a/src/include/catalog/pg_proc.dat +++ b/src/include/catalog/pg_proc.dat @@ -3637,6 +3637,10 @@ proname => 'pg_get_function_arg_default', provolatile => 's', prorettype => 'text', proargtypes => 'oid int4', prosrc => 'pg_get_function_arg_default' }, +{ oid => '4192', descr => 'identify normal user object', + proname => 'pg_is_user_object', provolatile => 's', + prorettype => 'bool', proargtypes => 'oid', + prosrc => 'pg_is_user_object' }, { oid => '1686', descr => 'list of SQL keywords', proname => 'pg_get_keywords', procost => '10', prorows => '400',