provisa-pg-ext 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- provisa_pg_ext-0.1.0/PKG-INFO +5 -0
- provisa_pg_ext-0.1.0/provisa_pg_ext/__init__.py +27 -0
- provisa_pg_ext-0.1.0/provisa_pg_ext/_ext/darwin-arm64/lib/file_fdw.dylib +0 -0
- provisa_pg_ext-0.1.0/provisa_pg_ext/_ext/darwin-arm64/lib/libduckdb.dylib +0 -0
- provisa_pg_ext-0.1.0/provisa_pg_ext/_ext/darwin-arm64/lib/pg_duckdb.dylib +0 -0
- provisa_pg_ext-0.1.0/provisa_pg_ext/_ext/darwin-arm64/lib/postgres_fdw.dylib +0 -0
- provisa_pg_ext-0.1.0/provisa_pg_ext/_ext/darwin-arm64/lib/sqlite_fdw.dylib +0 -0
- provisa_pg_ext-0.1.0/provisa_pg_ext/_ext/darwin-arm64/manifest.json +7 -0
- provisa_pg_ext-0.1.0/provisa_pg_ext/_ext/darwin-arm64/share/extension/file_fdw--1.0.sql +18 -0
- provisa_pg_ext-0.1.0/provisa_pg_ext/_ext/darwin-arm64/share/extension/file_fdw.control +5 -0
- provisa_pg_ext-0.1.0/provisa_pg_ext/_ext/darwin-arm64/share/extension/pg_duckdb--0.1.0--0.2.0.sql +90 -0
- provisa_pg_ext-0.1.0/provisa_pg_ext/_ext/darwin-arm64/share/extension/pg_duckdb--0.2.0--0.3.0.sql +1058 -0
- provisa_pg_ext-0.1.0/provisa_pg_ext/_ext/darwin-arm64/share/extension/pg_duckdb--0.3.0--1.0.0.sql +820 -0
- provisa_pg_ext-0.1.0/provisa_pg_ext/_ext/darwin-arm64/share/extension/pg_duckdb--1.0.0.sql +1874 -0
- provisa_pg_ext-0.1.0/provisa_pg_ext/_ext/darwin-arm64/share/extension/pg_duckdb.control +5 -0
- provisa_pg_ext-0.1.0/provisa_pg_ext/_ext/darwin-arm64/share/extension/postgres_fdw--1.0--1.1.sql +20 -0
- provisa_pg_ext-0.1.0/provisa_pg_ext/_ext/darwin-arm64/share/extension/postgres_fdw--1.0.sql +18 -0
- provisa_pg_ext-0.1.0/provisa_pg_ext/_ext/darwin-arm64/share/extension/postgres_fdw.control +5 -0
- provisa_pg_ext-0.1.0/provisa_pg_ext/_ext/darwin-arm64/share/extension/sqlite_fdw--1.0--1.1.sql +51 -0
- provisa_pg_ext-0.1.0/provisa_pg_ext/_ext/darwin-arm64/share/extension/sqlite_fdw--1.0.sql +22 -0
- provisa_pg_ext-0.1.0/provisa_pg_ext/_ext/darwin-arm64/share/extension/sqlite_fdw.control +5 -0
- provisa_pg_ext-0.1.0/provisa_pg_ext/_ext/linux-x64/lib/file_fdw.so +0 -0
- provisa_pg_ext-0.1.0/provisa_pg_ext/_ext/linux-x64/lib/libduckdb.so +0 -0
- provisa_pg_ext-0.1.0/provisa_pg_ext/_ext/linux-x64/lib/mysql_fdw.so +0 -0
- provisa_pg_ext-0.1.0/provisa_pg_ext/_ext/linux-x64/lib/pg_duckdb.so +0 -0
- provisa_pg_ext-0.1.0/provisa_pg_ext/_ext/linux-x64/lib/postgres_fdw.so +0 -0
- provisa_pg_ext-0.1.0/provisa_pg_ext/_ext/linux-x64/lib/sqlite_fdw.so +0 -0
- provisa_pg_ext-0.1.0/provisa_pg_ext/_ext/linux-x64/manifest.json +8 -0
- provisa_pg_ext-0.1.0/provisa_pg_ext/_ext/linux-x64/share/extension/file_fdw--1.0.sql +18 -0
- provisa_pg_ext-0.1.0/provisa_pg_ext/_ext/linux-x64/share/extension/file_fdw.control +5 -0
- provisa_pg_ext-0.1.0/provisa_pg_ext/_ext/linux-x64/share/extension/mysql_fdw--1.0--1.1.sql +5 -0
- provisa_pg_ext-0.1.0/provisa_pg_ext/_ext/linux-x64/share/extension/mysql_fdw--1.0.sql +28 -0
- provisa_pg_ext-0.1.0/provisa_pg_ext/_ext/linux-x64/share/extension/mysql_fdw--1.1--1.2.sql +8 -0
- provisa_pg_ext-0.1.0/provisa_pg_ext/_ext/linux-x64/share/extension/mysql_fdw--1.1.sql +32 -0
- provisa_pg_ext-0.1.0/provisa_pg_ext/_ext/linux-x64/share/extension/mysql_fdw--1.2.sql +38 -0
- provisa_pg_ext-0.1.0/provisa_pg_ext/_ext/linux-x64/share/extension/mysql_fdw.control +17 -0
- provisa_pg_ext-0.1.0/provisa_pg_ext/_ext/linux-x64/share/extension/pg_duckdb--0.1.0--0.2.0.sql +90 -0
- provisa_pg_ext-0.1.0/provisa_pg_ext/_ext/linux-x64/share/extension/pg_duckdb--0.2.0--0.3.0.sql +1058 -0
- provisa_pg_ext-0.1.0/provisa_pg_ext/_ext/linux-x64/share/extension/pg_duckdb--0.3.0--1.0.0.sql +820 -0
- provisa_pg_ext-0.1.0/provisa_pg_ext/_ext/linux-x64/share/extension/pg_duckdb--1.0.0.sql +1874 -0
- provisa_pg_ext-0.1.0/provisa_pg_ext/_ext/linux-x64/share/extension/pg_duckdb.control +5 -0
- provisa_pg_ext-0.1.0/provisa_pg_ext/_ext/linux-x64/share/extension/postgres_fdw--1.0--1.1.sql +20 -0
- provisa_pg_ext-0.1.0/provisa_pg_ext/_ext/linux-x64/share/extension/postgres_fdw--1.0.sql +18 -0
- provisa_pg_ext-0.1.0/provisa_pg_ext/_ext/linux-x64/share/extension/postgres_fdw.control +5 -0
- provisa_pg_ext-0.1.0/provisa_pg_ext/_ext/linux-x64/share/extension/sqlite_fdw--1.0--1.1.sql +51 -0
- provisa_pg_ext-0.1.0/provisa_pg_ext/_ext/linux-x64/share/extension/sqlite_fdw--1.0.sql +22 -0
- provisa_pg_ext-0.1.0/provisa_pg_ext/_ext/linux-x64/share/extension/sqlite_fdw.control +5 -0
- provisa_pg_ext-0.1.0/provisa_pg_ext.egg-info/PKG-INFO +5 -0
- provisa_pg_ext-0.1.0/provisa_pg_ext.egg-info/SOURCES.txt +51 -0
- provisa_pg_ext-0.1.0/provisa_pg_ext.egg-info/dependency_links.txt +1 -0
- provisa_pg_ext-0.1.0/provisa_pg_ext.egg-info/top_level.txt +1 -0
- provisa_pg_ext-0.1.0/pyproject.toml +26 -0
- provisa_pg_ext-0.1.0/setup.cfg +4 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Copyright (c) 2026 Kenneth Stott
|
|
2
|
+
# Canary: 15973740-5286-4712-8457-20f3c8a1c97c
|
|
3
|
+
#
|
|
4
|
+
# This source code is licensed under the Business Source License 1.1
|
|
5
|
+
# found in the LICENSE file in the root directory of this source tree.
|
|
6
|
+
#
|
|
7
|
+
# NOTICE: Use of this software for training artificial intelligence or
|
|
8
|
+
# machine learning models is strictly prohibited without explicit written
|
|
9
|
+
# permission from the copyright holder.
|
|
10
|
+
|
|
11
|
+
"""Locator for the bundled PostgreSQL extension/FDW blobs.
|
|
12
|
+
|
|
13
|
+
The blobs live under ``_ext/<os>-<arch>/{manifest.json, lib/<name>.<suf>}`` (the layout
|
|
14
|
+
scripts/ci/build_pg_extensions.sh emits per platform). ``provisa.pg_extensions.catalog`` reads
|
|
15
|
+
``ext_root()`` to stage the running platform's binaries offline — no github.com/releases round trip.
|
|
16
|
+
"""
|
|
17
|
+
|
|
18
|
+
from __future__ import annotations
|
|
19
|
+
|
|
20
|
+
from pathlib import Path
|
|
21
|
+
|
|
22
|
+
__version__ = "0.1.0"
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
def ext_root() -> Path:
|
|
26
|
+
"""Absolute path to the embedded extension tree (``<os>-<arch>/lib/*.{so,dylib,dll}``)."""
|
|
27
|
+
return Path(__file__).resolve().parent / "_ext"
|
|
Binary file
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{"os":"darwin","arch":"arm64","pg_major":"16","artifacts":[
|
|
2
|
+
{"name":"file_fdw","key":"file_fdw","file":"lib/file_fdw.dylib","sha256":"6765c93850d986dcaa6e7b14003d5d1c97e5184480a09b898bf8ac9bb47146a3","redistribution":"bundled","runtime_deps":""},
|
|
3
|
+
{"name":"postgres_fdw","key":"postgres_fdw","file":"lib/postgres_fdw.dylib","sha256":"ba0f88e3902b541e89dc0b54a7137eb55634b1e8e5e14680cc714ce2a5037d7b","redistribution":"bundled","runtime_deps":""},
|
|
4
|
+
{"name":"sqlite_fdw","key":"sqlite_fdw","file":"lib/sqlite_fdw.dylib","sha256":"b6e0368846add1b06117beb2819ef74290780fc87a1269de50f8179e56cd4ef2","redistribution":"bundled","runtime_deps":"libsqlite3 (system)"},
|
|
5
|
+
{"name":"pg_duckdb","key":"pg_duckdb","file":"lib/pg_duckdb.dylib","sha256":"60bf06134157c060a161b043d3e5304e3a1515bc23a3fd8a0cd50744139a6d79","redistribution":"bundled","runtime_deps":"libduckdb; aws-sdk-cpp/avro-c/roaring (static)"},
|
|
6
|
+
{"name":"libduckdb","key":"libduckdb","file":"lib/libduckdb.dylib","sha256":"745900aedf7c026fb3a24d095c8f97599532c33f0880d3d1f244e733c1168a83","redistribution":"bundled","runtime_deps":""}
|
|
7
|
+
]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/* contrib/file_fdw/file_fdw--1.0.sql */
|
|
2
|
+
|
|
3
|
+
-- complain if script is sourced in psql, rather than via CREATE EXTENSION
|
|
4
|
+
\echo Use "CREATE EXTENSION file_fdw" to load this file. \quit
|
|
5
|
+
|
|
6
|
+
CREATE FUNCTION file_fdw_handler()
|
|
7
|
+
RETURNS fdw_handler
|
|
8
|
+
AS 'MODULE_PATHNAME'
|
|
9
|
+
LANGUAGE C STRICT;
|
|
10
|
+
|
|
11
|
+
CREATE FUNCTION file_fdw_validator(text[], oid)
|
|
12
|
+
RETURNS void
|
|
13
|
+
AS 'MODULE_PATHNAME'
|
|
14
|
+
LANGUAGE C STRICT;
|
|
15
|
+
|
|
16
|
+
CREATE FOREIGN DATA WRAPPER file_fdw
|
|
17
|
+
HANDLER file_fdw_handler
|
|
18
|
+
VALIDATOR file_fdw_validator;
|
provisa_pg_ext-0.1.0/provisa_pg_ext/_ext/darwin-arm64/share/extension/pg_duckdb--0.1.0--0.2.0.sql
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
CREATE FUNCTION @extschema@.delta_scan(path text)
|
|
2
|
+
RETURNS SETOF record LANGUAGE 'plpgsql'
|
|
3
|
+
SET search_path = pg_catalog, pg_temp
|
|
4
|
+
AS
|
|
5
|
+
$func$
|
|
6
|
+
BEGIN
|
|
7
|
+
RAISE EXCEPTION 'Function `delta_scan(TEXT)` only works with Duckdb execution.';
|
|
8
|
+
END;
|
|
9
|
+
$func$;
|
|
10
|
+
|
|
11
|
+
CREATE FUNCTION @extschema@.read_json(path text, auto_detect BOOLEAN DEFAULT FALSE,
|
|
12
|
+
compression VARCHAR DEFAULT 'auto',
|
|
13
|
+
dateformat VARCHAR DEFAULT 'iso',
|
|
14
|
+
format VARCHAR DEFAULT 'array',
|
|
15
|
+
ignore_errors BOOLEAN DEFAULT FALSE,
|
|
16
|
+
maximum_depth BIGINT DEFAULT -1,
|
|
17
|
+
maximum_object_size INT DEFAULT 16777216,
|
|
18
|
+
records VARCHAR DEFAULT 'records',
|
|
19
|
+
sample_size BIGINT DEFAULT 20480,
|
|
20
|
+
timestampformat VARCHAR DEFAULT 'iso',
|
|
21
|
+
union_by_name BOOLEAN DEFAULT FALSE)
|
|
22
|
+
RETURNS SETOF record LANGUAGE 'plpgsql'
|
|
23
|
+
SET search_path = pg_catalog, pg_temp
|
|
24
|
+
AS
|
|
25
|
+
$func$
|
|
26
|
+
BEGIN
|
|
27
|
+
RAISE EXCEPTION 'Function `read_json(TEXT)` only works with Duckdb execution.';
|
|
28
|
+
END;
|
|
29
|
+
$func$;
|
|
30
|
+
|
|
31
|
+
CREATE FUNCTION @extschema@.read_json(path text[], auto_detect BOOLEAN DEFAULT FALSE,
|
|
32
|
+
compression VARCHAR DEFAULT 'auto',
|
|
33
|
+
dateformat VARCHAR DEFAULT 'iso',
|
|
34
|
+
format VARCHAR DEFAULT 'array',
|
|
35
|
+
ignore_errors BOOLEAN DEFAULT FALSE,
|
|
36
|
+
maximum_depth BIGINT DEFAULT -1,
|
|
37
|
+
maximum_object_size INT DEFAULT 16777216,
|
|
38
|
+
records VARCHAR DEFAULT 'records',
|
|
39
|
+
sample_size BIGINT DEFAULT 20480,
|
|
40
|
+
timestampformat VARCHAR DEFAULT 'iso',
|
|
41
|
+
union_by_name BOOLEAN DEFAULT FALSE)
|
|
42
|
+
RETURNS SETOF record LANGUAGE 'plpgsql'
|
|
43
|
+
SET search_path = pg_catalog, pg_temp
|
|
44
|
+
AS
|
|
45
|
+
$func$
|
|
46
|
+
BEGIN
|
|
47
|
+
RAISE EXCEPTION 'Function `read_json(TEXT[])` only works with Duckdb execution.';
|
|
48
|
+
END;
|
|
49
|
+
$func$;
|
|
50
|
+
|
|
51
|
+
CREATE TYPE duckdb.cache_info AS (
|
|
52
|
+
remote_path TEXT,
|
|
53
|
+
cache_key TEXT,
|
|
54
|
+
cache_file_size BIGINT,
|
|
55
|
+
cache_file_timestamp TIMESTAMPTZ
|
|
56
|
+
);
|
|
57
|
+
|
|
58
|
+
CREATE FUNCTION duckdb.cache_info()
|
|
59
|
+
RETURNS SETOF duckdb.cache_info
|
|
60
|
+
SET search_path = pg_catalog, pg_temp
|
|
61
|
+
LANGUAGE C AS 'MODULE_PATHNAME', 'cache_info';
|
|
62
|
+
REVOKE ALL ON FUNCTION duckdb.cache_info() FROM PUBLIC;
|
|
63
|
+
|
|
64
|
+
CREATE FUNCTION duckdb.cache_delete(cache_key TEXT)
|
|
65
|
+
RETURNS bool
|
|
66
|
+
SET search_path = pg_catalog, pg_temp
|
|
67
|
+
LANGUAGE C AS 'MODULE_PATHNAME', 'cache_delete';
|
|
68
|
+
REVOKE ALL ON FUNCTION duckdb.cache_delete(cache_key TEXT) FROM PUBLIC;
|
|
69
|
+
|
|
70
|
+
DROP FUNCTION duckdb.recycle_ddb();
|
|
71
|
+
CREATE PROCEDURE duckdb.recycle_ddb()
|
|
72
|
+
SET search_path = pg_catalog, pg_temp
|
|
73
|
+
LANGUAGE C AS 'MODULE_PATHNAME', 'pgduckdb_recycle_ddb';
|
|
74
|
+
REVOKE ALL ON PROCEDURE duckdb.recycle_ddb() FROM PUBLIC;
|
|
75
|
+
|
|
76
|
+
ALTER TABLE duckdb.secrets ADD COLUMN scope TEXT;
|
|
77
|
+
|
|
78
|
+
ALTER TABLE duckdb.tables ADD COLUMN default_database TEXT NOT NULL DEFAULT 'my_db';
|
|
79
|
+
ALTER TABLE duckdb.tables ALTER COLUMN default_database DROP DEFAULT;
|
|
80
|
+
|
|
81
|
+
-- Alter duckdb.secrets to allow column "key_id" & "secret" to be NULL
|
|
82
|
+
ALTER TABLE duckdb.secrets ALTER COLUMN key_id DROP NOT NULL;
|
|
83
|
+
ALTER TABLE duckdb.secrets ALTER COLUMN secret DROP NOT NULL;
|
|
84
|
+
|
|
85
|
+
-- Update "type_constraint" CHECK on "type" to allow "Azure"
|
|
86
|
+
ALTER TABLE duckdb.secrets DROP CONSTRAINT type_constraint;
|
|
87
|
+
ALTER TABLE duckdb.secrets ADD CONSTRAINT type_constraint CHECK (upper(type) IN ('S3', 'GCS', 'R2', 'AZURE'));
|
|
88
|
+
|
|
89
|
+
-- Add "azure_connection_string" column
|
|
90
|
+
ALTER TABLE duckdb.secrets ADD COLUMN connection_string TEXT;
|