phoenix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Hudson (JIRA)" <>
Subject [jira] [Commented] (PHOENIX-939) Generalize SELECT expressions for Pig Loader
Date Sun, 08 Jun 2014 08:08:02 GMT


Hudson commented on PHOENIX-939:

SUCCESS: Integrated in Phoenix | Master | Hadoop1 #244 (See [])
PHOENIX-939 Generalize SELECT expressions for Pig Loader (Ravi) (jtaylor: rev 437bf6881eea425c28f67f148f5be6fc3093fddc)
* phoenix-pig/src/main/java/org/apache/phoenix/pig/util/
* phoenix-pig/src/main/java/org/apache/phoenix/pig/hadoop/
* phoenix-pig/src/it/java/org/apache/phoenix/pig/
* phoenix-pig/src/main/java/org/apache/phoenix/pig/hadoop/
* phoenix-pig/src/main/java/org/apache/phoenix/pig/util/
* phoenix-pig/src/main/java/org/apache/phoenix/pig/
* phoenix-pig/src/test/java/org/apache/phoenix/pig/util/
* phoenix-pig/src/main/java/org/apache/phoenix/pig/

> Generalize SELECT expressions for Pig Loader
> --------------------------------------------
>                 Key: PHOENIX-939
>                 URL:
>             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

View raw message