[ http://issues.apache.org/jira/browse/OFBIZ-336?page=all ]

Leon Torres updated OFBIZ-336:
------------------------------

    Attachment: complex-alias-default-value2.patch

Derby did not like the single quotations ''.  It complained that CHAR value 
(the '0') was not compatible with DOUBLE field (quantity).

Here's a patch that does not put the single quotes around defaultValue.  Now, 
the query gets rendered as COALESCE(OI.QUANTITY,0).  This works on Derby, 
postgresql, and mysql.

If the user wants to put a default value that's a string, for concatenation 
purposes, then they would have to include single quotations in the 
default-value parameter:

default-value="'stringValue'"

I think this is a good setup, the use of string default values is only 
necessary when using concatenation || operator, but that would be rare.

> Improve complex-alias to handle nulls and defaults
> --------------------------------------------------
>
>                 Key: OFBIZ-336
>                 URL: http://issues.apache.org/jira/browse/OFBIZ-336
>             Project: OFBiz (The Open for Business Project)
>          Issue Type: Improvement
>          Components: framework
>            Reporter: Leon Torres
>            Priority: Minor
>         Attachments: complex-alias-default-value.patch, 
> complex-alias-default-value2.patch
>
>
> The idea behind complex-alias is useful for certain things, but the way it 
> works now is not useful.  Suppose you build a simple addition rule.  If any 
> variable in the equation is null, the entire alias resolves to null.
> For example, suppose you create a view entity to report quantities on 
> OrderItem.  The query would be:
> select product_id, (quantity - cancel_quantity) from order_item;
> However if you run this, you'll see that where quantity or cancel_quantity 
> are null, the result is null.  A solution in postgresql is to use the 
> coalesce function to specify a default value:
> select product_id, (coalesce(quantity, 0) - coalesce(cancel_quantity, 0)) 
> from order_item;
> Now the query works.
> So the fix I think is to add another attribute default-value="something".  If 
> the default-value is present, then add the coalesce function.  Not sure 
> whether this is standard sql or not.
> I also encountered this issue for concatenation ||  operator, so I think it 
> affects most operations.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to