Esquema de informações para bancos de dados dialetos do PostgreSQL

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

O esquema de informações é um esquema integrado comum a todos os bancos de dados do PostgreSQL. É possível executar consultas SQL em tabelas no information_schema para buscar metadados de esquema para um banco de dados.

Por exemplo, a consulta a seguir busca os nomes de todas as tabelas definidas pelo usuário em um banco de dados:

  SELECT
    table_name
  FROM
    information_schema.tables
  WHERE
    table_schema = 'public'

Uso

  • As tabelas information_schema estão disponíveis apenas por interfaces SQL, por exemplo:

    • A API executeQuery
    • O comando gcloud spanner databases execute-sql
    • A página Consulta de um banco de dados no Console do Google Cloud.

    Outros métodos de leitura única não são compatíveis com information_schema.

Diferenças de info_schema para o PostgreSQL

As tabelas em information_schema para bancos de dados diabéticos do PostgreSQL incluem colunas das tabelas em information_schema para PostgreSQL de código aberto e, em alguns casos, também incluem colunas do Spanner. Nessas tabelas, as colunas do PostgreSQL de código aberto vêm primeiro e na mesma ordem que um banco de dados de código aberto do PostgreSQL. Todas as colunas distintas do Spanner são anexadas depois. As consultas criadas para a versão de código aberto do PostgreSQL de information_schema funcionam sem modificação ao usar os bancos de dados do dialeto PostgreSQL na Google Cloud CLI.

Outras diferenças importantes no information_schema para os bancos de dados do dialeto PostgreSQL são as seguintes:

  • Algumas das colunas da tabela para PostgreSQL de código aberto estão disponíveis, mas não são preenchidas nos bancos de dados do dialeto PostgreSQL.
  • Os bancos de dados do dialeto PostgreSQL usam public como o nome do esquema.
  • Os nomes de restrição gerados automaticamente usam um formato diferente dos bancos de dados do PostgreSQL de código aberto.
  • Tabelas relacionadas a recursos do PostgreSQL de código aberto que não são compatíveis com os bancos de dados do dialeto PostgreSQL não estão disponíveis.
  • Algumas tabelas estão disponíveis com o Spanner, mas não com o PostgreSQL de código aberto, como database_options, index_columns, indexes e spanner_statistics.

Tabelas em information_schema para bancos de dados do dialeto PostgreSQL

As tabelas e visualizações no information_schema são compatíveis com as tabelas e as visualizações no information_schema do PostgreSQL de código aberto.

As seções a seguir descrevem as tabelas e visualizações no information_schema para bancos de dados de dialeto do PostgreSQL:

check_constraints

A visualização check_constraints contém uma linha para cada restrição de verificação definida pela palavra-chave CHECK ou NOT NULL.

Nome da coluna Tipo Descrição
constraint_catalog character varying O nome do banco de dados.
constraint_schema character varying O nome de esquema da restrição. O padrão é "public" para bancos de dados de dialeto do PostgreSQL.
constraint_name character varying O nome da restrição. Se o nome da restrição não for especificado explicitamente no esquema, o nome gerado automaticamente será usado.
check_clause character varying A expressão de restrição de verificação
spanner_state character varying O estado atual da restrição de verificação. Estas são as opções disponíveis:
  • VALIDATING: o banco de dados do dialeto PostgreSQL está validando os dados existentes para um comando `ALTER CONSTRAINT` ou `ADD CONSTRAINT`.
  • COMMITTED: não há alteração de esquema ativa para essa restrição.

column_column_usage

Essa visualização lista todas as colunas geradas que dependem de outra coluna base na mesma tabela.

Nome da coluna Tipo Descrição
table_catalog character varying O nome do banco de dados.
table_schema character varying É o nome do esquema que contém a tabela. O nome é"public"para o esquema padrão e não vazio para outros esquemas (por exemplo, o próprio information_schema). Essa coluna jamais é nula.
table_name character varying Nome da tabela que contém as colunas geradas.
column_name character varying Nome da coluna base de que depende a coluna gerada.
dependent_column character varying Nome da coluna gerada.

column_options

Essa visualização lista todas as opções definidas para as colunas de tabela referenciadas de uma restrição de chave externa. A visualização contém apenas as colunas na tabela de referência a que o usuário atual tem acesso (por ser o proprietário ou os privilégios concedidos).

