Opened 12 years ago
Closed 9 years ago
#209 closed enhancement (fixed)
Range constructor in rasql
Reported by: | Dimitar Misev | Owned by: | Bidesh Thapaliya |
---|---|---|---|
Priority: | critical | Milestone: | 9.1 |
Component: | qlparser | Version: | 8.3 |
Keywords: | Cc: | Peter Baumann, Alex Dumitru, Vlad Merticariu | |
Complexity: | Very Hard |
Description (last modified by )
rasql is missing dedicated language feature for dynamically constructing multi-channel MDDs. A range constructor expression in WCPS, e.g.
for c in (COV) return { red: c.red; green: c.green; blue: c.blue }
is translated to the below in rasql:
select c.red * {1c,0c,0c} + c.green * {0c,1c,0c} + c.blue * {0c,0c,1c} from COV as c
which is not too intuitive and potentially slower than a dedicated solution like
select { c.red, c.green, c.blue } from COV as c
The only problem with the above is that there is a clash, as the same construct would be used to also represent struct constants like {1c,0c,0c,..}. Parsing shouldn't be a problem because in one case we have a list of MDD expressions while in the other it's a list of numbers, but that the same construct leads to different results (MDD vs. constant) based on the context may be confusing?
Change History (8)
comment:1 by , 12 years ago
Description: | modified (diff) |
---|
comment:2 by , 12 years ago
Milestone: | → Future |
---|
comment:3 by , 10 years ago
Complexity: | → Very Hard |
---|---|
Owner: | set to |
Status: | new → assigned |
comment:4 by , 10 years ago
Owner: | changed from | to
---|
comment:5 by , 10 years ago
comment:6 by , 10 years ago
Besides mdds as arguments, the range constructor should allow also scalars, which internally are expanded to mdds (equivalent to the first mdd in spatial domain.
E.g.
select { rgb.red, rgb.blue, 5c } from rgb
5c indicates that the third band of the result should be set to all 5.
comment:7 by , 9 years ago
Cc: | added |
---|---|
Milestone: | Future → 9.1 |
Priority: | major → critical |
The range constructor seems to have a serious memory leak, especially with the SWITCH statement.
comment:8 by , 9 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
patch submitted.