fromTable = currentOfClause(correlationName);
} else if (jj_2_7(1)) {
whereClause = whereClause(whereToken);
} else {
jj_consume_token(-1);
throw new ParseException();
}
break;
default:
jj_la1[13] = jj_gen;
;
}
/* Fabricate a ResultSetNode (SelectNode) under the DeleteNode.
* For a searched delete,
* The FromList is simply the table that we are deleting from.
* (NOTE - we mark the table as the one that we are deleting from.)
* For a positioned delete,
* the FromList is a CurrentOfNode holding the cursor name.
* The select list will be null for now. We will generate it at
* bind time, in keeping with the design decision that the parser's
* output should look like the language.
*/
if (fromTable == null)
fromTable = (FromTable) nodeFactory.getNode(
C_NodeTypes.FROM_BASE_TABLE,
tableName,
correlationName,
ReuseFactory.getInteger(
FromBaseTable.DELETE),
null,
getContextManager());
/* Update the FromTable with any properties, if non-null */
if (targetProperties != null)
{
if (SanityManager.DEBUG)
{
if (((FromBaseTable) fromTable).getProperties() != null)
{
SanityManager.THROWASSERT(
"Overwriting existing properties");
}
}
((FromBaseTable) fromTable).setTableProperties(targetProperties);
}
{if (true) return getDeleteNode(fromTable, tableName, whereClause);}
break;
default:
jj_la1[14] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
}
throw new Error("Missing return statement in function");
}