CONNX FTL™ automatically simplifies WHERE clause expressions used in SQL queries by eliminating elements deemed unnecessary to producing query results or by producing a more efficient expression that creates identical results. For example, for an SQL statement such as the following:
SELECT * FROM customers_dataflex
WHERE (((customers_dataflex.CUSTOMERCITY)='Seattle')
AND ((customers_dataflex.CUSTOMERSTATE)='WA'))
OR (((customers_dataflex.CUSTOMERCITY)="Bellevue")
AND ((customers_dataflex.CUSTOMERSTATE)="WA"))
CONNX FTL is able to produce this simplified SQL statement:
SELECT * FROM Customers_dataflex t1
WHERE ( t1.CUSTOMERSTATE ) = 'WA'
AND
( ( t1.CUSTOMERCITY ) = 'Bellevue'
OR
( t1.CUSTOMERCITY ) = 'Seattle' )
To prevent CONNX FTL from performing such optimizations, queries can be altered by including a SQL extended function tag that tells CONNX FTL not to optimize the query, as in the following example:
SELECT * FROM customers_dataflex
WHERE (((customers_dataflex.CUSTOMERCITY)='Seattle') AND ((customers_dataflex.CUSTOMERSTATE)='WA')) OR (((customers_dataflex.CUSTOMERCITY)="Bellevue") AND ((customers_dataflex.CUSTOMERSTATE)="WA")) {nosqloptimize}
The {nosqloptimize} tag, added at the end of the SQL statement, forces the query to process exactly as written.
CONNX FTL takes advantage of a technology called Sequential Interactive Synthesis (SIS), developed by the University of California at Berkeley. (See http://www-cad.eecs.berkeley.edu/~polis/ for a look at POLIS, A Framework for Hardware-Software Co-Design of Embedded Systems, which includes SIS.)