git: cfb415911a47 - main - databases/{,py-}duckdb: update 1.3.2 → 1.4.4

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Wed, 28 Jan 2026 00:54:12 UTC
The branch main has been updated by yuri:

URL: https://cgit.FreeBSD.org/ports/commit/?id=cfb415911a47ccea4a128111db6fc3c82337a78f

commit cfb415911a47ccea4a128111db6fc3c82337a78f
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2026-01-28 00:53:13 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2026-01-28 00:54:10 +0000

    databases/{,py-}duckdb: update 1.3.2 → 1.4.4
---
 databases/duckdb/Makefile                      | 39 ++++++++++-------
 databases/duckdb/distinfo                      | 44 ++++++++++---------
 databases/duckdb/pkg-plist                     | 58 +++++++++++++++++++++++++-
 databases/py-duckdb/Makefile                   | 19 +++++----
 databases/py-duckdb/distinfo                   |  6 +--
 databases/py-duckdb/files/patch-pyproject.toml | 29 +++++++++++++
 6 files changed, 145 insertions(+), 50 deletions(-)

diff --git a/databases/duckdb/Makefile b/databases/duckdb/Makefile
index 75297faae174..f7decc8ccc13 100644
--- a/databases/duckdb/Makefile
+++ b/databases/duckdb/Makefile
@@ -1,6 +1,6 @@
 PORTNAME=	duckdb
 DISTVERSIONPREFIX=	v
-DISTVERSION=	1.3.2
+DISTVERSION=	1.4.4
 CATEGORIES=	databases
 
 MAINTAINER=	yuri@FreeBSD.org
@@ -11,19 +11,20 @@ WWW=		https://duckdb.org/ \
 LICENSE=	MIT
 LICENSE_FILE=	${WRKSRC}/LICENSE
 
+LIB_DEPENDS=	libcurl.so:ftp/curl
+
 USES=		cmake:testing compiler:c++11-lang ssl
 USE_GITHUB=	yes
 GH_TUPLE=	\
-		duckdb:duckdb-delta:6d626173e9efa6615c25eb08d979d1372100d5db:delta/extension/delta \
-		duckdb:duckdb-encodings:dc3c206e237b517abcdd95ebe40d02dcd0f71084:encodings/extension/encodings \
-		duckdb:duckdb-excel:cf00672f2d16685d9aefcca48c6a04d8c37d7015:excel/extension/excel \
-		duckdb:duckdb-fts:3aa6a180b9c101d78070f5f7214c27552bb091c8:fts/extension/fts \
-		duckdb:duckdb-httpfs:af7bcaf40c775016838fef4823666bd18b89b36b:httpfs/extension/httpfs \
-		duckdb:duckdb-inet:eb2455703ca0665e69b9fd20fd1d8816c547cb49:inet/extension/inet \
-		duckdb:duckdb-spatial:d1ffa8c21fe1f90064956a119491e6d6d993192a:spatial/extension/spatial \
-		duckdb:duckdb-sqlite:ed38d770e0bbf1d5a6660ec1887cc5abef65be15:sqlite/extension/sqlite_scanner \
-		duckdb:duckdb-sqlsmith:3b1ad2bd7234c1143b4a819517873f4b465168d2:sqlsmith/extension/sqlsmith \
-		duckdb:duckdb-vss:ccfa7c9c1f1f540fa7f433a93d32bed772aa44f4:vss/extension/vss
+		duckdb:duckdb-encodings:b5a547ec74fad87698ed3142033d7b9cf86e0b2f:encodings/extension/encodings \
+		duckdb:duckdb-excel:9421a2d75bd7544336caa73e5f9e6063cc7f6992:excel/extension/excel \
+		duckdb:duckdb-fts:39376623630a968154bef4e6930d12ad0b59d7fb:fts/extension/fts \
+		duckdb:duckdb-httpfs:13f8a814d41a978c3f19eb1dc76069489652ea6f:httpfs/extension/httpfs \
+		duckdb:duckdb-inet:fe7f60bb60245197680fb07ecd1629a1dc3d91c8:inet/extension/inet \
+		duckdb:duckdb-spatial:f129b24b4ddd4d98cfc18f88be5a344a79040e7b:spatial/extension/spatial \
+		duckdb:duckdb-sqlite:0c93d610af1e1f66292559fcf0f01a93597a98b6:sqlite/extension/sqlite_scanner \
+		duckdb:duckdb-sqlsmith:e6e6750ceb91e1869b2c736abb70d818bac73e9a:sqlsmith/extension/sqlsmith \
+		duckdb:duckdb-vss:9b25336989efdca9598ae90364ce13cc976f2f31:vss/extension/vss
 # the list of out-of-tree extensions is here: .github/config/out_of_tree_extensions.cmake
 
 CXXFLAGS+=	-I${WRKSRC}/extension/inet/src/include 
@@ -41,8 +42,12 @@ BINARY_ALIAS=	git=false
 OPTIONS_DEFINE=			TPCE
 OPTIONS_DEFAULT=		TPCE
 OPTIONS_GROUP=			EXTENSIONS
