
Initial Release
Automated SQL Testing for InterSystems IRIS Using Differential Oracles
sqlancer-iris is an extension of the SQLancer project that enables automated detection of logical bugs in InterSystems IRIS SQL engine.
It generates random SQL queries and uses multiple testing oracles to verify whether IRIS returns correct and consistent results — without requiring predefined expected outputs.
This tool aims to help IRIS developers, DBAs, integrators, and contributors identify silent correctness bugs, optimizer issues, and corner cases in SQL behavior.
InterSystems IRIS powers mission-critical systems in healthcare, finance, logistics, and government.
A single silent SQL correctness bug may lead to:
SQLancer-IRIS automatically generates queries that explore edge cases and verifies correctness using proven differential testing techniques.
The approach has uncovered hundreds of bugs in engines like MySQL, PostgreSQL, SQLite, DuckDB, and CockroachDB — now the same power is available for IRIS.
You will need:
Clone the repo:
git clone https://github.com/caretdev/sqlancer-iris.git
cd sqlancer-iris
Build:
mvn package -DskipTests
Or run directly:
java -jar target/sqlancer-*.jar --username _system --password SYS iris --oracle where
Example minimal run:
java -jar target/sqlancer-*.jar \
--username _system \
--password SYS \
--host localhost \
--port 1972 \
iris \
--oracle WHERE
Or using connection url
java -jar target/sqlancer-*.jar \
iris \
--connection-url 'IRIS://_SYSTEM:SYS@localhost:1972/USER'
--oracle WHERE
To run with both WHERE and NOREC oracles:
--oracle WHERE --oracle NOREC
SQLancer outputs:
Recommended workflow:
PRs, issue reports, and discussions are encouraged.