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

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 meio das 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 information_schema para o PostgreSQL

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

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

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

Tabelas em information_schema para bancos de dados do dialeto do PostgreSQL

As tabelas e visualizações no information_schema são compatíveis com tabelas e 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 do 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 do dialeto 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. Os estados possíveis são os seguintes:
  • VALIDATING: o banco de dados do dialeto do PostgreSQL está validando os dados atuais 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 básica 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 de base da qual a coluna gerada depende.
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 a proprietária ou ter 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 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 dessa 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 proprietário ou ter privilégios).

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 PostgreSQL de código aberto 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 dados, consulte a visualização `element_types`.
character_maximum_length BIGINT O comprimento máximo declarado para os tipos de dados de caracteres e string de bits. Se um comprimento máximo não for especificado, o valor será "NULL". Se o tipo de dados da coluna não for um caractere ou uma string de bits, o valor será "NULL".
character_octet_length BIGINT Não é usada atualmente. 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érico"
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 atualmente. O valor é sempre "NULL".
interval_type character varying Não é usada atualmente. O valor é sempre "NULL".
interval_precision BIGINT Não é usada atualmente. O valor é sempre "NULL".
character_set_catalog character varying Não é usada atualmente. O valor é sempre "NULL".
character_set_schema character varying Não é usada atualmente. O valor é sempre "NULL".
character_set_name character varying Não é usada atualmente. O valor é sempre "NULL".
collation_catalog character varying Não é usada atualmente. O valor é sempre "NULL".
collation_schema character varying Não é usada atualmente. O valor é sempre "NULL".
collation_name character varying Não é usada atualmente. O valor é sempre "NULL".
domain_catalog character varying Não é usada atualmente. O valor é sempre "NULL".
domain_schema character varying Não é usada atualmente. O valor é sempre "NULL".
domain_name character varying Não é usada atualmente. O valor é sempre "NULL".
udt_catalog character varying Não é usada atualmente. O valor é sempre "NULL".
udt_schema character varying Não é usada atualmente. O valor é sempre "NULL".
udt_name character varying Não é usada atualmente. O valor é sempre "NULL".
scope_catalog character varying Não é usada atualmente. O valor é sempre "NULL".
scope_schema character varying Não é usada atualmente. O valor é sempre "NULL".
scope_name character varying Não é usada atualmente. O valor é sempre "NULL".
maximum_cardinality BIGINT Não é usada atualmente. O valor é sempre "NULL".
dtd_identifier character varying Não é usada atualmente. O valor é sempre "NULL".
is_self_referencing character varying Não é usada atualmente. O valor é sempre "NULL".
is_identity character varying Não é usada atualmente. O valor é sempre "NULL".
identity_generation character varying Não é usada atualmente. O valor é sempre "NULL".
identity_start character varying Não é usada atualmente. O valor é sempre "NULL".
identity_increment character varying Não é usada atualmente. O valor é sempre "NULL".
identity_maximum character varying Não é usada atualmente. O valor é sempre "NULL".
identity_minimum character varying Não é usada atualmente. O valor é sempre "NULL".
identity_cycle character varying Não é usada atualmente. 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 atualmente. O valor é sempre "NULL".
spanner_type character varying Uma string que contém o tipo de 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: nenhuma leitura ou gravação é permitida para as colunas. Uma coluna gerada armazenada nesse estado não causa efeito algum para o 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 que contém 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 primária, essa visualização apenas identifica a tabela à qual a restrição pertence. Restrições de verificação e restrições não nulas não estão incluídas nessa 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 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 do dialeto do PostgreSQL.
option_name character varying O nome da opção de banco de dados. Esse é 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 é "public".
table_name character varying Nome da tabela associada ao índice.
index_name character varying O nome do índice. Tabelas com uma especificação "PRIMARY KEY" têm uma entrada de 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 sem chave, 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 mãe, conforme discutido em Como criar um índice secundário. Essa coluna contém o nome dessa 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 representam são:
  • NULL: o tipo de índice é"PRIMARY_KEY"
  • PREPARE: criação de tabelas vazias para um novo índice
  • WRITE_ONLY: preencher dados para um novo índice
  • WRITE_ONLY_CLEANUP: limpeza de 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 Cloud Spanner. Por exemplo, os índices secundários de apoio para chaves externas são gerenciados pelo Cloud Spanner. A string é YES ou NO, em vez de um valor booleano, de acordo com o padrão SQL.

information_schema_catalog_name

Essa 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, primária ou externa. Para informações sobre as colunas de restrição de 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 com 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 O nome da coluna que é restrita.
ordinal_position BIGINT A posição ordinal da coluna na chave de restrição, começando com um valor 1.
position_in_unique_constraint BIGINT Para FOREIGN KEYs, a posição ordinal da coluna na restrição única, começando com um valor 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 em que você tem acesso de gravação à tabela de referência. Essa visualização também identifica as restrições PRIMARY KEY e UNIQUE nas tabelas referenciadas que as chaves externas 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 da 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 única ou primária referenciada pela restrição de chave externa.
unique_constraint_name character varying O nome da restrição de chave única ou primária referenciada pela restrição de chave externa.
match_option character varying 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 Cloud 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 Cloud Spanner começará a aplicar a restrição para novas transações enquanto valida os dados existentes. 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 as novas gravações estão sendo validados.
  • WAITING_FOR_COMMIT: as operações em massa de chaves externas 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. Ela é definida como "public" para o esquema padrão e não vazia para esquemas nomeados.
schema_owner character varying O nome do proprietário do esquema.
default_character_set_catalog character varying Não é usada atualmente.
default_character_set_schema character varying Não é usada atualmente.
default_character_set_name character varying Não é usada atualmente.
sql_path character varying Não é usada atualmente.
effective_timestamp timestamp with timezone Carimbo de data/hora em que todos os dados no esquema foram aplicados. 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 padrão do esquema é "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 que você possa referenciar o 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 a tabelas às quais 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 é 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 no 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 a 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 atualmente.
reference_generation character varying Não é usada atualmente.
user_defined_type_catalog character varying Não é usada atualmente.
user_defined_type_schema character varying Não é usada atualmente.
user_defined_type_name character varying Não é usada atualmente.
is_insertable_into character varying Não é usada atualmente.
is_typed character varying Não é usada atualmente.
commit_action character varying Não é usada atualmente.
parent_table_name character varying O nome da tabela pai, se essa tabela for intercalada, ou NULL.
on_delete_action character varying Isso é definido como CASCADE ou NO ACTION para tabelas intercaladas. Caso contrário, é NULL. Consulte 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 requer o preenchimento do índice referenciado. Os estados possíveis são:
  • ADDING_FOREIGN_KEY: como adicionar chaves externas das tabelas
  • WAITING_FOR_COMMIT: finalizar a alteração do esquema
  • COMMITTED: a alteração no 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 existe 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 mãe.
  • IN PARENT: uma tabela"INTERLEAVE IN PARENT"com uma relação pai-filho. Uma linha nesta tabela exige a existência da linha da tabela mãe.
row_deletion_policy_expression character varying String que contém o texto da expressão que define a 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 atualmente.
is_updatable character varying Não é usada atualmente.
is_insertable_into character varying Não é usada atualmente.
is_trigger_updatable character varying Não é usada atualmente.
is_trigger_deletable character varying Não é usada atualmente.
is_trigger_insertable_into character varying Não é usada atualmente.

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 do 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')

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

SELECT *
FROM information_schema.spanner_statistics;

A seguir