/* * statext_dependencies_load * Load the functional dependencies for the indicated pg_statistic_ext tuple */ MVDependencies * statext_dependencies_load(Oid mvoid) { MVDependencies *result; bool isnull; Datum deps; HeapTuple htup; htup = SearchSysCache1(STATEXTOID, ObjectIdGetDatum(mvoid)); if (!HeapTupleIsValid(htup)) elog(ERROR, "cache lookup failed for statistics object %u", mvoid); deps = SysCacheGetAttr(STATEXTOID, htup, Anum_pg_statistic_ext_stxdependencies, &isnull); if (isnull) elog(ERROR, "requested statistic kind \"%c\" is not yet built for statistics object %u", STATS_EXT_DEPENDENCIES, mvoid); result = statext_dependencies_deserialize(DatumGetByteaPP(deps)); ReleaseSysCache(htup); return result; }
/* * statext_ndistinct_load * Load the ndistinct value for the indicated pg_statistic_ext tuple */ MVNDistinct * statext_ndistinct_load(Oid mvoid) { MVNDistinct *result; bool isnull; Datum ndist; HeapTuple htup; htup = SearchSysCache1(STATEXTOID, ObjectIdGetDatum(mvoid)); if (!HeapTupleIsValid(htup)) elog(ERROR, "cache lookup failed for statistics object %u", mvoid); ndist = SysCacheGetAttr(STATEXTOID, htup, Anum_pg_statistic_ext_stxndistinct, &isnull); if (isnull) elog(ERROR, "requested statistic kind \"%c\" is not yet built for statistics object %u", STATS_EXT_NDISTINCT, mvoid); result = statext_ndistinct_deserialize(DatumGetByteaPP(ndist)); ReleaseSysCache(htup); return result; }
static PyObject * PLyBytes_FromBytea(PLyDatumToOb *arg, Datum d) { text *txt = DatumGetByteaPP(d); char *str = VARDATA_ANY(txt); size_t size = VARSIZE_ANY_EXHDR(txt); return PyBytes_FromStringAndSize(str, size); }