*/
final public ResultSetNode rowValueConstructor(ResultSetNode leftRSN) throws ParseException, StandardException {
ResultColumnList resultColumns = (ResultColumnList) nodeFactory.getNode(
C_NodeTypes.RESULT_COLUMN_LIST,
getContextManager());
ResultSetNode newRSN;
if (rowValueConstructorListFollows()) {
jj_consume_token(LEFT_PAREN);
rowValueConstructorList(resultColumns);
jj_consume_token(RIGHT_PAREN);
/* If leftRSN is null, simply return the newRSN, else generate and
* return a UNION ALL above the 2 RSNs, after verifying that the size()
* of both RSNs RCLs is the same.
*/
newRSN = (ResultSetNode) nodeFactory.getNode(
C_NodeTypes.ROW_RESULT_SET_NODE,
resultColumns,
null,
getContextManager());
if (leftRSN != null)
{
if (leftRSN.getResultColumns().size() !=
newRSN.getResultColumns().size())
{
{if (true) throw StandardException.newException(SQLState.LANG_ROW_VALUE_CONSTRUCTOR_UNMATCHED_COLUMNS);}
}
newRSN = (ResultSetNode) nodeFactory.getNode(
C_NodeTypes.UNION_NODE,
leftRSN,
newRSN,
Boolean.TRUE,
Boolean.TRUE,
null,
getContextManager());
}
{if (true) return newRSN;}
} else {
rowValueConstructorElement(resultColumns);
/* If leftRSN is null, simply return the newRSN, else generate and
* return a UNION ALL above the 2 RSNs, after verifying that the size()
* of both RSNs RCLs is the same.
*/
newRSN = (ResultSetNode) nodeFactory.getNode(
C_NodeTypes.ROW_RESULT_SET_NODE,
resultColumns,
null,
getContextManager());
if (leftRSN != null)
{
if (leftRSN.getResultColumns().size() !=
newRSN.getResultColumns().size())
{
{if (true) throw StandardException.newException(SQLState.LANG_ROW_VALUE_CONSTRUCTOR_UNMATCHED_COLUMNS);}
}
newRSN = (ResultSetNode) nodeFactory.getNode(