class OlapPropertyKeyClearJob extends IndexLabelRemoveJob {

    @Override
    public String type() {
        return CLEAR_OLAP;
    }

    @Override
    public Object execute() {
        Id olap = this.schemaId();

        // Clear olap data table
        this.params().graphTransaction().clearOlapPk(olap);

        // Clear corresponding index data
        clearIndexLabel(this.params(), olap);
        return null;
    }

    protected static void clearIndexLabel(HugeGraphParams graph, Id id) {<FILL_FUNCTION_BODY>}

    protected static Id findOlapIndexLabel(HugeGraphParams graph, Id olap) {
        SchemaTransaction schemaTx = graph.schemaTransaction();
        for (IndexLabel indexLabel : schemaTx.getIndexLabels()) {
            if (indexLabel.indexFields().contains(olap)) {
                return indexLabel.id();
            }
        }
        return null;
    }
}

        Id olapIndexLabel = findOlapIndexLabel(graph, id);
        if (olapIndexLabel == null) {
            return;
        }
        GraphTransaction graphTx = graph.graphTransaction();
        SchemaTransaction schemaTx = graph.schemaTransaction();
        IndexLabel indexLabel = schemaTx.getIndexLabel(olapIndexLabel);
        // If the index label does not exist, return directly
        if (indexLabel == null) {
            return;
        }
        LockUtil.Locks locks = new LockUtil.Locks(graph.name());
        try {
            locks.lockWrites(LockUtil.INDEX_LABEL_DELETE, olapIndexLabel);
            // Set index label to "rebuilding" status
            schemaTx.updateSchemaStatus(indexLabel, SchemaStatus.REBUILDING);
            try {
                // Remove index data
                graphTx.removeIndex(indexLabel);
                /*
                 * Should commit changes to backend store before release
                 * delete lock
                 */
                graph.graph().tx().commit();
                schemaTx.updateSchemaStatus(indexLabel, SchemaStatus.CREATED);
            } catch (Throwable e) {
                schemaTx.updateSchemaStatus(indexLabel, SchemaStatus.INVALID);
                throw e;
            }
        } finally {
            locks.unlock();
        }
    
<methods>public non-sealed void <init>() ,public java.lang.Object execute() ,public java.lang.String type() <variables>