Results 9 issues of lokax

#4252 sql fragment ```sql SELECT month AS month, sum(anon_6.value) AS value FROM ( SELECT date_trunc('month', day) AS month, coalesce(sum(value), 0.0) AS value FROM df2 WHERE CAST(day AS DATE) >= '2022-01-01...

https://github.com/risinglightdb/risinglight/blob/c859dffc379f8ce78737d60f0e95624766cd0a2b/src/storage/secondary/block/dict_block_builder.rs#L39 If block_builder has no data, the block_builder.estimated_size() will return 0. the target size of rle builder is 0. rle_builder.should_finished() is always true. ```rust fn should_finish(&self, next_item: &Option) -> bool...

bug

Signed-off-by: lokax Implement this feature #658 for projection and aggregate. I removed projection merge rule in LogicalProjection::new(), because we will need a projection below the current projection in some case....

In the present, the optimizer doesn't realize any information abount common expression. This causes the `Expression Evaluator` to evaluate expressions repeatedly for every input tuple. **For Example:** ```sql > explain...

The previous implementation had parts of the logic that were never executed. The result is that the leaf node with the smallest key is always found, and `Next()` is called...

Force left outer join to produce NULL values for subqueries. Fix #4753

### What happens? SELECT NULL = ANY(SELECT sum(x) FROM t t2 WHERE t1.x > 2) FROM t t1; Should return NULL. SELECT EXISTS(SELECT sum(x) FROM t t2 WHERE t1.x >...

### What happens? INT8 can represent either 8 bits or 8 bytes (Although INT8 represents BIGINT in duckdb.). And UINT8 can only represent 8 bits in duckdb. I think only...