in zetasql-toolkit-core/src/main/java/com/google/zetasql/toolkit/Coercer.java [512:529]
public boolean structCoercesTo(
StructType fromType, Type toType, boolean isLiteral, boolean isParameter) {
if (!toType.isStruct() || toType.asStruct().getFieldCount() != fromType.getFieldCount()) {
return false;
}
StructType toTypeAsStruct = toType.asStruct();
for (int i = 0; i < fromType.getFieldCount(); i++) {
Type fromTypeFieldType = fromType.getField(i).getType();
Type toTypeFieldType = toTypeAsStruct.getField(i).getType();
if (!coercesTo(fromTypeFieldType, toTypeFieldType, isLiteral, isParameter)) {
return false;
}
}
return true;
}