twuebi opened a new pull request, #1052: URL: https://github.com/apache/arrow-go/pull/1052
Casts are dispatched on the target type, and the cast function registered for extension targets only accepted NULL inputs. Casting an extension array to a different extension type therefore failed with "function 'cast_extension' has no kernel matching input types" even when the cast between the two storage types is well defined, while the reverse direction (extension input, concrete target) has always been handled by the generic `CastFromExtension` unwrap kernel. Register a generic extension -> extension kernel that unwraps the input array, casts its storage to the target's storage type honoring the caller's cast options, and rewraps the result as the target extension type. Re-typing between extension types that share a storage type is zero-copy since the inner storage cast is then a no-op. Also correct the `GetCommonCastKernels` doc comment, which claimed to return kernels for casting from extension types; it only ever returned the cast-from-null kernel. -- 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]
