feat(minato): support subquery, fix koishijs/koishi#595 #41
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This pr is rebased to first-class json type.
ref: koishijs/koishi#595
Features
Selection<S>.evaluate<T>(callback: Callback<S, T>): Expr<T>
convert the selection into subquery using ther aggregation callback in type of
Expr<T>
, therefore it can be used in any place aExpr<T>
can fill.Eg.
Selection<S>.evaluate<K extends Keys<S>>(field: K): Expr<S[K][]>
Pick the specific field of the selection and aggregate all rows into array
Eg.
Selection<S>.evaluate(): Expr<S[]>
shortcut for
Selection.evaluate(row => $.array($.object(row)))
Check tests for more usage
Changes
eval()
to make all pipeline processed at server sideTasks