<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">Dear all,<div><br></div><div>I am pleased to announce the release of <b>DBFunctor 0.1.1.0</b></div><div><a href="https://hackage.haskell.org/package/DBFunctor-0.1.1.0">https://hackage.haskell.org/package/DBFunctor-0.1.1.0</a><br></div><div><br></div><div>DBFunctor is a Haskell library for ETL (Extract Transform and Load) data processing. It comes with an embedded type-level DSL called <i><b>Julius</b></i> 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 <b>in-memory data processing</b> in Haskell, without the need for some external database.</div><div><br></div><div>The most notable change in this new release is the full support of <b>DML (Data Manipulation Language) operations</b>. I.e., Insert (single tuple), Insert-Into-Select, Delete, Update, <b>Upsert </b>(Merge) operations have been implemented along with the corresponding Julius clauses.</div><div>Other changes includes:</div><div><ul><li>Implemented string aggregate function string_agg (listagg in Oracle) and the corresponding Julius clause<br></li><li>Implemented Julius Aggregate clauses: CountDist and CountStar (<font face="monospace, monospace">count(distinct col)</font> clause and <font face="monospace, monospace">count(*)</font>)<br></li><li>Implemented semi-join operation and corresponding Julius clause<br></li><li>Implemented anti-join operation and corresponding Julius clause<br></li><li>Added support for UTCTime values</li><li>Solved CSV orphan instances problem</li><li>Various other fixes</li></ul><div>For any issues/problems with the DBFunctor package please open an issue on github.<br></div><div><br></div><div>Happy data processing!</div></div><div><br></div><div>Thank you.</div><div>Best Regards,</div><div>Nikos</div><div><br></div><div><br></div><div><br></div></div></div></div></div></div></div></div>