Хранимая процедура для реляционного выражения (Rel Node) - PullRequest
0 голосов
/ 18 апреля 2020

У меня есть возможность использовать мои диалекты, указанные 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?

...