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;
Copy

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;
Copy

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;
Copy

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;
Copy