Nome da coluna Tipo Descrição
table_catalog character varying O nome do banco de dados.
table_schema character varying É o nome do esquema que contém a tabela externa. O nome é "public" para o esquema padrão e não vazio para outros esquemas (por exemplo, o próprio information_schema). Essa coluna nunca é nula.
table_name character varying O nome da tabela externa.
column_name character varying O nome da coluna.
option_name character varying Um identificador SQL que identifica com exclusividade a opção. Esse identificador é a chave da cláusula OPTIONS em DDL.
option_value character varying Um literal SQL que descreve o valor dessa opção. O valor desta coluna é analisável como parte de uma consulta.
option_type character varying Um nome do tipo de dados que é o tipo desse valor de opção.

columns

Essa visualização apresenta informações sobre todas as colunas da tabela (ou colunas de visualização) no banco de dados. A visualização contém apenas as colunas às quais o usuário atual tem acesso (por ser o proprietário ou os privilégios concedidos).

Nome da coluna Tipo Descrição
table_catalog character varying O nome do banco de dados.
table_schema character varying É o nome do esquema que contém a tabela. O nome é"public"para o esquema padrão e não vazio para outros esquemas (por exemplo, o próprio information_schema). Essa coluna nunca é nula.
table_name character varying O nome da tabela.
column_name character varying O nome da coluna
ordinal_position BIGINT A posição ordinal da coluna na tabela, começando com um valor de 1
column_default character varying Uma representação de string da expressão de código aberto do PostgreSQL do valor padrão da coluna, por exemplo, '9'::bigint.
is_nullable character varying Uma string que indica se a coluna é anulável. De acordo com o padrão SQL, a string é YES ou NO, em vez de um valor booleano.
data_type character varying O tipo de dados da coluna. O valor é um dos seguintes:
  • Para tipos integrados, o nome do tipo de dados.
  • Para matrizes, o valor é ARRAY. Para mais informações sobre o tipo de dado, consulte a visualização `element_types`.
character_maximum_length BIGINT É o tamanho máximo declarado para os tipos de dados de caractere e string de bits. Se um tamanho máximo não tiver sido especificado, o valor será "NULL". Se o tipo de dados da coluna não for um caractere de ou uma string de bits, o valor será "NULL".
character_octet_length BIGINT Não usada no momento. O valor é sempre `NULL`.
numeric_precision BIGINT A precisão do tipo de dados numéricos da coluna atual. Para "precisão dupla", o valor é 53. Para "bigint", o valor é 64. Para todos os outros tipos de dados, o valor é "NULL".
numeric_precision_radix BIGINT A base (unidade) da precisão para tipos numéricos. Atualmente, apenas dois valores são compatíveis:
  • 2 para `precisão dupla`, `float8` e `bigint`
  • 10 para `num`
