Subject: [bug#68552] [PATCH v2] gnu: Add duckdb.

From: Greg Hogan <[email-masked]>
Date: Tue, 30 Jan 2024 17:08:49 +0000

Per the review, v2 updates the synopsis and description and moves the
patch to databases.scm.

* gnu/packages/databases.scm (duckdb): New variable.

Change-Id: Ic689dbd4bb91a2c806f846464e2af95be50cd069
---
 gnu/packages/databases.scm | 35 ++++++++++++++++++++++++++++++++++-
 1 file changed, 34 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index b56767d311..20766aeb55 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -46,7 +46,7 @@
 ;;; Copyright © 2020 Vinicius Monego <[email-masked]>
 ;;; Copyright © 2020 Vincent Legoll <[email-masked]>
 ;;; Copyright © 2021 Sharlatan Hellseher <[email-masked]>
-;;; Copyright © 2021 Greg Hogan <[email-masked]>
+;;; Copyright © 2021, 2024 Greg Hogan <[email-masked]>
 ;;; Copyright © 2021 David Larsson <[email-masked]>
 ;;; Copyright © 2021 Pjotr Prins <[email-masked]>
 ;;; Copyright © 2021 Bonface Munyoki Kilyungi <[email-masked]>
@@ -5329,3 +5329,36 @@ (define-public datasette
 It helps people take data of any shape or size and publish that as an
 interactive, explorable website and accompanying API.")
     (license license:asl2.0)))
+
+(define-public duckdb
+  (package
+    (name "duckdb")
+    (version "0.9.2")
+    (source
+      (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/duckdb/duckdb")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0dbsxyiz7c8sxflbfj87qv0b2s69zk802vsk5h00ra8w8fcbqlj0"))
+       (modules '((guix build utils)))
+       (snippet
+        #~(begin
+            ;; There is no git checkout from which to read the version tag.
+            (substitute* "CMakeLists.txt"
+              (("set\\(DUCKDB_VERSION \"[^\"]*\"")
+               (string-append "set(DUCKDB_VERSION \"v" #$version "-dev0\"")))))))
+    (build-system cmake-build-system)
+    (synopsis "In-process SQL OLAP database management system")
+    (description "CLI and C/C++ source libraries for DuckDB, a relational
+(table-oriented) @acronym{DBMS, Database Management System} that supports
+@acronym{SQL, Structured Query Language}, contains a columnar-vectorized query
+execution engine, and provides transactional @acronym{ACID, Atomicity
+Consistency Isolation and Durability} guarantees via bulk-optimized
+@acronym{MVCC, Multi-Version Concurrency Control}.  Data can be stored in
+persistent, single-file databases with support for secondary indexes.")
+    (home-page "https://duckdb.org")
+    (license license:expat)))

base-commit: c2935acbfc7388f0f3eb3f783c8e54b8b05a2983
-- 
2.43.0