executor: new expression framework
Currently, if we need to implement binary op on a new type, we need to write match Datum::Int64(x) to almost all arithmetic ops, which might take a lot effort.
We should introduce a generic-based expression framework where we only need to implement such ops once and use them in every type.
This might also block https://github.com/singularity-data/risinglight/issues/227 where TPC-H uses BIGINT (i64).
... also an open discussion on how to implement the expression framework https://github.com/risinglightdb/risinglight/discussions/381
... also an open discussion on how to implement the expression framework #381
Is it about adapting works from https://github.com/skyzh/type-exercise-in-rust?