Menu

#2409 append( ds1, ds2 ) where ds1 and ds2 have different timetag types

nextrelease
open-fixed
nobody
None
5
2021-12-06
2021-11-02
No

Sadie noticed that the code which would append two datasets didn't handle the case where the two datasets are BufferDataSets but one is long (TT2000) and other other is double (cdfEpoch). The two datasets were of the same type.

The append method would properly append the two datasets using NIO, but then it assumed that timetags would be of the same type as well.

I did a quick fix of this last night but we saw this morning that this was incorrectly done.

Discussion

  • Jeremy Faden

    Jeremy Faden - 2021-11-02

    I'm putting in validate on the inputs and outputs of append.

     
  • Jeremy Faden

    Jeremy Faden - 2021-11-11

    Special handling in append is discussed here: https://sourceforge.net/p/autoplot/bugs/825/

     
  • Jeremy Faden

    Jeremy Faden - 2021-11-13
    • status: open --> open-fixed
     
  • Jeremy Faden

    Jeremy Faden - 2021-11-13

    This is fixed. Also different fill values are handled as well, by using NaNs with float and double types, and WEIGHTS with other types.

     
  • Jeremy Faden

    Jeremy Faden - 2021-11-17

    We noticed what might be a new bug, where BufferDataSet.append ignores the offset into the NIO buffer when appending. See https://github.com/autoplot/dev/blob/master/bugs/2021/20211117/demoBugConcatBuffer.jy

    Actually I believe this bug has been there for a while, at least before the production version v2021a_10.

     
  • Jeremy Faden

    Jeremy Faden - 2021-11-17

    the non-static append(ds) version appears to handle this properly.

     
  • Jeremy Faden

    Jeremy Faden - 2021-11-20

    See https://sourceforge.net/p/autoplot/bugs/2414/ where the NIO offset problem got its own ticket.

     
  • Jeremy Faden

    Jeremy Faden - 2021-12-06

    Also, when a dataset without timetags has a dataset with timetags appended to it, a runtime error occurs. This is now to be treated by dropping the second dataset's timetags. Note joinProperties should be commutative, and this is necessary anyway.

     
MongoDB Logo MongoDB