Para todos os outros tipos de dados, o valor é"NULL".
numeric_scale BIGINT Contém a escala do tipo de coluna numérica, que é o número de unidades base de precisão após o ponto radix. Para `bigint`, o valor é 0. Para todos os outros tipos de dados, o valor é "NULL".
datetime_precision BIGINT Não usada no momento. O valor é sempre `NULL`.
interval_type character varying Não usada no momento. O valor é sempre `NULL`.
interval_precision BIGINT Não usada no momento. O valor é sempre `NULL`.
character_set_catalog character varying Não usada no momento. O valor é sempre `NULL`.
character_set_schema character varying Não usada no momento. O valor é sempre `NULL`.
character_set_name character varying Não usada no momento. O valor é sempre `NULL`.
collation_catalog character varying Não usada no momento. O valor é sempre `NULL`.
collation_schema character varying Não usada no momento. O valor é sempre `NULL`.
collation_name character varying Não usada no momento. O valor é sempre `NULL`.
domain_catalog character varying Não usada no momento. O valor é sempre `NULL`.
domain_schema character varying Não usada no momento. O valor é sempre `NULL`.
domain_name character varying Não usada no momento. O valor é sempre `NULL`.
udt_catalog character varying Não usada no momento. O valor é sempre `NULL`.
udt_schema character varying Não usada no momento. O valor é sempre `NULL`.
udt_name character varying Não usada no momento. O valor é sempre `NULL`.
scope_catalog character varying Não usada no momento. O valor é sempre `NULL`.
scope_schema character varying Não usada no momento. O valor é sempre `NULL`.
scope_name character varying Não usada no momento. O valor é sempre `NULL`.
maximum_cardinality BIGINT Não usada no momento. O valor é sempre `NULL`.
dtd_identifier character varying Não usada no momento. O valor é sempre `NULL`.
is_self_referencing character varying Não usada no momento. O valor é sempre `NULL`.
is_identity character varying Não usada no momento. O valor é sempre `NULL`.
identity_generation character varying Não usada no momento. O valor é sempre `NULL`.
identity_start character varying Não usada no momento. O valor é sempre `NULL`.
identity_increment character varying Não usada no momento. O valor é sempre `NULL`.
identity_maximum character varying Não usada no momento. O valor é sempre `NULL`.
identity_minimum character varying Não usada no momento. O valor é sempre `NULL`.
identity_cycle character varying Não usada no momento. O valor é sempre `NULL`.
is_generated character varying Uma string que indica se a coluna foi gerada. A string é ALWAYS para uma coluna gerada ou NEVER para uma coluna não gerada.
generation_expression character varying Uma string que representa a expressão SQL de uma coluna gerada, ou NULL se a coluna não for uma coluna gerada.
is_updatable character varying Não usada no momento. O valor é sempre `NULL`.
spanner_type character varying Uma string com o tipo da coluna compatível com DDL.
is_stored character varying Uma string que indica se a coluna gerada está armazenada. A string é sempre YES ou NO para colunas geradas e NULL para colunas não geradas.
spanner_state character varying O estado atual da coluna. Uma nova coluna gerada armazenada adicionada a uma tabela existente pode passar por vários estados observáveis pelo usuário antes de ser totalmente utilizável. Os valores possíveis são:
  • NO_WRITE: não é permitido ler nem gravar nas colunas. Uma coluna gerada armazenada nesse estado não causa qualquer efeito no cliente.
  • WRITE_ONLY: a coluna está sendo preenchida. Nenhuma leitura é permitida.
  • COMMITTED: a coluna pode ser totalmente utilizada.
  • NULL: usado para colunas em esquemas do sistema.

constraint_column_usage

Essa visualização contém uma linha sobre cada coluna usada por uma restrição.

  • Para restrições PRIMARY KEY e CHECK definidas pela palavra-chave NOT NULL, a visualização contém essas colunas.
  • Para restrições CHECK criadas com a palavra-chave CHECK, a visualização inclui as colunas usadas pela expressão de restrição de verificação.
  • Para restrições de chave externa, a visualização contém as colunas da tabela referenciada.
  • Para restrições UNIQUE, a visualização contém as colunas de KEY_COLUMN_USAGE.

Nome da coluna Tipo Descrição
table_catalog character varying O nome do banco de dados.
table_schema character varying O nome do esquema com a tabela que contém a coluna usada pela restrição.
table_name character varying O nome da tabela que contém a coluna usada pela restrição.
column_name character varying O nome da coluna que é usada pela restrição.
constraint_catalog character varying O nome do banco de dados.
constraint_schema character varying O nome de esquema da restrição.
constraint_name character varying O nome da restrição.

constraint_table_usage

Essa visualização contém uma linha para cada tabela usada por uma restrição. Para restrições FOREIGN KEY, as informações da tabela são para as tabelas na cláusula REFERENCES. Para uma restrição de chave única ou principal, essa visualização apenas identifica a tabela a que a restrição pertence. Restrições de verificação e restrições não nulas não estão incluídas nesta visualização.

Nome da coluna Tipo Descrição
table_catalog character varying O nome do banco de dados.
table_schema character varying O nome de esquema da tabela restrita.
table_name character varying O nome da tabela que é usada por alguma restrição.
constraint_catalog character varying O nome do banco de dados.
constraint_schema character varying O nome do esquema que contém a restrição.
constraint_name character varying O nome da restrição.

database_options

Esta tabela lista as opções definidas no banco de dados.

Nome da coluna Tipo Descrição
catalog_name character varying O nome do banco de dados.
schema_name character varying O nome do esquema. O valor padrão é "public" para bancos de dados de dialeto do PostgreSQL.
option_name character varying O nome da opção de banco de dados. Este é o valor de "key" na cláusula "OPTIONS" em DDL.
option_type character varying O tipo de dados da opção de banco de dados.
option_value character varying O valor da opção do banco de dados.

index_columns

Essa tabela lista as colunas em um índice.

