ARROW-4102: [C++] Return common IdentityCast when casting to equal type#3265
ARROW-4102: [C++] Return common IdentityCast when casting to equal type#3265wesm wants to merge 2 commits intoapache:masterfrom
Conversation
…ty casts work now Change-Id: If96fb15fd2947cb69bc22ef3579628eaba48709b
Change-Id: Ic723453c9f7f0558c23aa7efe191c456965fc1e0
Codecov Report
@@ Coverage Diff @@
## master #3265 +/- ##
========================================
+ Coverage 88.5% 89.7% +1.2%
========================================
Files 540 482 -58
Lines 72917 68928 -3989
========================================
- Hits 64535 61834 -2701
+ Misses 8279 7094 -1185
+ Partials 103 0 -103
Continue to review full report at Codecov.
|
praveenbingo
left a comment
There was a problem hiding this comment.
just for my understanding..so we now have two kernels? one for gandiva and one within arrow compute?
what is the tenet for the later - are these common util functions that are performed on arrow data and might not be expressions?
|
@praveenbingo these have been here for quite a while -- since the arrival of the Gandiva codebase there has been no discussion yet of how to handle individual eager kernel invocation as well as fused / compiled expressions. I am also not sure we want to introduce LLVM as a requirement into all applications. To require LLVM to be able to cast from int8 to int64 seems like a lot to ask. We should try to avoid duplicating pre-compiled kernel implementations between Gandiva/JIT-compilation and other parts of the project. Just to prepare yourselves -- over the next couple of years, there's very likely to be significant expansion of function kernels and an in-memory / multi-core query engine with the objective of using them in data science applications. This will eventually include predicate pushdown, projections, filters, aggregations, joins, and various kinds of time series operations, among other things. |
I also added some code to make it easier to write cast tests in JSON.
As one issue with the JSON parser -- we have a number of tests in cast-test.cc that check that values that are in null positions are ignored. We might augment the parser to be able to pass both values and validity bitmap as separate JSON strings