provisa-pg-ext 0.1.0__py3-none-any.whl

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.
Files changed (50) hide show
  1. provisa_pg_ext/__init__.py +27 -0
  2. provisa_pg_ext/_ext/darwin-arm64/lib/file_fdw.dylib +0 -0
  3. provisa_pg_ext/_ext/darwin-arm64/lib/libduckdb.dylib +0 -0
  4. provisa_pg_ext/_ext/darwin-arm64/lib/pg_duckdb.dylib +0 -0
  5. provisa_pg_ext/_ext/darwin-arm64/lib/postgres_fdw.dylib +0 -0
  6. provisa_pg_ext/_ext/darwin-arm64/lib/sqlite_fdw.dylib +0 -0
  7. provisa_pg_ext/_ext/darwin-arm64/manifest.json +7 -0
  8. provisa_pg_ext/_ext/darwin-arm64/share/extension/file_fdw--1.0.sql +18 -0
  9. provisa_pg_ext/_ext/darwin-arm64/share/extension/file_fdw.control +5 -0
  10. provisa_pg_ext/_ext/darwin-arm64/share/extension/pg_duckdb--0.1.0--0.2.0.sql +90 -0
  11. provisa_pg_ext/_ext/darwin-arm64/share/extension/pg_duckdb--0.2.0--0.3.0.sql +1058 -0
  12. provisa_pg_ext/_ext/darwin-arm64/share/extension/pg_duckdb--0.3.0--1.0.0.sql +820 -0
  13. provisa_pg_ext/_ext/darwin-arm64/share/extension/pg_duckdb--1.0.0.sql +1874 -0
  14. provisa_pg_ext/_ext/darwin-arm64/share/extension/pg_duckdb.control +5 -0
  15. provisa_pg_ext/_ext/darwin-arm64/share/extension/postgres_fdw--1.0--1.1.sql +20 -0
  16. provisa_pg_ext/_ext/darwin-arm64/share/extension/postgres_fdw--1.0.sql +18 -0
  17. provisa_pg_ext/_ext/darwin-arm64/share/extension/postgres_fdw.control +5 -0
  18. provisa_pg_ext/_ext/darwin-arm64/share/extension/sqlite_fdw--1.0--1.1.sql +51 -0
  19. provisa_pg_ext/_ext/darwin-arm64/share/extension/sqlite_fdw--1.0.sql +22 -0
  20. provisa_pg_ext/_ext/darwin-arm64/share/extension/sqlite_fdw.control +5 -0
  21. provisa_pg_ext/_ext/linux-x64/lib/file_fdw.so +0 -0
  22. provisa_pg_ext/_ext/linux-x64/lib/libduckdb.so +0 -0
  23. provisa_pg_ext/_ext/linux-x64/lib/mysql_fdw.so +0 -0
  24. provisa_pg_ext/_ext/linux-x64/lib/pg_duckdb.so +0 -0
  25. provisa_pg_ext/_ext/linux-x64/lib/postgres_fdw.so +0 -0
  26. provisa_pg_ext/_ext/linux-x64/lib/sqlite_fdw.so +0 -0
  27. provisa_pg_ext/_ext/linux-x64/manifest.json +8 -0
  28. provisa_pg_ext/_ext/linux-x64/share/extension/file_fdw--1.0.sql +18 -0
  29. provisa_pg_ext/_ext/linux-x64/share/extension/file_fdw.control +5 -0
  30. provisa_pg_ext/_ext/linux-x64/share/extension/mysql_fdw--1.0--1.1.sql +5 -0
  31. provisa_pg_ext/_ext/linux-x64/share/extension/mysql_fdw--1.0.sql +28 -0
  32. provisa_pg_ext/_ext/linux-x64/share/extension/mysql_fdw--1.1--1.2.sql +8 -0
  33. provisa_pg_ext/_ext/linux-x64/share/extension/mysql_fdw--1.1.sql +32 -0
  34. provisa_pg_ext/_ext/linux-x64/share/extension/mysql_fdw--1.2.sql +38 -0
  35. provisa_pg_ext/_ext/linux-x64/share/extension/mysql_fdw.control +17 -0
  36. provisa_pg_ext/_ext/linux-x64/share/extension/pg_duckdb--0.1.0--0.2.0.sql +90 -0
  37. provisa_pg_ext/_ext/linux-x64/share/extension/pg_duckdb--0.2.0--0.3.0.sql +1058 -0
  38. provisa_pg_ext/_ext/linux-x64/share/extension/pg_duckdb--0.3.0--1.0.0.sql +820 -0
  39. provisa_pg_ext/_ext/linux-x64/share/extension/pg_duckdb--1.0.0.sql +1874 -0
  40. provisa_pg_ext/_ext/linux-x64/share/extension/pg_duckdb.control +5 -0
  41. provisa_pg_ext/_ext/linux-x64/share/extension/postgres_fdw--1.0--1.1.sql +20 -0
  42. provisa_pg_ext/_ext/linux-x64/share/extension/postgres_fdw--1.0.sql +18 -0
  43. provisa_pg_ext/_ext/linux-x64/share/extension/postgres_fdw.control +5 -0
  44. provisa_pg_ext/_ext/linux-x64/share/extension/sqlite_fdw--1.0--1.1.sql +51 -0
  45. provisa_pg_ext/_ext/linux-x64/share/extension/sqlite_fdw--1.0.sql +22 -0
  46. provisa_pg_ext/_ext/linux-x64/share/extension/sqlite_fdw.control +5 -0
  47. provisa_pg_ext-0.1.0.dist-info/METADATA +5 -0
  48. provisa_pg_ext-0.1.0.dist-info/RECORD +50 -0
  49. provisa_pg_ext-0.1.0.dist-info/WHEEL +5 -0
  50. provisa_pg_ext-0.1.0.dist-info/top_level.txt +1 -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"
@@ -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;
@@ -0,0 +1,5 @@
1
+ # file_fdw extension
2
+ comment = 'foreign-data wrapper for flat file access'
3
+ default_version = '1.0'
4
+ module_pathname = '$libdir/file_fdw'
5
+ relocatable = true
@@ -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;