View Revisions: Issue #1566

Summary 0001566: Column match router support for "contains" and "not contains"
Revision 2014-02-10 21:38 by elong
Description The column match router currently support equals (=) and not equals (!=) operations for comparing columns with values or variables. Add support for new operators: contains, not contains.

User Story:
What would really help us is if the column router can support contains (and does not contain) in addition to equals an not equals? The rationale is that we intend to populate the external_data column with a delimited list of client ids and as part of routing if the current client id is in the external_data column then route the record.

We have a workaround using a subselect router (for oracle we're using a simple query like select 1 from dual where :external_data: like %:client_id:%, query may not be exact but the point is that its not joining in any physical tables) but having the option to use a column router should be much faster.

EXTERNAL_DATA contains :NODE_ID

The "contains" operation should take the EXTERNAL_DATA and split it into elements separated by commas to evaluate if the current :NODE_ID variable matches one of the elements. Example match is external data of "100,200,300" contains "100" in order to route to node "100".
Revision 2014-02-07 15:14 by elong
Description The column match router currently support equals (=) and not equals (!=) operations for comparing columns with values or variables. Add support for new operators: like, not like, in, and not in.

:COLUMN like :EXTERNAL_DATA

The "like" operation should take the :COLUMN as a string pattern that matches as a substring within the :EXTERNAL_DATA variable. Matches are "100" like "100 200 300" and "100" like "1000 2000 3000".

:COLUMN in :EXTERNAL_DATA

The "in" operation should take the :COLUMN as an element that matches one of the elements separated by a comma delimiter within the :EXTERNAL_DATA variable. Matches are "100" in "100,200,300" and "100" not in "1000,2000,3000".