[QGIS-Developer] Renderer/expression issue temporal/gpkg

Richard Duivenvoorde rdmailings at duif.net
Fri Jan 29 04:27:49 PST 2021


Hi Devs,

I have an issue with the (temporal) rendering of (seemingly only) gpkg.
See https://github.com/qgis/QGIS/issues/41074
For some test datasets.

I tried to debug, but get lost in the deeper core classes like featureiterator and renderer...

A gpkg with a QDatetime column seems to render the wrong 'classes', 
while if I create a virtual new attribute (to_datatime('Time')) based on the original QDateTime it will render the right one.

BUT(!) those 2 attributes seem to be exactly the same...

So: to me it looks like there is something fishy there: renderer (featureiterator) seems to return other features then the (same?) iterator for the infotool and attributetable..

The temporal controller creates expressions to do the selections.
EG: 
("Time" > make_datetime(2019,9,1,6,0,0) AND "Time" < make_datetime(2019,9,1,8,0,0)) OR "Time" IS NULL

BUT: a gkpg with 7 AND 8 will render BOTH, although the expressions rightfully return True (for 7) and False (for 8):

7 == true/1
make_datetime(2019,9,1,7,0,0) > make_datetime(2019,9,1,6,0,0) AND make_datetime(2019,9,1,7,0,0) < make_datetime(2019,9,1,8,0,0)
8 == false/0
make_datetime(2019,9,1,8,0,0) > make_datetime(2019,9,1,6,0,0) AND make_datetime(2019,9,1,8,0,0) < make_datetime(2019,9,1,8,0,0)

Anybody has a clue? Or can maybe reproduce my issue(s)?

Regards,

Richard Duivenvoorde

PS although one of my open PR's changes the logice of the expression a little, the behaviour for this is the same before and after this




More information about the QGIS-Developer mailing list