[
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)