SnowConvert AI - Vertica - Diferenças de identificador entre o Vertica e o Snowflake¶
Identificadores entre aspas¶
No Vertica, os identificadores entre aspas seguem as regras de diferenciação de maiúsculas e minúsculas, o que significa que, por exemplo, nomes de colunas não diferenciam maiúsculas de minúsculas, mesmo quando entre aspas. Assim, os identificadores "ABC", "ABc"e “aBc” são sinônimos, assim como ABC, ABce aBc :
Vertica¶
CREATE TABLE test.quotedIdentTable
(
"col#1" INTEGER
);
SELECT "col#1" FROM test.quotedIdentTable;
SELECT "COL#1" FROM test.quotedIdentTable;
No Snowflake, a diferenciação de maiúsculas e minúsculas dos identificadores entre aspas depende do parâmetro da sessão QUOTED_IDENTIFIERS_IGNORE_CASE. Por padrão, a comparação de identificadores entre aspas diferencia maiúsculas de minúsculas. Isso significa que o código de resultado da migração do exemplo acima:
Snowflake¶
CREATE TABLE test.quotedIdentTable
(
"col#1" INTEGER
);
SELECT
"col#1"
FROM
test.quotedIdentTable;
SELECT
"COL#1"
FROM
test.quotedIdentTable;
Gera uma falha ao executar a segunda seleção, a menos que o parâmetro de sessão esteja definido como TRUE.
Como o SnowConvert AI migra identificadores entre aspas¶
O SnowConvert AI analisará os identificadores entre aspas para determinar se eles contêm caracteres não alfanuméricos ou se são palavras reservadas no Snowflake. Se sim, o SnowConvert AI os deixará como estão. Os identificadores alfanuméricos serão deixados sem aspas:
Vertica¶
CREATE TABLE test.identsTable1
(
"col#1" INTEGER,
"col2" INTEGER
);
-- Group is a reserved word
SELECT
"col#1" AS "group",
"col2" AS "hello"
FROM
test.identsTable1;
Snowflake¶
CREATE TABLE test.identsTable1
(
"col#1" INTEGER,
col2 INTEGER
);
-- Group is a reserved word
SELECT
"col#1" AS "group",
col2 AS hello
FROM
test.identsTable1;