Previous Next JavaScript must be enabled to correctly display this content

## Using TableRequest API to drop index

You can use TableRequest API to drop an index of a NoSQL table.

Execution of operations specified by `TableRequest` class is asynchronous. These are potentially long-running operations. `TableResult` is returned from `TableRequest` operations and it encapsulates the state of the table. See Oracle NoSQL Java SDK API Reference for more details on the TableRequest class and its methods.

Download the full code Indexes.java from the examples here.

    /* Drop the index acct_episodes*/
    private static void dropIndex(NoSQLHandle handle) throws Exception {
       String dropIndexDDL = "DROP INDEX acct_episodes ON " + tableName;
       TableRequest treq = new TableRequest().setStatement(dropIndexDDL);
       TableResult tres = handle.tableRequest(treq);
       tres.waitForCompletion(handle, 60000, /* wait 60 sec */
                1000); /* delay ms for poll */
       System.out.println("Index acct_episodes on " + tableName + " is dropped");
    }

You can use the `borneo.TableRequest` class to drop a table index. All calls to `borneo.NoSQLHandle.table_request()` are asynchronous so it is necessary to check the result and call `borneo.TableResult.wait_for_completion()` to wait for the operation to complete. See Oracle NoSQL Python SDK API Reference for more details on `table_request` and its methods.

Download the full code Indexes.py from the examples here.

    #drop the index
    def drop_index(handle):
       statement = '''DROP INDEX acct_episodes ON stream_acct'''
       request = TableRequest().set_statement(statement)
       table_result = handle.do_table_request(request, 40000, 3000)
       table_result.wait_for_completion(handle, 40000, 3000)
       print('Index acct_episodes on the table stream_acct is dropped')

You can use the `TableRequest` class to drop a table index. Execution of operations specified by `TableRequest` is asynchronous. These are potentially long-running operations. This request is used as the input of a `Client.DoTableRequest()` operation, which returns a `TableResult` that can be used to poll until the table reaches the desired state. See Oracle NoSQL Go SDK API Reference for more details on the various methods of the `TableRequest` class.

Download the full code Indexes.go from the examples here.

    //drops an index from a table
    func dropIndex(client *nosqldb.Client, err error, tableName string)(){
       stmt := fmt.Sprintf("DROP INDEX acct_episodes ON %s",tableName)
       tableReq := &nosqldb.TableRequest{
    		Statement: stmt,
       }
       tableRes, err := client.DoTableRequest(tableReq)
       if err != nil {
          fmt.Printf("cannot initiate DROP INDEX request: %v\n", err)
          return
       }
       // The drop index request is asynchronous, wait for drop index to complete.
       _, err = tableRes.WaitForCompletion(client, 60*time.Second, time.Second)
       if err != nil {
          fmt.Printf("Error finishing DROP INDEX request: %v\n", err)
          return
       }
       fmt.Println("Dropped index acct_episodes on table ", tableName)
       return
    }

You can use the `tableDDL` method to drop a table index. This method is asynchronous and it returns a Promise of `TableResult`. The `TableResult` is a plain JavaScript object that contains the status of the DDL operation such as its TableState, name, schema, and its TableLimits. For method details, see NoSQLClient class.

Download the full JavaScript code Indexes.js from the examples here and the full TypeScript code Indexes.ts from the examples here.

    //drops an index
    async function dropIndex(handle) {
       const dropindDDL = `DROP INDEX acct_episodes ON ${TABLE_NAME}`;
       let res =  await handle.tableDDL(dropindDDL);
       console.log('Index acct_episodes is dropped from table: ' + TABLE_NAME);
    }

You can use one of the methods `ExecuteTableDDLAsync` or `ExecuteTableDDLWithCompletionAsync` to drop a table index. Both the methods return `Task<TableResult>`. `TableResult` instance contains status of DDL operation such as TableState and table schema. See Oracle NoSQL Dotnet SDK API Reference for more details on these methods.

Download the full code Indexes.cs from the examples here.

    private static async Task dropIndex(NoSQLClient client){
       var sql = $@"DROP INDEX acct_episodes on {TableName}";
       var tableResult = await client.ExecuteTableDDLAsync(sql);
       // Wait for the operation completion
       await tableResult.WaitForCompletionAsync();
       Console.WriteLine(" Index acct_episodes is dropped from table Table {0}",
                    tableResult.TableName);
    }