$querypath
Returns the query as it was executed by 4D Server (e.g., $querypath=true
)
Description
$querypath
returns the query as it was executed by 4D Server. If, for example, a part of the query passed returns no entities, the rest of the query is not executed. The query requested is optimized as you can see in this $querypath
.
For more information about query paths, refer to queryPlan and queryPath.
In the steps collection, there is an object with the following properties defining the query executed:
Property | Type | Description |
---|---|---|
description | Text | Actual query executed or "AND" when there are multiple steps |
time | Number | Number of milliseconds needed to execute the query |
recordsfounds | Number | Number of records found |
steps | Collection | An collection with an object defining the subsequent step of the query path |
Example
If you passed the following query:
GET /rest/Employee/$filter="employer.name=acme AND lastName=Jones"&$querypath=true
And no entities were found, the following query path would be returned, if you write the following:
GET /rest/$querypath
Response:
__queryPath: {
steps: [
{
description: "AND",
time: 0,
recordsfounds: 0,
steps: [
{
description: "Join on Table : Company : People.employer = Company.ID",
time: 0,
recordsfounds: 0,
steps: [
{
steps: [
{
description: "Company.name = acme",
time: 0,
recordsfounds: 0
}
]
}
]
}
]
}
]
}
If, on the other hand, the first query returns more than one entity, the second one will be executed. If we execute the following query:
GET /rest/Employee/$filter="employer.name=a* AND lastName!=smith"&$querypath=true
If at least one entity was found, the following query path would be returned, if you write the following:
GET /rest/$querypath
Respose:
"__queryPath": {
"steps": [
{
"description": "AND",
"time": 1,
"recordsfounds": 4,
"steps": [
{
"description": "Join on Table : Company : Employee.employer = Company.ID",
"time": 1,
"recordsfounds": 4,
"steps": [
{
"steps": [
{
"description": "Company.name LIKE a*",
"time": 0,
"recordsfounds": 2
}
]
}
]
},
{
"description": "Employee.lastName # smith",
"time": 0,
"recordsfounds": 4
}
]
}
]
}