У меня есть возможность использовать мои диалекты, указанные c конструкции хранимых процедур, например, как l oop, если затем, в диалекте BigQuery.
В основном это может содержать операторы управления потоком, как показано ниже
DECLARE heads BOOL;
DECLARE heads_count INT64 DEFAULT 0;
LOOP
SET heads = RAND() < 0.5;
IF heads THEN
SELECT 'Heads!';
SET heads_count = heads_count + 1;
ELSE
SELECT 'Tails!';
BREAK;
END IF;
END LOOP;
SELECT CONCAT(CAST(heads_count AS STRING), ' heads in a row');
Можно ли каким-либо образом создать план Rel хранимых процедур? И преобразовать обратно в Statement, соответствующий BigQuery Dialect
. Я вижу проект для Linq4j в кальците и выражениях, таких как Условные операторы, для операторов L oop, но, похоже, это для запросов из java объектов, не для правильно создать план Rel?
Не могли бы вы сообщить мне, есть ли способ в кальците, который я мог бы преобразовать в Teradata / Oracle / Netezza Stored Pro c в какую-то каноническую форму или каким-либо другим способом создать из них AST?