Make all storage parameters optional in execution layer
In the context of the SQL Database project, we have recently merged evaluate and evaluate_stateless as per #1132. The distinction between evaluate and evaluate_stateless in the execution layer now depends on whether the storage parameter is present or not.
However, aside from evaluate, all other code requires the storage parameter mandatorily. This design is currently limiting because it prevents stateless evaluation for queries that don't need storage. For instance, when creating a subquery using values such as VALUES (1), (2), the query doesn't utilize storage, and thus, should support stateless evaluation. With the current structure, it's impossible as the function always demands storage.
To address this issue, I propose we change all functions in the execution layer that require storage as a parameter. We should make the storage parameter optional (Option). This change will increase flexibility and accommodate for stateless evaluation where necessary.
I am interested by this issue