Dear all,

I am pleased to announce the release of DBFunctor 0.1.1.0

DBFunctor is a Haskell library for ETL (Extract Transform and Load) data processing. It comes with an embedded type-level DSL called Julius that enables full SQL functionality over tabular data (e.g., CSV files) but also the ability to write a full ETL data processing flow. Currently, DBFunctor can be used for in-memory data processing in Haskell, without the need for some external database.

The most notable change in this new release is the full support of DML (Data Manipulation Language) operations. I.e., Insert (single tuple), Insert-Into-Select, Delete, Update, Upsert (Merge) operations have been implemented along with the corresponding Julius clauses.
Other changes includes:
  • Implemented string aggregate function string_agg (listagg in Oracle) and the corresponding Julius clause
  • Implemented Julius Aggregate clauses: CountDist and CountStar (count(distinct col) clause and count(*))
  • Implemented semi-join operation and corresponding Julius clause
  • Implemented anti-join operation and corresponding Julius clause
  • Added support for UTCTime values
  • Solved CSV orphan instances problem
  • Various other fixes
For any issues/problems with the DBFunctor package please open an issue on github.

Happy data processing!

Thank you.
Best Regards,
Nikos