### 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
Request request = new Request("PUT", "/test" + i);
            boolean indexWithDocVals = i < okShards;
            request.setJsonEntity(String.format(Locale.ROOT, mappingTemplate, indexWithDocVals, indexWithDocVals));
            assertOK(provisioningClient().performRequest(request));
            indexWithIndexName("test" + i, "{\"bool\": " + randomBoolean() + "}");
        }
        Request request = new Request("POST", SQL_QUERY_REST_ENDPOINT);
        request.setOptions(RequestOptions.DEFAULT.toBuilder().setWarningsHandler(WarningsHandler.PERMISSIVE));
        RequestObjectBuilder builder = query("SELECT * FROM " + indexPattern("\\\"test*\\\"") + " WHERE bool=" + randomBoolean());
        
        request.setEntity(new StringEntity(builder.toString(), ContentType.APPLICATION_JSON));
        ResponseException exception = expectThrows(ResponseException.class, () -> client().performRequest(request));
        assertTrue(exception.getMessage().contains(reason));
        
        request.setEntity(new StringEntity(builder.allowPartialSearchResults(true).toString(), ContentType.APPLICATION_JSON));
        Response response = client().performRequest(request);
        assertOK(response);
        int failedShards = 0;
        boolean hasSupressMessage = false;
        for (Header header : response.getHeaders()) {
            if (header.getName().toLowerCase(Locale.ROOT).equals("warning")) {
                String headerVal = header.getValue();
                if (headerVal.contains(warnMessage)) {
                    failedShards++;
                } else if (headerVal.contains(extraBadShards + suppressMessage)) {
                    hasSupressMessage = true;
                }
            }
        }
        assertEquals(maxWarningHeaders - 1, failedShards);