Ошибка: Битовый бинарный оператор для байтов требует одинаковую длину входов - PullRequest
0 голосов
/ 28 июня 2018

Я не могу запустить битовые операции, такие как:

#standardSQL
SELECT b'123' &  b'71278234'

Ошибка:

Ошибка: побитовый двоичный оператор для байтов требует одинаковую длину входов. Получил 3 байта с левой стороны и 8 байтов с правой стороны.

Как я могу это исправить?

1 Ответ

0 голосов
/ 28 июня 2018

Вы можете RPAD() свои байты, чтобы сделать их одинакового размера. Более того, инкапсулируйте это в UDF SQL:

#standardSQL
CREATE TEMP FUNCTION TolerantBitwiseAnd(x BYTES, y BYTES) AS (
 RPAD(x, GREATEST(LENGTH(x), LENGTH(y))) & RPAD(y, GREATEST(LENGTH(x), LENGTH(y)))
);

SELECT TolerantBitwiseAnd(b'123', b'71278234');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...