Создание реляционной алгебры - PullRequest
0 голосов
/ 05 марта 2019

Правильно, так что я сидел на этом довольно долгое время и действительно хотел бы некоторую помощь здесь. Поэтому я пытался использовать RelBuilder для построения реляционных выражений.

  1. Я пытаюсь построить реляционные выражения для использования функции Trim (). Это то, что я сделал до сих пор:

    RelNode node = builder.scan("emp").project(builder.call(SqlStdOperatorTable.TRIM, builder.getRexBuilder().makeFlag(Flag.BOTH),builder.literal(" "), builder.field("EMPNAME"))).build();
    
    **Query Explain:**
    LogicalProject($f0=[TRIM(FLAG(BOTH), ' ', $2)])
    LogicalTableScan(table=[[hr, emp]])
    
    **Corresponding Mysql Query:**
    SELECT TRIM(BOTH ' ' FROM `EMPNAME`) AS `$f0` FROM `hr`.`emp`
    

Как видите, AS $f0 здесь не требуется. Может кто-нибудь сказать мне, что я здесь делаю не так?

  1. Как я могу создать Relational Algebra using RelBuilder для следующего Mysql Query:

    SELECT DATE_FORMAT(HIRE_DATE,'%Y/%m/%d'), EMPNAME FROM `emp` WHERE DATE_FORMAT(HIRE_DATE,'%Y/%m/%d') = DATE_FORMAT(NOW(),'%Y/%m/%d');
    

Проще говоря, как мне изменить формат даты в RelBuilder ?

...