I am using [InstanceQuery](http://weka.sourceforge.net/doc/weka/experiment/InstanceQuery.html) , SQL queries, to construct my [Instances](http://weka.sourceforge.net/doc.dev/weka/core/Instances.html). But my query results does not come in the same order always as it is normal in SQL. 
Beacuse of this Instances constucted from different SQL has different headers. A simple example can be seen below. I suspect my results changes because of this behavior. 

Header 1

```
@attribute duration numeric
@attribute protocol_type {tcp,udp}
@attribute service {http,domain_u}
@attribute flag {SF}

```

Header 2

```
@attribute duration numeric
@attribute protocol_type {tcp}
@attribute service {pm_dump,pop_2,pop_3}
@attribute flag {SF,S0,SH}

```

My question is : How can I give correct header information to Instance construction. 

Is something like below workflow is possible?

1. get pre-prepared header information from arff file or another place.
2. give instance construction this header information
3. call sql function and get Instances (header + data)

I am using following sql function to get instances from database.

```
public static Instances getInstanceDataFromDatabase(String pSql
                                      ,String pInstanceRelationName){
    try {
        DatabaseUtils utils = new DatabaseUtils();

        InstanceQuery query = new InstanceQuery();

        query.setUsername(username);
        query.setPassword(password);
        query.setQuery(pSql);

        Instances data = query.retrieveInstances();
        data.setRelationName(pInstanceRelationName);

        if (data.classIndex() == -1)
        {
              data.setClassIndex(data.numAttributes() - 1);
        }
        return data;
    } catch (Exception e) {
        throw new RuntimeException(e);
    }
}

```