Add citus shard helper view (#4361)

With citus shard helper view, we can easily see:
- where each shard is, which node, which port
- what kind of table it belongs to
- its size

With such a view, we can see shards that have a size bigger than some
value, which could be useful. Also debugging can be easier in production
as well with this view.

Fetch shards in one go per node

The previous implementation was slow because it would do a lot of round
trips, one per shard to be exact. Hence it is improved so that we fetch
all the shard_name, shard-size pairs per node in one go.

Construct shards_names, sizes query on coordinator
pull/4501/head^2
SaitTalhaNisanci 2021-01-13 13:58:47 +03:00 committed by GitHub
parent 7e0826a06b
commit 724d56f949
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
16 changed files with 802 additions and 19 deletions

View File

@ -3777,6 +3777,16 @@ InvalidateMetadataSystemCache(void)
} }
/*
* AllCitusTableIds returns all citus table ids.
*/
List *
AllCitusTableIds(void)
{
return CitusTableTypeIdList(ANY_CITUS_TABLE_TYPE);
}
/* /*
* CitusTableTypeIdList function scans pg_dist_partition and returns a * CitusTableTypeIdList function scans pg_dist_partition and returns a
* list of OID's for the tables matching given citusTableType. * list of OID's for the tables matching given citusTableType.

View File

@ -35,6 +35,7 @@
#include "distributed/citus_nodes.h" #include "distributed/citus_nodes.h"
#include "distributed/citus_safe_lib.h" #include "distributed/citus_safe_lib.h"
#include "distributed/listutils.h" #include "distributed/listutils.h"
#include "distributed/lock_graph.h"
#include "distributed/metadata_utility.h" #include "distributed/metadata_utility.h"
#include "distributed/coordinator_protocol.h" #include "distributed/coordinator_protocol.h"
#include "distributed/metadata_cache.h" #include "distributed/metadata_cache.h"
@ -50,6 +51,7 @@
#include "distributed/relay_utility.h" #include "distributed/relay_utility.h"
#include "distributed/resource_lock.h" #include "distributed/resource_lock.h"
#include "distributed/remote_commands.h" #include "distributed/remote_commands.h"
#include "distributed/tuplestore.h"
#include "distributed/worker_manager.h" #include "distributed/worker_manager.h"
#include "distributed/worker_protocol.h" #include "distributed/worker_protocol.h"
#include "distributed/version_compat.h" #include "distributed/version_compat.h"
@ -77,13 +79,59 @@ static bool DistributedTableSizeOnWorker(WorkerNode *workerNode, Oid relationId,
char *sizeQuery, bool failOnError, char *sizeQuery, bool failOnError,
uint64 *tableSize); uint64 *tableSize);
static List * ShardIntervalsOnWorkerGroup(WorkerNode *workerNode, Oid relationId); static List * ShardIntervalsOnWorkerGroup(WorkerNode *workerNode, Oid relationId);
static char * GenerateShardNameAndSizeQueryForShardList(List *shardIntervalList);
static char * GenerateAllShardNameAndSizeQueryForNode(WorkerNode *workerNode);
static List * GenerateShardSizesQueryList(List *workerNodeList);
static void ErrorIfNotSuitableToGetSize(Oid relationId); static void ErrorIfNotSuitableToGetSize(Oid relationId);
static List * OpenConnectionToNodes(List *workerNodeList);
static void ReceiveShardNameAndSizeResults(List *connectionList,
Tuplestorestate *tupleStore,
TupleDesc tupleDescriptor);
/* exports for SQL callable functions */ /* exports for SQL callable functions */
PG_FUNCTION_INFO_V1(citus_table_size); PG_FUNCTION_INFO_V1(citus_table_size);
PG_FUNCTION_INFO_V1(citus_total_relation_size); PG_FUNCTION_INFO_V1(citus_total_relation_size);
PG_FUNCTION_INFO_V1(citus_relation_size); PG_FUNCTION_INFO_V1(citus_relation_size);
PG_FUNCTION_INFO_V1(citus_shard_sizes);
/*
* citus_shard_sizes returns all shard names and their sizes.
*/
Datum
citus_shard_sizes(PG_FUNCTION_ARGS)
{
CheckCitusVersion(ERROR);
List *workerNodeList = ActivePrimaryNodeList(NoLock);
List *shardSizesQueryList = GenerateShardSizesQueryList(workerNodeList);
List *connectionList = OpenConnectionToNodes(workerNodeList);
FinishConnectionListEstablishment(connectionList);
/* send commands in parallel */
for (int i = 0; i < list_length(connectionList); i++)
{
MultiConnection *connection = (MultiConnection *) list_nth(connectionList, i);
char *shardSizesQuery = (char *) list_nth(shardSizesQueryList, i);
int querySent = SendRemoteCommand(connection, shardSizesQuery);
if (querySent == 0)
{
ReportConnectionError(connection, WARNING);
}
}
TupleDesc tupleDescriptor = NULL;
Tuplestorestate *tupleStore = SetupTuplestore(fcinfo, &tupleDescriptor);
ReceiveShardNameAndSizeResults(connectionList, tupleStore, tupleDescriptor);
/* clean up and return the tuplestore */
tuplestore_donestoring(tupleStore);
PG_RETURN_VOID();
}
/* /*
@ -177,6 +225,107 @@ citus_relation_size(PG_FUNCTION_ARGS)
} }
/*
* OpenConnectionToNodes opens a single connection per node
* for the given workerNodeList.
*/
static List *
OpenConnectionToNodes(List *workerNodeList)
{
List *connectionList = NIL;
WorkerNode *workerNode = NULL;
foreach_ptr(workerNode, workerNodeList)
{
const char *nodeName = workerNode->workerName;
int nodePort = workerNode->workerPort;
int connectionFlags = 0;
MultiConnection *connection = StartNodeConnection(connectionFlags, nodeName,
nodePort);
connectionList = lappend(connectionList, connection);
}
return connectionList;
}
/*
* GenerateShardSizesQueryList generates a query per node that
* will return all shard_name, shard_size pairs from the node.
*/
static List *
GenerateShardSizesQueryList(List *workerNodeList)
{
List *shardSizesQueryList = NIL;
WorkerNode *workerNode = NULL;
foreach_ptr(workerNode, workerNodeList)
{
char *shardSizesQuery = GenerateAllShardNameAndSizeQueryForNode(workerNode);
shardSizesQueryList = lappend(shardSizesQueryList, shardSizesQuery);
}
return shardSizesQueryList;
}
/*
* ReceiveShardNameAndSizeResults receives shard name and size results from the given
* connection list.
*/
static void
ReceiveShardNameAndSizeResults(List *connectionList, Tuplestorestate *tupleStore,
TupleDesc tupleDescriptor)
{
MultiConnection *connection = NULL;
foreach_ptr(connection, connectionList)
{
bool raiseInterrupts = true;
Datum values[SHARD_SIZES_COLUMN_COUNT];
bool isNulls[SHARD_SIZES_COLUMN_COUNT];
if (PQstatus(connection->pgConn) != CONNECTION_OK)
{
continue;
}
PGresult *result = GetRemoteCommandResult(connection, raiseInterrupts);
if (!IsResponseOK(result))
{
ReportResultError(connection, result, WARNING);
continue;
}
int64 rowCount = PQntuples(result);
int64 colCount = PQnfields(result);
/* Although it is not expected */
if (colCount != SHARD_SIZES_COLUMN_COUNT)
{
ereport(WARNING, (errmsg("unexpected number of columns from "
"citus_shard_sizes")));
continue;
}
for (int64 rowIndex = 0; rowIndex < rowCount; rowIndex++)
{
memset(values, 0, sizeof(values));
memset(isNulls, false, sizeof(isNulls));
char *tableName = PQgetvalue(result, rowIndex, 0);
Datum resultStringDatum = CStringGetDatum(tableName);
Datum textDatum = DirectFunctionCall1(textin, resultStringDatum);
values[0] = textDatum;
values[1] = ParseIntField(result, rowIndex, 1);
tuplestore_putvalues(tupleStore, tupleDescriptor, values, isNulls);
}
PQclear(result);
ForgetResults(connection);
}
}
/* /*
* DistributedTableSize is helper function for each kind of citus size functions. * DistributedTableSize is helper function for each kind of citus size functions.
* It first checks whether the table is distributed and size query can be run on * It first checks whether the table is distributed and size query can be run on
@ -422,6 +571,62 @@ GenerateSizeQueryOnMultiplePlacements(List *shardIntervalList, char *sizeQuery)
} }
/*
* GenerateAllShardNameAndSizeQueryForNode generates a query that returns all
* shard_name, shard_size pairs for the given node.
*/
static char *
GenerateAllShardNameAndSizeQueryForNode(WorkerNode *workerNode)
{
List *allCitusTableIds = AllCitusTableIds();
StringInfo allShardNameAndSizeQuery = makeStringInfo();
Oid relationId = InvalidOid;
foreach_oid(relationId, allCitusTableIds)
{
List *shardIntervalsOnNode = ShardIntervalsOnWorkerGroup(workerNode, relationId);
char *shardNameAndSizeQuery =
GenerateShardNameAndSizeQueryForShardList(shardIntervalsOnNode);
appendStringInfoString(allShardNameAndSizeQuery, shardNameAndSizeQuery);
}
/* Add a dummy entry so that UNION ALL doesn't complain */
appendStringInfo(allShardNameAndSizeQuery, "SELECT NULL::text, 0::bigint;");
return allShardNameAndSizeQuery->data;
}
/*
* GenerateShardNameAndSizeQueryForShardList generates a SELECT shard_name - shard_size query to get
* size of multiple tables.
*/
static char *
GenerateShardNameAndSizeQueryForShardList(List *shardIntervalList)
{
StringInfo selectQuery = makeStringInfo();
ShardInterval *shardInterval = NULL;
foreach_ptr(shardInterval, shardIntervalList)
{
uint64 shardId = shardInterval->shardId;
Oid schemaId = get_rel_namespace(shardInterval->relationId);
char *schemaName = get_namespace_name(schemaId);
char *shardName = get_rel_name(shardInterval->relationId);
AppendShardIdToName(&shardName, shardId);
char *shardQualifiedName = quote_qualified_identifier(schemaName, shardName);
char *quotedShardName = quote_literal_cstr(shardQualifiedName);
appendStringInfo(selectQuery, "SELECT %s AS shard_name, ", quotedShardName);
appendStringInfo(selectQuery, PG_RELATION_SIZE_FUNCTION, quotedShardName);
appendStringInfo(selectQuery, " UNION ALL ");
}
return selectQuery->data;
}
/* /*
* ErrorIfNotSuitableToGetSize determines whether the table is suitable to find * ErrorIfNotSuitableToGetSize determines whether the table is suitable to find
* its' size with internal functions. * its' size with internal functions.

View File

@ -50,3 +50,6 @@ RENAME TO citus_drop_all_shards;
DROP FUNCTION pg_catalog.master_modify_multiple_shards(text); DROP FUNCTION pg_catalog.master_modify_multiple_shards(text);
DROP FUNCTION master_create_distributed_table(regclass, text, citus.distribution_type); DROP FUNCTION master_create_distributed_table(regclass, text, citus.distribution_type);
DROP FUNCTION master_create_worker_shards(text, integer, integer); DROP FUNCTION master_create_worker_shards(text, integer, integer);
#include "udfs/citus_shard_sizes/10.0-1.sql"
#include "udfs/citus_shards/10.0-1.sql"

View File

@ -75,3 +75,5 @@ CREATE FUNCTION pg_catalog.master_create_worker_shards(table_name text, shard_co
#include "../udfs/upgrade_to_reference_table/8.0-1.sql" #include "../udfs/upgrade_to_reference_table/8.0-1.sql"
#include "../udfs/undistribute_table/9.5-1.sql" #include "../udfs/undistribute_table/9.5-1.sql"
#include "../udfs/create_citus_local_table/9.5-1.sql" #include "../udfs/create_citus_local_table/9.5-1.sql"
DROP VIEW pg_catalog.citus_shards CASCADE;
DROP FUNCTION pg_catalog.citus_shard_sizes(OUT table_name text, OUT size bigint);

View File

@ -0,0 +1,6 @@
CREATE FUNCTION pg_catalog.citus_shard_sizes(OUT table_name text, OUT size bigint)
RETURNS SETOF RECORD
LANGUAGE C STRICT
AS 'MODULE_PATHNAME', $$citus_shard_sizes$$;
COMMENT ON FUNCTION pg_catalog.citus_shard_sizes(OUT table_name text, OUT size bigint)
IS 'returns shards sizes across citus cluster';

View File

@ -0,0 +1,6 @@
CREATE FUNCTION pg_catalog.citus_shard_sizes(OUT table_name text, OUT size bigint)
RETURNS SETOF RECORD
LANGUAGE C STRICT
AS 'MODULE_PATHNAME', $$citus_shard_sizes$$;
COMMENT ON FUNCTION pg_catalog.citus_shard_sizes(OUT table_name text, OUT size bigint)
IS 'returns shards sizes across citus cluster';

View File

@ -0,0 +1,33 @@
CREATE OR REPLACE VIEW citus.citus_shards AS
WITH shard_sizes AS (SELECT * FROM pg_catalog.citus_shard_sizes())
SELECT
shard_name(pg_dist_shard.logicalrelid, pg_dist_shard.shardid) as shard_name,
pg_dist_shard.shardid,
pg_dist_shard.logicalrelid AS table_name,
CASE WHEN partkey IS NOT NULL THEN 'distributed' WHEN repmodel = 't' THEN 'reference' ELSE 'local' END AS citus_table_type,
colocationid AS colocation_id,
pg_dist_node.nodename,
pg_dist_node.nodeport,
(SELECT pg_size_pretty(size) FROM shard_sizes WHERE
shard_name(pg_dist_shard.logicalrelid, pg_dist_shard.shardid) = table_name
OR
'public.' || shard_name(pg_dist_shard.logicalrelid, pg_dist_shard.shardid) = table_name
LIMIT 1) as shard_size
FROM
pg_dist_shard
JOIN
pg_dist_placement
ON
pg_dist_shard.shardid = pg_dist_placement.shardid
JOIN
pg_dist_node
ON
pg_dist_placement.groupid = pg_dist_node.groupid
JOIN
pg_dist_partition
ON
pg_dist_partition.logicalrelid = pg_dist_shard.logicalrelid
;
ALTER VIEW citus.citus_shards SET SCHEMA pg_catalog;
GRANT SELECT ON pg_catalog.citus_shards TO public;

View File

@ -0,0 +1,33 @@
CREATE OR REPLACE VIEW citus.citus_shards AS
WITH shard_sizes AS (SELECT * FROM pg_catalog.citus_shard_sizes())
SELECT
shard_name(pg_dist_shard.logicalrelid, pg_dist_shard.shardid) as shard_name,
pg_dist_shard.shardid,
pg_dist_shard.logicalrelid AS table_name,
CASE WHEN partkey IS NOT NULL THEN 'distributed' WHEN repmodel = 't' THEN 'reference' ELSE 'local' END AS citus_table_type,
colocationid AS colocation_id,
pg_dist_node.nodename,
pg_dist_node.nodeport,
(SELECT pg_size_pretty(size) FROM shard_sizes WHERE
shard_name(pg_dist_shard.logicalrelid, pg_dist_shard.shardid) = table_name
OR
'public.' || shard_name(pg_dist_shard.logicalrelid, pg_dist_shard.shardid) = table_name
LIMIT 1) as shard_size
FROM
pg_dist_shard
JOIN
pg_dist_placement
ON
pg_dist_shard.shardid = pg_dist_placement.shardid
JOIN
pg_dist_node
ON
pg_dist_placement.groupid = pg_dist_node.groupid
JOIN
pg_dist_partition
ON
pg_dist_partition.logicalrelid = pg_dist_shard.logicalrelid
;
ALTER VIEW citus.citus_shards SET SCHEMA pg_catalog;
GRANT SELECT ON pg_catalog.citus_shards TO public;

View File

@ -137,7 +137,7 @@ typedef enum
ANY_CITUS_TABLE_TYPE ANY_CITUS_TABLE_TYPE
} CitusTableType; } CitusTableType;
extern List * AllCitusTableIds(void);
extern bool IsCitusTableType(Oid relationId, CitusTableType tableType); extern bool IsCitusTableType(Oid relationId, CitusTableType tableType);
extern bool IsCitusTableTypeCacheEntry(CitusTableCacheEntry *tableEtnry, extern bool IsCitusTableTypeCacheEntry(CitusTableCacheEntry *tableEtnry,
CitusTableType tableType); CitusTableType tableType);

View File

@ -35,6 +35,8 @@
#define PG_TOTAL_RELATION_SIZE_FUNCTION "pg_total_relation_size(%s)" #define PG_TOTAL_RELATION_SIZE_FUNCTION "pg_total_relation_size(%s)"
#define CSTORE_TABLE_SIZE_FUNCTION "cstore_table_size(%s)" #define CSTORE_TABLE_SIZE_FUNCTION "cstore_table_size(%s)"
#define SHARD_SIZES_COLUMN_COUNT 2
/* In-memory representation of a typed tuple in pg_dist_shard. */ /* In-memory representation of a typed tuple in pg_dist_shard. */
typedef struct ShardInterval typedef struct ShardInterval
{ {

View File

@ -483,6 +483,7 @@ SELECT * FROM print_extension_changes();
| function citus_remove_node(text,integer) | function citus_remove_node(text,integer)
| function citus_set_coordinator_host(text,integer,noderole,name) | function citus_set_coordinator_host(text,integer,noderole,name)
| function citus_set_node_property(text,integer,text,boolean) | function citus_set_node_property(text,integer,text,boolean)
| function citus_shard_sizes()
| function citus_total_relation_size(regclass,boolean) | function citus_total_relation_size(regclass,boolean)
| function citus_unmark_object_distributed(oid,oid,integer) | function citus_unmark_object_distributed(oid,oid,integer)
| function citus_update_node(integer,text,integer,boolean,integer) | function citus_update_node(integer,text,integer,boolean,integer)
@ -497,9 +498,10 @@ SELECT * FROM print_extension_changes();
| table columnar.columnar_skipnodes | table columnar.columnar_skipnodes
| table columnar.columnar_stripes | table columnar.columnar_stripes
| table columnar.options | table columnar.options
| view citus_shards
| view citus_tables | view citus_tables
| view time_partitions | view time_partitions
(54 rows) (56 rows)
DROP TABLE prev_objects, extension_diff; DROP TABLE prev_objects, extension_diff;
-- show running version -- show running version

View File

@ -480,6 +480,7 @@ SELECT * FROM print_extension_changes();
| function citus_remove_node(text,integer) | function citus_remove_node(text,integer)
| function citus_set_coordinator_host(text,integer,noderole,name) | function citus_set_coordinator_host(text,integer,noderole,name)
| function citus_set_node_property(text,integer,text,boolean) | function citus_set_node_property(text,integer,text,boolean)
| function citus_shard_sizes()
| function citus_total_relation_size(regclass,boolean) | function citus_total_relation_size(regclass,boolean)
| function citus_unmark_object_distributed(oid,oid,integer) | function citus_unmark_object_distributed(oid,oid,integer)
| function citus_update_node(integer,text,integer,boolean,integer) | function citus_update_node(integer,text,integer,boolean,integer)
@ -493,9 +494,10 @@ SELECT * FROM print_extension_changes();
| table columnar.columnar_skipnodes | table columnar.columnar_skipnodes
| table columnar.columnar_stripes | table columnar.columnar_stripes
| table columnar.options | table columnar.options
| view citus_shards
| view citus_tables | view citus_tables
| view time_partitions | view time_partitions
(50 rows) (52 rows)
DROP TABLE prev_objects, extension_diff; DROP TABLE prev_objects, extension_diff;
-- show running version -- show running version

View File

@ -546,3 +546,477 @@ ORDER BY "Name"::text;
supplier_mx | reference | <none> | 1 | postgres supplier_mx | reference | <none> | 1 | postgres
(23 rows) (23 rows)
SELECT shard_name, table_name, citus_table_type, shard_size FROM citus_shards ORDER BY shard_name::text;
shard_name | table_name | citus_table_type | shard_size
---------------------------------------------------------------------
app_analytics_events_mx_1220096 | app_analytics_events_mx | distributed | 0 bytes
app_analytics_events_mx_1220096 | app_analytics_events_mx | distributed | 0 bytes
app_analytics_events_mx_1220096 | app_analytics_events_mx | distributed | 0 bytes
app_analytics_events_mx_1220096 | app_analytics_events_mx | distributed | 0 bytes
app_analytics_events_mx_1220096 | app_analytics_events_mx | distributed | 0 bytes
app_analytics_events_mx_1220096 | app_analytics_events_mx | distributed | 0 bytes
app_analytics_events_mx_1220096 | app_analytics_events_mx | distributed | 0 bytes
app_analytics_events_mx_1220097 | app_analytics_events_mx | distributed | 0 bytes
app_analytics_events_mx_1220098 | app_analytics_events_mx | distributed | 0 bytes
app_analytics_events_mx_1220098 | app_analytics_events_mx | distributed | 0 bytes
app_analytics_events_mx_1220098 | app_analytics_events_mx | distributed | 0 bytes
app_analytics_events_mx_1220098 | app_analytics_events_mx | distributed | 0 bytes
app_analytics_events_mx_1220098 | app_analytics_events_mx | distributed | 0 bytes
app_analytics_events_mx_1220098 | app_analytics_events_mx | distributed | 0 bytes
app_analytics_events_mx_1220098 | app_analytics_events_mx | distributed | 0 bytes
app_analytics_events_mx_1220099 | app_analytics_events_mx | distributed | 0 bytes
articles_hash_mx_1220104 | articles_hash_mx | distributed | 0 bytes
articles_hash_mx_1220104 | articles_hash_mx | distributed | 0 bytes
articles_hash_mx_1220104 | articles_hash_mx | distributed | 0 bytes
articles_hash_mx_1220104 | articles_hash_mx | distributed | 0 bytes
articles_hash_mx_1220104 | articles_hash_mx | distributed | 0 bytes
articles_hash_mx_1220104 | articles_hash_mx | distributed | 0 bytes
articles_hash_mx_1220104 | articles_hash_mx | distributed | 0 bytes
articles_hash_mx_1220105 | articles_hash_mx | distributed | 0 bytes
articles_single_shard_hash_mx_1220106 | articles_single_shard_hash_mx | distributed | 0 bytes
articles_single_shard_hash_mx_1220106 | articles_single_shard_hash_mx | distributed | 0 bytes
articles_single_shard_hash_mx_1220106 | articles_single_shard_hash_mx | distributed | 0 bytes
articles_single_shard_hash_mx_1220106 | articles_single_shard_hash_mx | distributed | 0 bytes
articles_single_shard_hash_mx_1220106 | articles_single_shard_hash_mx | distributed | 0 bytes
articles_single_shard_hash_mx_1220106 | articles_single_shard_hash_mx | distributed | 0 bytes
articles_single_shard_hash_mx_1220106 | articles_single_shard_hash_mx | distributed | 0 bytes
citus_mx_test_schema.nation_hash_1220016 | citus_mx_test_schema.nation_hash | distributed | 0 bytes
citus_mx_test_schema.nation_hash_1220016 | citus_mx_test_schema.nation_hash | distributed | 0 bytes
citus_mx_test_schema.nation_hash_1220016 | citus_mx_test_schema.nation_hash | distributed | 0 bytes
citus_mx_test_schema.nation_hash_1220016 | citus_mx_test_schema.nation_hash | distributed | 0 bytes
citus_mx_test_schema.nation_hash_1220016 | citus_mx_test_schema.nation_hash | distributed | 0 bytes
citus_mx_test_schema.nation_hash_1220016 | citus_mx_test_schema.nation_hash | distributed | 0 bytes
citus_mx_test_schema.nation_hash_1220016 | citus_mx_test_schema.nation_hash | distributed | 0 bytes
citus_mx_test_schema.nation_hash_1220017 | citus_mx_test_schema.nation_hash | distributed | 0 bytes
citus_mx_test_schema.nation_hash_1220018 | citus_mx_test_schema.nation_hash | distributed | 0 bytes
citus_mx_test_schema.nation_hash_1220018 | citus_mx_test_schema.nation_hash | distributed | 0 bytes
citus_mx_test_schema.nation_hash_1220018 | citus_mx_test_schema.nation_hash | distributed | 0 bytes
citus_mx_test_schema.nation_hash_1220018 | citus_mx_test_schema.nation_hash | distributed | 0 bytes
citus_mx_test_schema.nation_hash_1220018 | citus_mx_test_schema.nation_hash | distributed | 0 bytes
citus_mx_test_schema.nation_hash_1220018 | citus_mx_test_schema.nation_hash | distributed | 0 bytes
citus_mx_test_schema.nation_hash_1220018 | citus_mx_test_schema.nation_hash | distributed | 0 bytes
citus_mx_test_schema.nation_hash_1220019 | citus_mx_test_schema.nation_hash | distributed | 0 bytes
citus_mx_test_schema.nation_hash_1220020 | citus_mx_test_schema.nation_hash | distributed | 0 bytes
citus_mx_test_schema.nation_hash_1220020 | citus_mx_test_schema.nation_hash | distributed | 0 bytes
citus_mx_test_schema.nation_hash_1220020 | citus_mx_test_schema.nation_hash | distributed | 0 bytes
citus_mx_test_schema.nation_hash_1220020 | citus_mx_test_schema.nation_hash | distributed | 0 bytes
citus_mx_test_schema.nation_hash_1220020 | citus_mx_test_schema.nation_hash | distributed | 0 bytes
citus_mx_test_schema.nation_hash_1220020 | citus_mx_test_schema.nation_hash | distributed | 0 bytes
citus_mx_test_schema.nation_hash_1220020 | citus_mx_test_schema.nation_hash | distributed | 0 bytes
citus_mx_test_schema.nation_hash_1220021 | citus_mx_test_schema.nation_hash | distributed | 0 bytes
citus_mx_test_schema.nation_hash_1220022 | citus_mx_test_schema.nation_hash | distributed | 0 bytes
citus_mx_test_schema.nation_hash_1220022 | citus_mx_test_schema.nation_hash | distributed | 0 bytes
citus_mx_test_schema.nation_hash_1220022 | citus_mx_test_schema.nation_hash | distributed | 0 bytes
citus_mx_test_schema.nation_hash_1220022 | citus_mx_test_schema.nation_hash | distributed | 0 bytes
citus_mx_test_schema.nation_hash_1220022 | citus_mx_test_schema.nation_hash | distributed | 0 bytes
citus_mx_test_schema.nation_hash_1220022 | citus_mx_test_schema.nation_hash | distributed | 0 bytes
citus_mx_test_schema.nation_hash_1220022 | citus_mx_test_schema.nation_hash | distributed | 0 bytes
citus_mx_test_schema.nation_hash_1220023 | citus_mx_test_schema.nation_hash | distributed | 0 bytes
citus_mx_test_schema.nation_hash_1220024 | citus_mx_test_schema.nation_hash | distributed | 0 bytes
citus_mx_test_schema.nation_hash_1220024 | citus_mx_test_schema.nation_hash | distributed | 0 bytes
citus_mx_test_schema.nation_hash_1220024 | citus_mx_test_schema.nation_hash | distributed | 0 bytes
citus_mx_test_schema.nation_hash_1220024 | citus_mx_test_schema.nation_hash | distributed | 0 bytes
citus_mx_test_schema.nation_hash_1220024 | citus_mx_test_schema.nation_hash | distributed | 0 bytes
citus_mx_test_schema.nation_hash_1220024 | citus_mx_test_schema.nation_hash | distributed | 0 bytes
citus_mx_test_schema.nation_hash_1220024 | citus_mx_test_schema.nation_hash | distributed | 0 bytes
citus_mx_test_schema.nation_hash_1220025 | citus_mx_test_schema.nation_hash | distributed | 0 bytes
citus_mx_test_schema.nation_hash_1220026 | citus_mx_test_schema.nation_hash | distributed | 0 bytes
citus_mx_test_schema.nation_hash_1220026 | citus_mx_test_schema.nation_hash | distributed | 0 bytes
citus_mx_test_schema.nation_hash_1220026 | citus_mx_test_schema.nation_hash | distributed | 0 bytes
citus_mx_test_schema.nation_hash_1220026 | citus_mx_test_schema.nation_hash | distributed | 0 bytes
citus_mx_test_schema.nation_hash_1220026 | citus_mx_test_schema.nation_hash | distributed | 0 bytes
citus_mx_test_schema.nation_hash_1220026 | citus_mx_test_schema.nation_hash | distributed | 0 bytes
citus_mx_test_schema.nation_hash_1220026 | citus_mx_test_schema.nation_hash | distributed | 0 bytes
citus_mx_test_schema.nation_hash_1220027 | citus_mx_test_schema.nation_hash | distributed | 0 bytes
citus_mx_test_schema.nation_hash_1220028 | citus_mx_test_schema.nation_hash | distributed | 0 bytes
citus_mx_test_schema.nation_hash_1220028 | citus_mx_test_schema.nation_hash | distributed | 0 bytes
citus_mx_test_schema.nation_hash_1220028 | citus_mx_test_schema.nation_hash | distributed | 0 bytes
citus_mx_test_schema.nation_hash_1220028 | citus_mx_test_schema.nation_hash | distributed | 0 bytes
citus_mx_test_schema.nation_hash_1220028 | citus_mx_test_schema.nation_hash | distributed | 0 bytes
citus_mx_test_schema.nation_hash_1220028 | citus_mx_test_schema.nation_hash | distributed | 0 bytes
citus_mx_test_schema.nation_hash_1220028 | citus_mx_test_schema.nation_hash | distributed | 0 bytes
citus_mx_test_schema.nation_hash_1220029 | citus_mx_test_schema.nation_hash | distributed | 0 bytes
citus_mx_test_schema.nation_hash_1220030 | citus_mx_test_schema.nation_hash | distributed | 0 bytes
citus_mx_test_schema.nation_hash_1220030 | citus_mx_test_schema.nation_hash | distributed | 0 bytes
citus_mx_test_schema.nation_hash_1220030 | citus_mx_test_schema.nation_hash | distributed | 0 bytes
citus_mx_test_schema.nation_hash_1220030 | citus_mx_test_schema.nation_hash | distributed | 0 bytes
citus_mx_test_schema.nation_hash_1220030 | citus_mx_test_schema.nation_hash | distributed | 0 bytes
citus_mx_test_schema.nation_hash_1220030 | citus_mx_test_schema.nation_hash | distributed | 0 bytes
citus_mx_test_schema.nation_hash_1220030 | citus_mx_test_schema.nation_hash | distributed | 0 bytes
citus_mx_test_schema.nation_hash_1220031 | citus_mx_test_schema.nation_hash | distributed | 0 bytes
citus_mx_test_schema.nation_hash_collation_search_path_1220044 | citus_mx_test_schema.nation_hash_collation_search_path | distributed | 8192 bytes
citus_mx_test_schema.nation_hash_collation_search_path_1220044 | citus_mx_test_schema.nation_hash_collation_search_path | distributed | 8192 bytes
citus_mx_test_schema.nation_hash_collation_search_path_1220044 | citus_mx_test_schema.nation_hash_collation_search_path | distributed | 8192 bytes
citus_mx_test_schema.nation_hash_collation_search_path_1220044 | citus_mx_test_schema.nation_hash_collation_search_path | distributed | 8192 bytes
citus_mx_test_schema.nation_hash_collation_search_path_1220044 | citus_mx_test_schema.nation_hash_collation_search_path | distributed | 8192 bytes
citus_mx_test_schema.nation_hash_collation_search_path_1220044 | citus_mx_test_schema.nation_hash_collation_search_path | distributed | 8192 bytes
citus_mx_test_schema.nation_hash_collation_search_path_1220044 | citus_mx_test_schema.nation_hash_collation_search_path | distributed | 8192 bytes
citus_mx_test_schema.nation_hash_collation_search_path_1220045 | citus_mx_test_schema.nation_hash_collation_search_path | distributed | 8192 bytes
citus_mx_test_schema.nation_hash_collation_search_path_1220046 | citus_mx_test_schema.nation_hash_collation_search_path | distributed | 0 bytes
citus_mx_test_schema.nation_hash_collation_search_path_1220046 | citus_mx_test_schema.nation_hash_collation_search_path | distributed | 0 bytes
citus_mx_test_schema.nation_hash_collation_search_path_1220046 | citus_mx_test_schema.nation_hash_collation_search_path | distributed | 0 bytes
citus_mx_test_schema.nation_hash_collation_search_path_1220046 | citus_mx_test_schema.nation_hash_collation_search_path | distributed | 0 bytes
citus_mx_test_schema.nation_hash_collation_search_path_1220046 | citus_mx_test_schema.nation_hash_collation_search_path | distributed | 0 bytes
citus_mx_test_schema.nation_hash_collation_search_path_1220046 | citus_mx_test_schema.nation_hash_collation_search_path | distributed | 0 bytes
citus_mx_test_schema.nation_hash_collation_search_path_1220046 | citus_mx_test_schema.nation_hash_collation_search_path | distributed | 0 bytes
citus_mx_test_schema.nation_hash_collation_search_path_1220047 | citus_mx_test_schema.nation_hash_collation_search_path | distributed | 8192 bytes
citus_mx_test_schema.nation_hash_composite_types_1220048 | citus_mx_test_schema.nation_hash_composite_types | distributed | 8192 bytes
citus_mx_test_schema.nation_hash_composite_types_1220048 | citus_mx_test_schema.nation_hash_composite_types | distributed | 8192 bytes
citus_mx_test_schema.nation_hash_composite_types_1220048 | citus_mx_test_schema.nation_hash_composite_types | distributed | 8192 bytes
citus_mx_test_schema.nation_hash_composite_types_1220048 | citus_mx_test_schema.nation_hash_composite_types | distributed | 8192 bytes
citus_mx_test_schema.nation_hash_composite_types_1220048 | citus_mx_test_schema.nation_hash_composite_types | distributed | 8192 bytes
citus_mx_test_schema.nation_hash_composite_types_1220048 | citus_mx_test_schema.nation_hash_composite_types | distributed | 8192 bytes
citus_mx_test_schema.nation_hash_composite_types_1220048 | citus_mx_test_schema.nation_hash_composite_types | distributed | 8192 bytes
citus_mx_test_schema.nation_hash_composite_types_1220049 | citus_mx_test_schema.nation_hash_composite_types | distributed | 8192 bytes
citus_mx_test_schema.nation_hash_composite_types_1220050 | citus_mx_test_schema.nation_hash_composite_types | distributed | 0 bytes
citus_mx_test_schema.nation_hash_composite_types_1220050 | citus_mx_test_schema.nation_hash_composite_types | distributed | 0 bytes
citus_mx_test_schema.nation_hash_composite_types_1220050 | citus_mx_test_schema.nation_hash_composite_types | distributed | 0 bytes
citus_mx_test_schema.nation_hash_composite_types_1220050 | citus_mx_test_schema.nation_hash_composite_types | distributed | 0 bytes
citus_mx_test_schema.nation_hash_composite_types_1220050 | citus_mx_test_schema.nation_hash_composite_types | distributed | 0 bytes
citus_mx_test_schema.nation_hash_composite_types_1220050 | citus_mx_test_schema.nation_hash_composite_types | distributed | 0 bytes
citus_mx_test_schema.nation_hash_composite_types_1220050 | citus_mx_test_schema.nation_hash_composite_types | distributed | 0 bytes
citus_mx_test_schema.nation_hash_composite_types_1220051 | citus_mx_test_schema.nation_hash_composite_types | distributed | 8192 bytes
citus_mx_test_schema_join_1.nation_hash_1220032 | citus_mx_test_schema_join_1.nation_hash | distributed | 0 bytes
citus_mx_test_schema_join_1.nation_hash_1220032 | citus_mx_test_schema_join_1.nation_hash | distributed | 0 bytes
citus_mx_test_schema_join_1.nation_hash_1220032 | citus_mx_test_schema_join_1.nation_hash | distributed | 0 bytes
citus_mx_test_schema_join_1.nation_hash_1220032 | citus_mx_test_schema_join_1.nation_hash | distributed | 0 bytes
citus_mx_test_schema_join_1.nation_hash_1220032 | citus_mx_test_schema_join_1.nation_hash | distributed | 0 bytes
citus_mx_test_schema_join_1.nation_hash_1220032 | citus_mx_test_schema_join_1.nation_hash | distributed | 0 bytes
citus_mx_test_schema_join_1.nation_hash_1220032 | citus_mx_test_schema_join_1.nation_hash | distributed | 0 bytes
citus_mx_test_schema_join_1.nation_hash_1220033 | citus_mx_test_schema_join_1.nation_hash | distributed | 0 bytes
citus_mx_test_schema_join_1.nation_hash_1220034 | citus_mx_test_schema_join_1.nation_hash | distributed | 0 bytes
citus_mx_test_schema_join_1.nation_hash_1220034 | citus_mx_test_schema_join_1.nation_hash | distributed | 0 bytes
citus_mx_test_schema_join_1.nation_hash_1220034 | citus_mx_test_schema_join_1.nation_hash | distributed | 0 bytes
citus_mx_test_schema_join_1.nation_hash_1220034 | citus_mx_test_schema_join_1.nation_hash | distributed | 0 bytes
citus_mx_test_schema_join_1.nation_hash_1220034 | citus_mx_test_schema_join_1.nation_hash | distributed | 0 bytes
citus_mx_test_schema_join_1.nation_hash_1220034 | citus_mx_test_schema_join_1.nation_hash | distributed | 0 bytes
citus_mx_test_schema_join_1.nation_hash_1220034 | citus_mx_test_schema_join_1.nation_hash | distributed | 0 bytes
citus_mx_test_schema_join_1.nation_hash_1220035 | citus_mx_test_schema_join_1.nation_hash | distributed | 0 bytes
citus_mx_test_schema_join_1.nation_hash_2_1220036 | citus_mx_test_schema_join_1.nation_hash_2 | distributed | 0 bytes
citus_mx_test_schema_join_1.nation_hash_2_1220036 | citus_mx_test_schema_join_1.nation_hash_2 | distributed | 0 bytes
citus_mx_test_schema_join_1.nation_hash_2_1220036 | citus_mx_test_schema_join_1.nation_hash_2 | distributed | 0 bytes
citus_mx_test_schema_join_1.nation_hash_2_1220036 | citus_mx_test_schema_join_1.nation_hash_2 | distributed | 0 bytes
citus_mx_test_schema_join_1.nation_hash_2_1220036 | citus_mx_test_schema_join_1.nation_hash_2 | distributed | 0 bytes
citus_mx_test_schema_join_1.nation_hash_2_1220036 | citus_mx_test_schema_join_1.nation_hash_2 | distributed | 0 bytes
citus_mx_test_schema_join_1.nation_hash_2_1220036 | citus_mx_test_schema_join_1.nation_hash_2 | distributed | 0 bytes
citus_mx_test_schema_join_1.nation_hash_2_1220037 | citus_mx_test_schema_join_1.nation_hash_2 | distributed | 0 bytes
citus_mx_test_schema_join_1.nation_hash_2_1220038 | citus_mx_test_schema_join_1.nation_hash_2 | distributed | 0 bytes
citus_mx_test_schema_join_1.nation_hash_2_1220038 | citus_mx_test_schema_join_1.nation_hash_2 | distributed | 0 bytes
citus_mx_test_schema_join_1.nation_hash_2_1220038 | citus_mx_test_schema_join_1.nation_hash_2 | distributed | 0 bytes
citus_mx_test_schema_join_1.nation_hash_2_1220038 | citus_mx_test_schema_join_1.nation_hash_2 | distributed | 0 bytes
citus_mx_test_schema_join_1.nation_hash_2_1220038 | citus_mx_test_schema_join_1.nation_hash_2 | distributed | 0 bytes
citus_mx_test_schema_join_1.nation_hash_2_1220038 | citus_mx_test_schema_join_1.nation_hash_2 | distributed | 0 bytes
citus_mx_test_schema_join_1.nation_hash_2_1220038 | citus_mx_test_schema_join_1.nation_hash_2 | distributed | 0 bytes
citus_mx_test_schema_join_1.nation_hash_2_1220039 | citus_mx_test_schema_join_1.nation_hash_2 | distributed | 0 bytes
citus_mx_test_schema_join_2.nation_hash_1220040 | citus_mx_test_schema_join_2.nation_hash | distributed | 0 bytes
citus_mx_test_schema_join_2.nation_hash_1220040 | citus_mx_test_schema_join_2.nation_hash | distributed | 0 bytes
citus_mx_test_schema_join_2.nation_hash_1220040 | citus_mx_test_schema_join_2.nation_hash | distributed | 0 bytes
citus_mx_test_schema_join_2.nation_hash_1220040 | citus_mx_test_schema_join_2.nation_hash | distributed | 0 bytes
citus_mx_test_schema_join_2.nation_hash_1220040 | citus_mx_test_schema_join_2.nation_hash | distributed | 0 bytes
citus_mx_test_schema_join_2.nation_hash_1220040 | citus_mx_test_schema_join_2.nation_hash | distributed | 0 bytes
citus_mx_test_schema_join_2.nation_hash_1220040 | citus_mx_test_schema_join_2.nation_hash | distributed | 0 bytes
citus_mx_test_schema_join_2.nation_hash_1220041 | citus_mx_test_schema_join_2.nation_hash | distributed | 0 bytes
citus_mx_test_schema_join_2.nation_hash_1220042 | citus_mx_test_schema_join_2.nation_hash | distributed | 0 bytes
citus_mx_test_schema_join_2.nation_hash_1220042 | citus_mx_test_schema_join_2.nation_hash | distributed | 0 bytes
citus_mx_test_schema_join_2.nation_hash_1220042 | citus_mx_test_schema_join_2.nation_hash | distributed | 0 bytes
citus_mx_test_schema_join_2.nation_hash_1220042 | citus_mx_test_schema_join_2.nation_hash | distributed | 0 bytes
citus_mx_test_schema_join_2.nation_hash_1220042 | citus_mx_test_schema_join_2.nation_hash | distributed | 0 bytes
citus_mx_test_schema_join_2.nation_hash_1220042 | citus_mx_test_schema_join_2.nation_hash | distributed | 0 bytes
citus_mx_test_schema_join_2.nation_hash_1220042 | citus_mx_test_schema_join_2.nation_hash | distributed | 0 bytes
citus_mx_test_schema_join_2.nation_hash_1220043 | citus_mx_test_schema_join_2.nation_hash | distributed | 0 bytes
company_employees_mx_1220107 | company_employees_mx | distributed | 0 bytes
company_employees_mx_1220107 | company_employees_mx | distributed | 0 bytes
company_employees_mx_1220107 | company_employees_mx | distributed | 0 bytes
company_employees_mx_1220107 | company_employees_mx | distributed | 0 bytes
company_employees_mx_1220107 | company_employees_mx | distributed | 0 bytes
company_employees_mx_1220107 | company_employees_mx | distributed | 0 bytes
company_employees_mx_1220107 | company_employees_mx | distributed | 0 bytes
company_employees_mx_1220108 | company_employees_mx | distributed | 0 bytes
company_employees_mx_1220109 | company_employees_mx | distributed | 0 bytes
company_employees_mx_1220109 | company_employees_mx | distributed | 0 bytes
company_employees_mx_1220109 | company_employees_mx | distributed | 0 bytes
company_employees_mx_1220109 | company_employees_mx | distributed | 0 bytes
company_employees_mx_1220109 | company_employees_mx | distributed | 0 bytes
company_employees_mx_1220109 | company_employees_mx | distributed | 0 bytes
company_employees_mx_1220109 | company_employees_mx | distributed | 0 bytes
company_employees_mx_1220110 | company_employees_mx | distributed | 0 bytes
customer_mx_1220084 | customer_mx | reference | 0 bytes
customer_mx_1220084 | customer_mx | reference | 0 bytes
customer_mx_1220084 | customer_mx | reference | 0 bytes
customer_mx_1220084 | customer_mx | reference | 0 bytes
customer_mx_1220084 | customer_mx | reference | 0 bytes
customer_mx_1220084 | customer_mx | reference | 0 bytes
customer_mx_1220084 | customer_mx | reference | 0 bytes
customer_mx_1220084 | customer_mx | reference | 0 bytes
labs_mx_1220102 | labs_mx | distributed | 0 bytes
labs_mx_1220102 | labs_mx | distributed | 0 bytes
labs_mx_1220102 | labs_mx | distributed | 0 bytes
labs_mx_1220102 | labs_mx | distributed | 0 bytes
labs_mx_1220102 | labs_mx | distributed | 0 bytes
labs_mx_1220102 | labs_mx | distributed | 0 bytes
labs_mx_1220102 | labs_mx | distributed | 0 bytes
limit_orders_mx_1220092 | limit_orders_mx | distributed | 0 bytes
limit_orders_mx_1220092 | limit_orders_mx | distributed | 0 bytes
limit_orders_mx_1220092 | limit_orders_mx | distributed | 0 bytes
limit_orders_mx_1220092 | limit_orders_mx | distributed | 0 bytes
limit_orders_mx_1220092 | limit_orders_mx | distributed | 0 bytes
limit_orders_mx_1220092 | limit_orders_mx | distributed | 0 bytes
limit_orders_mx_1220092 | limit_orders_mx | distributed | 0 bytes
limit_orders_mx_1220093 | limit_orders_mx | distributed | 0 bytes
lineitem_mx_1220052 | lineitem_mx | distributed | 0 bytes
lineitem_mx_1220052 | lineitem_mx | distributed | 0 bytes
lineitem_mx_1220052 | lineitem_mx | distributed | 0 bytes
lineitem_mx_1220052 | lineitem_mx | distributed | 0 bytes
lineitem_mx_1220052 | lineitem_mx | distributed | 0 bytes
lineitem_mx_1220052 | lineitem_mx | distributed | 0 bytes
lineitem_mx_1220052 | lineitem_mx | distributed | 0 bytes
lineitem_mx_1220053 | lineitem_mx | distributed | 0 bytes
lineitem_mx_1220054 | lineitem_mx | distributed | 0 bytes
lineitem_mx_1220054 | lineitem_mx | distributed | 0 bytes
lineitem_mx_1220054 | lineitem_mx | distributed | 0 bytes
lineitem_mx_1220054 | lineitem_mx | distributed | 0 bytes
lineitem_mx_1220054 | lineitem_mx | distributed | 0 bytes
lineitem_mx_1220054 | lineitem_mx | distributed | 0 bytes
lineitem_mx_1220054 | lineitem_mx | distributed | 0 bytes
lineitem_mx_1220055 | lineitem_mx | distributed | 0 bytes
lineitem_mx_1220056 | lineitem_mx | distributed | 0 bytes
lineitem_mx_1220056 | lineitem_mx | distributed | 0 bytes
lineitem_mx_1220056 | lineitem_mx | distributed | 0 bytes
lineitem_mx_1220056 | lineitem_mx | distributed | 0 bytes
lineitem_mx_1220056 | lineitem_mx | distributed | 0 bytes
lineitem_mx_1220056 | lineitem_mx | distributed | 0 bytes
lineitem_mx_1220056 | lineitem_mx | distributed | 0 bytes
lineitem_mx_1220057 | lineitem_mx | distributed | 0 bytes
lineitem_mx_1220058 | lineitem_mx | distributed | 0 bytes
lineitem_mx_1220058 | lineitem_mx | distributed | 0 bytes
lineitem_mx_1220058 | lineitem_mx | distributed | 0 bytes
lineitem_mx_1220058 | lineitem_mx | distributed | 0 bytes
lineitem_mx_1220058 | lineitem_mx | distributed | 0 bytes
lineitem_mx_1220058 | lineitem_mx | distributed | 0 bytes
lineitem_mx_1220058 | lineitem_mx | distributed | 0 bytes
lineitem_mx_1220059 | lineitem_mx | distributed | 0 bytes
lineitem_mx_1220060 | lineitem_mx | distributed | 0 bytes
lineitem_mx_1220060 | lineitem_mx | distributed | 0 bytes
lineitem_mx_1220060 | lineitem_mx | distributed | 0 bytes
lineitem_mx_1220060 | lineitem_mx | distributed | 0 bytes
lineitem_mx_1220060 | lineitem_mx | distributed | 0 bytes
lineitem_mx_1220060 | lineitem_mx | distributed | 0 bytes
lineitem_mx_1220060 | lineitem_mx | distributed | 0 bytes
lineitem_mx_1220061 | lineitem_mx | distributed | 0 bytes
lineitem_mx_1220062 | lineitem_mx | distributed | 0 bytes
lineitem_mx_1220062 | lineitem_mx | distributed | 0 bytes
lineitem_mx_1220062 | lineitem_mx | distributed | 0 bytes
lineitem_mx_1220062 | lineitem_mx | distributed | 0 bytes
lineitem_mx_1220062 | lineitem_mx | distributed | 0 bytes
lineitem_mx_1220062 | lineitem_mx | distributed | 0 bytes
lineitem_mx_1220062 | lineitem_mx | distributed | 0 bytes
lineitem_mx_1220063 | lineitem_mx | distributed | 0 bytes
lineitem_mx_1220064 | lineitem_mx | distributed | 0 bytes
lineitem_mx_1220064 | lineitem_mx | distributed | 0 bytes
lineitem_mx_1220064 | lineitem_mx | distributed | 0 bytes
lineitem_mx_1220064 | lineitem_mx | distributed | 0 bytes
lineitem_mx_1220064 | lineitem_mx | distributed | 0 bytes
lineitem_mx_1220064 | lineitem_mx | distributed | 0 bytes
lineitem_mx_1220064 | lineitem_mx | distributed | 0 bytes
lineitem_mx_1220065 | lineitem_mx | distributed | 0 bytes
lineitem_mx_1220066 | lineitem_mx | distributed | 0 bytes
lineitem_mx_1220066 | lineitem_mx | distributed | 0 bytes
lineitem_mx_1220066 | lineitem_mx | distributed | 0 bytes
lineitem_mx_1220066 | lineitem_mx | distributed | 0 bytes
lineitem_mx_1220066 | lineitem_mx | distributed | 0 bytes
lineitem_mx_1220066 | lineitem_mx | distributed | 0 bytes
lineitem_mx_1220066 | lineitem_mx | distributed | 0 bytes
lineitem_mx_1220067 | lineitem_mx | distributed | 0 bytes
multiple_hash_mx_1220094 | multiple_hash_mx | distributed | 0 bytes
multiple_hash_mx_1220094 | multiple_hash_mx | distributed | 0 bytes
multiple_hash_mx_1220094 | multiple_hash_mx | distributed | 0 bytes
multiple_hash_mx_1220094 | multiple_hash_mx | distributed | 0 bytes
multiple_hash_mx_1220094 | multiple_hash_mx | distributed | 0 bytes
multiple_hash_mx_1220094 | multiple_hash_mx | distributed | 0 bytes
multiple_hash_mx_1220094 | multiple_hash_mx | distributed | 0 bytes
multiple_hash_mx_1220095 | multiple_hash_mx | distributed | 0 bytes
mx_ddl_table_1220088 | mx_ddl_table | distributed | 8192 bytes
mx_ddl_table_1220088 | mx_ddl_table | distributed | 8192 bytes
mx_ddl_table_1220088 | mx_ddl_table | distributed | 8192 bytes
mx_ddl_table_1220088 | mx_ddl_table | distributed | 8192 bytes
mx_ddl_table_1220088 | mx_ddl_table | distributed | 8192 bytes
mx_ddl_table_1220088 | mx_ddl_table | distributed | 8192 bytes
mx_ddl_table_1220088 | mx_ddl_table | distributed | 8192 bytes
mx_ddl_table_1220089 | mx_ddl_table | distributed | 8192 bytes
mx_ddl_table_1220090 | mx_ddl_table | distributed | 8192 bytes
mx_ddl_table_1220090 | mx_ddl_table | distributed | 8192 bytes
mx_ddl_table_1220090 | mx_ddl_table | distributed | 8192 bytes
mx_ddl_table_1220090 | mx_ddl_table | distributed | 8192 bytes
mx_ddl_table_1220090 | mx_ddl_table | distributed | 8192 bytes
mx_ddl_table_1220090 | mx_ddl_table | distributed | 8192 bytes
mx_ddl_table_1220090 | mx_ddl_table | distributed | 8192 bytes
mx_ddl_table_1220091 | mx_ddl_table | distributed | 8192 bytes
nation_hash_1220000 | nation_hash | distributed | 0 bytes
nation_hash_1220000 | nation_hash | distributed | 0 bytes
nation_hash_1220000 | nation_hash | distributed | 0 bytes
nation_hash_1220000 | nation_hash | distributed | 0 bytes
nation_hash_1220000 | nation_hash | distributed | 0 bytes
nation_hash_1220000 | nation_hash | distributed | 0 bytes
nation_hash_1220000 | nation_hash | distributed | 0 bytes
nation_hash_1220001 | nation_hash | distributed | 0 bytes
nation_hash_1220002 | nation_hash | distributed | 0 bytes
nation_hash_1220002 | nation_hash | distributed | 0 bytes
nation_hash_1220002 | nation_hash | distributed | 0 bytes
nation_hash_1220002 | nation_hash | distributed | 0 bytes
nation_hash_1220002 | nation_hash | distributed | 0 bytes
nation_hash_1220002 | nation_hash | distributed | 0 bytes
nation_hash_1220002 | nation_hash | distributed | 0 bytes
nation_hash_1220003 | nation_hash | distributed | 0 bytes
nation_hash_1220004 | nation_hash | distributed | 0 bytes
nation_hash_1220004 | nation_hash | distributed | 0 bytes
nation_hash_1220004 | nation_hash | distributed | 0 bytes
nation_hash_1220004 | nation_hash | distributed | 0 bytes
nation_hash_1220004 | nation_hash | distributed | 0 bytes
nation_hash_1220004 | nation_hash | distributed | 0 bytes
nation_hash_1220004 | nation_hash | distributed | 0 bytes
nation_hash_1220005 | nation_hash | distributed | 0 bytes
nation_hash_1220006 | nation_hash | distributed | 0 bytes
nation_hash_1220006 | nation_hash | distributed | 0 bytes
nation_hash_1220006 | nation_hash | distributed | 0 bytes
nation_hash_1220006 | nation_hash | distributed | 0 bytes
nation_hash_1220006 | nation_hash | distributed | 0 bytes
nation_hash_1220006 | nation_hash | distributed | 0 bytes
nation_hash_1220006 | nation_hash | distributed | 0 bytes
nation_hash_1220007 | nation_hash | distributed | 0 bytes
nation_hash_1220008 | nation_hash | distributed | 0 bytes
nation_hash_1220008 | nation_hash | distributed | 0 bytes
nation_hash_1220008 | nation_hash | distributed | 0 bytes
nation_hash_1220008 | nation_hash | distributed | 0 bytes
nation_hash_1220008 | nation_hash | distributed | 0 bytes
nation_hash_1220008 | nation_hash | distributed | 0 bytes
nation_hash_1220008 | nation_hash | distributed | 0 bytes
nation_hash_1220009 | nation_hash | distributed | 0 bytes
nation_hash_1220010 | nation_hash | distributed | 0 bytes
nation_hash_1220010 | nation_hash | distributed | 0 bytes
nation_hash_1220010 | nation_hash | distributed | 0 bytes
nation_hash_1220010 | nation_hash | distributed | 0 bytes
nation_hash_1220010 | nation_hash | distributed | 0 bytes
nation_hash_1220010 | nation_hash | distributed | 0 bytes
nation_hash_1220010 | nation_hash | distributed | 0 bytes
nation_hash_1220011 | nation_hash | distributed | 0 bytes
nation_hash_1220012 | nation_hash | distributed | 0 bytes
nation_hash_1220012 | nation_hash | distributed | 0 bytes
nation_hash_1220012 | nation_hash | distributed | 0 bytes
nation_hash_1220012 | nation_hash | distributed | 0 bytes
nation_hash_1220012 | nation_hash | distributed | 0 bytes
nation_hash_1220012 | nation_hash | distributed | 0 bytes
nation_hash_1220012 | nation_hash | distributed | 0 bytes
nation_hash_1220013 | nation_hash | distributed | 0 bytes
nation_hash_1220014 | nation_hash | distributed | 0 bytes
nation_hash_1220014 | nation_hash | distributed | 0 bytes
nation_hash_1220014 | nation_hash | distributed | 0 bytes
nation_hash_1220014 | nation_hash | distributed | 0 bytes
nation_hash_1220014 | nation_hash | distributed | 0 bytes
nation_hash_1220014 | nation_hash | distributed | 0 bytes
nation_hash_1220014 | nation_hash | distributed | 0 bytes
nation_hash_1220015 | nation_hash | distributed | 0 bytes
nation_mx_1220085 | nation_mx | reference | 0 bytes
nation_mx_1220085 | nation_mx | reference | 0 bytes
nation_mx_1220085 | nation_mx | reference | 0 bytes
nation_mx_1220085 | nation_mx | reference | 0 bytes
nation_mx_1220085 | nation_mx | reference | 0 bytes
nation_mx_1220085 | nation_mx | reference | 0 bytes
nation_mx_1220085 | nation_mx | reference | 0 bytes
nation_mx_1220085 | nation_mx | reference | 0 bytes
objects_mx_1220103 | objects_mx | distributed | 0 bytes
objects_mx_1220103 | objects_mx | distributed | 0 bytes
objects_mx_1220103 | objects_mx | distributed | 0 bytes
objects_mx_1220103 | objects_mx | distributed | 0 bytes
objects_mx_1220103 | objects_mx | distributed | 0 bytes
objects_mx_1220103 | objects_mx | distributed | 0 bytes
objects_mx_1220103 | objects_mx | distributed | 0 bytes
orders_mx_1220068 | orders_mx | distributed | 0 bytes
orders_mx_1220068 | orders_mx | distributed | 0 bytes
orders_mx_1220068 | orders_mx | distributed | 0 bytes
orders_mx_1220068 | orders_mx | distributed | 0 bytes
orders_mx_1220068 | orders_mx | distributed | 0 bytes
orders_mx_1220068 | orders_mx | distributed | 0 bytes
orders_mx_1220068 | orders_mx | distributed | 0 bytes
orders_mx_1220069 | orders_mx | distributed | 0 bytes
orders_mx_1220070 | orders_mx | distributed | 0 bytes
orders_mx_1220070 | orders_mx | distributed | 0 bytes
orders_mx_1220070 | orders_mx | distributed | 0 bytes
orders_mx_1220070 | orders_mx | distributed | 0 bytes
orders_mx_1220070 | orders_mx | distributed | 0 bytes
orders_mx_1220070 | orders_mx | distributed | 0 bytes
orders_mx_1220070 | orders_mx | distributed | 0 bytes
orders_mx_1220071 | orders_mx | distributed | 0 bytes
orders_mx_1220072 | orders_mx | distributed | 0 bytes
orders_mx_1220072 | orders_mx | distributed | 0 bytes
orders_mx_1220072 | orders_mx | distributed | 0 bytes
orders_mx_1220072 | orders_mx | distributed | 0 bytes
orders_mx_1220072 | orders_mx | distributed | 0 bytes
orders_mx_1220072 | orders_mx | distributed | 0 bytes
orders_mx_1220072 | orders_mx | distributed | 0 bytes
orders_mx_1220073 | orders_mx | distributed | 0 bytes
orders_mx_1220074 | orders_mx | distributed | 0 bytes
orders_mx_1220074 | orders_mx | distributed | 0 bytes
orders_mx_1220074 | orders_mx | distributed | 0 bytes
orders_mx_1220074 | orders_mx | distributed | 0 bytes
orders_mx_1220074 | orders_mx | distributed | 0 bytes
orders_mx_1220074 | orders_mx | distributed | 0 bytes
orders_mx_1220074 | orders_mx | distributed | 0 bytes
orders_mx_1220075 | orders_mx | distributed | 0 bytes
orders_mx_1220076 | orders_mx | distributed | 0 bytes
orders_mx_1220076 | orders_mx | distributed | 0 bytes
orders_mx_1220076 | orders_mx | distributed | 0 bytes
orders_mx_1220076 | orders_mx | distributed | 0 bytes
orders_mx_1220076 | orders_mx | distributed | 0 bytes
orders_mx_1220076 | orders_mx | distributed | 0 bytes
orders_mx_1220076 | orders_mx | distributed | 0 bytes
orders_mx_1220077 | orders_mx | distributed | 0 bytes
orders_mx_1220078 | orders_mx | distributed | 0 bytes
orders_mx_1220078 | orders_mx | distributed | 0 bytes
orders_mx_1220078 | orders_mx | distributed | 0 bytes
orders_mx_1220078 | orders_mx | distributed | 0 bytes
orders_mx_1220078 | orders_mx | distributed | 0 bytes
orders_mx_1220078 | orders_mx | distributed | 0 bytes
orders_mx_1220078 | orders_mx | distributed | 0 bytes
orders_mx_1220079 | orders_mx | distributed | 0 bytes
orders_mx_1220080 | orders_mx | distributed | 0 bytes
orders_mx_1220080 | orders_mx | distributed | 0 bytes
orders_mx_1220080 | orders_mx | distributed | 0 bytes
orders_mx_1220080 | orders_mx | distributed | 0 bytes
orders_mx_1220080 | orders_mx | distributed | 0 bytes
orders_mx_1220080 | orders_mx | distributed | 0 bytes
orders_mx_1220080 | orders_mx | distributed | 0 bytes
orders_mx_1220081 | orders_mx | distributed | 0 bytes
orders_mx_1220082 | orders_mx | distributed | 0 bytes
orders_mx_1220082 | orders_mx | distributed | 0 bytes
orders_mx_1220082 | orders_mx | distributed | 0 bytes
orders_mx_1220082 | orders_mx | distributed | 0 bytes
orders_mx_1220082 | orders_mx | distributed | 0 bytes
orders_mx_1220082 | orders_mx | distributed | 0 bytes
orders_mx_1220082 | orders_mx | distributed | 0 bytes
orders_mx_1220083 | orders_mx | distributed | 0 bytes
part_mx_1220086 | part_mx | reference | 0 bytes
part_mx_1220086 | part_mx | reference | 0 bytes
part_mx_1220086 | part_mx | reference | 0 bytes
part_mx_1220086 | part_mx | reference | 0 bytes
part_mx_1220086 | part_mx | reference | 0 bytes
part_mx_1220086 | part_mx | reference | 0 bytes
part_mx_1220086 | part_mx | reference | 0 bytes
part_mx_1220086 | part_mx | reference | 0 bytes
researchers_mx_1220100 | researchers_mx | distributed | 0 bytes
researchers_mx_1220100 | researchers_mx | distributed | 0 bytes
researchers_mx_1220100 | researchers_mx | distributed | 0 bytes
researchers_mx_1220100 | researchers_mx | distributed | 0 bytes
researchers_mx_1220100 | researchers_mx | distributed | 0 bytes
researchers_mx_1220100 | researchers_mx | distributed | 0 bytes
researchers_mx_1220100 | researchers_mx | distributed | 0 bytes
researchers_mx_1220101 | researchers_mx | distributed | 0 bytes
supplier_mx_1220087 | supplier_mx | reference | 0 bytes
supplier_mx_1220087 | supplier_mx | reference | 0 bytes
supplier_mx_1220087 | supplier_mx | reference | 0 bytes
supplier_mx_1220087 | supplier_mx | reference | 0 bytes
supplier_mx_1220087 | supplier_mx | reference | 0 bytes
supplier_mx_1220087 | supplier_mx | reference | 0 bytes
supplier_mx_1220087 | supplier_mx | reference | 0 bytes
supplier_mx_1220087 | supplier_mx | reference | 0 bytes
(469 rows)

View File

@ -79,6 +79,7 @@ ORDER BY 1;
function citus_shard_allowed_on_node_true(bigint,integer) function citus_shard_allowed_on_node_true(bigint,integer)
function citus_shard_cost_1(bigint) function citus_shard_cost_1(bigint)
function citus_shard_cost_by_disk_size(bigint) function citus_shard_cost_by_disk_size(bigint)
function citus_shard_sizes()
function citus_stat_statements() function citus_stat_statements()
function citus_stat_statements_reset() function citus_stat_statements_reset()
function citus_table_is_visible(oid) function citus_table_is_visible(oid)
@ -225,11 +226,12 @@ ORDER BY 1;
view citus_dist_stat_activity view citus_dist_stat_activity
view citus_lock_waits view citus_lock_waits
view citus_shard_indexes_on_worker view citus_shard_indexes_on_worker
view citus_shards
view citus_shards_on_worker view citus_shards_on_worker
view citus_stat_statements view citus_stat_statements
view citus_tables view citus_tables
view citus_worker_stat_activity view citus_worker_stat_activity
view pg_dist_shard_placement view pg_dist_shard_placement
view time_partitions view time_partitions
(215 rows) (217 rows)

View File

@ -76,6 +76,7 @@ ORDER BY 1;
function citus_shard_allowed_on_node_true(bigint,integer) function citus_shard_allowed_on_node_true(bigint,integer)
function citus_shard_cost_1(bigint) function citus_shard_cost_1(bigint)
function citus_shard_cost_by_disk_size(bigint) function citus_shard_cost_by_disk_size(bigint)
function citus_shard_sizes()
function citus_stat_statements() function citus_stat_statements()
function citus_stat_statements_reset() function citus_stat_statements_reset()
function citus_table_is_visible(oid) function citus_table_is_visible(oid)
@ -221,11 +222,12 @@ ORDER BY 1;
view citus_dist_stat_activity view citus_dist_stat_activity
view citus_lock_waits view citus_lock_waits
view citus_shard_indexes_on_worker view citus_shard_indexes_on_worker
view citus_shards
view citus_shards_on_worker view citus_shards_on_worker
view citus_stat_statements view citus_stat_statements
view citus_tables view citus_tables
view citus_worker_stat_activity view citus_worker_stat_activity
view pg_dist_shard_placement view pg_dist_shard_placement
view time_partitions view time_partitions
(211 rows) (213 rows)

View File

@ -440,3 +440,4 @@ FROM citus_tables
ORDER BY "Name"::text; ORDER BY "Name"::text;
SELECT shard_name, table_name, citus_table_type, shard_size FROM citus_shards ORDER BY shard_name::text;