/*------------------------------------------------------------------------- * * test/src/relation_acess_tracking.c * * Some test UDF for tracking relation accesses within transaction blocks. * * Copyright (c) Citus Data, Inc. * *------------------------------------------------------------------------- */ #include "postgres.h" #include "c.h" #include "fmgr.h" #include "distributed/relation_access_tracking.h" /* declarations for dynamic loading */ PG_FUNCTION_INFO_V1(relation_select_access_mode); PG_FUNCTION_INFO_V1(relation_dml_access_mode); PG_FUNCTION_INFO_V1(relation_ddl_access_mode); /* * relation_select_access_mode returns the SELECT access * type (e.g., single shard - multi shard) for the given relation. */ Datum relation_select_access_mode(PG_FUNCTION_ARGS) { Oid relationId = PG_GETARG_OID(0); PG_RETURN_INT64(GetRelationSelectAccessMode(relationId)); } /* * relation_dml_access_mode returns the DML access type (e.g., * single shard - multi shard) for the given relation. */ Datum relation_dml_access_mode(PG_FUNCTION_ARGS) { Oid relationId = PG_GETARG_OID(0); PG_RETURN_INT64(GetRelationDMLAccessMode(relationId)); } /* * relation_ddl_access_mode returns the DDL access type (e.g., * single shard - multi shard) for the given relation. */ Datum relation_ddl_access_mode(PG_FUNCTION_ARGS) { Oid relationId = PG_GETARG_OID(0); PG_RETURN_INT64(GetRelationDDLAccessMode(relationId)); }