Visualizações do Aurora PostgreSQL Limitless Database
A tabela a seguir mostra as novas visualizações do Aurora PostgreSQL Limitless Database.
nota
As visualizações listadas nessa tabela estão localizadas no esquema rds_aurora
. Ao usar uma visualização do Limitless Database, inclua o nome do objeto totalmente qualificado: rds_aurora
.
.object_name
Visualização do Aurora PostgreSQL Limitless Database | Visualização correspondente do Aurora PostgreSQL |
---|---|
limitless_database | pg_database |
limitless_locks | pg_locks |
limitless_stat_activity | pg_stat_activity |
limitless_stat_all_indexes | pg_stat_all_indexes |
limitless_stat_all_tables | pg_stat_all_tables |
limitless_stat_database | pg_stat_database |
limitless_stat_progress_vacuum | pg_stat_progress_vacuum |
limitless_stat_statements | pg_stat_statements |
limitless_stat_subclusters | Nenhum |
limitless_stat_statements_info | pg_stat_statements_info |
limitless_statio_all_indexes | pg_statio_all_indexes |
limitless_statio_all_tables | pg_statio_all_tables |
limitless_tables | pg_tables |
limitless_table_collocations | Nenhum |
limitless_table_collocation_distributions | Nenhum |
Os exemplos a seguir fornecem detalhes sobre as visualizações do Aurora PostgreSQL Limitless Database. Para obter mais informações sobre visualizações do PostgreSQL, consulte Viewing statistics
nota
Algumas visualizações de estatísticas podem retornar resultados inconsistentes se você tiver transações em andamento.
- limitless_database
-
Essa visualização contém informações sobre os bancos de dados disponíveis no grupo de fragmentos de banco de dados. Por exemplo:
postgres_limitless=> SELECT subcluster_id, subcluster_type, oid, datname, datacl FROM rds_aurora.limitless_database; subcluster_id | subcluster_type | oid | datname | datacl ---------------+-----------------+-------+--------------------+------------------------------------------------------------------------------------------------------------------------ 2 | router | 4 | template0 | {=c/rdsadmin,rdsadmin=CTc/rdsadmin} 2 | router | 5 | postgres | 2 | router | 16384 | rdsadmin | {rdsadmin=CTc/rdsadmin,rds_aurora_limitless_metadata_admin=c/rdsadmin,rds_aurora_limitless_heat_mgmt_admin=c/rdsadmin} 2 | router | 16477 | postgres_limitless | 2 | router | 1 | template1 | {=c/rdsadmin,rdsadmin=CTc/rdsadmin} 6 | shard | 4 | template0 | {=c/rdsadmin,rdsadmin=CTc/rdsadmin}
Os parâmetros de saída são os seguintes:
-
subcluster_id
(texto): o ID do subcluster (nó) -
subcluster_type
(texto): o tipo de subcluster (nó), roteador ou fragmento
As demais colunas são as mesmas que em
pg_database
. -
- limitless_locks
-
Essa visualização contém uma linha por processo por nó. Ela fornece acesso às informações sobre os bloqueios mantidos pelos processos ativos no servidor do banco de dados.
exemplo de criação de um bloqueio com duas transações
Neste exemplo, executamos duas transações simultaneamente em dois roteadores.
# Transaction 1 (run on router 1) BEGIN; SET search_path = public; SELECT * FROM customers; INSERT INTO customers VALUES (400,'foo','bar'); # Transaction 2 (run on router 2) BEGIN; SET search_path = public; ALTER TABLE customers ADD COLUMN phone VARCHAR;
A primeira transação é executada. As transações subsequentes precisam esperar até que a primeira transação seja concluída. Portanto, a segunda transação é bloqueada com um bloqueio. Para verificar a causa raiz disso, executamos um comando unindo
limitless_locks
comlimitless_stat_activity
.# Run on router 2 SELECT distributed_session_id, state, usename, query, query_start FROM rds_aurora.limitless_stat_activity WHERE distributed_session_id in ( SELECT distributed_session_id FROM rds_aurora.limitless_locks WHERE relname = 'customers' ); distributed_session_id | state | usename | query | query_start ------------------------+---------------------+--------------------------+---------------------------------- -------------+------------------------------- 47BDE66E9A5E8477 | idle in transaction | limitless_metadata_admin | INSERT INTO customers VALUES (400,'foo','bar'); | 2023-04-13 17:44:45.152244+00 2AD7F370202D0FA9 | active | limitless_metadata_admin | ALTER TABLE customers ADD COLUMN phone VARCHAR; | 2023-04-13 17:44:55.113388+00 47BDE66E9A5E8477 | | limitless_auth_admin | <insufficient privilege> | 2AD7F370202D0FA9 | | limitless_auth_admin | <insufficient privilege> | 47BDE66E9A5E8477 | | limitless_auth_admin | <insufficient privilege> | 2AD7F370202D0FA9 | | limitless_auth_admin | <insufficient privilege> | (6 rows)
exemplo de criação de um bloqueio de forma explícita
Neste exemplo, criamos um bloqueio explicitamente e, em seguida, usamos a visualização
limitless_locks
para ver os bloqueios (algumas colunas são omitidas).BEGIN; SET search_path = public; LOCK TABLE customers IN ACCESS SHARE MODE; SELECT * FROM rds_aurora.limitless_locks WHERE relname = 'customers'; subcluster_id | subcluster_type | distributed_session_id | locktype | datname | relnspname | relname | virtualtransaction | pid | mode ---------------+-----------------+------------------------+----------+--------------------+------------+ ----------+--------------------+-------+----------------- 1 | router | 7207702F862FC937 | relation | postgres_limitless | public | customers | 28/600787 | 59564 | AccessShareLock 2 | router | 7207702F862FC937 | relation | postgres_limitless | public | customers | 28/600405 | 67130 | AccessShareLock 3 | shard | 7207702F862FC937 | relation | postgres_limitless | public | customers | 15/473401 | 27735 | AccessShareLock 4 | shard | 7207702F862FC937 | relation | postgres_limitless | public | customers | 13/473524 | 27734 | AccessShareLock 5 | shard | 7207702F862FC937 | relation | postgres_limitless | public | customers | 13/472935 | 27737 | AccessShareLock 6 | shard | 7207702F862FC937 | relation | postgres_limitless | public | customers | 13/473015 | 48660 | AccessShareLock (6 rows)
- limitless_stat_activity
-
Essa visualização contém uma linha por processo por nó. Ela pode ser usada para monitorar a integridade geral do sistema e triar processos que estão demorando muito. Por exemplo:
postgres=# SELECT subcluster_id, subcluster_type, distributed_session_id, distributed_session_state, datname, distributed_query_id FROM rds_aurora.limitless_stat_activity WHERE distributed_session_id='7E4CBBD3E1AF9ABA'; subcluster_id | subcluster_type | distributed_session_id | distributed_session_state | datname | distributed_query_id ---------------+-----------------+------------------------+---------------------------+--------------------+ ---------------------- 1 | router | 7E4CBBD3E1AF9ABA | coordinator | postgres_limitless | 2 | router | 7E4CBBD3E1AF9ABA | participant | postgres_limitless | -8224553981424021413 3 | shard | 7E4CBBD3E1AF9ABA | participant | postgres_limitless | -8224553981424021413 4 | shard | 7E4CBBD3E1AF9ABA | participant | postgres_limitless | -8224553981424021413 5 | shard | 7E4CBBD3E1AF9ABA | participant | postgres_limitless | -8224553981424021413 6 | shard | 7E4CBBD3E1AF9ABA | participant | postgres_limitless | -8224553981424021413 (6 rows)
Os parâmetros de saída são os seguintes:
-
subcluster_id
(texto): o ID do subcluster ao qual esse processo pertence. -
subcluster_type
(texto): o tipo de subcluster ao qual esse processo pertence:router
oushard
. -
distributed_session_id
(texto): o ID da sessão distribuída à qual esse processo pertence. -
distributed_session_state
(texto): se este é um coordenador, participante ou processo autônomo/não distribuído (mostrado comoNULL
). -
datname
(texto): o banco de dados ao qual esse processo está conectado. -
distributed_query_id
(bigint): o ID da consulta principal do nó coordenador. Essa coluna éNULL
se for a consulta principal. O nó coordenador envia o ID da consulta distribuída para os nós participantes. Portanto, para os nós participantes, os valores para o ID de consulta distribuída e o ID de consulta são diferentes.
As demais colunas são as mesmas que em
pg_stat_activity
. -
- limitless_stat_all_indexes
-
Essa visualização contém estatísticas de uso em índices no grupo de fragmentos de banco de dados. Por exemplo:
postgres_limitless=> SELECT schemaname, relname, indexrelname, idx_scan FROM rds_aurora.limitless_stat_all_indexes WHERE relname LIKE 'orders_ts%' ORDER BY indexrelname LIMIT 10; schemaname | relname | indexrelname | idx_scan ------------+----------------+---------------------+---------- ec_sample | orders_ts00001 | orders_ts00001_pkey | 196801 ec_sample | orders_ts00002 | orders_ts00002_pkey | 196703 ec_sample | orders_ts00003 | orders_ts00003_pkey | 196376 ec_sample | orders_ts00004 | orders_ts00004_pkey | 197966 ec_sample | orders_ts00005 | orders_ts00005_pkey | 195301 ec_sample | orders_ts00006 | orders_ts00006_pkey | 195673 ec_sample | orders_ts00007 | orders_ts00007_pkey | 194475 ec_sample | orders_ts00008 | orders_ts00008_pkey | 191694 ec_sample | orders_ts00009 | orders_ts00009_pkey | 193744 ec_sample | orders_ts00010 | orders_ts00010_pkey | 195421 (10 rows)
- limitless_stat_all_tables
-
Essa visualização contém estatísticas sobre todas as tabelas no banco de dados atual no grupo de fragmentos de banco de dados. Isso é útil ao rastrear operações de limpeza e operações de Linguagem de Manipulação de Dados (DML). Por exemplo:
postgres_limitless=> SELECT subcluster_id, subcluster_type, relname, n_ins_since_vacuum, n_tup_ins, last_vacuum FROM rds_aurora.limitless_stat_all_tables WHERE relname LIKE 'orders_ts%' ORDER BY relname LIMIT 10; subcluster_id | subcluster_type | relname | n_ins_since_vacuum | n_tup_ins | last_vacuum ---------------+-----------------+----------------+--------------------+-----------+------------- 5 | shard | orders_ts00001 | 34779 | 196083 | 5 | shard | orders_ts00002 | 34632 | 194721 | 5 | shard | orders_ts00003 | 34950 | 195965 | 5 | shard | orders_ts00004 | 34745 | 197283 | 5 | shard | orders_ts00005 | 34879 | 195754 | 5 | shard | orders_ts00006 | 34340 | 194605 | 5 | shard | orders_ts00007 | 33779 | 192203 | 5 | shard | orders_ts00008 | 33826 | 191293 | 5 | shard | orders_ts00009 | 34660 | 194117 | 5 | shard | orders_ts00010 | 34569 | 195560 | (10 rows)
Os parâmetros de saída são os seguintes:
-
subcluster_id
(texto): o ID do subcluster ao qual esse processo pertence. -
subcluster_type
(texto): o tipo de subcluster ao qual esse processo pertence:router
oushard
. -
relname
(nome): o nome da tabela.
As demais colunas são as mesmas que em
pg_stat_all_tables
. -
- limitless_stat_database
-
Essa visualização contém estatísticas sobre todos os bancos de dados no grupo de fragmentos de banco de dados. Retorna uma linha por banco de dados por nó. Por exemplo:
postgres_limitless=> SELECT subcluster_id, subcluster_type, datname, blks_read, blks_hit FROM rds_aurora.limitless_stat_database WHERE datname='postgres_limitless'; subcluster_id | subcluster_type | datname | blks_read | blks_hit ---------------+-----------------+--------------------+-----------+---------- 1 | router | postgres_limitless | 484 | 34371314 2 | router | postgres_limitless | 673 | 33859317 3 | shard | postgres_limitless | 1299 | 17749550 4 | shard | postgres_limitless | 1094 | 17492849 5 | shard | postgres_limitless | 1036 | 17485098 6 | shard | postgres_limitless | 1040 | 17437257 (6 rows)
Os parâmetros de saída são os seguintes:
-
subcluster_id
(texto): o ID do subcluster ao qual esse processo pertence. -
subcluster_type
(texto): o tipo de subcluster ao qual esse processo pertence:router
oushard
. -
datname
(nome): o nome do banco de dados.
As demais colunas são as mesmas que em
pg_stat_database
. -
- limitless_stat_progress_vacuum
-
Essa visualização contém informações sobre as operações de limpeza em andamento. Por exemplo:
postgres_limitless=> SELECT * FROM rds_aurora.limitless_stat_progress_vacuum; -[ RECORD 1 ]----------+------------------ subcluster_id | 3 subcluster_type | shard distributed_session_id | A56D96E2A5C9F426 pid | 5270 datname | postgres nspname | public relname | customer_ts2 phase | vacuuming heap heap_blks_total | 130500 heap_blks_scanned | 100036 heap_blks_vacuumed | 0 index_vacuum_count | 0 max_dead_tuples | 11184810 num_dead_tuples | 0 -[ RECORD 2 ]----------+------------------ subcluster_id | 3 subcluster_type | shard distributed_session_id | 56DF26A89EC23AB5 pid | 6854 datname | postgres nspname | public relname | sales_ts1 phase | vacuuming heap heap_blks_total | 43058 heap_blks_scanned | 24868 heap_blks_vacuumed | 0 index_vacuum_count | 0 max_dead_tuples | 8569523 num_dead_tuples | 0
Os parâmetros de saída são os seguintes:
-
subcluster_id
(texto): o ID do subcluster ao qual esse processo pertence. -
subcluster_type
(texto): o tipo de subcluster ao qual esse processo pertence:router
oushard
. -
distributed_session_id
(texto): o identificador da sessão que iniciou a operação de limpeza. -
datname
(nome): o banco de dados em que a limpeza está sendo feita. -
nspname
(nome): o nome do esquema da tabela que está sendo limpa. Énull
se a tabela que está sendo limpa não estiver no mesmo banco de dados ao qual o usuário está conectado. -
relname
(nome): o nome da tabela que está sendo limpa. Énull
se a tabela que está sendo limpa não estiver no mesmo banco de dados ao qual o usuário está conectado.
As demais colunas são as mesmas que em
pg_stat_progress_vacuum
. -
- limitless_stat_statements
-
Essa visualização fornece um meio de rastrear o planejamento e a execução de estatísticas de todas as instruções SQL executadas em todos os nós.
nota
É necessário instalar a extensão pg_stat_statements
para usar a visualização limitless_stat_statements
.-- CREATE EXTENSION must be run by a superuser CREATE EXTENSION pg_stat_statements; -- Verify that the extension is created on all nodes in the DB shard group SELECT distinct node_id FROM rds_aurora.limitless_stat_statements LIMIT 10;
O exemplo a seguir mostra o uso da visualização
limitless_stat_statements
.postgres_limitless=> SELECT subcluster_id, subcluster_type, distributedqueryid, username, dbname FROM rds_aurora.limitless_stat_statements; subcluster_id | subcluster_type | distributedqueryid | username | dbname ---------------+-----------------+---------------------+---------------------------------+------------------- 1 | router | | postgres | postgres_limitless 1 | router | | postgres | postgres_limitless 1 | router | | postgres | postgres_limitless 1 | router | 5103284549693281378 | aurora_limitless_metadata_admin | postgres_limitless 1 | router | | postgres | postgres_limitless 1 | router | | aurora_limitless_metadata_admin | postgres_limitless 1 | router | | postgres | postgres_limitless 1 | router | | postgres | postgres_limitless [...]
Os parâmetros de saída são os seguintes:
-
subcluster_id
(texto): o ID do subcluster ao qual esse processo pertence. -
subcluster_type
(texto): o tipo de subcluster ao qual esse processo pertence:router
para oushard
. -
distributedqueryid
(bigint): o ID da consulta principal do nó coordenador. Essa coluna éNULL
se for a consulta principal. O nó coordenador envia o ID da consulta distribuída para os nós participantes. Portanto, para os nós participantes, os valores para o ID de consulta distribuída e o ID de consulta são diferentes. -
username
(nome): o usuário que consultou a instrução. -
dbname
(nome): o banco de dados onde a consulta foi executada.
As demais colunas são as mesmas que em pg_stat_statements
. -
- limitless_stat_statements_info
-
Essa visualização contém estatísticas para a visualização
limitless_stat_statements
. Cada linha contém dados para a visualização pg_stat_statements_infode cada nó. A coluna subcluster_id
identifica cada nó.postgres_limitless=> SELECT * FROM rds_aurora.limitless_stat_statements_info; subcluster_id | subcluster_type | dealloc | stats_reset ---------------+-----------------+---------+------------------------------- 1 | router | 0 | 2023-06-30 21:22:09.524781+00 2 | router | 0 | 2023-06-30 21:21:40.834111+00 3 | shard | 0 | 2023-06-30 21:22:10.709942+00 4 | shard | 0 | 2023-06-30 21:22:10.740179+00 5 | shard | 0 | 2023-06-30 21:22:10.774282+00 6 | shard | 0 | 2023-06-30 21:22:10.808267+00 (6 rows)
O parâmetro de saída é o seguinte:
-
subcluster_id
(texto): o ID do subcluster ao qual esse processo pertence.
As demais colunas são as mesmas que em pg_stat_statements_info
. -
- limitless_stat_subclusters
-
Essa visualização contém estatísticas de rede entre roteadores e outros nós. Ela contém uma linha por par de roteador e outro nó, por exemplo:
postgres_limitless=> SELECT * FROM rds_aurora.limitless_stat_subclusters; orig_subcluster | orig_instance_az | dest_subcluster | dest_instance_az | latency_us | latest_collection | failed_requests | received_bytes | sent_bytes | same_az_requests | cross_az_requests | stat_reset_timestamp -----------------+------------------+-----------------+------------------+------------+-------------------------------+-----------------+----------------+------------+------------------+-------------------+------------------------------- 3 | us-west-2b | 2 | us-west-2a | 847 | 2024-10-07 17:25:39.518617+00 | 0 | 35668633 | 92090171 | 0 | 302787 | 2024-10-05 12:39:55.239675+00 3 | us-west-2b | 4 | us-west-2b | 419 | 2024-10-07 17:25:39.546376+00 | 0 | 101190464 | 248795719 | 883478 | 0 | 2024-10-05 12:39:55.231218+00 3 | us-west-2b | 5 | us-west-2c | 1396 | 2024-10-07 17:25:39.52122+00 | 0 | 72864849 | 172086292 | 0 | 557726 | 2024-10-05 12:39:55.196412+00 3 | us-west-2b | 6 | us-west-2c | 729 | 2024-10-07 17:25:39.54828+00 | 0 | 35668584 | 92090171 | 0 | 302787 | 2024-10-05 12:39:55.247334+00 3 | us-west-2b | 7 | us-west-2a | 1702 | 2024-10-07 17:25:39.545307+00 | 0 | 71699576 | 171634844 | 0 | 556278 | 2024-10-05 12:39:52.715168+00 2 | us-west-2a | 3 | us-west-2b | 868 | 2024-10-07 17:25:40.293927+00 | 0 | 35659611 | 92011872 | 0 | 302817 | 2024-10-05 12:39:54.420758+00 2 | us-west-2a | 4 | us-west-2b | 786 | 2024-10-07 17:25:40.296863+00 | 0 | 102437253 | 251838024 | 0 | 895060 | 2024-10-05 12:39:54.404081+00 2 | us-west-2a | 5 | us-west-2c | 1232 | 2024-10-07 17:25:40.292021+00 | 0 | 71990027 | 168828110 | 0 | 545453 | 2024-10-05 12:39:36.769549+00
Os parâmetros de saída são os seguintes:
-
orig_subcluster
(texto): o ID do roteador de onde as comunicações se originam -
orig_subcluster_az
(texto): a zona de disponibilidade (AZ) do roteador de origem -
dest_subcluster
(texto): o ID do nó de destino -
dest_subcluster_az
(texto): a última AZ coletada do nó de destino -
latency_us
(bigint): a última latência de rede coletada entre os nós, em microssegundos. O valor é0
se o nó estiver inacessível. -
latest_collection
(data e hora): a data e hora da coleta mais recente de AZ e latência para o nó de destino -
failed_requests
(bigint): a contagem cumulativa de solicitações internas com falha -
received_bytes
(bigint): o número cumulativo estimado de bytes recebidos desse nó -
sent_bytes
(bigint): o número cumulativo estimado de bytes enviados para esse nó -
same_az_requests
(bigint): o número cumulativo de solicitações internas de banco de dados para esse nó quando ele está na mesma AZ do roteador de origem -
cross_az_requests
(bigint): o número cumulativo de solicitações internas de banco de dados para esse nó quando ele está em uma AZ diferente do roteador de origem -
stat_reset_timestamp
(data e hora): a data e hora de quando as estatísticas cumulativas dessa visualização foram redefinidas pela última vez
-
- limitless_statio_all_indexes
-
Essa visualização contém estatísticas de entrada/saída (E/S) de todos os índices do grupo de fragmentos de banco de dados. Por exemplo:
postgres_limitless=> SELECT * FROM rds_aurora.limitless_statio_all_indexes WHERE relname like'customers_ts%'; subcluster_id | subcluster_type | schemaname | relname | indexrelname | idx_blks_read | idx_blks_hit ---------------+-----------------+------------+-------------------+-------------------------------------+ --------------+-------------- 3 | shard | public | customers_ts00002 | customers_ts00002_customer_name_idx | 1 | 0 3 | shard | public | customers_ts00001 | customers_ts00001_customer_name_idx | 1 | 0 4 | shard | public | customers_ts00003 | customers_ts00003_customer_name_idx | 1 | 0 4 | shard | public | customers_ts00004 | customers_ts00004_customer_name_idx | 1 | 0 5 | shard | public | customers_ts00005 | customers_ts00005_customer_name_idx | 1 | 0 5 | shard | public | customers_ts00006 | customers_ts00006_customer_name_idx | 1 | 0 6 | shard | public | customers_ts00007 | customers_ts00007_customer_name_idx | 1 | 0 6 | shard | public | customers_ts00008 | customers_ts00008_customer_name_idx | 1 | 0 (8 rows)
- limitless_statio_all_tables
-
Essa visualização contém estatísticas de entrada/saída (E/S) de todas as tabelas do grupo de fragmentos de banco de dados. Por exemplo:
postgres_limitless=> SELECT subcluster_id, subcluster_type, schemaname, relname, heap_blks_read, heap_blks_hit FROM rds_aurora.limitless_statio_all_tables WHERE relname LIKE 'customers_ts%'; subcluster_id | subcluster_type | schemaname | relname | heap_blks_read | heap_blks_hit ---------------+-----------------+------------+-------------------+----------------+--------------- 3 | shard | public | customers_ts00002 | 305 | 57780 3 | shard | public | customers_ts00001 | 300 | 56972 4 | shard | public | customers_ts00004 | 302 | 57291 4 | shard | public | customers_ts00003 | 302 | 57178 5 | shard | public | customers_ts00006 | 300 | 56932 5 | shard | public | customers_ts00005 | 302 | 57386 6 | shard | public | customers_ts00008 | 300 | 56881 6 | shard | public | customers_ts00007 | 304 | 57635 (8 rows)
- limitless_tables
-
Essa visualização contém informações sobre tabelas no Aurora PostgreSQL Limitless Database.
postgres_limitless=> SELECT * FROM rds_aurora.limitless_tables; table_gid | local_oid | schema_name | table_name | table_status | table_type | distribution_key -----------+-----------+-------------+-------------+--------------+-------------+------------------ 5 | 18635 | public | placeholder | active | placeholder | 6 | 18641 | public | ref | active | reference | 7 | 18797 | public | orders | active | sharded | HASH (order_id) 2 | 18579 | public | customer | active | sharded | HASH (cust_id) (4 rows)
- limitless_table_collocations
-
Essa visualização contém informações sobre tabelas fragmentadas colocalizadas.
No exemplo a seguir, as tabelas
orders
ecustomers
são colocalizadas, e as tabelasusers
efollowers
são colocalizadas. As tabelas colocalizadas têm o mesmocollocation_id
.postgres_limitless=> SELECT * FROM rds_aurora.limitless_table_collocations ORDER BY collocation_id; collocation_id | schema_name | table_name ----------------+-------------+------------ 2 | public | orders 2 | public | customers 5 | public | users 5 | public | followers (4 rows)
- limitless_table_collocation_distributions
-
Essa visualização mostra a distribuição de chaves para cada colocação.
postgres_limitless=> SELECT * FROM rds_aurora.limitless_table_collocation_distributions ORDER BY collocation_id, lower_bound; collocation_id | subcluster_id | lower_bound | upper_bound ----------------+---------------+----------------------+---------------------- 2 | 6 | -9223372036854775808 | -4611686018427387904 2 | 5 | -4611686018427387904 | 0 2 | 4 | 0 | 4611686018427387904 2 | 3 | 4611686018427387904 | 9223372036854775807 5 | 6 | -9223372036854775808 | -4611686018427387904 5 | 5 | -4611686018427387904 | 0 5 | 4 | 0 | 4611686018427387904 5 | 3 | 4611686018427387904 | 9223372036854775807 (8 rows)