### Description

`from employees | eval x = 1 | keep x` results in 

```
Caused by: java.lang.NullPointerException: Cannot invoke "java.lang.Integer.intValue()" because the return value of "org.elasticsearch.xpack.esql.planner.Layout.getChannel(org.elasticsearch.xpack.ql.expression.NameId)" is null
        at org.elasticsearch.xpack.esql.planner.LocalExecutionPlanner.alignPageToAttributes(LocalExecutionPlanner.java:281)
        at org.elasticsearch.xpack.esql.planner.LocalExecutionPlanner.planExchangeSink(LocalExecutionPlanner.java:305)
        at org.elasticsearch.xpack.esql.planner.LocalExecutionPlanner.plan(LocalExecutionPlanner.java:199)
        at org.elasticsearch.xpack.esql.planner.LocalExecutionPlanner.plan(LocalExecutionPlanner.java:146)
        at org.elasticsearch.xpack.esql.plugin.ComputeService.runCompute(ComputeService.java:246)
        at org.elasticsearch.xpack.esql.plugin.ComputeService$DataNodeRequestHandler.lambda$messageReceived$5(ComputeService.java:415)
        at org.elasticsearch.server@8.10.0-SNAPSHOT/org.elasticsearch.action.ActionListener$2.onResponse(ActionListener.java:177)
        at org.elasticsearch.server@8.10.0-SNAPSHOT/org.elasticsearch.action.ActionListener.completeWith(ActionListener.java:305)
        at org.elasticsearch.xpack.esql.plugin.ComputeService.lambda$acquireSearchContexts$13(ComputeService.java:280)
        at org.elasticsearch.server@8.10.0-SNAPSHOT/org.elasticsearch.index.shard.IndexShard.ensureShardSearchActive(IndexShard.java:3911)
        at org.elasticsearch.xpack.esql.plugin.ComputeService.acquireSearchContexts(ComputeService.java:278)
        at org.elasticsearch.xpack.esql.plugin.ComputeService$DataNodeRequestHandler.messageReceived(ComputeService.java:413)
        at org.elasticsearch.xpack.esql.plugin.ComputeService$DataNodeRequestHandler.messageReceived(ComputeService.java:405)
        at org.elasticsearch.server@8.10.0-SNAPSHOT/org.elasticsearch.transport.RequestHandlerRegistry.processMessageReceived(RequestHandlerRegistry.java:74)
        at org.elasticsearch.server@8.10.0-SNAPSHOT/org.elasticsearch.transport.TransportService$6.doRun(TransportService.java:1023)
        at org.elasticsearch.server@8.10.0-SNAPSHOT/org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:983)
        at org.elasticsearch.server@8.10.0-SNAPSHOT/org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:26)
        at org.elasticsearch.server@8.10.0-SNAPSHOT/org.elasticsearch.common.util.concurrent.TimedRunnable.doRun(TimedRunnable.java:33)
        at org.elasticsearch.server@8.10.0-SNAPSHOT/org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:983)
        at org.elasticsearch.server@8.10.0-SNAPSHOT/org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:26)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
        at java.base/java.lang.Thread.run(Thread.java:1623)
```
x-pack/plugin/esql/src/internalClusterTest/java/org/elasticsearch/xpack/esql/action/EsqlActionIT.java
assertEquals(20L, valueValues.get(0).get(0));
        } else {
            fail("Unexpected group value: " + valueValues.get(0).get(1));
        }
    }
    
    public void testFromStatsGroupingByDate() {
        EsqlQueryResponse results = run("from test | stats avg(count) by time");
        logger.info(results);
        Assert.assertEquals(2, results.columns().size());
        Assert.assertEquals(40, results.values().size());
        
        assertEquals("avg(count)", results.columns().get(0).name());
        assertEquals("double", results.columns().get(0).type());
        assertEquals("time", results.columns().get(1).name());
        assertEquals("long", results.columns().get(1).type());
        
        List<Long> expectedValues = LongStream.range(0, 40).map(i -> epoch + i).sorted().boxed().toList();
        List<Long> actualValues = IntStream.range(0, 40).mapToLong(i -> (Long) results.values().get(i).get(1)).sorted().boxed().toList();
        assertEquals(expectedValues, actualValues);
    }
    public void testFromGroupingByNumericFieldWithNulls() {
        for (int i = 0; i < 5; i++) {
            client().prepareBulk()
                .add(new IndexRequest("test").id("no_count_old_" + i).source("data", between(1, 2), "data_d", 1d))
                .add(new IndexRequest("test").id("no_count_new_" + i).source("data", 99, "data_d", 1d))
                .add(new IndexRequest("test").id("no_data_" + i).source("count", 12, "count_d", 12d))
                .get();
            if (randomBoolean()) {
                client().admin().indices().prepareRefresh("test").get();