The Fake Ledger Database
FaqueLDB is a testing-oriented in-memory database that aims to be a drop-in replacement for Amazon Quantum Ledger Database (QLDB). To this end, it supports PartiQL queries and serializes data using the Amazon Ion format.
FaqueLDB currently supports:
- Transactions
- Full journal with verifiable hashes
- Commit or abort transactions
- Committed views (
_ql_committed_*)
SELECTQueries:- Everything supported by the PartiQL reference implementation, including conditionals, joins, and navigating nested data structures
- The
BYclause to retrieve document IDs - The system catalog (
information_schema)
- Functions:
- Aggregations (
COUNT,MAX, etc.) - Casts (
CAST,TO_STRING, etc.) - Null handling (
COALESCE, etc.) - Date/time (
UTCNOW, etc.) - String utilities (
TRIM,UPPER, etc.)
- Aggregations (
- DDL:
CREATE TABLEwithout tagsDROP TABLECREATE INDEXis implemented, but it doesn't affect query performance
- DML:
INSERTfor single and multiple values
These features of QLDB are not currently supported, but are on the roadmap:
- DDL:
DROP INDEXdoes not support theWITHclause that is required by QLDBUNDROP TABLEis not supported by the PartiQL reference parser yet
- DML:
- Functions:
- Multiple ledgers
These features of QLDB are not supported and are low priority:
- The control plane and all its features, including ledger management, exports, streams, and tags
docker run --rm -p 8000:8000 cimbul/faqueldb
$ ./gradlew runUsing the QLDB Shell:
$ qldb -s http://localhost:8000 -l test
qldbshell > create table foo
qldbshell > insert into foo << {'x': 1}, {'x': 2} >>
qldbshell > select * from foo$ ./gradlew test