Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes15kdownloads
objectaddress.h90 linesDownload Raw Back to catalog
1/*-------------------------------------------------------------------------2 *3 * objectaddress.h4 *	  functions for working with object addresses5 *6 * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group7 * Portions Copyright (c) 1994, Regents of the University of California8 *9 * src/include/catalog/objectaddress.h10 *11 *-------------------------------------------------------------------------12 */13#ifndef OBJECTADDRESS_H14#define OBJECTADDRESS_H15 16#include "access/htup.h"17#include "nodes/parsenodes.h"18#include "storage/lockdefs.h"19#include "utils/relcache.h"20 21/*22 * An ObjectAddress represents a database object of any type.23 */24typedef struct ObjectAddress25{26	Oid			classId;		/* Class Id from pg_class */27	Oid			objectId;		/* OID of the object */28	int32		objectSubId;	/* Subitem within object (eg column), or 0 */29} ObjectAddress;30 31extern PGDLLIMPORT const ObjectAddress InvalidObjectAddress;32 33#define ObjectAddressSubSet(addr, class_id, object_id, object_sub_id) \34	do { \35		(addr).classId = (class_id); \36		(addr).objectId = (object_id); \37		(addr).objectSubId = (object_sub_id); \38	} while (0)39 40#define ObjectAddressSet(addr, class_id, object_id) \41	ObjectAddressSubSet(addr, class_id, object_id, 0)42 43extern ObjectAddress get_object_address(ObjectType objtype, Node *object,44										Relation *relp,45										LOCKMODE lockmode, bool missing_ok);46 47extern ObjectAddress get_object_address_rv(ObjectType objtype, RangeVar *rel,48										   List *object, Relation *relp,49										   LOCKMODE lockmode, bool missing_ok);50 51extern void check_object_ownership(Oid roleid,52								   ObjectType objtype, ObjectAddress address,53								   Node *object, Relation relation);54 55extern Oid	get_object_namespace(const ObjectAddress *address);56 57extern bool is_objectclass_supported(Oid class_id);58extern const char *get_object_class_descr(Oid class_id);59extern Oid	get_object_oid_index(Oid class_id);60extern int	get_object_catcache_oid(Oid class_id);61extern int	get_object_catcache_name(Oid class_id);62extern AttrNumber get_object_attnum_oid(Oid class_id);63extern AttrNumber get_object_attnum_name(Oid class_id);64extern AttrNumber get_object_attnum_namespace(Oid class_id);65extern AttrNumber get_object_attnum_owner(Oid class_id);66extern AttrNumber get_object_attnum_acl(Oid class_id);67extern ObjectType get_object_type(Oid class_id, Oid object_id);68extern bool get_object_namensp_unique(Oid class_id);69 70extern HeapTuple get_catalog_object_by_oid(Relation catalog,71										   AttrNumber oidcol, Oid objectId);72 73extern char *getObjectDescription(const ObjectAddress *object,74								  bool missing_ok);75extern char *getObjectDescriptionOids(Oid classid, Oid objid);76 77extern int	read_objtype_from_string(const char *objtype);78extern char *getObjectTypeDescription(const ObjectAddress *object,79									  bool missing_ok);80extern char *getObjectIdentity(const ObjectAddress *object,81							   bool missing_ok);82extern char *getObjectIdentityParts(const ObjectAddress *object,83									List **objname, List **objargs,84									bool missing_ok);85extern struct ArrayType *strlist_to_textarray(List *list);86 87extern ObjectType get_relkind_objtype(char relkind);88 89#endif							/* OBJECTADDRESS_H */90 
codekingpro/portable-devtools · Team Ai