class AlterTableDropColumnPlan implements Plan {

    private final AnalyzedAlterTableDropColumn alterTable;

    public AlterTableDropColumnPlan(AnalyzedAlterTableDropColumn alterTable) {
        this.alterTable = alterTable;
    }

    @Override
    public StatementType type() {
        return StatementType.DDL;
    }

    @Override
    public void executeOrFail(DependencyCarrier dependencies,
                              PlannerContext plannerContext,
                              RowConsumer consumer,
                              Row params,
                              SubQueryResults subQueryResults) throws Exception {<FILL_FUNCTION_BODY>}
}

        var dropColumnRequest = new DropColumnRequest(alterTable.table().ident(), alterTable.columns());
        dependencies.alterTableOperation().executeAlterTableDropColumn(dropColumnRequest)
            .whenComplete(new OneRowActionListener<>(consumer, rCount -> new Row1(rCount == null ? -1 : rCount)));
    
<no_super_class>