# Golden test output of ABTPlanGeneration/LowerCollationNode

==== VARIATION: Lower collation node with single field ====
-- INPUT:
Filter []
|   BinaryOp [FillEmpty]
|   |   Const [false]
|   BinaryOp [Eq]
|   |   Const [23]
|   FunctionCall [getField]
|   |   Const ["a"]
|   Variable [proj0]
Collation [{sortA: Ascending}]
Evaluation [{proj1}]
|   FunctionCall [getField]
|   |   Const ["c"]
|   Variable [scan0]
Evaluation [{proj0}]
|   FunctionCall [getField]
|   |   Const ["b"]
|   Variable [scan0]
Evaluation [{sortA}]
|   FunctionCall [getField]
|   |   Const ["a"]
|   Variable [scan0]
PhysicalScan [{'<root>': scan0}, collName]

-- OUTPUT:
[5] filter {(((getField(s3, "a") <=> 23) == 0ll) ?: false)} 
[0] sort [s2] [asc] [s3, s4] 
[2] project [s2 = getField(s1, "a"), s3 = getField(s1, "b"), s4 = getField(s1, "c")] 
[1] scan s1 none none none none none none none lowPriority [] @"<collUUID>" true false 

==== VARIATION: Lower collation node with two fields ====
-- INPUT:
Filter []
|   BinaryOp [FillEmpty]
|   |   Const [false]
|   BinaryOp [Eq]
|   |   Const [35]
|   FunctionCall [getField]
|   |   Const ["a"]
|   Variable [proj0]
Collation [{sortA: Ascending, sortB: Descending}]
Evaluation [{proj0}]
|   FunctionCall [getField]
|   |   Const ["c"]
|   Variable [scan0]
Evaluation [{sortB}]
|   FunctionCall [getField]
|   |   Const ["b"]
|   Variable [scan0]
Evaluation [{sortA}]
|   FunctionCall [getField]
|   |   Const ["a"]
|   Variable [scan0]
PhysicalScan [{'<root>': scan0}, collName]

-- OUTPUT:
[5] filter {(((getField(s4, "a") <=> 35) == 0ll) ?: false)} 
[0] sort [s2, s3] [asc, desc] [s4] 
[2] project [s2 = getField(s1, "a"), s3 = getField(s1, "b"), s4 = getField(s1, "c")] 
[1] scan s1 none none none none none none none lowPriority [] @"<collUUID>" true false 
