Content-Length: 304646 | pFad | http://github.com/github/codeql/pull/20088/commits/12732525b55ed31fbde44e3d42ab2c0ad6ff7459

79 Java: Improve several join-orders by aschackmull · Pull Request #20088 · github/codeql · GitHub
Skip to content

Java: Improve several join-orders #20088

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Jul 18, 2025
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
Java: Allow 2-column join on delta to improve join-order.
  • Loading branch information
aschackmull committed Jul 18, 2025
commit 12732525b55ed31fbde44e3d42ab2c0ad6ff7459
18 changes: 13 additions & 5 deletions java/ql/lib/semmle/code/java/Generics.qll
Original file line number Diff line number Diff line change
Expand Up @@ -521,7 +521,13 @@ private predicate unificationTargets(RefType t1, Type t2) {
t2 = a2.getComponentType()
)
or
exists(ParameterizedType pt1, ParameterizedType pt2, int pos |
unificationTargetsParameterized(_, _, t1, t2)
}

private predicate unificationTargetsParameterized(
ParameterizedType pt1, ParameterizedType pt2, RefType t1, RefType t2
) {
exists(int pos |
unificationTargets(pt1, pt2) and
t1 = pt1.getTypeArgument(pos) and
t2 = pt2.getTypeArgument(pos)
Expand Down Expand Up @@ -565,10 +571,12 @@ private predicate hasParameterSubstitution(
GenericType g1, ParameterizedType pt1, GenericType g2, ParameterizedType pt2, TypeVariable v,
RefType subst
) {
unificationTargets(pt1, pt2) and
exists(int pos | hasSubstitution(pt1.getTypeArgument(pos), pt2.getTypeArgument(pos), v, subst)) and
g1 = pt1.getGenericType() and
g2 = pt2.getGenericType()
exists(RefType t1, RefType t2 |
unificationTargetsParameterized(pt1, pt2, t1, t2) and
hasSubstitution(t1, t2, v, subst) and
g1 = pt1.getGenericType() and
g2 = pt2.getGenericType()
)
}

/**
Expand Down








ApplySandwichStrip

pFad - (p)hone/(F)rame/(a)nonymizer/(d)eclutterfier!      Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

Fetched URL: http://github.com/github/codeql/pull/20088/commits/12732525b55ed31fbde44e3d42ab2c0ad6ff7459

Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy