class PrepareProcedure extends DefinitionStatement {

    private String procedureName;
    private StatementBase prepared;

    public PrepareProcedure(ServerSession session) {
        super(session);
    }

    @Override
    public int getType() {
        return SQLStatement.PREPARE;
    }

    public void setProcedureName(String name) {
        this.procedureName = name;
    }

    public void setPrepared(StatementBase prep) {
        this.prepared = prep;
    }

    @Override
    public ArrayList<Parameter> getParameters() {
        return new ArrayList<>(0);
    }

    @Override
    public void checkParameters() {
        // no not check parameters
    }

    @Override
    public int update() {<FILL_FUNCTION_BODY>}
}

        Procedure proc = new Procedure(procedureName, prepared);
        prepared.setParameterList(parameters);
        prepared.setPrepareAlways(prepareAlways);
        prepared.prepare();
        session.addProcedure(proc);
        return 0;
    
<methods>public boolean isDDL() <variables>