[
https://issues.apache.org/jira/browse/PHOENIX-6847?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17648750#comment-17648750
]
Jacob Isaac commented on PHOENIX-6847:
--------------------------------------
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)