Hi Riyafa,

     >> I think it's because the function has not been implemented as an
SQL 92
     >> function. I would like to know how to do this?
     You're right. Please check the code that triggers SQL-92 rewrites here
and you need to implement the SQL version for st_union:

https://github.com/apache/asterixdb/blob/master/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/util/FunctionMapUtil.java#L61


     Let us know if you have more questions.

Best,
Yingyi


On Thu, Aug 3, 2017 at 11:40 PM, Riyafa Abdul Hameed <riy...@apache.org>
wrote:

> Dear all,
>
> With Preston's help I managed to implement an aggregate function that works
> on arrays:
> st_union([st_make_point(1.0,1.0),st_make_point(1.0,2.0)]);
> But this does not work when used in an sqlpp expression:
> SELECT st_union(gbu) FROM [st_make_point(1.0,1.0),st_make_point(1.0,2.0)]
> as gbu;
>
> The error thrown is:
>
> ASX0002: Type mismatch: function scan-collection expects its 1st input
> parameter to be type array or multiset, but the actual input type is
> geometry [TypeMismatchException]
>
> I think it's because the function has not been implemented as an SQL 92
> function. I would like to know how to do this?
>
> This error is thrown when count is used in the following manner:
> SELECT array_count(gbu) FROM [1,2,3] as gbu;
>
> It is not thrown when used in the following manner:
> SELECT count(gbu) FROM [1,2,3] as gbu;
>
> When count is used in the following manner:
>
> count([1,2,3]);
>
> the following error is thrown:
>
> count is a SQL-92 aggregate function. The SQL++ core aggregate function
> array_count could potentially express the intent. [CompilationException]
>
> I would like to know how I could have st_union also as a SQL-92 function.
> My changes are in the following branch:
> https://github.com/riyafa/asterixdb/tree/geometry
>

Reply via email to