Nome da coluna Tipo Descrição
table_catalog character varying O nome do banco de dados.
table_schema character varying É o nome do esquema que contém o índice. O valor padrão é público.
table_name character varying Nome da tabela associada ao índice.
index_name character varying O nome do índice. As tabelas com a especificação `PRIMARY KEY` têm uma entrada pseudoíndice gerada com o nome `PRIMARY_KEY`
index_type character varying O tipo de índice. Os valores possíveis são "PRIMARY_KEY", "LOCAL" ou "GLOBAL".
column_name character varying O nome da coluna.
ordinal_position BIGINT A posição ordinal da coluna no índice (ou chave primária), começando com um valor de 1. Esse valor é NULL para colunas não chaves (por exemplo, colunas especificadas na cláusula INCLUDE de um índice).
column_ordering character varying A ordem de classificação da coluna. O valor é ASC ou DESC para colunas de chave e NULL para colunas sem chave (por exemplo, colunas especificadas na cláusula STORING de um índice).
is_nullable character varying Uma string que indica se a coluna é anulável. De acordo com o padrão SQL, a string é YES ou NO, em vez de um valor booleano.
spanner_type character varying Uma string que contém o tipo de coluna compatível com DDL.

indexes

Essa visualização lista os índices em um esquema.

Nome da coluna Tipo Descrição
table_catalog character varying O nome do banco de dados.
table_schema character varying O nome do esquema. O valor padrão é "public".
table_name character varying O nome da tabela.
index_name character varying O nome do índice. As tabelas criadas com uma cláusula PRIMARY KEY têm uma entrada de pseudoíndice gerada com o nome PRIMARY_KEY, o que permite que os campos da chave primária sejam identificados.
index_type character varying O tipo do índice. Os valores incluem PRIMARY_KEY, LOCAL ou GLOBAL.
parent_table_name character varying Os índices secundários podem ser intercalados em uma tabela pai, conforme discutido em Como criar um índice secundário. Essa coluna contém o nome da tabela pai ou NULL se o índice não for intercalado.
is_unique character varying Se as chaves do índice precisarem ser exclusivas. De acordo com o padrão SQL, a string é YES ou NO, em vez de um valor booleano.
is_null_filtered character varying Se o índice incluir entradas com valores NULL. De acordo com o padrão SQL, a string é YES ou NO, em vez de um valor booleano.
index_state character varying O estado atual do índice. Os valores possíveis e os estados que eles representam são:
  • NULL: o tipo de índice é "PRIMARY_KEY"
  • PREPARE: cria tabelas vazias para um novo índice
  • WRITE_ONLY: preenchimento de dados para um novo índice
  • WRITE_ONLY_CLEANUP: limpar um novo índice
  • WRITE_ONLY_VALIDATE_UNIQUE: verificação da exclusividade de dados em um novo índice
  • READ_WRITE: operação de índice normal
spanner_is_managed character varying Indica se o índice é gerenciado pelo Spanner. Por exemplo, os índices de apoio secundários de chaves externas são gerenciados pelo Spanner. A string é YES ou NO, em vez de um valor booleano, de acordo com o padrão do SQL.

information_schema_catalog_name

Esta tabela contém uma linha e uma coluna com o nome do banco de dados.

Nome da coluna Tipo Descrição
catalog_name character varying O nome do banco de dados.

key_column_usage

Essa visualização identifica todas as colunas no banco de dados atual que são referenciadas por uma restrição de chave primária, externa ou exclusiva. Para informações sobre colunas de restrição CHECK, consulte a visualização check_constraints.

Nome da coluna Tipo Descrição
constraint_catalog character varying O nome do banco de dados.
constraint_schema character varying O nome de esquema da restrição. O valor padrão é "public".
constraint_name character varying O nome da restrição.
table_catalog character varying O nome do banco de dados.
table_schema character varying O nome do esquema que contém a tabela que contém a coluna restrita. O valor padrão é "public".
table_name character varying O nome da tabela que contém a coluna restrita por essa restrição.
column_name character varying Nome da coluna restrita.
ordinal_position BIGINT A posição ordinal da coluna na chave de restrição, começando com um valor de 1.
position_in_unique_constraint BIGINT Para FOREIGN KEYs, a posição ordinal da coluna dentro da restrição única, começando com um valor de 1. Esta coluna tem um valor "NULL" para outros tipos de restrição.

referential_constraints

Essa visualização contém uma linha sobre cada restrição FOREIGN KEY. Só é possível ver as restrições a que você tem acesso de gravação na tabela de referência. Essa visualização também identifica as restrições PRIMARY KEY e UNIQUE nas tabelas referenciadas que as chaves estrangeiras usam para aplicação de restrições e ações referenciais.

