cyb70289 commented on pull request #10364: URL: https://github.com/apache/arrow/pull/10364#issuecomment-854364569
Thanks @bkietz , it's almost done except one last catch. As the output type (precision, scale) is dependent on the inputs, I have a resolver object to calculate output type. The resolver is called with the *casted* input type, not the original type. It causes problem to division, as the output precision and scale should be calculated from original inputs. No trouble for add/subtract as the output precision/scale is the same for original and casted inputs (digit aligned). Multiply doesn't need cast. Does it make sense to pass both original input types and the casted types to the resolver [1][2]? We will have to update all existing custom resolver codes. Or there are better ways to handle this? [1] https://github.com/apache/arrow/blob/master/cpp/src/arrow/compute/function.cc#L196 [2] https://github.com/apache/arrow/blob/master/cpp/src/arrow/compute/exec.cc#L495 -- 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. For queries about this service, please contact Infrastructure at: [email protected]
