phoenix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "James Taylor (JIRA)" <j...@apache.org>
Subject [jira] [Resolved] (PHOENIX-939) Generalize SELECT expressions for Pig Loader
Date Sun, 08 Jun 2014 07:44:01 GMT

     [ https://issues.apache.org/jira/browse/PHOENIX-939?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

James Taylor resolved PHOENIX-939.
----------------------------------

    Resolution: Fixed

Thanks for the contribution, [~maghamravikiran@gmail.com]. I fixed the sequence issue by adding
a call to validate/reserve sequences. I'll probably move that logic into compile and get rid
of the necessity to do that soon.

> Generalize SELECT expressions for Pig Loader
> --------------------------------------------
>
>                 Key: PHOENIX-939
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-939
>             Project: Phoenix
>          Issue Type: Improvement
>    Affects Versions: 5.0.0, 3.1, 4.1
>            Reporter: James Taylor
>            Assignee: maghamravikiran
>             Fix For: 5.0.0, 3.1, 4.1
>
>         Attachments: PHOENIX-939.patch
>
>
> The current Pig Loader requires that the query contain only column references in the
SELECT expressions. Instead, we should allow any expression as that will provide more general
utility. For example, built-in functions, sequence references, etc. could be used then.
> Validation can be done by simply compiling the query. This does all the validation required.
It's ok if it's compiled twice if need be too.
> Pig doesn't know and likely wouldn't care if the expressions in the SELECT correspond
to columns in Phoenix or general expressions. You can use the ColumnProjection.getName() method
to get back an alias of the SELECT expression. If no alias is provided, then the String of
the expression is returned. [~prkommireddi] - can you weigh in here? You can use the Phoenix
RowProjector to iterate through each ColumnProjector you get back after the compile to get
the alias of the select expression (i.e. you'd give this to Pig as the "column" name) plus
the data type. Note that if this is problemattic, then you could likely generate an alias
name if one is not present.
> For example:
> {code}
>     RowProjector rowProj = queryPlan.getProjector();
>     for (ColumnProjector colProj : rowProj.getColumnProjectors()) {
>         String columnName = colProj.getName();
>         PDataType dataType = colProj.getExpression().getDataType();
>     }
> {code}
> If the SELECT expressions are simple column references, this would be exactly the same
as is being done now. If the SELECT expressions are more complex expressions, this would work
as well.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Mime
View raw message