### 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("double", results.columns().get(0).type());
        assertEquals("mi", results.columns().get(1).name());
        assertEquals("long", results.columns().get(1).type());
        assertEquals("ma", results.columns().get(2).name());
        assertEquals("long", results.columns().get(2).type());
        assertEquals("s", results.columns().get(3).name());
        assertEquals("long", results.columns().get(3).type());
        assertEquals("c", results.columns().get(4).name());
        assertEquals("long", results.columns().get(4).type());
        assertEquals("color", results.columns().get(5).name());
        assertEquals("keyword", results.columns().get(5).type());
        record Group(double avg, long mi, long ma, long s, long c, String color) {}
        List<Group> expectedGroups = List.of(
            new Group(42, 42, 42, 420, 10, "blue"),
            new Group(44, 44, 44, 440, 10, "green"),
            new Group(43, 40, 46, 860, 20, "red")
        );
        
        List<Group> actualGroups = results.values()
            .stream()
            .map(l -> new Group((Double) l.get(0), (Long) l.get(1), (Long) l.get(2), (Long) l.get(3), (Long) l.get(4), (String) l.get(5)))
            .sorted(comparing(c -> c.color))
            .toList();
        assertThat(actualGroups, equalTo(expectedGroups));
    }
    public void testFromSortWithTieBreakerLimit() {
        EsqlQueryResponse results = run("from test | sort data, count desc, time | limit 5 | keep data, count, time");
        logger.info(results);
        assertThat(
            results.values(),