[ https://issues.apache.org/jira/browse/PHOENIX-1580?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14342633#comment-14342633 ]
Maryann Xue commented on PHOENIX-1580: -------------------------------------- [~aliciashu] By saying temporary PTable instance, I do NOT mean a temporary HBase or Phoenix table. It's just a schema (not the schema as in schema name / table name) for your data. The PTable instance will be used to construct a ColumnResolver which decides how columns are compiled to Expressions. For example, a ColumnResolver based on a PTable instance for a physical Phoenix table will compile columns to either RowKeyColumnExpression or KeyValueColumnExpression, which evaluate column values from HBase KVs. But in some cases, we would process raw HBase KVs and project them into a different representation, and compiler would know how to compile the columns into the right type of Expressions to make sure that the new data representation is interpreted and evaluated the right way. Let's take a derived table case for example. Suppose we have a query like "SELECT t.c, count(*) FROM (SELECT count(*) c FROM aTable GROUP BY a_string) AS t GROUP BY t.c". The first step is to run the inner query, and the outer query iterator would take the ResultIterator returned by the inner query and continue to process, like you said, in a streaming fashion. But the outer query does not have to know how data is retrieved or processed by the inner query, but it has to know the schema of the result returned by the inner query, or say, how each row of the inner query should be interpreted. That schema is created at compiletime, on which the outer query compilation is based. The temporary schema (PTable instance) here is definitely different from the physical table "aTable", it's instead something like temporary table "t" with one column "c". I believe taking a closer look at the code in QueryCompiler and the FromCompiler would help a lot in understanding this logic. > Support UNION ALL > ----------------- > > Key: PHOENIX-1580 > URL: https://issues.apache.org/jira/browse/PHOENIX-1580 > Project: Phoenix > Issue Type: Bug > Reporter: Alicia Ying Shu > Assignee: Alicia Ying Shu > Attachments: unionall-wipe.patch > > > Select * from T1 > UNION ALL > Select * from T2 -- This message was sent by Atlassian JIRA (v6.3.4#6332)