Se você tem um script ou código que depende do conjunto de resultados que inclui um número específico de colunas ou que depende da ordem das colunas, a introdução de uma nova coluna pode afetar esse script ou código.
Solução alternativa de um problema introduzido por uma nova coluna¶
Se o seu script ou código encontrar problemas devido à introdução de novas colunas, seu administrador do Snowflake (um usuário a quem foi concedida a função ACCOUNTADMIN) pode alterar as colunas que são retornadas para execuções de um comando SHOW específico ou de consultas SELECT * de uma exibição do Snowflake. Essas colunas são chamadas de colunas padrão.
Substituindo as colunas padrão em um comando SHOW¶
Para excluir colunas recém-introduzidas da saída de um comando SHOW, chame a função SYSTEM$SET_DEFAULT_COLUMNS_OVERRIDE_FOR_SHOW_COMMAND, especificando o tipo de objeto e a lista de colunas que devem ser retornados.
Suponha que uma nova coluna direction foi introduzida na saída do comando SHOW NOTIFICATION INTEGRATIONS. Para impedir que a nova coluna direction seja incluída na saída do comando, chame SYSTEM$SET_DEFAULT_COLUMNS_OVERRIDE_FOR_SHOW_COMMAND, especificando 'NOTIFICATIONINTEGRATIONS' como o tipo de objeto. Passe uma lista separada por vírgulas das colunas que devem ser retornadas na saída (uma lista que exclui direction):
Se você precisar desfazer uma chamada SYSTEM$SET_DEFAULT_COLUMNS_OVERRIDE_FOR_SHOW_COMMAND e retornar todas as colunas no comando SHOW para um tipo de objeto específico, chame a função SYSTEM$UNSET_DEFAULT_COLUMNS_OVERRIDE_FOR_SHOW_COMMAND, especificando o tipo de objeto. Por exemplo:
Obtendo a lista de colunas padrão para um comando SHOW¶
Se você precisa determinar se SYSTEM$SET_DEFAULT_COLUMNS_OVERRIDE_FOR_SHOW_COMMAND foi chamado para um tipo de objeto específico e quer a lista de colunas que serão retornadas na saída do comando, chame a função SYSTEM$GET_DEFAULT_COLUMNS_OVERRIDE_FOR_SHOW_COMMAND, especificando o tipo de objeto. Por exemplo:
Se SYSTEM$SET_DEFAULT_COLUMNS_OVERRIDE_FOR_SHOW_COMMAND ainda não foi chamado ou se SYSTEM$UNSET_DEFAULT_COLUMNS_OVERRIDE_FOR_SHOW_COMMAND foi chamado, a função retorna uma cadeia de caracteres vazia.
Substituindo as colunas padrão em uma exibição do Snowflake¶
Para excluir colunas recém-introduzidas dos resultados de uma consulta SELECT* de uma exibição do Snowflake, chame a função SYSTEM$SET_DEFAULT_COLUMNS_OVERRIDE_FOR_SYSTEM_OBJECT, especificando o tipo de objeto, o banco de dados e o esquema que contêm a exibição, o nome da exibição e a lista de colunas que devem ser retornadas.
Suponha que uma nova coluna replicable_with_failover_groups foi introduzida na exibição DATABASES no esquema ACCOUNT_USAGE. Para impedir que a nova coluna replicable_with_failover_groups seja retornada nos resultados de uma consulta SELECT* da exibição, chame SYSTEM$SET_DEFAULT_COLUMNS_OVERRIDE_FOR_SYSTEM_OBJECT, especificando 'VIEW' como o tipo de objeto, 'SNOWFLAKE' como o banco de dados, 'ACCOUNT_USAGE' como o esquema e 'TABLES' como a exibição. Passe uma lista separada por vírgulas das colunas que devem ser retornadas na saída (uma lista que exclui replicable_with_failover_groups):
Se você precisa chamar essa função para uma exibição INFORMATION_SCHEMA, passe uma cadeia de caracteres vazia no lugar do nome do banco de dados. Por exemplo, para excluir a coluna replicable_with_failover_groups dos resultados das consultas SELECT* da exibição DATABASES no esquema INFORMATION_SCHEMA:
Redefinindo as colunas padrão em uma exibição do Snowflake¶
Se você precisa desfazer uma chamada SYSTEM$SET_DEFAULT_COLUMNS_OVERRIDE_FOR_SYSTEM_OBJECT anterior e retornar todas as colunas em uma consulta SELECT* de uma exibição do Snowflake, chame a função SYSTEM$UNSET_DEFAULT_COLUMNS_OVERRIDE_FOR_SYSTEM_OBJECT, especificando o tipo de objeto, o banco de dados e o esquema que contêm a exibição, e o nome da exibição. Por exemplo:
Se você precisa chamar essa função para uma exibição INFORMATION_SCHEMA, passe uma cadeia de caracteres vazia no lugar do nome do banco de dados. Por exemplo:
Obtendo a lista de colunas padrão em uma exibição do Snowflake¶
Se você precisa determinar se SYSTEM$SET_DEFAULT_COLUMNS_OVERRIDE_FOR_SYSTEM_OBJECT foi chamado para uma exibição específica e quer a lista das colunas que serão retornadas em uma consulta SELECT* dessa exibição, chame a função SYSTEM$GET_DEFAULT_COLUMNS_OVERRIDE_FOR_SYSTEM_OBJECT, especificando o tipo de objeto, o banco de dados e o esquema que contêm a exibição, e o nome da exibição. Por exemplo:
Se você precisa chamar essa função para uma exibição INFORMATION_SCHEMA, passe uma cadeia de caracteres vazia no lugar do nome do banco de dados. Por exemplo:
Se SYSTEM$SET_DEFAULT_COLUMNS_OVERRIDE_FOR_SYSTEM_OBJECT ainda não foi chamado ou se SYSTEM$UNSET_DEFAULT_COLUMNS_OVERRIDE_FOR_SYSTEM_OBJECT foi chamado, a função retorna uma cadeia de caracteres vazia.
Obtendo a lista de colunas de todas as chamadas anteriores para comandos SHOW e exibições do Snowflake¶
Para obter a lista de colunas substituídas para todos os comandos SHOW e as exibições do Snowflake, chame a função SYSTEM$GET_ALL_DEFAULT_COLUMNS_OVERRIDES. Por exemplo:
SELECTSYSTEM$GET_ALL_DEFAULT_COLUMNS_OVERRIDES();
A função retorna uma cadeia de caracteres com uma matriz de objetos JSON. Cada objeto representa a lista de colunas para um comando SHOW específico ou uma exibição do Snowflake. Por exemplo:
Atualizando scripts e código para impedir problemas quando novas colunas são introduzidas¶
Para impedir a ocorrência de problemas devido à introdução de novas colunas, seus scripts e código devem selecionar colunas específicas da saída dos comandos SHOW e ao consultar as exibições do Snowflake.