The ES|QL `COUNT_DISTINCT` function fails with an `illegal agg type: text` error when it's run on a `text` field. It's fine with `keyword` fields. Compare to for example `COUNT`, which runs fine on text fields:

```
PUT test/_doc/1
{
  "foo": "bar"
}

# This fails with illegal agg type: text:
POST /_query
{
  "query": """
    FROM test
    | STATS count = COUNT_DISTINCT(foo)
  """
}

# This works:
POST /_query
{
  "query": """
    FROM test
    | STATS count = COUNT_DISTINCT(foo.keyword)
  """
}

# COUNT is fine with text fields:
POST /_query
{
  "query": """
    FROM test
    | STATS count = COUNT(foo)
  """
}
```

Full error message:

```
{
  "error": {
    "root_cause": [
      {
        "type": "esql_illegal_argument_exception",
        "reason": "illegal agg type: text"
      }
    ],
    "type": "esql_illegal_argument_exception",
    "reason": "illegal agg type: text"
  },
  "status": 500
}
```
x-pack/plugin/esql/src/internalClusterTest/java/org/elasticsearch/xpack/esql/action/EsqlActionIT.java
try (EsqlQueryResponse results = run("show info")) {
            assertThat(
                results.columns(),
                equalTo(List.of(new ColumnInfo("version", "keyword"), new ColumnInfo("date", "keyword"), new ColumnInfo("hash", "keyword")))
            );
            assertThat(getValuesList(results).size(), equalTo(1));
            assertThat(getValuesList(results).get(0).get(0), equalTo(Build.current().version()));
            assertThat(getValuesList(results).get(0).get(1), equalTo(Build.current().date()));
            assertThat(getValuesList(results).get(0).get(2), equalTo(Build.current().hash()));
        }
    }
    public void testShowFunctions() {
        try (EsqlQueryResponse results = run("show functions")) {
            assertThat(
                results.columns(),
                equalTo(
                    List.of(
                        new ColumnInfo("name", "keyword"),
                        new ColumnInfo("synopsis", "keyword"),
                        new ColumnInfo("argNames", "keyword"),
                        new ColumnInfo("argTypes", "keyword"),
                        new ColumnInfo("argDescriptions", "keyword"),
                        new ColumnInfo("returnType", "keyword"),
                        new ColumnInfo("description", "keyword"),
                        new ColumnInfo("optionalArgs", "boolean"),
                        new ColumnInfo("variadic", "boolean")
                    )
                )
            );
            assertThat(getValuesList(results).size(), equalTo(new EsqlFunctionRegistry().listFunctions().size()));