Youssef Hatem

Results 37 issues of Youssef Hatem

Part of cutting the dependency on `org.apache.commons.lang3` requires finding / implementing alternatives to: - `org.apache.commons.lang3.tuple.Pair`. - `org.apache.commons.lang3.tuple.ImmutablePair` - `org.apache.commons.lang3.tuple.MutablePair`

The implementation of post order tree visitation in `TreeLike` can be probably made more efficient in terms of memory (and probably CPU) as well. We should revisit it and rework...

planner
performance

The method `TreeLike#inPreOrder` is very inefficient in terms of memory consumption as it creates for a tree of N-nodes N-single-itemed list allocations plus few other nested concatenated iterators.

planner
performance

This is on top of #2464 and should not be merged. It adds a JMH Benchmark that compares the performance of current pre-order implementations in `TreeLike`. To run the benchmark,...

It should take care of promoting the value by employing the same logic we have in `PromoteValue`, in other words we should extract the promotion logic in `PromoteValue` and use...

planner

For example, for a `Value` like this `(A, A, A)`, pulling up `A` through that Value gives something like: `_._0` instead of enlisting all possible access paths of it, i.e....

planner

For a given partial match between a query expression and a candidate expression, the `TransformPartialMatch` task attempts to establish new partial match between the same query expression and the referencing...

planner
performance

We normally rely on field ordinals to lookup a `Field` of a `Record` or set its value in the `Record`'s corresponding dynamic message descriptor such as [here](https://github.com/FoundationDB/fdb-record-layer/blob/c3ef7c45db0eb3221eb383bd8467f05813cb5bb1/fdb-record-layer-core/src/main/java/com/apple/foundationdb/record/query/plan/cascades/values/RecordConstructorValue.java#L123): ```java @Nullable @Override...

planner

Currently the `UPDATE` plan only shows the source and where clause without depicting the set clauses, this information is necessary and can be useful sometimes when debugging.

enhancement
planner

This introduces `ReplaceValue` which performs transformations on an underlying `Value`.