Conversation
|
(sorry for pinging the three of you, but I feel only partly convinced that this is the correct fix. Given that this has been fixed in #2524 I asked for a review from all participating parties of this PR.) |
ianna
left a comment
There was a problem hiding this comment.
@pfackeldey - Thanks! I agree with your arguments. Also, if it fixes coffea, we shoud get it out asap. Thanks!
…ng_with_placeholders
|
The obvious consequence of this change is that operations that expect I don't think the performance for non-dask cases will be hugely affected, which is nice; we're already creating the index buffer that is being used, so it's not exactly more memory. It does mean that Jim will have thoughts; we have tweaked these defaults for other node types before. |
|
The application of @agoose77, I don't think that there's any code that expects the output of This is motivated by correctness, not performance, right? Getting these |
jpivarski
left a comment
There was a problem hiding this comment.
Oh, the above was a review. I expressed a conditional, but I'm going to press "approve" here.
This PR is purely motivated by correctness. (I don't have a good feeling what implications this would have for performance.) |
|
As this PR touches a critical part of awkward's internals, I run in addition (locally) the test suites of
coffea needs #3383 and #3384 to go in, and then a little tweak in one of coffea's test to adopt to the new This PR is not responsible for the failing test in coffea, so I think we can go ahead and merge this one. |
…ng_with_placeholders
(Finally) fixes: scikit-hep/coffea#1231. This issue has causing me multiple headaches.
This PR is a follow-up of #2524 for
IndexedOptionArrays. The problem here is that aRecordArraymay be wrapped in aIndexedOptionArrayafter aak.with_field/__setitem__operation. This has been fixed forIndexedArraysin #2524, but not for option types.By setting
allow_lazy=Truein the_carryfunction we don't apply a slice to each content of aRecordArray, which causes errors forPlaceholderArrays. Instead this wraps them in anIndexedArrayand thus follows the fix provided in #2524 by "pushing" theIndexedArraydown into each field of theRecordArrayin the next recursion during broadcasting.Adding the same "pushing" fix to
IndexedOptionArraysled to multiple issues, which is why I gave up on it. If you have an idea how to implement this, I can give it another try. I'm not 100% sure if my/this solution is what we want.(PS: I think, setting
allow_lazy=Truehere should also benefit in the scope of the currentVirtualArrayimplementation (#3364) as it delays materialization of slicingRecordArrays. The same is likely true forIndexedArrays?)