1
0
Fork 0
arangodb/Documentation/Examples/RestExplainOptions.generated

279 lines
17 KiB
Plaintext

<span class="hljs-meta">shell&gt;</span><span class="bash"> curl -X POST --header <span class="hljs-string">'accept: application/json'</span> --data-binary @- --dump - http://localhost:8529/_api/explain</span> &lt;&lt;EOF
{
<span class="hljs-string">"query"</span> : <span class="hljs-string">"FOR p IN products LET a = p.id FILTER a == 4 LET name = p.name SORT p.id LIMIT 1 RETURN name"</span>,
<span class="hljs-string">"options"</span> : {
<span class="hljs-string">"maxNumberOfPlans"</span> : <span class="hljs-number">2</span>,
<span class="hljs-string">"allPlans"</span> : <span class="hljs-literal">true</span>,
<span class="hljs-string">"optimizer"</span> : {
<span class="hljs-string">"rules"</span> : [
<span class="hljs-string">"-all"</span>,
<span class="hljs-string">"+use-index-for-sort"</span>,
<span class="hljs-string">"+use-index-range"</span>
]
}
}
}
EOF
HTTP/<span class="hljs-number">1.1</span> OK
content-type: application/json; charset=utf<span class="hljs-number">-8</span>
x-content-type-options: nosniff
{
<span class="hljs-string">"plans"</span> : [
{
<span class="hljs-string">"nodes"</span> : [
{
<span class="hljs-string">"type"</span> : <span class="hljs-string">"SingletonNode"</span>,
<span class="hljs-string">"dependencies"</span> : [ ],
<span class="hljs-string">"id"</span> : <span class="hljs-number">1</span>,
<span class="hljs-string">"estimatedCost"</span> : <span class="hljs-number">1</span>,
<span class="hljs-string">"estimatedNrItems"</span> : <span class="hljs-number">1</span>
},
{
<span class="hljs-string">"type"</span> : <span class="hljs-string">"IndexNode"</span>,
<span class="hljs-string">"dependencies"</span> : [
<span class="hljs-number">1</span>
],
<span class="hljs-string">"id"</span> : <span class="hljs-number">11</span>,
<span class="hljs-string">"estimatedCost"</span> : <span class="hljs-number">11</span>,
<span class="hljs-string">"estimatedNrItems"</span> : <span class="hljs-number">10</span>,
<span class="hljs-string">"outVariable"</span> : {
<span class="hljs-string">"id"</span> : <span class="hljs-number">0</span>,
<span class="hljs-string">"name"</span> : <span class="hljs-string">"p"</span>
},
<span class="hljs-string">"projections"</span> : [ ],
<span class="hljs-string">"producesResult"</span> : <span class="hljs-literal">true</span>,
<span class="hljs-string">"database"</span> : <span class="hljs-string">"_system"</span>,
<span class="hljs-string">"collection"</span> : <span class="hljs-string">"products"</span>,
<span class="hljs-string">"satellite"</span> : <span class="hljs-literal">false</span>,
<span class="hljs-string">"needsGatherNodeSort"</span> : <span class="hljs-literal">true</span>,
<span class="hljs-string">"indexCoversProjections"</span> : <span class="hljs-literal">false</span>,
<span class="hljs-string">"indexes"</span> : [
{
<span class="hljs-string">"id"</span> : <span class="hljs-string">"70098"</span>,
<span class="hljs-string">"type"</span> : <span class="hljs-string">"skiplist"</span>,
<span class="hljs-string">"name"</span> : <span class="hljs-string">"idx_1646382074276347906"</span>,
<span class="hljs-string">"fields"</span> : [
<span class="hljs-string">"id"</span>
],
<span class="hljs-string">"selectivityEstimate"</span> : <span class="hljs-number">1</span>,
<span class="hljs-string">"unique"</span> : <span class="hljs-literal">false</span>,
<span class="hljs-string">"sparse"</span> : <span class="hljs-literal">false</span>,
<span class="hljs-string">"deduplicate"</span> : <span class="hljs-literal">true</span>
}
],
<span class="hljs-string">"condition"</span> : {
},
<span class="hljs-string">"sorted"</span> : <span class="hljs-literal">true</span>,
<span class="hljs-string">"ascending"</span> : <span class="hljs-literal">true</span>,
<span class="hljs-string">"reverse"</span> : <span class="hljs-literal">false</span>,
<span class="hljs-string">"evalFCalls"</span> : <span class="hljs-literal">true</span>,
<span class="hljs-string">"limit"</span> : <span class="hljs-number">0</span>
},
{
<span class="hljs-string">"type"</span> : <span class="hljs-string">"CalculationNode"</span>,
<span class="hljs-string">"dependencies"</span> : [
<span class="hljs-number">11</span>
],
<span class="hljs-string">"id"</span> : <span class="hljs-number">3</span>,
<span class="hljs-string">"estimatedCost"</span> : <span class="hljs-number">21</span>,
<span class="hljs-string">"estimatedNrItems"</span> : <span class="hljs-number">10</span>,
<span class="hljs-string">"expression"</span> : {
<span class="hljs-string">"type"</span> : <span class="hljs-string">"attribute access"</span>,
<span class="hljs-string">"typeID"</span> : <span class="hljs-number">35</span>,
<span class="hljs-string">"name"</span> : <span class="hljs-string">"id"</span>,
<span class="hljs-string">"subNodes"</span> : [
{
<span class="hljs-string">"type"</span> : <span class="hljs-string">"reference"</span>,
<span class="hljs-string">"typeID"</span> : <span class="hljs-number">45</span>,
<span class="hljs-string">"name"</span> : <span class="hljs-string">"p"</span>,
<span class="hljs-string">"id"</span> : <span class="hljs-number">0</span>
}
]
},
<span class="hljs-string">"outVariable"</span> : {
<span class="hljs-string">"id"</span> : <span class="hljs-number">1</span>,
<span class="hljs-string">"name"</span> : <span class="hljs-string">"a"</span>
},
<span class="hljs-string">"canThrow"</span> : <span class="hljs-literal">false</span>,
<span class="hljs-string">"expressionType"</span> : <span class="hljs-string">"attribute"</span>
},
{
<span class="hljs-string">"type"</span> : <span class="hljs-string">"CalculationNode"</span>,
<span class="hljs-string">"dependencies"</span> : [
<span class="hljs-number">3</span>
],
<span class="hljs-string">"id"</span> : <span class="hljs-number">4</span>,
<span class="hljs-string">"estimatedCost"</span> : <span class="hljs-number">31</span>,
<span class="hljs-string">"estimatedNrItems"</span> : <span class="hljs-number">10</span>,
<span class="hljs-string">"expression"</span> : {
<span class="hljs-string">"type"</span> : <span class="hljs-string">"compare =="</span>,
<span class="hljs-string">"typeID"</span> : <span class="hljs-number">25</span>,
<span class="hljs-string">"excludesNull"</span> : <span class="hljs-literal">false</span>,
<span class="hljs-string">"subNodes"</span> : [
{
<span class="hljs-string">"type"</span> : <span class="hljs-string">"reference"</span>,
<span class="hljs-string">"typeID"</span> : <span class="hljs-number">45</span>,
<span class="hljs-string">"name"</span> : <span class="hljs-string">"a"</span>,
<span class="hljs-string">"id"</span> : <span class="hljs-number">1</span>
},
{
<span class="hljs-string">"type"</span> : <span class="hljs-string">"value"</span>,
<span class="hljs-string">"typeID"</span> : <span class="hljs-number">40</span>,
<span class="hljs-string">"value"</span> : <span class="hljs-number">4</span>,
<span class="hljs-string">"vType"</span> : <span class="hljs-string">"int"</span>,
<span class="hljs-string">"vTypeID"</span> : <span class="hljs-number">2</span>
}
]
},
<span class="hljs-string">"outVariable"</span> : {
<span class="hljs-string">"id"</span> : <span class="hljs-number">4</span>,
<span class="hljs-string">"name"</span> : <span class="hljs-string">"3"</span>
},
<span class="hljs-string">"canThrow"</span> : <span class="hljs-literal">false</span>,
<span class="hljs-string">"expressionType"</span> : <span class="hljs-string">"simple"</span>
},
{
<span class="hljs-string">"type"</span> : <span class="hljs-string">"FilterNode"</span>,
<span class="hljs-string">"dependencies"</span> : [
<span class="hljs-number">4</span>
],
<span class="hljs-string">"id"</span> : <span class="hljs-number">5</span>,
<span class="hljs-string">"estimatedCost"</span> : <span class="hljs-number">41</span>,
<span class="hljs-string">"estimatedNrItems"</span> : <span class="hljs-number">10</span>,
<span class="hljs-string">"inVariable"</span> : {
<span class="hljs-string">"id"</span> : <span class="hljs-number">4</span>,
<span class="hljs-string">"name"</span> : <span class="hljs-string">"3"</span>
}
},
{
<span class="hljs-string">"type"</span> : <span class="hljs-string">"CalculationNode"</span>,
<span class="hljs-string">"dependencies"</span> : [
<span class="hljs-number">5</span>
],
<span class="hljs-string">"id"</span> : <span class="hljs-number">6</span>,
<span class="hljs-string">"estimatedCost"</span> : <span class="hljs-number">51</span>,
<span class="hljs-string">"estimatedNrItems"</span> : <span class="hljs-number">10</span>,
<span class="hljs-string">"expression"</span> : {
<span class="hljs-string">"type"</span> : <span class="hljs-string">"attribute access"</span>,
<span class="hljs-string">"typeID"</span> : <span class="hljs-number">35</span>,
<span class="hljs-string">"name"</span> : <span class="hljs-string">"name"</span>,
<span class="hljs-string">"subNodes"</span> : [
{
<span class="hljs-string">"type"</span> : <span class="hljs-string">"reference"</span>,
<span class="hljs-string">"typeID"</span> : <span class="hljs-number">45</span>,
<span class="hljs-string">"name"</span> : <span class="hljs-string">"p"</span>,
<span class="hljs-string">"id"</span> : <span class="hljs-number">0</span>
}
]
},
<span class="hljs-string">"outVariable"</span> : {
<span class="hljs-string">"id"</span> : <span class="hljs-number">2</span>,
<span class="hljs-string">"name"</span> : <span class="hljs-string">"name"</span>
},
<span class="hljs-string">"canThrow"</span> : <span class="hljs-literal">false</span>,
<span class="hljs-string">"expressionType"</span> : <span class="hljs-string">"attribute"</span>
},
{
<span class="hljs-string">"type"</span> : <span class="hljs-string">"CalculationNode"</span>,
<span class="hljs-string">"dependencies"</span> : [
<span class="hljs-number">6</span>
],
<span class="hljs-string">"id"</span> : <span class="hljs-number">7</span>,
<span class="hljs-string">"estimatedCost"</span> : <span class="hljs-number">61</span>,
<span class="hljs-string">"estimatedNrItems"</span> : <span class="hljs-number">10</span>,
<span class="hljs-string">"expression"</span> : {
<span class="hljs-string">"type"</span> : <span class="hljs-string">"attribute access"</span>,
<span class="hljs-string">"typeID"</span> : <span class="hljs-number">35</span>,
<span class="hljs-string">"name"</span> : <span class="hljs-string">"id"</span>,
<span class="hljs-string">"subNodes"</span> : [
{
<span class="hljs-string">"type"</span> : <span class="hljs-string">"reference"</span>,
<span class="hljs-string">"typeID"</span> : <span class="hljs-number">45</span>,
<span class="hljs-string">"name"</span> : <span class="hljs-string">"p"</span>,
<span class="hljs-string">"id"</span> : <span class="hljs-number">0</span>
}
]
},
<span class="hljs-string">"outVariable"</span> : {
<span class="hljs-string">"id"</span> : <span class="hljs-number">6</span>,
<span class="hljs-string">"name"</span> : <span class="hljs-string">"5"</span>
},
<span class="hljs-string">"canThrow"</span> : <span class="hljs-literal">false</span>,
<span class="hljs-string">"expressionType"</span> : <span class="hljs-string">"attribute"</span>
},
{
<span class="hljs-string">"type"</span> : <span class="hljs-string">"LimitNode"</span>,
<span class="hljs-string">"dependencies"</span> : [
<span class="hljs-number">7</span>
],
<span class="hljs-string">"id"</span> : <span class="hljs-number">9</span>,
<span class="hljs-string">"estimatedCost"</span> : <span class="hljs-number">62</span>,
<span class="hljs-string">"estimatedNrItems"</span> : <span class="hljs-number">1</span>,
<span class="hljs-string">"offset"</span> : <span class="hljs-number">0</span>,
<span class="hljs-string">"limit"</span> : <span class="hljs-number">1</span>,
<span class="hljs-string">"fullCount"</span> : <span class="hljs-literal">false</span>
},
{
<span class="hljs-string">"type"</span> : <span class="hljs-string">"ReturnNode"</span>,
<span class="hljs-string">"dependencies"</span> : [
<span class="hljs-number">9</span>
],
<span class="hljs-string">"id"</span> : <span class="hljs-number">10</span>,
<span class="hljs-string">"estimatedCost"</span> : <span class="hljs-number">63</span>,
<span class="hljs-string">"estimatedNrItems"</span> : <span class="hljs-number">1</span>,
<span class="hljs-string">"inVariable"</span> : {
<span class="hljs-string">"id"</span> : <span class="hljs-number">2</span>,
<span class="hljs-string">"name"</span> : <span class="hljs-string">"name"</span>
},
<span class="hljs-string">"count"</span> : <span class="hljs-literal">true</span>
}
],
<span class="hljs-string">"rules"</span> : [
<span class="hljs-string">"use-index-for-sort"</span>
],
<span class="hljs-string">"collections"</span> : [
{
<span class="hljs-string">"name"</span> : <span class="hljs-string">"products"</span>,
<span class="hljs-string">"type"</span> : <span class="hljs-string">"read"</span>
}
],
<span class="hljs-string">"variables"</span> : [
{
<span class="hljs-string">"id"</span> : <span class="hljs-number">6</span>,
<span class="hljs-string">"name"</span> : <span class="hljs-string">"5"</span>
},
{
<span class="hljs-string">"id"</span> : <span class="hljs-number">4</span>,
<span class="hljs-string">"name"</span> : <span class="hljs-string">"3"</span>
},
{
<span class="hljs-string">"id"</span> : <span class="hljs-number">2</span>,
<span class="hljs-string">"name"</span> : <span class="hljs-string">"name"</span>
},
{
<span class="hljs-string">"id"</span> : <span class="hljs-number">1</span>,
<span class="hljs-string">"name"</span> : <span class="hljs-string">"a"</span>
},
{
<span class="hljs-string">"id"</span> : <span class="hljs-number">0</span>,
<span class="hljs-string">"name"</span> : <span class="hljs-string">"p"</span>
}
],
<span class="hljs-string">"estimatedCost"</span> : <span class="hljs-number">63</span>,
<span class="hljs-string">"estimatedNrItems"</span> : <span class="hljs-number">1</span>,
<span class="hljs-string">"initialize"</span> : <span class="hljs-literal">true</span>,
<span class="hljs-string">"isModificationQuery"</span> : <span class="hljs-literal">false</span>
}
],
<span class="hljs-string">"warnings"</span> : [ ],
<span class="hljs-string">"stats"</span> : {
<span class="hljs-string">"rulesExecuted"</span> : <span class="hljs-number">3</span>,
<span class="hljs-string">"rulesSkipped"</span> : <span class="hljs-number">33</span>,
<span class="hljs-string">"plansCreated"</span> : <span class="hljs-number">1</span>
},
<span class="hljs-string">"error"</span> : <span class="hljs-literal">false</span>,
<span class="hljs-string">"code"</span> : <span class="hljs-number">200</span>
}