Ruby: Avoid a forced CP that confused the join orderer.

This commit is contained in:
Alex Eyers-Taylor
2025-02-12 18:16:15 +00:00
parent c22b05a6f4
commit 07956c9ad6

View File

@@ -54,7 +54,15 @@ class NetHttpRequest extends Http::Client::Request::Range, DataFlow::CallNode {
override DataFlow::Node getAUrlPart() {
result = request.getArgument(0)
or
// Net::HTTP.new(...).get(...)
result = this.getAUrlPartHelper()
}
/**
* Helper predicate for `getAUrlPart`.
*
* This handles `Net::HTTP.new(...).get(...)` etc.
*/
private DataFlow::Node getAUrlPartHelper() {
exists(API::Node new |
new = API::getTopLevelMember("Net").getMember("HTTP").getInstance() and
requestNode = new.getReturn(_)