Nome da coluna Tipo Descrição
constraint_catalog character varying O nome do banco de dados.
constraint_schema character varying É o nome do esquema que contém a restrição de chave externa. O valor padrão é "public".
constraint_name character varying O nome da restrição de chave externa.
unique_constraint_catalog character varying O nome do banco de dados.
unique_constraint_schema character varying O nome do esquema que contém a restrição de chave primária ou exclusiva referenciada pela restrição de chave externa.
unique_constraint_name character varying O nome da restrição de chave única ou principal referenciada pela restrição de chave externa.
match_option character varying O método de correspondência usado pela restrição de chave externa. O valor é sempre NONE.
update_rule character varying A regra de atualização da restrição de chave externa. Esse valor é sempre NO ACTION.
delete_rule character varying A regra de exclusão da restrição de chave externa. Esse valor é sempre NO ACTION.
spanner_state character varying O estado atual da chave externa. O Spanner não começa a aplicar a restrição até que os índices de apoio da chave externa sejam criados e preenchidos. Quando os índices estiverem prontos, o Spanner começará a aplicar a restrição para novas transações enquanto valida os dados atuais. Os valores possíveis e os estados que eles representam são:
  • BACKFILLING_INDEXES: os índices estão sendo preenchidos.
  • VALIDATING_DATA: os dados existentes e novas gravações estão sendo validados.
  • WAITING_FOR_COMMIT: as operações em massa de chave externa foram concluídas ou nenhuma foi necessária, mas a chave externa ainda está pendente.
  • COMMITTED: a alteração do esquema foi confirmada.

schemata

A visualização information_schema.schemata contém uma linha para cada esquema no banco de dados atual. Os esquemas incluem o esquema de informações e um esquema padrão chamado public.

Nome da coluna Tipo Descrição
catalog_name character varying O nome do banco de dados.
schema_name character varying O nome do esquema. Isso é definido como "public" para o esquema padrão e não vazio para esquemas nomeados.
schema_owner character varying É o nome do proprietário do esquema.
default_character_set_catalog character varying Não usada no momento.
default_character_set_schema character varying Não usada no momento.
default_character_set_name character varying Não usada no momento.
sql_path character varying Não usada no momento.
effective_timestamp timestamp with timezone Carimbo de data/hora em que todos os dados no esquema se tornaram eficazes. No momento, isso é usado apenas para o esquema padrão.

spanner_statistics

Esta tabela lista os pacotes de estatísticas do otimizador de consultas disponíveis.

Nome da coluna Tipo Descrição
catalog_name character varying O nome do banco de dados.
schema_name character varying O nome do esquema. O valor de esquema padrão é "public".
package_name character varying Nome do pacote de estatísticas.
allow_gc character varying Indica se o pacote de estatísticas está isento da coleta de lixo. De acordo com o padrão SQL, a string é YES ou NO, em vez de um valor booleano. Esse atributo precisa ser definido como NO antes de fazer referência ao pacote de estatísticas em uma dica ou pela API do cliente.

table_constraints

Essa visualização contém todas as restrições que pertencem às tabelas a que o usuário atual tem acesso, exceto SELECT.

Nome da coluna Tipo Descrição
constraint_catalog character varying O nome do banco de dados.
constraint_schema character varying O nome do esquema que contém a restrição.
constraint_name character varying O nome da restrição.
table_catalog character varying O nome do banco de dados.
table_schema character varying O nome do esquema que contém a tabela associada à restrição.
table_name character varying O nome da tabela.
constraint_type character varying O tipo da restrição. Os valores possíveis são:
  • CHECK
  • FOREIGN KEY
  • PRIMARY KEY
  • UNIQUE
is_deferrable character varying O valor é sempre NO.
initially_deferred character varying O valor é sempre NO.
enforced character varying Se a restrição foi aplicada. Se uma restrição for aplicada, depois que ela atingir um determinado estado, ela será validada no momento da gravação e por um verificador de integridade em segundo plano. De acordo com o padrão SQL, a string é YES ou NO, em vez de um valor booleano.

tables

Essa visualização contém todas as tabelas e visualizações do banco de dados atual.

