andygrove commented on PR #3254: URL: https://github.com/apache/arrow-datafusion/pull/3254#issuecomment-1239437232
> > > > After the refactor of the type coercion, do we need to forbid to creation of physical expr directly? > > > > > > > > > I would personally prefer allow creating PhysicalExprs but not providing automatic coercion (leaving it up to the user to use the proper types) > > > > > > A+B will get the common data type `C` in the logical phase, but it will also affected in the physical phase. C+C will convert the D data type, but I can't find this changes after this #3222 merged. I want to find out why > > I think I find a bug > > https://github.com/apache/arrow-datafusion/blob/c359018baa8bbb0a227e83df948c903cde4d701f/datafusion/expr/src/binary_rule.rs#L293 > for the type coercion in arithmetic op. > > @andygrove @alamb > > If we move the type coercion to the logical phase, the type coercion will apply the binary op twice. For the arithmetic operation, the decimal128(10,0) + decimal128(10,0) will get decimal128(11,0). If the rule was applied to the op twice, the result type should be decimal(12,0); Thanks @liukun4515. I have filed https://github.com/apache/arrow-datafusion/issues/3388 to track this. I will look at this next. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
