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

Rushabh Shah commented on PHOENIX-6847:
---------------------------------------

Thank you [~gjacoby]  for chiming in. I didn't even realized that we are query 
SYSCAT table every time we call DatabaseMetaData#getTables method.

My reason for having a well defined API was to:
 # The current API is NOT user friendly. In this case the customer forgot to 
close resultSet object which will create leak overtime.

> 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