/** * @brief Getting the relation name * @param relation_id relation id * @return Tuple if valid relation_id, otherwise null */ char *Bridge::GetRelationName(Oid relation_id) { LOG_WARN("Do not use bridge function(%s) in Peloton !!! ", __func__); HeapTuple tuple; Form_pg_class pg_class; char *relation_name; tuple = GetPGClassTupleForRelationOid(relation_id); if (!HeapTupleIsValid(tuple)) { return NULL; } // Get relation name pg_class = (Form_pg_class)GETSTRUCT(tuple); relation_name = NameStr(pg_class->relname); return relation_name; }
/** * @brief Getting the number of tuples. * @param relation_id relation id * @return num_tuples if valid relation_id, otherwise -1 */ float Bridge::GetNumberOfTuples(Oid relation_id) { LOG_WARN("Do not use bridge function(%s) in Peloton !!! ", __func__); HeapTuple tuple; Form_pg_class pg_class; float num_tuples; tuple = GetPGClassTupleForRelationOid(relation_id); if (!HeapTupleIsValid(tuple)) { return -1; } pg_class = (Form_pg_class)GETSTRUCT(tuple); // Get number of tuples num_tuples = pg_class->reltuples; return num_tuples; }
/** * @brief Getting the number of attributes. * @param relation_id relation id * @return num_atts if valid relation_id, otherwise -1 */ int Bridge::GetNumberOfAttributes(Oid relation_id) { LOG_TRACE("Do not use bridge function(%s) in Peloton !!! ", __func__); HeapTuple tuple; Form_pg_class pg_class; int num_atts = -1; tuple = GetPGClassTupleForRelationOid(relation_id); if (!HeapTupleIsValid(tuple)) { return num_atts; } pg_class = (Form_pg_class)GETSTRUCT(tuple); // Get number of attributes num_atts = pg_class->relnatts; return num_atts; }