### Description

As discussed in https://github.com/elastic/elasticsearch/issues/98995, queries will not have an implicit order - as such the CSV spec framework would have to account for this.
As some tests will want to check the order while others might not, it's best to have a flag or marker when the out of order occurs and use a different assertion method.
x-pack/plugin/esql/qa/testFixtures/src/main/java/org/elasticsearch/xpack/esql/CsvTestUtils.java
}
                    mvValue.append("," + entry);
                } else {
                    mvCompressedEntries.add(entry);
                }
            }
            pos = 1 + (isLastElement ? csvLine.length() : commaPos);
        }
        return mvCompressedEntries.toArray(String[]::new);
    }
    public record ExpectedResults(List<String> columnNames, List<Type> columnTypes, List<List<Object>> values) {}
    public static ExpectedResults loadCsvSpecValues(String csv) {
        List<String> columnNames;
        List<Type> columnTypes;
        try (CsvListReader listReader = new CsvListReader(new StringReader(csv), CSV_SPEC_PREFERENCES)) {
            String[] header = listReader.getHeader(true);
            columnNames = new ArrayList<>(header.length);
            columnTypes = new ArrayList<>(header.length);
            for (String c : header) {
                String[] nameWithType = Strings.split(c, ":");
                if (nameWithType == null || nameWithType.length != 2) {
                    throw new IllegalArgumentException("Invalid CSV header " + c);
                }
                String typeName = nameWithType[1].trim();
                if (typeName.length() == 0) {
                    throw new IllegalArgumentException("A type is always expected in the csv file; found " + nameWithType);
                }
                String name = nameWithType[0].trim();
                columnNames.add(name);
                Type type = Type.asType(typeName);