[ 
https://issues.apache.org/jira/browse/PHOENIX-1812?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14586422#comment-14586422
 ] 

Thomas D'Silva commented on PHOENIX-1812:
-----------------------------------------

[~jamestaylor] [~maryannxue] I created 
https://issues.apache.org/jira/browse/PHOENIX-2029 to fix this issue in the 4.x 
branches. 
I have uploaded a patch there. 

When I tried the fix
{code}
        // Don't pass groupBy when building where clause expression, because we 
do not want to wrap these
        // expressions as group by key expressions since they're pre, not post 
filtered.
        if (innerPlan == null && !tableRef.equals(resolver.getTables().get(0))) 
{
-            context.setResolver(FromCompiler.getResolverForQuery(select, 
this.statement.getConnection()));
+            context.setResolver(FromCompiler.getResolver(tableRef));
        }
{code}

some tests were failing (UserDefinedFunctionsIT was one). The tests pass with 
the following fix:
{code}
-            context.setResolver(FromCompiler.getResolverForQuery(select, 
this.statement.getConnection()));
+               // if select statement is the same just use the original 
resolver 
+               if (this.select.equals(select)) {
+                       context.setResolver(this.resolver);
+               }
+               else {
+                       
context.setResolver(FromCompiler.getResolverForQuery(select, 
this.statement.getConnection()));
+               }
{code}


> Only sync table metadata when necessary
> ---------------------------------------
>
>                 Key: PHOENIX-1812
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-1812
>             Project: Phoenix
>          Issue Type: Sub-task
>            Reporter: James Taylor
>            Assignee: Thomas D'Silva
>         Attachments: PHOENIX-1812.patch, PHOENIX-1812.patch
>
>
> With transactions, we hold the timestamp at the point when the transaction 
> was opened. We can prevent the MetaDataEndpoint getTable RPC in 
> MetaDataClient.updateCache() to check that the client has the latest table if 
> we've already checked at the current transaction ID timestamp. We can keep 
> track of which tables we've already updated in PhoenixConnection.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to