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

Jacob Isaac edited comment on PHOENIX-6847 at 12/16/22 6:27 PM:
----------------------------------------------------------------

My guess would be typical users of DatabaseMetaData would fetch the metadata 
and store/cache it for future and further reuse. So it boils down to whether it 
is cached at PhoenixClient layer or the app layer. I agree that novice users or 
applications can inadvertently call it multiple times. But I think that is no 
different than one calling PhoenixRuntime.getTableNoCache(..) multiple times.

I am all for easy and performant API (aside from the JDBC API) which is concise 
and does not expose too much of our internals. Not sure PhoenixRuntime fits 
that bill. 


was (Author: jisaac):
My guess would be typical users of DatabaseMetaData would fetch the metadata 
and store/cache it for future and further reuse. So it boils down to whether it 
is cached at PhoenixClient layer or the app layer. I agree that novice users or 
applications can inadvertently call it multiple times. But I think that is no 
different than one calling PhoenixRuntime.getTableNoCache(..) multiple times.

I am all for easy and performant API which is concise and does not expose too 
much of our internals. Not sure PhoenixRuntime fits that bill. 

> Provide a crisp API to check if a view exists.
> ----------------------------------------------
>
>                 Key: PHOENIX-6847
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-6847
>             Project: Phoenix
>          Issue Type: Bug
>            Reporter: Rushabh Shah
>            Priority: Major
>
> Currently customer using phoenix runs the following statements to check if a 
> view exists or not.
> {noformat}
>   public static boolean checkTableViewExists(Connection connection, String 
> schema, String viewName)
>       throws SQLException {
>     DatabaseMetaData meta = connection.getMetaData();
>     ResultSet resultSet = meta.getTables(null, schema, viewName, new String[] 
> {"VIEW"});
>     return resultSet.next();
>   }
> {noformat}
> IMHO this is NOT very user friendly.
> We need to provide either of the 2 APIs
> {noformat}
> public PTable getView(String viewName, String tenantID);  OR 
> public boolean viewExists(String viewName, String tenantID);
> {noformat}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to