Nome da coluna Tipo Descrição
table_catalog character varying O nome do banco de dados.
table_schema character varying É o nome do esquema que contém a tabela ou visualização.
table_name character varying O nome da tabela ou visualização.
table_type character varying O tipo de tabela. Os valores possíveis incluem 'TABLE BASE' e 'VIEW'.
self_referencing_column_name character varying Não usada no momento.
reference_generation character varying Não usada no momento.
user_defined_type_catalog character varying Não usada no momento.
user_defined_type_schema character varying Não usada no momento.
user_defined_type_name character varying Não usada no momento.
is_insertable_into character varying Não usada no momento.
is_typed character varying Não usada no momento.
commit_action character varying Não usada no momento.
parent_table_name character varying O nome da tabela pai, se ela for intercalada, ou NULL.
on_delete_action character varying Isso é definido como CASCADE ou NO ACTION para tabelas intercaladas, e NULL se não for. Consulte as instruções TABLE para mais informações.
spanner_state character varying O estado de criação atual da tabela.
Uma tabela poderá passar por vários estados durante a criação, se houver operações em massa envolvidas, por exemplo, quando a tabela for criada com uma chave externa que exige o preenchimento do índice referenciado. Estas são as opções disponíveis:
  • ADDING_FOREIGN_KEY: adicionando as chaves externas da tabela
  • WAITING_FOR_COMMIT: como finalizar a mudança de esquema
  • COMMITTED: a alteração do esquema para criar a tabela foi confirmada. Não é possível gravar na tabela até que a alteração seja confirmada.
  • NULL: tabelas ou visualizações que não são tabelas base.
interleave_type character varying Se há uma relação pai-filho entre essa tabela e a tabela em que ela é intercalada. Os valores possíveis são:
  • IN: uma tabela "INTERLEAVE IN" sem relação pai-filho. Pode existir uma linha nesta tabela, independentemente da existência da linha da tabela mãe.
  • IN PARENT: uma tabela "INTERLEAVE IN PARENT" com uma relação pai-filho. Uma linha nesta tabela exige a existência da sua linha mãe.
row_deletion_policy_expression character varying Uma string que contém o texto da expressão que define o ROW DELETION POLICY.

views

Essa visualização lista informações sobre as visualizações em um esquema.

Nome da coluna Tipo Descrição
table_catalog character varying O nome do banco de dados.
table_schema character varying O nome do esquema. O valor padrão é "public".
table_name character varying Nome da visualização.
view_definition character varying É o texto SQL da consulta que define a visualização.
check_option character varying Não usada no momento.
is_updatable character varying Não usada no momento.
is_insertable_into character varying Não usada no momento.
is_trigger_updatable character varying Não usada no momento.
is_trigger_deletable character varying Não usada no momento.
is_trigger_insertable_into character varying Não usada no momento.

Examples

Retorne informações sobre cada tabela no esquema padrão:

SELECT
  t.table_catalog,
  t.table_name,
  t.parent_table_name
FROM
  information_schema.tables AS t
WHERE
  t.table_schema = 'public'
ORDER BY
  t.table_catalog,
  t.table_schema,
  t.table_name

Retorne o nome de todas as tabelas e visualizações no information_schema para bancos de dados do dialeto PostgreSQL:

SELECT table_name
FROM information_schema.tables
WHERE table_schema = "information_schema"

Retorna informações sobre as colunas na tabela do usuário my_table:

SELECT
  t.ordinal_position,
  t.column_name,
  t.data_type,
  t.spanner_type,
  t.is_nullable
FROM
  information_schema.columns AS t
WHERE
  t.table_schema = 'public'
  AND
  t.table_name = 'my_table'
ORDER BY
  t.ordinal_position

Retorne informações sobre cada índice no esquema padrão do banco de dados atual:

SELECT
  t.table_name,
  t.index_name,
  t.parent_table_name
FROM
  information_schema.indexes AS t
WHERE
  t.table_schema = 'public'
  AND
  t.index_type != 'PRIMARY_KEY'
ORDER BY
  t.table_schema,
  t.table_name,
  t.index_name

Retorne todas as colunas que usam opções diferentes do padrão:

SELECT
  t.table_name,
  t.column_name,
  t.option_type,
  t.option_value,
  t.option_name
FROM
  information_schema.column_options AS t
WHERE
  t.table_schema = 'public'
ORDER BY
  t.table_schema,
  t.table_name,
  t.column_name,
  t.option_name

Retorne as opções atuais do banco de dados relacionadas ao otimizador:

SELECT
  s.option_name,
  s.option_value
FROM
  information_schema.database_options s
WHERE
  s.schema_name=public''
  AND s.option_name IN ('optimizer_version',
    'optimizer_statistics_package')

Retorne todos os pacotes de estatísticas disponíveis:

SELECT *
FROM information_schema.spanner_statistics;

A seguir