The behavior you are seeing might be intentional. Note that the argument to 
JavaTypeFactoryImpl.register is SyntheticRecordType. The intent is to create a 
record type — internally, a java pojo class — that has the desired fields to 
carry around records in generated code.

Usually I think I use RelDataTypeFactoryImpl rather than JavaTypeFactoryImpl, 
and I think that does the right thing — checks field names and types before 
declaring that two types are equivalent. Not sure why you are ending up with a 
JavaTypeFactoryImpl.

Julian

> On Jan 11, 2016, at 9:26 PM, Mike Hinchey <[email protected]> wrote:
> 
> I found a problem where I have 2 tables with the same field types, but
> different field names. My table overrides Table.getRowType and uses
> typeFactory.createStructType().  The generated Record class is reused, so
> the field names are wrong for the second table.
> 
> JavaTypeFactoryImpl.register() uses only type and nullable in the key, so I
> was able to fix the problem by adding field.getName() to the key.
> 
> Should I file a bug and PR?
> 
> -Mike

Reply via email to