Using the various get history functions (looking at the Tag History binding at the moment), if query mode is set to "AsStored", I would expect it to only return values when a tag's value has changed and has been stored in the history data tables. However, when multiple tags are selected to retrieve history for, if any tag has stored a value at a specific time, the function returns values for all other tags, regardless of if they recorded values at that time or not. I've tested this with memory tags, adding history by changing values for them at different times.
I think I would expect the tags that haven't changed to be set to
None, particularly if the "Prevent Interpolation" has been set.
I'm trying to use these functions for reporting purposes.
It looks like returning a "Tall" format works as expected in the queryTagHistory function:
paths = ['[default]_TESTING/History/Int 01a', '[default]_TESTING/History/Int 02b']ds = system.tag.queryTagHistory(paths, returnSize=-1, returnFormat="Tall")