rowType can always be derived from the program.
It does not make sense to have it as additional argument.
Yes, but make sure that the creator of the calc can set the output field names that they want. Meaningful field names make it a lot easier to understand plans and to debug.
That is important.
As far as I can see:
1) Column names can be defined when creating a program
2) Calc.copy does not include rowType parameter
So I guess it is rather safe to drop rowType from Calc constructor.
Fixed in https://git-wip-us.apache.org/repos/asf?p=incubator-calcite.git;a=commitdiff;h=076ac11a8b8eddb3200f199051414421db7fbdad
Closing now that 1.0.0-incubating has been released.