Opened 2 years ago
Closed 2 years ago
#2652 closed defect (invalid)
FIX - WCPS needs subset pushdown for binary operators
Reported by: | Bang Pham Huu | Owned by: | Bang Pham Huu |
---|---|---|---|
Priority: | major | Milestone: | 10.1 |
Component: | petascope | Version: | 10.0 |
Keywords: | Cc: | ||
Complexity: | Hard |
Description
For example there are 2 3D coverages:
- test_3d with
plev
irregular axis with coefficients:[0, 10, 50]
- test_3d_again with
plev
irregular axis with coefficients:[0, 50]
Now, with this WCPS query:
for $c in (test_3d), $d in (test_3d_again) return encode( ($c + $d) [plev(50)], "png")
This query will return rasql query:
SELECT (c + d)[2] from test_3d AS c, test_3d_again AS d
because the output coverage of the binary operator c + d
is c
.
Then, the subset plev(50)
will be applied to c
.
However, this is an error in rasql, because, d[2]
doesn't exist.
Hence, the correct way is WCPS needs to push down subset to each operand in the binary operator +
in the WCPS query tree.
So the WCPS query (for illustration purpose) should be:
for $c in (test_3d), $d in (test_3d_again) return encode( ($c[plev(50)] + $d[plev(50)]), "png")
Note:
See TracTickets
for help on using tickets.
worked already