mirror of https://github.com/citusdata/citus.git
Adds pg_database_size_local_function
parent
6801a1ed1e
commit
5edc04d956
|
@ -17,6 +17,7 @@
|
||||||
|
|
||||||
#include "postgres.h"
|
#include "postgres.h"
|
||||||
|
|
||||||
|
#include "fmgr.h"
|
||||||
#include "miscadmin.h"
|
#include "miscadmin.h"
|
||||||
#include "pgstat.h"
|
#include "pgstat.h"
|
||||||
|
|
||||||
|
@ -184,6 +185,8 @@ PG_FUNCTION_INFO_V1(citus_internal_add_tenant_schema);
|
||||||
PG_FUNCTION_INFO_V1(citus_internal_delete_tenant_schema);
|
PG_FUNCTION_INFO_V1(citus_internal_delete_tenant_schema);
|
||||||
PG_FUNCTION_INFO_V1(citus_internal_update_none_dist_table_metadata);
|
PG_FUNCTION_INFO_V1(citus_internal_update_none_dist_table_metadata);
|
||||||
PG_FUNCTION_INFO_V1(citus_internal_database_command);
|
PG_FUNCTION_INFO_V1(citus_internal_database_command);
|
||||||
|
PG_FUNCTION_INFO_V1(citus_pg_database_size_by_db_name);
|
||||||
|
PG_FUNCTION_INFO_V1(citus_pg_database_size_by_db_oid);
|
||||||
|
|
||||||
|
|
||||||
static bool got_SIGTERM = false;
|
static bool got_SIGTERM = false;
|
||||||
|
@ -4048,6 +4051,43 @@ citus_internal_database_command(PG_FUNCTION_ARGS)
|
||||||
PG_RETURN_VOID();
|
PG_RETURN_VOID();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Datum
|
||||||
|
citus_pg_database_size_by_db_name(PG_FUNCTION_ARGS){
|
||||||
|
CheckCitusVersion(ERROR);
|
||||||
|
|
||||||
|
PG_ENSURE_ARGNOTNULL(0, "dbName");
|
||||||
|
|
||||||
|
Name dbName = PG_GETARG_NAME(0);
|
||||||
|
Datum size = DirectFunctionCall1(pg_database_size_name, NameGetDatum(dbName));
|
||||||
|
|
||||||
|
PG_RETURN_DATUM(size);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
Datum
|
||||||
|
citus_pg_database_size_by_db_oid(PG_FUNCTION_ARGS){
|
||||||
|
CheckCitusVersion(ERROR);
|
||||||
|
|
||||||
|
PG_ENSURE_ARGNOTNULL(0, "dbOid");
|
||||||
|
|
||||||
|
Oid dbOid = PG_GETARG_OID(0);
|
||||||
|
Datum size = DirectFunctionCall1(pg_database_size_oid, ObjectIdGetDatum(dbOid));
|
||||||
|
|
||||||
|
PG_RETURN_DATUM(size);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
Datum citus_internal_database_size(PG_FUNCTION_ARGS){
|
||||||
|
CheckCitusVersion(ERROR);
|
||||||
|
|
||||||
|
PG_ENSURE_ARGNOTNULL(0, "dbName");
|
||||||
|
|
||||||
|
Name dbName = PG_GETARG_NAME(0);
|
||||||
|
|
||||||
|
|
||||||
|
PG_RETURN_DATUM(size);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* SyncNewColocationGroup synchronizes a new pg_dist_colocation entry to a worker.
|
* SyncNewColocationGroup synchronizes a new pg_dist_colocation entry to a worker.
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
-- citus--12.2-1--12.1-1
|
-- citus--12.2-1--12.1-1
|
||||||
|
|
||||||
DROP FUNCTION pg_catalog.citus_internal_database_command(text);
|
DROP FUNCTION pg_catalog.citus_internal_database_command(text);
|
||||||
|
DROP FUNCTION pg_catalog.pg_database_size_local(name);
|
||||||
|
DROP FUNCTION pg_catalog.pg_database_size_local(oid);
|
||||||
|
|
||||||
#include "../udfs/citus_add_rebalance_strategy/10.1-1.sql"
|
#include "../udfs/citus_add_rebalance_strategy/10.1-1.sql"
|
||||||
|
|
|
@ -8,3 +8,19 @@ CREATE OR REPLACE FUNCTION pg_catalog.citus_internal_database_command(command te
|
||||||
AS 'MODULE_PATHNAME', $$citus_internal_database_command$$;
|
AS 'MODULE_PATHNAME', $$citus_internal_database_command$$;
|
||||||
COMMENT ON FUNCTION pg_catalog.citus_internal_database_command(text) IS
|
COMMENT ON FUNCTION pg_catalog.citus_internal_database_command(text) IS
|
||||||
'run a database command without transaction block restrictions';
|
'run a database command without transaction block restrictions';
|
||||||
|
|
||||||
|
CREATE OR REPLACE FUNCTION pg_catalog.pg_database_size_local(db_name name)
|
||||||
|
RETURNS bigint
|
||||||
|
LANGUAGE C
|
||||||
|
VOLATILE
|
||||||
|
AS 'MODULE_PATHNAME', $$citus_pg_database_size_by_db_name$$;
|
||||||
|
COMMENT ON FUNCTION pg_catalog.pg_database_size_local(name) IS
|
||||||
|
'calculates the size of a database in bytes by its name in a multi-node cluster';
|
||||||
|
|
||||||
|
CREATE OR REPLACE FUNCTION pg_catalog.pg_database_size_local(db_oid oid)
|
||||||
|
RETURNS bigint
|
||||||
|
LANGUAGE C
|
||||||
|
VOLATILE
|
||||||
|
AS 'MODULE_PATHNAME', $$citus_pg_database_size_by_db_oid$$;
|
||||||
|
COMMENT ON FUNCTION pg_catalog.pg_database_size_local(oid) IS
|
||||||
|
'calculates the size of a database in bytes by its oid in a multi-node cluster';
|
||||||
|
|
|
@ -8,3 +8,19 @@ CREATE OR REPLACE FUNCTION pg_catalog.citus_internal_database_command(command te
|
||||||
AS 'MODULE_PATHNAME', $$citus_internal_database_command$$;
|
AS 'MODULE_PATHNAME', $$citus_internal_database_command$$;
|
||||||
COMMENT ON FUNCTION pg_catalog.citus_internal_database_command(text) IS
|
COMMENT ON FUNCTION pg_catalog.citus_internal_database_command(text) IS
|
||||||
'run a database command without transaction block restrictions';
|
'run a database command without transaction block restrictions';
|
||||||
|
|
||||||
|
CREATE OR REPLACE FUNCTION pg_catalog.pg_database_size_local(db_name name)
|
||||||
|
RETURNS bigint
|
||||||
|
LANGUAGE C
|
||||||
|
VOLATILE
|
||||||
|
AS 'MODULE_PATHNAME', $$citus_pg_database_size_by_db_name$$;
|
||||||
|
COMMENT ON FUNCTION pg_catalog.pg_database_size_local(name) IS
|
||||||
|
'calculates the size of a database in bytes by its name in a multi-node cluster';
|
||||||
|
|
||||||
|
CREATE OR REPLACE FUNCTION pg_catalog.pg_database_size_local(db_oid oid)
|
||||||
|
RETURNS bigint
|
||||||
|
LANGUAGE C
|
||||||
|
VOLATILE
|
||||||
|
AS 'MODULE_PATHNAME', $$citus_pg_database_size_by_db_oid$$;
|
||||||
|
COMMENT ON FUNCTION pg_catalog.pg_database_size_local(oid) IS
|
||||||
|
'calculates the size of a database in bytes by its oid in a multi-node cluster';
|
||||||
|
|
Loading…
Reference in New Issue