Re: MonetDB: SciQL-2 - handle non-rectangular array tiles
Hoi Jennie,
Changeset: 58e31783ae0f for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=58e31783ae0f Modified Files: monetdb5/modules/mal/array.mx sql/server/rel_dump.c sql/server/rel_exp.c sql/server/rel_select.c sql/test/sciql/Tests/teleios_noa_bsm.sql Branch: SciQL-2 Log Message:
handle non-rectangular array tiles
- accept either interval tile range, or point tile ragnes, no mix of them - multiple tile ranges are appended to e_column->f, thus e_column->f list can have more than 3 items. - to distinguish a point range from an interval range: a point range only has one expr., while an interval range has three
Thanks!
array.mx: - save the values for the error message, since the lists are freed in AGGR_CLEANUP
Nice catch ;-) --- Thanks for fixing! ... and sorry for overlooking it myself ;-)
- disable the check on (max - min + 1 = size), since it only holds for stepsize = 1. maybe we should just remove this check, since we don't have step size in the tiling aggr impl. functions, do we?
IMHO, our current tiled aggregation implementation inherently assumes (and thus requires) that all dimensions of the given array have step-size == 1. Since ARRAYtiles*() does not get the step sizes of the given array as parameters, the check (max - min + 1 = size) was/is IMHO the only way to check/ensure that we are indeed working on an array where all dimensions have step-size == 1.
teleios_noa_bsm.sql: now we can get rid of the workarounds
more tests needed...
Indeed --- I'll resume me test tonight or tomorrow ... Best, Stefan -- | Stefan.Manegold@CWI.nl | DB Architectures (DA) | | www.CWI.nl/~manegold/ | Science Park 123 (L321) | | +31 (0)20 592-4212 | 1098 XG Amsterdam (NL) |
Hai Stefan,
- disable the check on (max - min + 1 = size), since it only holds for stepsize = 1. maybe we should just remove this check, since we don't have step size in the tiling aggr impl. functions, do we?
IMHO, our current tiled aggregation implementation inherently assumes (and thus requires) that all dimensions of the given array have step-size == 1. Since ARRAYtiles*() does not get the step sizes of the given array as parameters, the check (max - min + 1 = size) was/is IMHO the only way to check/ensure that we are indeed working on an array where all dimensions have step-size == 1.
Ok. I don't recall this assumption, so I was testing the code with a small array with step-size > 1, which triggers the assertion. After having disabled this check, the query actually returns correct results. Time to check this assumption, maybe it's easy to get rid of it.
teleios_noa_bsm.sql: now we can get rid of the workarounds
more tests needed...
Indeed --- I'll resume me test tonight or tomorrow …
I tested the with a tiny array to see that e.g., computing SUM of a diagonal line works correctly. I rerun the BSM queries, with the real implementation of clump_4connected_1. The queries finished without errors, but when checking the found fires, I only got a black picture... I'll do more test this afternoon. Jennie
Best, Stefan
-- | Stefan.Manegold@CWI.nl | DB Architectures (DA) | | www.CWI.nl/~manegold/ | Science Park 123 (L321) | | +31 (0)20 592-4212 | 1098 XG Amsterdam (NL) |
participants (2)
-
Stefan Manegold
-
Ying Zhang