SnowConvert AI - Vertica - Diferenças de identificador entre o Vertica e o Snowflake¶
Identificadores entre aspas¶
In Vertica, quoted identifiers stick to the case sensitivity rules, which means that, for example, column names are still case insensitive even when quoted. Thus, identifiers "ABC", "ABc", and "aBc" are synonymous, as are ABC, ABc, and 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¶
SnowConvert AI will analyze quoted identifiers to determine if they contain non-alphanumeric characters or are reserved words in Snowflake, if they do SnowConvert AI will leave them as they are, alphanumeric identifiers will be left unquoted:
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;