### Description

This is to investigate what we could do to support the data streams in SQL. The backing indices can be queried already, but to address them similarly as they're queried over QDSL one would need to construct a pattern learned out of band and not through SQL metadata discovery mechanisms.
x-pack/plugin/sql/qa/server/src/main/java/org/elasticsearch/xpack/sql/qa/rest/RestSqlTestCase.java
List<String> fields = IntStream.range(0, size).mapToObj(i -> String.format(Locale.ROOT, "text%02d", i)).toList();
        index(fields.stream().map(f -> "{\"" + f + "\": 1}").toArray(String[]::new));
        testFetchAllPages(format, "SHOW COLUMNS FROM " + indexPattern("test"), fields, pageSize, false);
    }
    /**
     * Generic paging test that ensures that
     * 1. All expected documents are fetched when scrolling through all pages
     * 2. There are at most `expectedValues.size() / pageSize + 1` pages (the last one might or might not be empty)
     * 3. Optionally: That the last page is not empty.
     */
    private void testFetchAllPages(String format, String query, List<String> expectedValues, int pageSize, boolean emptyLastPage)
        throws IOException {
        int remainingPages = expectedValues.size() / pageSize + 1;
        Tuple<String, String> response = runSqlAsText(query(query).fetchSize(pageSize), format);
        StringBuilder allResults = new StringBuilder(response.v1());
        while (response.v2() != null && remainingPages > 0) {
            response = runSqlAsText(cursor(response.v2()), format);
            allResults.append("\n").append(response.v1());
            assertThat(response.v1().split("\n").length, lessThanOrEqualTo(pageSize));
            remainingPages--;
        }
        if (emptyLastPage) {
            assertTrue("Expected empty last page but got " + response.v1(), Strings.isNullOrEmpty(response.v1()));
        } else {
            assertFalse("Expected non-empty last page but got " + response.v1(), Strings.isNullOrEmpty(response.v1()));
        }
        assertNull(response.v2());
        String results = allResults.toString();
        for (String v : expectedValues) {
            assertThat(results, containsString(v));