-OPTIONS_GROUP_EXTENSIONS=	AUTOCOMPLETE FTS HTTPFS ICU INET JSON PARQUET SQLSMITH TPCDS TPCH \
-				SQLITE_SCANNER VSS
+OPTIONS_GROUP_EXTENSIONS=	AUTOCOMPLETE DELTA ICU JSON PARQUET TPCDS TPCH # in-tree extensions (in extension/)
+OPTIONS_GROUP_EXTENSIONS+=	${GH_TUPLE:C/.*extension\///:tu} # out-of-tree extensions (from GH_TUPLE)
+
+DELTA_BROKEN=	Fetches from git during build
+SPATIAL_BROKEN=	Build requires unofficial-sqlite3 dependency
+EXCEL_BROKEN=	https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292757
 
 EXTENSIONS_DESC=		Extensions:
 
@@ -61,7 +66,10 @@ CMAKE_ARGS+=	-DBUILD_EXTENSIONS="${DUCKDB_EXTENSIONS:tW:S/ //g:S/^;//}" \
 		-DDUCKDB_PATCH_VERSION=${PORTVERSION:E}
 CMAKE_ARGS+=	-DSKIP_EXTENSIONS=jemalloc # temporary? see https://github.com/duckdb/duckdb/issues/14363#issuecomment-2412095766
 
+
 SQLITE_SCANNER_CXXFLAGS=	-I${WRKSRC}/extension/sqlite_scanner/src/include # workaround for the header not being found
+ENCODINGS_CXXFLAGS=		-I${WRKSRC}/extension/encodings/src/include # workaround for the header not being found
+HTTPFS_CXXFLAGS=		-I${WRKSRC}/extension/httpfs/src/include # workaround for the header not being found
 
 TPCE_DESC=			Enable building of the TPC-E tool
 TPCE_CMAKE_BOOL=		BUILD_TPCE
@@ -71,9 +79,12 @@ VSS_CXXFLAGS=			-I${WRKSRC}/extension/vss/src/include # workaround for the heade
 post-extract: # remove the jemalloc extension directory just in case
 	@${RM} -r ${WRKSRC}/extension/jemalloc
 
+post-patch: # remove cmake files of out-of-tree extensions to build them like in-tree extensions (avoid fetching from git)
+	@${RM} ${WRKSRC}/.github/config/extensions/*.cmake
+
 post-test: # run tests
 	@cd ${TEST_WRKSRC} && test/unittest
 
-# tests as of 1.3.2: All tests passed (50 skipped tests, 385129 assertions in 3789 test cases)
+# tests as of 1.4.4: All tests passed (28 skipped tests, 365953 assertions in 4014 test cases)
 
 .include <bsd.port.mk>
diff --git a/databases/duckdb/distinfo b/databases/duckdb/distinfo
index 98ab00dbd30c..cd68450a760e 100644
--- a/databases/duckdb/distinfo
+++ b/databases/duckdb/distinfo
@@ -1,23 +1,21 @@
-TIMESTAMP = 1752129567
-SHA256 (duckdb-duckdb-v1.3.2_GH0.tar.gz) = a10b388e516f6d9cc5d571fa55f14c936b73a2ca17400a76aae6c3f1cc2e20cb
-SIZE (duckdb-duckdb-v1.3.2_GH0.tar.gz) = 93466214
-SHA256 (duckdb-duckdb-delta-6d626173e9efa6615c25eb08d979d1372100d5db_GH0.tar.gz) = cecd01c77fa2aa10a1a80d5965284818f9287d09a5a12d5bb80224744c623e1b
-SIZE (duckdb-duckdb-delta-6d626173e9efa6615c25eb08d979d1372100d5db_GH0.tar.gz) = 99023
-SHA256 (duckdb-duckdb-encodings-dc3c206e237b517abcdd95ebe40d02dcd0f71084_GH0.tar.gz) = ec8b401ba8c1c4c95775f9cd6983c75431973d09851d6e9a1ab9f9bff756604b
-SIZE (duckdb-duckdb-encodings-dc3c206e237b517abcdd95ebe40d02dcd0f71084_GH0.tar.gz) = 53712400
-SHA256 (duckdb-duckdb-excel-cf00672f2d16685d9aefcca48c6a04d8c37d7015_GH0.tar.gz) = 3d51543852999b8dfc878c78809fb7839c03eb4d968c4c3d92ad561ef115784d
-SIZE (duckdb-duckdb-excel-cf00672f2d16685d9aefcca48c6a04d8c37d7015_GH0.tar.gz) = 231836
-SHA256 (duckdb-duckdb-fts-3aa6a180b9c101d78070f5f7214c27552bb091c8_GH0.tar.gz) = 3cc83386a0b9e367b743cc6d4c5dbea233439077cae2a92c1ff126e40abb2912
-SIZE (duckdb-duckdb-fts-3aa6a180b9c101d78070f5f7214c27552bb091c8_GH0.tar.gz) = 16360
-SHA256 (duckdb-duckdb-httpfs-af7bcaf40c775016838fef4823666bd18b89b36b_GH0.tar.gz) = e0021f932e714029cdcac3e5ec590e56cd414e2d61ccd7ceb3afecb039ea3024
-SIZE (duckdb-duckdb-httpfs-af7bcaf40c775016838fef4823666bd18b89b36b_GH0.tar.gz) = 49615
-SHA256 (duckdb-duckdb-inet-eb2455703ca0665e69b9fd20fd1d8816c547cb49_GH0.tar.gz) = 4876ef06f8686360a14fa90ae72484208e56d084d298a674684504ae4469dadc
-SIZE (duckdb-duckdb-inet-eb2455703ca0665e69b9fd20fd1d8816c547cb49_GH0.tar.gz) = 63919
-SHA256 (duckdb-duckdb-spatial-d1ffa8c21fe1f90064956a119491e6d6d993192a_GH0.tar.gz) = f0d2273394cf5499898183fecc009c1b186d47ac02d5ed5d9ff7b7a2a79bbe6e
-SIZE (duckdb-duckdb-spatial-d1ffa8c21fe1f90064956a119491e6d6d993192a_GH0.tar.gz) = 44416790
-SHA256 (duckdb-duckdb-sqlite-ed38d770e0bbf1d5a6660ec1887cc5abef65be15_GH0.tar.gz) = c5152ea839e6b330fbdbf3bb2516958514a9a5cd605b0d07e31aee395796a461
-SIZE (duckdb-duckdb-sqlite-ed38d770e0bbf1d5a6660ec1887cc5abef65be15_GH0.tar.gz) = 4663242
-SHA256 (duckdb-duckdb-sqlsmith-3b1ad2bd7234c1143b4a819517873f4b465168d2_GH0.tar.gz) = 82c60f59d1a9006dabf34c63a508f5a83879086e374326d24b92537c8e6ec0d5
-SIZE (duckdb-duckdb-sqlsmith-3b1ad2bd7234c1143b4a819517873f4b465168d2_GH0.tar.gz) = 48824
-SHA256 (duckdb-duckdb-vss-ccfa7c9c1f1f540fa7f433a93d32bed772aa44f4_GH0.tar.gz) = e5514f82fee187f55a261b1864e5ce0c77291d2c7bc2a475733d4c66ee7cc084
-SIZE (duckdb-duckdb-vss-ccfa7c9c1f1f540fa7f433a93d32bed772aa44f4_GH0.tar.gz) = 160302
+TIMESTAMP = 1769491985
+SHA256 (duckdb-duckdb-v1.4.4_GH0.tar.gz) = 43645e15419c6539bae6915ba397de6569e4a7ca0d502be95d653a78fdb0bece
+SIZE (duckdb-duckdb-v1.4.4_GH0.tar.gz) = 98344585
+SHA256 (duckdb-duckdb-encodings-b5a547ec74fad87698ed3142033d7b9cf86e0b2f_GH0.tar.gz) = cc331c6336c3ec95f3ed97040c89407dc7c2f68f7a02a3e679606dfe97dcf66e
+SIZE (duckdb-duckdb-encodings-b5a547ec74fad87698ed3142033d7b9cf86e0b2f_GH0.tar.gz) = 53706151
+SHA256 (duckdb-duckdb-excel-9421a2d75bd7544336caa73e5f9e6063cc7f6992_GH0.tar.gz) = d5eb5299bf32ec171445918b43b6fb5d77c52233de4be7cc4e92ebae63ead096
+SIZE (duckdb-duckdb-excel-9421a2d75bd7544336caa73e5f9e6063cc7f6992_GH0.tar.gz) = 237698
+SHA256 (duckdb-duckdb-fts-39376623630a968154bef4e6930d12ad0b59d7fb_GH0.tar.gz) = b29888d124c424e0c4b502a46809f2c40c4575df6c20b0903a5e848fe527df44
+SIZE (duckdb-duckdb-fts-39376623630a968154bef4e6930d12ad0b59d7fb_GH0.tar.gz) = 16315
+SHA256 (duckdb-duckdb-httpfs-13f8a814d41a978c3f19eb1dc76069489652ea6f_GH0.tar.gz) = 57745d7daf07640b84087c07f7cd2c5b2409265a050a4336f0db60dfa8eb9e63
+SIZE (duckdb-duckdb-httpfs-13f8a814d41a978c3f19eb1dc76069489652ea6f_GH0.tar.gz) = 105955
+SHA256 (duckdb-duckdb-inet-fe7f60bb60245197680fb07ecd1629a1dc3d91c8_GH0.tar.gz) = 7da5ce401ccfd9ff9809d14b4664c8c59d4e8c0adae5f2b47ee251dd70adf832
+SIZE (duckdb-duckdb-inet-fe7f60bb60245197680fb07ecd1629a1dc3d91c8_GH0.tar.gz) = 63831
+SHA256 (duckdb-duckdb-spatial-f129b24b4ddd4d98cfc18f88be5a344a79040e7b_GH0.tar.gz) = cdeb3b4c5c88242cf0a93a06eb86ba2115ee7ef577d0738a90d6e6ef0f1b7117
+SIZE (duckdb-duckdb-spatial-f129b24b4ddd4d98cfc18f88be5a344a79040e7b_GH0.tar.gz) = 44439078
+SHA256 (duckdb-duckdb-sqlite-0c93d610af1e1f66292559fcf0f01a93597a98b6_GH0.tar.gz) = 9ee19b82d3bb931ba96c5afaab4d2bae9ca0e07717ada3bdd99be2225effdd70
+SIZE (duckdb-duckdb-sqlite-0c93d610af1e1f66292559fcf0f01a93597a98b6_GH0.tar.gz) = 4663953
+SHA256 (duckdb-duckdb-sqlsmith-e6e6750ceb91e1869b2c736abb70d818bac73e9a_GH0.tar.gz) = f641784b4a5de3b2ab5ee4cf7a6c9aac1e6306115a9fe8fcdcfc5d482161ba2b
+SIZE (duckdb-duckdb-sqlsmith-e6e6750ceb91e1869b2c736abb70d818bac73e9a_GH0.tar.gz) = 48731
+SHA256 (duckdb-duckdb-vss-9b25336989efdca9598ae90364ce13cc976f2f31_GH0.tar.gz) = 460dc83f189988498212d1d40077527c09df3e09f63960f5b594434ce11464a5
+SIZE (duckdb-duckdb-vss-9b25336989efdca9598ae90364ce13cc976f2f31_GH0.tar.gz) = 152974
diff --git a/databases/duckdb/pkg-plist b/databases/duckdb/pkg-plist
index 0599f78630e0..28f5c315c692 100644
--- a/databases/duckdb/pkg-plist
+++ b/databases/duckdb/pkg-plist
@@ -54,6 +54,7 @@ include/duckdb/common/adbc/single_batch_array_stream.hpp
 include/duckdb/common/adbc/wrappers.hpp
 include/duckdb/common/algorithm.hpp
 include/duckdb/common/allocator.hpp
+include/duckdb/common/arena_linked_list.hpp
 include/duckdb/common/array.hpp
 include/duckdb/common/array_ptr.hpp
 include/duckdb/common/arrow/appender/append_data.hpp
@@ -86,6 +87,7 @@ include/duckdb/common/arrow/schema_metadata.hpp
 include/duckdb/common/assert.hpp
 include/duckdb/common/atomic.hpp
 include/duckdb/common/atomic_ptr.hpp
+include/duckdb/common/bignum.hpp
 include/duckdb/common/bind_helpers.hpp
 include/duckdb/common/bit_utils.hpp
 include/duckdb/common/bitpacking.hpp
@@ -102,19 +104,25 @@ include/duckdb/common/complex_json.hpp
 include/duckdb/common/compressed_file_system.hpp
 include/duckdb/common/constants.hpp
 include/duckdb/common/crypto/md5.hpp
+include/duckdb/common/csv_writer.hpp
 include/duckdb/common/deque.hpp
 include/duckdb/common/dl.hpp
 include/duckdb/common/enable_shared_from_this_ipp.hpp
+include/duckdb/common/encryption_functions.hpp
+include/duckdb/common/encryption_key_manager.hpp
 include/duckdb/common/encryption_state.hpp
 include/duckdb/common/enum_class_hash.hpp
 include/duckdb/common/enum_util.hpp
 include/duckdb/common/enums/access_mode.hpp
 include/duckdb/common/enums/aggregate_handling.hpp
+include/duckdb/common/enums/arrow_format_version.hpp
 include/duckdb/common/enums/catalog_lookup_behavior.hpp
 include/duckdb/common/enums/catalog_type.hpp
+include/duckdb/common/enums/checkpoint_abort.hpp
 include/duckdb/common/enums/checkpoint_type.hpp
 include/duckdb/common/enums/collation_type.hpp
 include/duckdb/common/enums/compression_type.hpp
+include/duckdb/common/enums/copy_option_mode.hpp
 include/duckdb/common/enums/copy_overwrite_mode.hpp
 include/duckdb/common/enums/cte_materialize.hpp
 include/duckdb/common/enums/date_part_specifier.hpp
@@ -133,6 +141,7 @@ include/duckdb/common/enums/join_type.hpp
 include/duckdb/common/enums/joinref_type.hpp
 include/duckdb/common/enums/logical_operator_type.hpp
 include/duckdb/common/enums/memory_tag.hpp
+include/duckdb/common/enums/merge_action_type.hpp
 include/duckdb/common/enums/metric_type.hpp
 include/duckdb/common/enums/on_create_conflict.hpp
 include/duckdb/common/enums/on_entry_not_found.hpp
@@ -140,6 +149,7 @@ include/duckdb/common/enums/operator_result_type.hpp
 include/duckdb/common/enums/optimizer_type.hpp
 include/duckdb/common/enums/order_preservation_type.hpp
 include/duckdb/common/enums/order_type.hpp
+include/duckdb/common/enums/ordinality_request_type.hpp
 include/duckdb/common/enums/output_type.hpp
 include/duckdb/common/enums/pending_execution_result.hpp
 include/duckdb/common/enums/physical_operator_type.hpp
@@ -157,6 +167,8 @@ include/duckdb/common/enums/statement_type.hpp
 include/duckdb/common/enums/stream_execution_result.hpp
 include/duckdb/common/enums/subquery_type.hpp
 include/duckdb/common/enums/tableref_type.hpp
+include/duckdb/common/enums/thread_pin_mode.hpp
+include/duckdb/common/enums/tuple_data_layout_enums.hpp
 include/duckdb/common/enums/undo_flags.hpp
 include/duckdb/common/enums/vector_type.hpp
 include/duckdb/common/enums/wal_type.hpp
@@ -222,6 +234,7 @@ include/duckdb/common/operator/convert_to_string.hpp
 include/duckdb/common/operator/decimal_cast_operators.hpp
 include/duckdb/common/operator/double_cast_operator.hpp
 include/duckdb/common/operator/integer_cast_operator.hpp
+include/duckdb/common/operator/interpolate.hpp
 include/duckdb/common/operator/multiply.hpp
 include/duckdb/common/operator/numeric_binary_operators.hpp
 include/duckdb/common/operator/numeric_cast.hpp
@@ -241,6 +254,7 @@ include/duckdb/common/profiler.hpp
 include/duckdb/common/progress_bar/display/terminal_progress_bar_display.hpp
 include/duckdb/common/progress_bar/progress_bar.hpp
 include/duckdb/common/progress_bar/progress_bar_display.hpp
+include/duckdb/common/progress_bar/unscented_kalman_filter.hpp
 include/duckdb/common/queue.hpp
 include/duckdb/common/radix.hpp
 include/duckdb/common/radix_partitioning.hpp
@@ -261,6 +275,7 @@ include/duckdb/common/serializer/read_stream.hpp
 include/duckdb/common/serializer/serialization_data.hpp
 include/duckdb/common/serializer/serialization_traits.hpp
 include/duckdb/common/serializer/serializer.hpp
+include/duckdb/common/serializer/varint.hpp
 include/duckdb/common/serializer/write_stream.hpp
 include/duckdb/common/set.hpp
 include/duckdb/common/shadow_forbidden_functions.hpp
@@ -271,6 +286,12 @@ include/duckdb/common/sort/duckdb_pdqsort.hpp
 include/duckdb/common/sort/partition_state.hpp
 include/duckdb/common/sort/sort.hpp
 include/duckdb/common/sort/sorted_block.hpp
+include/duckdb/common/sorting/hashed_sort.hpp
+include/duckdb/common/sorting/sort.hpp
+include/duckdb/common/sorting/sort_key.hpp
+include/duckdb/common/sorting/sort_projection_column.hpp
+include/duckdb/common/sorting/sorted_run.hpp
+include/duckdb/common/sorting/sorted_run_merger.hpp
 include/duckdb/common/stack.hpp
 include/duckdb/common/stack_checker.hpp
 include/duckdb/common/stacktrace.hpp
@@ -286,6 +307,7 @@ include/duckdb/common/tree_renderer/graphviz_tree_renderer.hpp
 include/duckdb/common/tree_renderer/html_tree_renderer.hpp
 include/duckdb/common/tree_renderer/json_tree_renderer.hpp
 include/duckdb/common/tree_renderer/text_tree_renderer.hpp
+include/duckdb/common/tree_renderer/yaml_tree_renderer.hpp
 include/duckdb/common/type_util.hpp
 include/duckdb/common/type_visitor.hpp
 include/duckdb/common/typedefs.hpp
@@ -293,6 +315,7 @@ include/duckdb/common/types.hpp
 include/duckdb/common/types/arrow_aux_data.hpp
 include/duckdb/common/types/arrow_string_view_type.hpp
 include/duckdb/common/types/batched_data_collection.hpp
+include/duckdb/common/types/bignum.hpp
 include/duckdb/common/types/bit.hpp
 include/duckdb/common/types/blob.hpp
 include/duckdb/common/types/cast_helpers.hpp
@@ -310,12 +333,14 @@ include/duckdb/common/types/date.hpp
 include/duckdb/common/types/date_lookup_cache.hpp
 include/duckdb/common/types/datetime.hpp
 include/duckdb/common/types/decimal.hpp
+include/duckdb/common/types/double_na_equal.hpp
 include/duckdb/common/types/hash.hpp
 include/duckdb/common/types/hugeint.hpp
 include/duckdb/common/types/hyperloglog.hpp
 include/duckdb/common/types/interval.hpp
 include/duckdb/common/types/list_segment.hpp
 include/duckdb/common/types/null_value.hpp
+include/duckdb/common/types/row/block_iterator.hpp
 include/duckdb/common/types/row/partitioned_tuple_data.hpp
 include/duckdb/common/types/row/row_data_collection.hpp
 include/duckdb/common/types/row/row_data_collection_scanner.hpp
@@ -328,6 +353,7 @@ include/duckdb/common/types/row/tuple_data_segment.hpp
 include/duckdb/common/types/row/tuple_data_states.hpp
 include/duckdb/common/types/sel_cache.hpp
 include/duckdb/common/types/selection_vector.hpp
+include/duckdb/common/types/string.hpp
 include/duckdb/common/types/string_heap.hpp
 include/duckdb/common/types/string_type.hpp
 include/duckdb/common/types/time.hpp
@@ -338,7 +364,7 @@ include/duckdb/common/types/uuid.hpp
 include/duckdb/common/types/validity_mask.hpp
 include/duckdb/common/types/value.hpp
 include/duckdb/common/types/value_map.hpp
-include/duckdb/common/types/varint.hpp
+include/duckdb/common/types/variant.hpp
 include/duckdb/common/types/vector.hpp
 include/duckdb/common/types/vector_buffer.hpp
 include/duckdb/common/types/vector_cache.hpp
@@ -375,6 +401,7 @@ include/duckdb/execution/expression_executor.hpp
 include/duckdb/execution/expression_executor_state.hpp
 include/duckdb/execution/ht_entry.hpp
 include/duckdb/execution/index/art/art.hpp
+include/duckdb/execution/index/art/art_builder.hpp
 include/duckdb/execution/index/art/art_key.hpp
 include/duckdb/execution/index/art/art_merger.hpp
 include/duckdb/execution/index/art/art_operator.hpp
@@ -487,6 +514,7 @@ include/duckdb/execution/operator/persistent/physical_copy_to_file.hpp
 include/duckdb/execution/operator/persistent/physical_delete.hpp
 include/duckdb/execution/operator/persistent/physical_export.hpp
 include/duckdb/execution/operator/persistent/physical_insert.hpp
+include/duckdb/execution/operator/persistent/physical_merge_into.hpp
 include/duckdb/execution/operator/persistent/physical_update.hpp
 include/duckdb/execution/operator/projection/physical_pivot.hpp
 include/duckdb/execution/operator/projection/physical_projection.hpp
@@ -532,6 +560,15 @@ include/duckdb/function/cast/bound_cast_data.hpp
 include/duckdb/function/cast/cast_function_set.hpp
 include/duckdb/function/cast/default_casts.hpp
 include/duckdb/function/cast/nested_to_varchar_cast.hpp
+include/duckdb/function/cast/variant/array_to_variant.hpp
+include/duckdb/function/cast/variant/json_to_variant.hpp
+include/duckdb/function/cast/variant/list_to_variant.hpp
+include/duckdb/function/cast/variant/primitive_to_variant.hpp
+include/duckdb/function/cast/variant/struct_to_variant.hpp
+include/duckdb/function/cast/variant/to_variant.hpp
+include/duckdb/function/cast/variant/to_variant_fwd.hpp
+include/duckdb/function/cast/variant/union_to_variant.hpp
+include/duckdb/function/cast/variant/variant_to_variant.hpp
 include/duckdb/function/cast/vector_cast_helpers.hpp
 include/duckdb/function/cast_rules.hpp
 include/duckdb/function/compression/compression.hpp
@@ -571,6 +608,8 @@ include/duckdb/function/scalar/string_functions.hpp
 include/duckdb/function/scalar/struct_functions.hpp
 include/duckdb/function/scalar/struct_utils.hpp
 include/duckdb/function/scalar/system_functions.hpp
+include/duckdb/function/scalar/variant_functions.hpp
+include/duckdb/function/scalar/variant_utils.hpp
 include/duckdb/function/scalar_function.hpp
 include/duckdb/function/scalar_macro_function.hpp
 include/duckdb/function/table/arrow.hpp
@@ -579,9 +618,11 @@ include/duckdb/function/table/arrow/arrow_type_info.hpp
 include/duckdb/function/table/arrow/enum/arrow_datetime_type.hpp
 include/duckdb/function/table/arrow/enum/arrow_type_info_type.hpp
 include/duckdb/function/table/arrow/enum/arrow_variable_size_type.hpp
+include/duckdb/function/table/direct_file_reader.hpp
 include/duckdb/function/table/list.hpp
 include/duckdb/function/table/range.hpp
 include/duckdb/function/table/read_csv.hpp
+include/duckdb/function/table/read_file.hpp
 include/duckdb/function/table/summary.hpp
 include/duckdb/function/table/system_functions.hpp
 include/duckdb/function/table/table_scan.hpp
@@ -639,15 +680,18 @@ include/duckdb/main/connection.hpp
 include/duckdb/main/connection_manager.hpp
 include/duckdb/main/database.hpp
 include/duckdb/main/database_file_opener.hpp
+include/duckdb/main/database_file_path_manager.hpp
 include/duckdb/main/database_manager.hpp
 include/duckdb/main/database_path_and_type.hpp
 include/duckdb/main/db_instance_cache.hpp
 include/duckdb/main/error_manager.hpp
 include/duckdb/main/extension.hpp
+include/duckdb/main/extension/extension_loader.hpp
 include/duckdb/main/extension/generated_extension_loader.hpp
 include/duckdb/main/extension_entries.hpp
 include/duckdb/main/extension_helper.hpp
 include/duckdb/main/extension_install_info.hpp
+include/duckdb/main/extension_manager.hpp
 include/duckdb/main/extension_util.hpp
 include/duckdb/main/external_dependencies.hpp
 include/duckdb/main/materialized_query_result.hpp
@@ -690,6 +734,7 @@ include/duckdb/main/secret/default_secrets.hpp
 include/duckdb/main/secret/secret.hpp
 include/duckdb/main/secret/secret_manager.hpp
 include/duckdb/main/secret/secret_storage.hpp
+include/duckdb/main/setting_info.hpp
 include/duckdb/main/settings.hpp
 include/duckdb/main/stream_query_result.hpp
 include/duckdb/main/table_description.hpp
@@ -701,6 +746,7 @@ include/duckdb/optimizer/common_aggregate_optimizer.hpp
 include/duckdb/optimizer/compressed_materialization.hpp
 include/duckdb/optimizer/cse_optimizer.hpp
 include/duckdb/optimizer/cte_filter_pusher.hpp
+include/duckdb/optimizer/cte_inlining.hpp
 include/duckdb/optimizer/deliminator.hpp
 include/duckdb/optimizer/empty_result_pullup.hpp
 include/duckdb/optimizer/expression_heuristics.hpp
@@ -741,6 +787,7 @@ include/duckdb/optimizer/rule/comparison_simplification.hpp
 include/duckdb/optimizer/rule/conjunction_simplification.hpp
 include/duckdb/optimizer/rule/constant_folding.hpp
 include/duckdb/optimizer/rule/date_part_simplification.hpp
+include/duckdb/optimizer/rule/date_trunc_simplification.hpp
 include/duckdb/optimizer/rule/distinct_aggregate_optimizer.hpp
 include/duckdb/optimizer/rule/distributivity.hpp
 include/duckdb/optimizer/rule/empty_needle_removal.hpp
@@ -886,6 +933,7 @@ include/duckdb/parser/statement/insert_statement.hpp
 include/duckdb/parser/statement/list.hpp
 include/duckdb/parser/statement/load_statement.hpp
 include/duckdb/parser/statement/logical_plan_statement.hpp
+include/duckdb/parser/statement/merge_into_statement.hpp
 include/duckdb/parser/statement/multi_statement.hpp
 include/duckdb/parser/statement/pragma_statement.hpp
 include/duckdb/parser/statement/prepare_statement.hpp
@@ -899,6 +947,7 @@ include/duckdb/parser/statement/vacuum_statement.hpp
 include/duckdb/parser/tableref.hpp
 include/duckdb/parser/tableref/at_clause.hpp
 include/duckdb/parser/tableref/basetableref.hpp
+include/duckdb/parser/tableref/bound_ref_wrapper.hpp
 include/duckdb/parser/tableref/column_data_ref.hpp
 include/duckdb/parser/tableref/delimgetref.hpp
 include/duckdb/parser/tableref/emptytableref.hpp
@@ -964,6 +1013,7 @@ include/duckdb/planner/expression_binder/index_binder.hpp
 include/duckdb/planner/expression_binder/insert_binder.hpp
 include/duckdb/planner/expression_binder/lateral_binder.hpp
 include/duckdb/planner/expression_binder/order_binder.hpp
+include/duckdb/planner/expression_binder/projection_binder.hpp
 include/duckdb/planner/expression_binder/qualify_binder.hpp
 include/duckdb/planner/expression_binder/relation_binder.hpp
 include/duckdb/planner/expression_binder/returning_binder.hpp
@@ -985,6 +1035,7 @@ include/duckdb/planner/filter/optional_filter.hpp
 include/duckdb/planner/filter/struct_filter.hpp
 include/duckdb/planner/joinside.hpp
 include/duckdb/planner/logical_operator.hpp
+include/duckdb/planner/logical_operator_deep_copy.hpp
 include/duckdb/planner/logical_operator_visitor.hpp
 include/duckdb/planner/logical_tokens.hpp
 include/duckdb/planner/operator/list.hpp
@@ -1018,6 +1069,7 @@ include/duckdb/planner/operator/logical_insert.hpp
 include/duckdb/planner/operator/logical_join.hpp
 include/duckdb/planner/operator/logical_limit.hpp
 include/duckdb/planner/operator/logical_materialized_cte.hpp
+include/duckdb/planner/operator/logical_merge_into.hpp
 include/duckdb/planner/operator/logical_order.hpp
 include/duckdb/planner/operator/logical_pivot.hpp
 include/duckdb/planner/operator/logical_positional_join.hpp
@@ -1063,7 +1115,6 @@ include/duckdb/planner/tableref/bound_dummytableref.hpp
 include/duckdb/planner/tableref/bound_expressionlistref.hpp
 include/duckdb/planner/tableref/bound_joinref.hpp
 include/duckdb/planner/tableref/bound_pivotref.hpp
-include/duckdb/planner/tableref/bound_pos_join_ref.hpp
 include/duckdb/planner/tableref/bound_subqueryref.hpp
 include/duckdb/planner/tableref/bound_table_function.hpp
 include/duckdb/planner/tableref/list.hpp
@@ -1175,11 +1226,13 @@ include/duckdb/storage/table/column_segment.hpp
 include/duckdb/storage/table/column_segment_tree.hpp
 include/duckdb/storage/table/data_table_info.hpp
 include/duckdb/storage/table/delete_state.hpp
+include/duckdb/storage/table/in_memory_checkpoint.hpp
 include/duckdb/storage/table/list_column_data.hpp
 include/duckdb/storage/table/persistent_table_data.hpp
 include/duckdb/storage/table/row_group.hpp
 include/duckdb/storage/table/row_group_collection.hpp
 include/duckdb/storage/table/row_group_segment_tree.hpp
+include/duckdb/storage/table/row_id_column_data.hpp
 include/duckdb/storage/table/row_version_manager.hpp
 include/duckdb/storage/table/scan_state.hpp
 include/duckdb/storage/table/segment_base.hpp
@@ -1216,6 +1269,7 @@ include/duckdb/transaction/update_info.hpp
 include/duckdb/transaction/wal_write_state.hpp
 include/duckdb/verification/copied_statement_verifier.hpp
 include/duckdb/verification/deserialized_statement_verifier.hpp
+include/duckdb/verification/explain_statement_verifier.hpp
 include/duckdb/verification/external_statement_verifier.hpp
 include/duckdb/verification/fetch_row_verifier.hpp
 include/duckdb/verification/no_operator_caching_verifier.hpp
diff --git a/databases/py-duckdb/Makefile b/databases/py-duckdb/Makefile
index 8da1e90e26fd..fad04fbd2209 100644
--- a/databases/py-duckdb/Makefile
+++ b/databases/py-duckdb/Makefile
@@ -1,5 +1,5 @@
 PORTNAME=	duckdb
-DISTVERSION=	1.3.2
+DISTVERSION=	1.4.4
 CATEGORIES=	databases python
 MASTER_SITES=	PYPI
 PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
@@ -10,8 +10,12 @@ WWW=		https://duckdb.org/
 
 LICENSE=	MIT
 
-BUILD_DEPENDS=	${PYTHON_PKGNAMEPREFIX}pybind11>=2.6.0:devel/py-pybind11@${PY_FLAVOR} \
-		${PYNUMPY}
+BUILD_DEPENDS=	cmake:devel/cmake-core \
+		ninja:devel/ninja \
+		${PYTHON_PKGNAMEPREFIX}pybind11>=2.6.0:devel/py-pybind11@${PY_FLAVOR} \
+		${PYNUMPY} \
+		${PYTHON_PKGNAMEPREFIX}scikit-build-core>0:devel/py-scikit-build-core@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}setuptools-scm>0:devel/py-setuptools-scm@${PY_FLAVOR}
 RUN_DEPENDS=	${PYNUMPY} \
 		${PYTHON_PKGNAMEPREFIX}pandas>0:math/py-pandas@${PY_FLAVOR}
 TEST_DEPENDS=	${PYTHON_PKGNAMEPREFIX}fsspec>0:filesystems/py-fsspec@${PY_FLAVOR} \
@@ -22,13 +26,12 @@ TEST_DEPENDS=	${PYTHON_PKGNAMEPREFIX}fsspec>0:filesystems/py-fsspec@${PY_FLAVOR}
 		${PYTHON_PKGNAMEPREFIX}polars>0:misc/py-polars@${PY_FLAVOR}
 
 USES=		python
-USE_PYTHON=	distutils autoplist pytest
+USE_PYTHON=	pep517 autoplist pytest
 
-MAKE_ENV=	OVERRIDE_GIT_DESCRIBE=v${DISTVERSION}-g00000000
+MAKE_ENV=	OVERRIDE_GIT_DESCRIBE=v${DISTVERSION}-g00000000 \
+		CMAKE_EXECUTABLE=${LOCALBASE}/bin/cmake \
+		NINJA_EXECUTABLE=${LOCALBASE}/bin/ninja
 TEST_WRKSRC=	${WRKDIR} # tests fail when run from the build directory due to a name collision with duckdb directory
 TEST_ENV=	${MAKE_ENV} PYTHONPATH=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR} # 2 tests fail, see https://github.com/duckdb/duckdb/issues/5642
 
-post-install:
-	@${STRIP_CMD} ${STAGEDIR}${PYTHON_SITELIBDIR}/duckdb/duckdb${PYTHON_TAG}.so
-
 .include <bsd.port.mk>
diff --git a/databases/py-duckdb/distinfo b/databases/py-duckdb/distinfo
index 262dfac8832b..546b7e3a7823 100644
--- a/databases/py-duckdb/distinfo
+++ b/databases/py-duckdb/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1752138436
-SHA256 (duckdb-1.3.2.tar.gz) = c658df8a1bc78704f702ad0d954d82a1edd4518d7a04f00027ec53e40f591ff5
-SIZE (duckdb-1.3.2.tar.gz) = 11627775
+TIMESTAMP = 1769511272
+SHA256 (duckdb-1.4.4.tar.gz) = 8bba52fd2acb67668a4615ee17ee51814124223de836d9e2fdcbc4c9021b3d3c
+SIZE (duckdb-1.4.4.tar.gz) = 18419763
diff --git a/databases/py-duckdb/files/patch-pyproject.toml b/databases/py-duckdb/files/patch-pyproject.toml
new file mode 100644
index 000000000000..7d61c13e9194
--- /dev/null
+++ b/databases/py-duckdb/files/patch-pyproject.toml
@@ -0,0 +1,29 @@
+--- pyproject.toml.orig	2022-11-09 12:37:21 UTC
++++ pyproject.toml	2026-01-27 15:33:20.626221000 -0800
+@@ -64,14 +64,12 @@
+ backend-path = ["./"]
+ requires = [
+     "scikit-build-core>=0.11.4",
+-	"pybind11[global]>=2.6.0",
++	"pybind11>=2.6.0",
+     "setuptools_scm>=8.0",
+ ]
+ 
+ [tool.scikit-build]
+ minimum-version = "0.10"
+-cmake.version = ">=3.29.0"
+-ninja.version = ">=1.10"
+ ninja.make-fallback = false
+ metadata.version.provider = "scikit_build_core.metadata.setuptools_scm"
+ 
+@@ -283,9 +281,7 @@
+     "requests>=2.32.4",
+ ]
+ build = [
+-    "cmake>=3.29.0",
+-    "ninja>=1.10",
+-    "pybind11[global]>=2.6.0",
++    "pybind11>=2.6.0",
+     "scikit_build_core>=0.11.4",
+     "setuptools_scm>=8.0",
+ ]