16.10.2014 14:55, Geoff Worboys wrote:
>
> I've cut the problem down to the thing that's giving me
> trouble:  I want to return a non-null value when when the
> input expression resolves to null.  In the code below I'm
> just trying to return a 0 (for the sake of the example).
>
> This executes but still gives me a null result:
>
> dsc* evlTestIt(Jrd::thread_db* tdbb, const SysFunction*,
>          Jrd::jrd_nod* args, Jrd::impure_value* impure)
> {
>      fb_assert(args->nod_count == 1);
>      jrd_req* request = tdbb->getRequest();
>
>      dsc* value = EVL_expr(tdbb, args->nod_arg[0]);
>      if (request->req_flags & req_null)
>      {
>          impure->vlu_desc.makeLong(0);
>          impure->vlu_desc.setNullable(false); // redundant??

request->req_flags &= ~req_null;

>          return &impure->vlu_desc;
>      }
>      return value;
> }


Dmitry


------------------------------------------------------------------------------
Comprehensive Server Monitoring with Site24x7.
Monitor 10 servers for $9/Month.
Get alerted through email, SMS, voice calls or mobile push notifications.
Take corrective actions from your mobile device.
http://p.sf.net/sfu/Zoho
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to