git.net

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: How to modify select identifiers


Hi Julian,

Thank you for quick response.
SqlCall is abstract class so I am not able to find which concrete subclass
of it I should instantiate. Could you please give some more hint or code
snippet to do it? Also how to modify the identifier name. Say I want to
change value to _MAP['value'] e.g.

SELECT _MAP['value'] as v FROM Data

On Wed, Oct 31, 2018 at 3:42 PM Julian Feinauer <
j.feinauer@xxxxxxxxxxxxxxxxx> wrote:

> Hi Shashwat,
>
> Calcite does this by a Call to the "AS" Operator (basically value as v is
> just syntactic sugar for AS(value, v)).
> So you need to create a call node (SqlCall) with the AS Operator
> (SqlStdOperatorTable.AS) and as operands you node and an SqlIdentifier for
> the Alias.
>
> But your visitor should then return SqlNode not String, or?
>
I'll will change it to SqlNode.

>
> Best
> Julian
>
> Am 31.10.18, 11:07 schrieb "Shashwat Kumar" <shashwatkmr.001@xxxxxxxxx>:
>
>     I want to modify select identifiers in sql statement. For example
>     SELECT value FROM Data
>     to
>     SELECT value as v FROM Data
>
>     I am able to get SqlNode for select identifiers as follows.
>
>     public String visit(SqlCall sqlCall) {
>
>             SqlNodeList selectList = ((SqlSelect) sqlCall).getSelectList();
>             for (SqlNode sqlNode : selectList) {
>                 *// do something with sqlNode*
>             }
>
>     }
>
>     Now how to change sqlNode as per requirement?
>
>
>     --
>     Regards
>     Shashwat Kumar
>
>
>

-- 
Regards
Shashwat Kumar