[ https://issues.apache.org/jira/browse/SPARK-36525?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17428676#comment-17428676 ]
dch nguyen commented on SPARK-36525: ------------------------------------ [~huaxingao], Should we do these functions for supportsIndex in JDBC for the other dialects like Oracle, Postgres, etc.? > DS V2 Index Support > ------------------- > > Key: SPARK-36525 > URL: https://issues.apache.org/jira/browse/SPARK-36525 > Project: Spark > Issue Type: Improvement > Components: SQL > Affects Versions: 3.3.0 > Reporter: Huaxin Gao > Priority: Major > > Many data sources support index to improvement query performance. In order to > take advantage of the index support in data source, the following APIs will > be added for working with indexes: > {code:java} > /** > * Creates an index. > * > * @param indexName the name of the index to be created > * @param indexType the IndexType of the index to be created > * @param table the table on which index to be created > * @param columns the columns on which index to be created > * @param properties the properties of the index to be created > * @throws IndexAlreadyExistsException If the index already exists > (optional) > * @throws UnsupportedOperationException If create index is not a supported > operation > */ > void createIndex(String indexName, > String indexType, > Identifier table, > FieldReference[] columns, > Map<String, String> properties) > throws IndexAlreadyExistsException, UnsupportedOperationException; > /** > * Soft deletes the index with the given name. > * Deleted index can be restored by calling restoreIndex. > * > * @param indexName the name of the index to be deleted > * @return true if the index is deleted > * @throws NoSuchIndexException If the index does not exist (optional) > * @throws UnsupportedOperationException If delete index is not a supported > operation > */ > default boolean deleteIndex(String indexName) > throws NoSuchIndexException, UnsupportedOperationException > /** > * Checks whether an index exists. > * > * @param indexName the name of the index > * @return true if the index exists, false otherwise > */ > boolean indexExists(String indexName); > /** > * Lists all the indexes in a table. > * > * @param table the table to be checked on for indexes > * @throws NoSuchTableException > */ > Index[] listIndexes(Identifier table) throws NoSuchTableException; > /** > * Hard deletes the index with the given name. > * The Index can't be restored once dropped. > * > * @param indexName the name of the index to be dropped. > * @return true if the index is dropped > * @throws NoSuchIndexException If the index does not exist (optional) > * @throws UnsupportedOperationException If drop index is not a supported > operation > */ > boolean dropIndex(String indexName) throws NoSuchIndexException, > UnsupportedOperationException; > /** > * Restores the index with the given name. > * Deleted index can be restored by calling restoreIndex, but dropped index > can't be restored. > * > * @param indexName the name of the index to be restored > * @return true if the index is restored > * @throws NoSuchIndexException If the index does not exist (optional) > * @throws UnsupportedOperationException > */ > default boolean restoreIndex(String indexName) > throws NoSuchIndexException, UnsupportedOperationException > /** > * Refreshes index using the latest data. This causes the index to be > rebuilt. > * > * @param indexName the name of the index to be rebuilt > * @return true if the index is rebuilt > * @throws NoSuchIndexException If the index does not exist (optional) > * @throws UnsupportedOperationException > */ > default boolean refreshIndex(String indexName) > throws NoSuchIndexException, UnsupportedOperationException > /** > * Alter Index using the new property. This causes the index to be rebuilt. > * > * @param indexName the name of the index to be altered > * @return true if the index is altered > * @throws NoSuchIndexException If the index does not exist (optional) > * @throws UnsupportedOperationException > */ > default boolean alterIndex(String indexName, Properties properties) > throws NoSuchIndexException, UnsupportedOperationException > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005) --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org For additional commands, e-mail: issues-h...@spark.apache.org