Stack overflow with circular virtual field reference
Steps to reproduce
Assume the following table definition as xml loaded into the MetadataContainer of a QueryBuilder:
<expression>(select * from EMPLOYEES) VIRTUAL</expression>
<field name="RECURSION1"><expression>'one ' + RECURSION2</expression></field>
<field name="RECURSION2"><expression>'two ' + RECURSION1</expression></field>
Now assume the following query text:
Select RECURSION1 From VIRTUAL
Now use a PlainTextSQLBuilder with ExpandVirtualObjects set to true and get the value of the PlainTextSQLBuilder.SQL property.
A StackOverflowException is thrown, presumably because the circular reference is not detected.
Am exception of a special type (i.e. CircularReferenceException) that identifies at least one member of the circular reference.
Generally we embrace recursive virtual field resolving and would like to keep using it. We are aware that it does not make sense to have circular references, but no-one is perfect and meaningful error messages are most helpful. :)