aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/databases.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/databases.scm')
-rw-r--r--gnu/packages/databases.scm216
1 files changed, 147 insertions, 69 deletions
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index 06158f19e7..4ed9b11647 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -214,6 +214,9 @@
(substitute* "CMakeLists.txt"
(("set\\(DUCKDB_VERSION \"[^\"]*\"")
(string-append "set(DUCKDB_VERSION \"v" #$version "-dev0\"")))))))
+ (arguments
+ `(#:configure-flags
+ (list "-DBUILD_EXTENSIONS=autocomplete;fts;icu;json;parquet;tpch;")))
(build-system cmake-build-system)
(home-page "https://duckdb.org")
(synopsis "In-process SQL OLAP database management system")
@@ -630,11 +633,12 @@ the API, and provides features such as:
;; TODO: Pack arrow-adbc/c/driver/sqlite for tests.
#:tests? #f
#:build-backend "setuptools.build_meta"))
- (propagated-inputs
- (list python-typing-extensions))
(native-inputs
(list python-cython-3
- python-pytest))
+ python-setuptools
+ python-wheel))
+ (propagated-inputs
+ (list python-typing-extensions))
(home-page "https://arrow.apache.org/adbc/")
(synopsis "Generic entrypoint for ADBC drivers in Python")
(description
@@ -668,6 +672,7 @@ they exist.")
python-strenum
python-tomlkit
python-typing-extensions))
+ (native-inputs (list python-setuptools python-wheel))
(home-page "https://github.com/RobertCraigie/prisma-client-py")
(synopsis "Fully type-safe database client")
(description
@@ -1289,18 +1294,19 @@ and high-availability (HA).")
(license license:gpl2))) ;'COPYING' says "version 2" only
;; Don't forget to update the other postgresql packages when upgrading this one.
-(define-public postgresql-15
+(define-public postgresql-16
(package
(name "postgresql")
- (version "15.7")
+ (version "16.4")
(source (origin
(method url-fetch)
(uri (string-append "https://ftp.postgresql.org/pub/source/v"
version "/postgresql-" version ".tar.bz2"))
(sha256
(base32
- "1xwq1592k1r64ki9bmkcyw39416kymabdfxbkpiqaqxbhnaf8vx4"))
- (patches (search-patches "postgresql-disable-resolve_symlinks.patch"))))
+ "0vvd73rzj0sl294v15bh8yslakqv412bxqzlkqxyjwxa8pb6c5wp"))
+ (patches (search-patches
+ "postgresql-disable-normalize_exec_path.patch"))))
(build-system gnu-build-system)
(arguments
(list
@@ -1338,8 +1344,10 @@ and high-availability (HA).")
(invoke "make" "postgres.info")
(install-file "postgres.info"
(string-append #$output "/share/info"))))))))
- (native-inputs (list docbook-xml-4.5 docbook2x libxml2 perl texinfo))
- (inputs (list readline `(,util-linux "lib") openssl zlib))
+ (native-inputs
+ (list docbook-xml-4.5 docbook2x libxml2 perl pkg-config texinfo))
+ (inputs
+ (list icu4c readline `(,util-linux "lib") openssl zlib))
(home-page "https://www.postgresql.org/")
(synopsis "Powerful object-relational database system")
(description
@@ -1351,30 +1359,49 @@ TIMESTAMP. It also supports storage of binary large objects, including
pictures, sounds, or video.")
(license (license:x11-style "file://COPYRIGHT"))))
+(define-public postgresql-15
+ (package
+ (inherit postgresql-16)
+ (name "postgresql")
+ (version "15.8")
+ (source (origin
+ (inherit (package-source postgresql-16))
+ (uri (string-append "https://ftp.postgresql.org/pub/source/v"
+ version "/postgresql-" version ".tar.bz2"))
+ (sha256
+ (base32
+ "0snbxmlygf7m4cxjpscmz3yjn4lnqsw313y9xgpv7vk9k9gm20s4"))
+ (patches (search-patches
+ "postgresql-disable-resolve_symlinks.patch"))))
+ (native-inputs (modify-inputs (package-native-inputs postgresql-16)
+ (delete "pkg-config")))
+ (inputs (modify-inputs (package-inputs postgresql-16)
+ (delete "icu4c")))))
+
(define-public postgresql-14
(package
(inherit postgresql-15)
(name "postgresql")
- (version "14.6")
+ (version "14.13")
(source (origin
(inherit (package-source postgresql-15))
(uri (string-append "https://ftp.postgresql.org/pub/source/v"
version "/postgresql-" version ".tar.bz2"))
(sha256
(base32
- "08nzkq321fzfi8ba8gck9zxxg7xvv8vz3mbl4avrmlq933y4122h"))))))
+ "0misc5yiklflz96n7wxcdzzg0lcc4ahd0flzqsg6mcjs955krajr"))))))
(define-public postgresql-13
(package
(inherit postgresql-14)
- (version "13.15")
+ (version "13.16")
(source (origin
(inherit (package-source postgresql-14))
(uri (string-append "https://ftp.postgresql.org/pub/source/v"
version "/postgresql-" version ".tar.bz2"))
(sha256
(base32
- "09f99rp5q1xp769r71if9ckb4cbm0nnx2xmy8b1bhcvd8hax9va2"))))))
+ "0rc8rpsw2lwa5af35zd8iifah02wg2rnn1i890h2h8zh55hvpjy9"))))))
(define-deprecated/public postgresql-11 #f
(package
@@ -1394,17 +1421,17 @@ pictures, sounds, or video.")
(define-deprecated/public postgresql-10 #f
(package
- (inherit postgresql-11)
+ (inherit postgresql-13)
(version "10.23")
(source (origin
- (inherit (package-source postgresql-11))
+ (inherit (package-source postgresql-13))
(uri (string-append "https://ftp.postgresql.org/pub/source/v"
version "/postgresql-" version ".tar.bz2"))
(sha256
(base32
"1sgfssjc9lnzijhn108r6z26fri655k413f1c9b8wibjhd9b594l"))))
(native-inputs
- (modify-inputs (package-native-inputs postgresql-11)
+ (modify-inputs (package-native-inputs postgresql-13)
(append opensp docbook-sgml-4.2)
(delete "docbook-xml")))))
@@ -1664,6 +1691,8 @@ CSV, DB3, iXF, SQLite, MS-SQL or MySQL to PostgreSQL.")
(sha256
(base32 "1l2cj0ps96g3bblvhdszgyjv9bi405bxrx0bqq1p8h9bmwd629z1"))))
(build-system pyproject-build-system)
+ (native-inputs
+ (list python-setuptools python-wheel))
(propagated-inputs
(list python-cryptography python-pynacl))
(arguments
@@ -2575,17 +2604,19 @@ Redis, CouchDB, etc., as well as a standard key/value store
similar to BerkeleyDB, LevelDB, etc.")
(license license:bsd-2)))
+;; NOTE: When upgrading redis, make sure that redis is still released
+;; under a Free Software license.
(define-public redis
(package
(name "redis")
- (version "7.0.12")
+ (version "7.2.6")
(source (origin
(method url-fetch)
(uri (string-append "https://download.redis.io/releases/redis-"
version".tar.gz"))
(sha256
(base32
- "1dwayif99cipf0xs26zipbnj800px31pbsxz747bzclb4xdkvn4x"))
+ "03ixkzdc43lr4q3my0yax1f1gqz6sr6hch5qdipmbd725xxdc47v"))
(modules '((guix build utils)))
(snippet
;; Delete bundled jemalloc, as the package will use the libc one
@@ -2616,15 +2647,13 @@ similar to BerkeleyDB, LevelDB, etc.")
;; "background AOF rewrite to finish", perhaps because dead
;; processes persist as zombies in the build environment.
(("unit/aofrw") "")
+ (("integration/aof([^-]|-multi-part)") "")
;; The OOM score tests try to raise the current OOM score, but
;; our build environment already sets it for all children to
;; the highest possible one (1000). We can't lower it because
;; we don't have CAP_SYS_RESOURCE.
(("unit/oom-score-adj") "")
- (("integration/aof(-multi-part)?") "")
(("integration/failover") "")
- (("integration/replication-4") "")
- (("integration/replication-psync") "")
(("integration/replication[^-]") "")))))))
(native-inputs (list pkg-config procps tcl which))
(synopsis "Key-value cache and store")
@@ -3204,6 +3233,7 @@ protocol with Cython for performance.")
(build-system pyproject-build-system)
(arguments '(#:tests? #f)) ;test suite requires docker
(propagated-inputs (list python-pymysql))
+ (native-inputs (list python-setuptools python-wheel))
(home-page "https://github.com/aio-libs/aiomysql")
(synopsis "MySQL driver for Python")
(description "@code{aiomysql} is a driver for accessing a MySQL database
@@ -3645,7 +3675,8 @@ on localhost.")
(build-system pyproject-build-system)
(native-inputs
(list python-cython ; for C extensions
- python-pytest python-mock python-pytest-xdist)) ; for tests
+ python-pytest python-mock python-pytest-xdist ; for tests
+ python-setuptools python-wheel))
(propagated-inputs
(list python-greenlet))
(arguments
@@ -3687,7 +3718,8 @@ simple and Pythonic domain language.")
(native-inputs
(list python-cython
python-pytest
- python-setuptools))
+ python-setuptools
+ python-wheel))
(propagated-inputs
(list python-greenlet
python-typing-extensions))
@@ -3810,23 +3842,37 @@ this library provides functions to facilitate such comparisons.")
(define-public python-alembic
(package
(name "python-alembic")
- (version "1.7.5")
+ (version "1.14.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "alembic" version))
(sha256
- (base32 "0lxi2g2025lz5k7k5dd5fc1lfijqi2yw6qqyjzp073z6laa8cckw"))))
- (build-system python-build-system)
+ (base32 "0jrh9q4h2jv2bafpd6isx2dvc90rpx6j7fpdvfwd0hin7fsr425h"))))
+ (build-system pyproject-build-system)
(arguments
- '(#:phases (modify-phases %standard-phases
- (replace 'check
- (lambda _
- (invoke "pytest" "-vv"))))))
+ (list
+ #:test-flags
+ #~(list "--ignore=tests/integration"
+ "-k" (string-join
+ ;; XXX: Tests require fresh python-pytz timezones, remove
+ ;; when updated.
+ (list "not test_custom_tz"
+ "test_custom_tz_lowercase"
+ "test_custom_tz_utc"
+ "test_custom_tzdata_tz")
+ " and not "))))
(native-inputs
- (list python-mock python-pytest-cov))
+ (list python-mock
+ python-pytest
+ python-setuptools
+ python-wheel))
(propagated-inputs
- (list python-dateutil python-sqlalchemy python-mako python-editor))
+ (list python-dateutil
+ python-editor
+ python-mako
+ python-sqlalchemy
+ python-typing-extensions))
(home-page "https://bitbucket.org/zzzeek/alembic")
(synopsis "Database migration tool for SQLAlchemy")
(description
@@ -3880,7 +3926,7 @@ text search extension.")
(propagated-inputs (list python-click python-click-default-group
python-dateutil python-sqlite-fts4
python-tabulate))
- (native-inputs (list python-pytest))
+ (native-inputs (list python-pytest python-setuptools python-wheel))
(home-page "https://github.com/simonw/sqlite-utils")
(synopsis
"CLI tool and Python utility functions for manipulating SQLite databases")
@@ -3917,14 +3963,11 @@ data.
(uri (pypi-uri "pickleshare" version))
(sha256
(base32 "1jmghg3c53yp1i8cm6pcrm280ayi8621rwyav9fac7awjr3kss47"))))
- (build-system python-build-system)
- (arguments
- `(#:phases (modify-phases %standard-phases
- (replace 'check
- (lambda _
- (invoke "pytest"))))))
+ (build-system pyproject-build-system)
(native-inputs
- (list python-pytest))
+ (list python-pytest
+ python-setuptools
+ python-wheel))
(home-page "https://github.com/vivainio/pickleshare")
(synopsis "Tiny key value database with concurrency support")
(description
@@ -3953,7 +3996,7 @@ PickleShare.")
"10yfbasi4mq63g0svyl1h49ylwn9znjylq78id16dzxzk9q9ipdx"))))
(build-system pyproject-build-system)
(native-inputs
- (list unzip))
+ (list unzip python-setuptools python-wheel))
(inputs (list sqlite-next)) ;SQLite 3.45.1 required.
(arguments
(list
@@ -4271,7 +4314,8 @@ files or Python scripts that define a list of migration steps.")
(list #:test-flags
#~'("tests/test__mysql.py" ;tests not needing a live db
"tests/test_MySQLdb_times.py")))
- (native-inputs (list pkg-config python-pytest))
+ (native-inputs
+ (list pkg-config python-pytest python-setuptools python-wheel))
(inputs (list mariadb-connector-c))
(home-page "https://github.com/PyMySQL/mysqlclient")
(synopsis "MySQLdb is an interface to the popular MySQL database server for Python")
@@ -4308,7 +4352,7 @@ for Python. The design goals are:
;; The fix was forwarded upstream, see:
;; https://github.com/redis/hiredis-py/pull/160.
(delete-file "tests/__init__.py"))))))
- (native-inputs (list python-pytest))
+ (native-inputs (list python-pytest python-setuptools python-wheel))
(inputs (list hiredis))
(home-page "https://github.com/redis/hiredis-py")
(synopsis "Python extension that wraps protocol parsing code in hiredis")
@@ -4319,7 +4363,7 @@ parsing code in hiredis. It primarily speeds up parsing of multi bulk replies."
(define-public python-fakeredis
(package
(name "python-fakeredis")
- (version "2.10.1")
+ (version "2.26.1")
(source (origin
(method git-fetch) ;for tests
(uri (git-reference
@@ -4328,18 +4372,36 @@ parsing code in hiredis. It primarily speeds up parsing of multi bulk replies."
(file-name (git-file-name name version))
(sha256
(base32
- "1imsi9dswvkda894sm53lfzdsna0qlrgxszczlq2sam68zn4hfz6"))))
+ "10f9qwpc9vlcd2411c398n9kwjsk399vk1pjd9dbczlhvsn9s5bq"))))
(build-system pyproject-build-system)
(arguments
- (list #:phases #~(modify-phases %standard-phases
- (add-after 'unpack 'relax-requirements
- (lambda _
- (substitute* "pyproject.toml"
- (("sortedcontainers = \"\\^2\\.4\"")
- "sortedcontainers = \"^2.1\"")))))))
+ (list
+ #:test-flags '(list "-m" "not slow")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'poetry-compatibility
+ (lambda _
+ ;; Our version of poetry does not understand "to".
+ (substitute* "pyproject.toml"
+ ((", to = \"fakeredis\" ") ""))))
+ (add-after 'unpack 'relax-requirements
+ (lambda _
+ (substitute* "pyproject.toml"
+ (("sortedcontainers = \"\\^2\\.4\"")
+ "sortedcontainers = \"^2.1\""))))
+ ;; Tests require a running Redis server.
+ (add-before 'check 'start-redis
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "redis-server" "--daemonize" "yes"
+ "--port" "6390")))))))
(native-inputs (list python-poetry-core python-pytest
- python-pytest-asyncio python-pytest-mock))
- (propagated-inputs (list python-redis python-sortedcontainers))
+ python-pytest-asyncio python-pytest-mock
+ redis))
+ (propagated-inputs
+ (list python-redis
+ python-sortedcontainers
+ python-typing-extensions))
(home-page "https://github.com/cunla/fakeredis-py")
(synopsis "Fake implementation of redis API for testing purposes")
(description
@@ -4355,7 +4417,7 @@ reasonable substitute.")
(define-public python-redis
(package
(name "python-redis")
- (version "4.5.4")
+ (version "5.2.0")
(source (origin
;; The PyPI archive lacks some test resources such as the TLS
;; certificates under docker/stunnel/keys.
@@ -4366,7 +4428,7 @@ reasonable substitute.")
(file-name (git-file-name name version))
(sha256
(base32
- "0s5pswykjcyqbx471ib3gwy29xxa5ckgch9hy476x2s4pvhkbgmr"))))
+ "0f38s704gpm8ra6vdrqhicfq7m77in60kbgcmhvmviq9qj6v3505"))))
(build-system pyproject-build-system)
(arguments
(list
@@ -4377,16 +4439,26 @@ reasonable substitute.")
;; .github/workflows/install_and_test.sh).
(string-append "not onlycluster "
"and not redismod "
- "and not ssl")
- "-k" (string-append
- ;; The autoclaim test fails with "AssertionError: assert
- ;; [b'0-0', [], []] == [b'0-0', []]".
- "not test_xautoclaim "
- ;; These tests cause the following error: "Error 111
- ;; connecting to localhost:6380. Connection refused."
- ;; (see: https://github.com/redis/redis-py/issues/2109).
- "and not test_sync "
- "and not test_psync"))
+ "and not ssl "
+ "and not graph")
+ "-k" (string-join
+ (list
+ ;; The autoclaim test fails with "AssertionError: assert
+ ;; [b'0-0', [], []] == [b'0-0', []]".
+ "not test_xautoclaim "
+ ;; These tests cause the following error: "Error 111
+ ;; connecting to localhost:6380. Connection refused."
+ ;; (see: https://github.com/redis/redis-py/issues/2109).
+ "test_sync"
+ "test_psync"
+ ;; Same with: "Error 111 connecting to
+ ;; localhost:6479. Connection refused."
+ "test_tfcall"
+ "test_tfunction_load_delete"
+ "test_tfunction_list"
+ ;; AssertionError: assert 3 == 2
+ "test_acl_list")
+ " and not "))
#:phases
#~(modify-phases %standard-phases
;; Tests require a running Redis server.
@@ -4397,9 +4469,13 @@ reasonable substitute.")
"--enable-debug-command" "yes"
"--enable-module-command" "local")))))))
(native-inputs
- (list python-pytest
- python-pytest-asyncio
+ (list python-numpy
+ python-pytest
+ python-pytest-asyncio-0.23
+ python-pytest-cov
python-pytest-timeout
+ python-setuptools
+ python-wheel
redis))
(propagated-inputs
(list python-async-timeout))
@@ -5181,7 +5257,7 @@ other traditional Python scientific computing packages.")
(arguments
(list
#:test-flags
- #~(list "-n" "auto")
+ #~(list "--numprocesses" (number->string (parallel-job-count)))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'relax-requirements
@@ -5655,13 +5731,15 @@ mechanism of @code{dogpile}.")
(list python-beautifulsoup4
python-black
python-cogapp
+ python-pip
python-pytest
python-pytest-asyncio
python-pytest-runner
python-pytest-timeout
python-pytest-xdist
python-setuptools
- python-trustme))
+ python-trustme
+ python-wheel))
(home-page "https://datasette.io/")
(synopsis "Multi-tool for exploring and publishing data")
(description "Datasette is a tool for exploring and publishing data.