### Description

Two indices:

**test1**
```
{
    "settings": {
        "routing_path": "event.dataset",
        "index": {
            "mode": "time_series"
        }
    },
    "mappings": {
        "properties": {
            "@timestamp": {
                "type": "date"
            },
            "bytes_counter": {
                "type": "long",
                "time_series_metric": "counter"
            },
            "event": {
                "properties": {
                    "dataset": {
                        "type": "keyword",
                        "time_series_dimension": true
                    }
                }
            }
        }
    }
}
```

with data

```
{ "index": { } }
{ "bytes":123,"@timestamp":123456789, "event.dataset":"x" }
```

**test2**
```
{
    "mappings": {
      "properties": {
        "bytes_counter": {
          "type": "long"
        }
      }
    }
}
```

with no data.

Running `from test* | limit 1` results in 

```
{
    "error": {
        "root_cause": [
            {
                "type": "illegal_argument_exception",
                "reason": "Field type [counter] is not supported"
            }
        ],
        "type": "illegal_argument_exception",
        "reason": "Field type [counter] is not supported"
    },
    "status": 400
}
```

Running `from test* | limit 0` results in

```
{
    "columns": [
        {
            "name": "@timestamp",
            "type": "date"
        },
        {
            "name": "bytes",
            "type": "long"
        },
        {
            "name": "bytes_counter",
            "type": "long"
        },
        {
            "name": "event.dataset",
            "type": "keyword"
        }
    ],
    "values": []
}
```

**Notice above `bytes_counter` as `long`**. Running `from test1 | limit 0` results in

```
{
    "columns": [
        {
            "name": "@timestamp",
            "type": "date"
        },
        {
            "name": "bytes",
            "type": "long"
        },
        {
            "name": "bytes_counter",
            "type": "unsupported"
        },
        {
            "name": "event.dataset",
            "type": "keyword"
        }
    ],
    "values": []
}
```
**Notice now the `bytes_counter` is unsupported**.
In a nutshell, `bytes_counter` is mapped as `long` in both indices, but the additional meta information about test1 variant is that this field is a time series `counter` field which is unsupported. When loading values, the source operator complains that the field is unsupported.
x-pack/plugin/sql/qa/server/src/main/java/org/elasticsearch/xpack/sql/qa/rest/RestSqlTestCase.java
.collect(Collectors.joining(","));
        index("{" + doc + "}");
        String mode = randomMode();
        Map<String, Object> resp = toMap(runSql(query("SHOW COLUMNS FROM " + indexPattern("test")).fetchSize(1).mode(mode)), mode);
        
        assertThat(resp.get("cursor").toString().length(), lessThan(5000));
    }
    public void testFetchAllPagesSearchHitCursorTxt() throws IOException {
        testFetchAllPagesSearchHitCursor("text/plain");
    }
    public void testFetchAllPagesSearchHitCursorCsv() throws IOException {
        testFetchAllPagesSearchHitCursor("text/csv");
    }
    public void testFetchAllPagesSearchHitCursorTsv() throws IOException {
        testFetchAllPagesSearchHitCursor("text/tab-separated-values");
    }
    public void testFetchAllPagesSearchHitCursor(String format) throws IOException {
        int size = randomIntBetween(4, 20);
        int pageSize = randomIntBetween(1, size + 1);
        List<String> texts = IntStream.range(0, size).mapToObj(i -> String.format(Locale.ROOT, "text%02d", i)).toList();
        index(texts.stream().map(t -> "{\"field\": \"" + t + "\"}").toArray(String[]::new));
        testFetchAllPages(format, "SELECT field FROM " + indexPattern("test") + " ORDER BY field", texts, pageSize, size % pageSize == 0);
    }
    /**
     * Special case of `testFetchAllPagesSearchHitCursorTxt` covering https:github.com/elastic/elasticsearch/issues/83788.
     */
    public void testFetchAllPagesSearchHitCursorWithNonFullLastPageTxt() throws IOException {
        int size = randomIntBetween(4, 20);
        int pageSize = size / 2 + 1;
        List<String> texts = IntStream.range(0, size).mapToObj(i -> String.format(Locale.ROOT, "text%02d", i)).toList();