[ WARNING: This change is experimental!   ... But that's what the main/development branch (trunk) is for, right? ]
[ WARNING: This change is experimental!
  ... But that's what the main/development branch (trunk) is for, right? ]

In case of errors with individual fucntion calls,
multiplexes use to insert NIL into the result, proceed processing,
and result the result, only issuing a warning that there were local error,
and that NIL had to be inserted instead of the proper result values.

The fact, the the multiplex itself did "succeed" in this cases (as opposed to
failing with an error), made it impossible for the SQL frontend to efficiently
check contrains using multiplexes.

I changed the multiplex implementattion as follows:
- in case of errors with individual function calls,
  multiplexes now throw in an error instead of a warning,
- and the multiplex it self also fails in such cases.

TODO:
- Should we immediately stop the multiplex processing when the first error occurs?
  For now, multiplex just gathers the errors, but finishes processing.
- In case of an error, do we need to reclaim the result BAT to avoid memory leakage?
- What about "hard-coded" multiplexes (e.g. as in modules bat_{arith,math,cast})?
  For now, they do AKAIK only NIL-checking, but no overflow checking?
  Idea: Should they have a global switch (variable) to en-/disable
        nil-checking, overflow checking, etc. (ON = "save", OFF = "fast")?

zyzyis/monetdb,zyzyis/monetdb,zyzyis/monetdb,zyzyis/monetdb,zyzyis/monetdb,zyzyis/monetdb,zyzyis/monetdb,zyzyis/monetdb,zyzyis/monetdb,zyzyis/monetdb