public DynamicReference getDynamic(ColumnIdent ident, boolean forWrite) {
boolean parentIsIgnored = false;
if (!ident.isColumn()) {
// see if parent is strict object
ColumnIdent parentIdent = ident.getParent();
ReferenceInfo parentInfo = null;
while (parentIdent != null) {
parentInfo = getReferenceInfo(parentIdent);
if (parentInfo != null) {
break;
}
parentIdent = parentIdent.getParent();
}
if (parentInfo != null) {
switch (parentInfo.columnPolicy()) {
case STRICT:
throw new ColumnUnknownException(ident().name(), ident.fqn());
case IGNORED:
parentIsIgnored = true;
break;