Função ARRAY_POSITION: mudanças para encontrar a posição de um valor NULL

Atenção

Essa mudança de comportamento está no pacote 2023_01.

Para saber o status atual do pacote, consulte Histórico do pacote.

Quando você chama a função ARRAY_POSITION e passa um valor como o primeiro argumento, a função retorna a posição do primeiro elemento ARRAY com esse valor.

A função ARRAY_POSITION mudou quando você especifica NULL como o primeiro argumento:

Anteriormente

A função retorna NULL. Por exemplo:

SELECT ARRAY_POSITION(NULL, [10, NULL, 30]);

+--------------------------------------+
| ARRAY_POSITION(NULL, [10, NULL, 30]) |
|--------------------------------------|
|                                 NULL |
+--------------------------------------+
Copy
Atualmente

A função retornará a posição do primeiro NULL na ARRAY. Por exemplo:

SELECT ARRAY_POSITION(NULL, [10, NULL, 30]);
+--------------------------------------+
| ARRAY_POSITION(NULL, [10, NULL, 30]) |
|--------------------------------------|
|                                    1 |
+--------------------------------------+
Copy

Esta mudança foi implementada por uma questão de consistência com a função ARRAY_CONTAINS. Quando você usar a função ARRAY_CONTAINS para determinar se uma ARRAY contém NULL, a função retornará TRUE.

Ref: 882