Skip to content

Commit 4db6fff

Browse files
committed
open up 3.1 for development
1 parent 5c64c08 commit 4db6fff

File tree

3 files changed

+33
-30
lines changed

3 files changed

+33
-30
lines changed

CHANGELOG

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,14 @@
1-
3.0:
1+
3.1:
22
done so far:
3+
- opened up for development
4+
- drop support for Postgres versions prior to 13
5+
6+
to do:
7+
- confirm support for Python 3.12
8+
- confirm support for pg17
9+
10+
11+
3.0:
312
- drop support for Python 3 versions prior to 3.9
413
- drop support for Postgres versions prior to 12
514
- PG14: fix DELETE to not passing rowid_column to the FDW (https://github.com/pgsql-io/multicorn2/pull/41)
@@ -14,10 +23,6 @@ done so far:
1423
- Support Python 3.11 (https://github.com/pgsql-io/multicorn2/pull/59)
1524
- Behavior change: When log_to_postgres with level ERROR or FATAL is invoked, a specialized Python exception will be thrown and the stack unwound, allowing `catch` and `finally` blocks, and other things like context handler exits, to be invoked in the FDW. (https://github.com/pgsql-io/multicorn2/pull/59)
1625

17-
to do:
18-
- confirm support for Python 3.11 & 3.12
19-
- confirm support for pg16 & pg17
20-
2126
2.0:
2227
- drop support for Postgres versions prior to 10
2328
- drop support for Python 2

README.md

Lines changed: 21 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
Multicorn2
33
==========
44

5-
Multicorn Python3 Foreign Data Wrapper (FDW) for Postgresql. Tested on Linux w/ Python 3.9-3.11 & Postgres 12-17.
5+
Multicorn Python3 Foreign Data Wrapper (FDW) for Postgresql. Tested on Linux w/ Python 3.9-3.12 & Postgres 13-17.
66

77
The Multicorn Foreign Data Wrapper allows you to fetch foreign data in Python in your PostgreSQL server.
88

@@ -14,8 +14,8 @@ details.
1414
In use, Multicorn includes a Python package which contains:
1515

1616
- A `__init__.py` which provides a base class from which your new,
17-
custom, FDW will derive.
18-
- A `utils.py` containing diagnostic support code your FDW can use.
17+
custom, Extension will derive.
18+
- A `utils.py` containing diagnostic support code your Extension can use.
1919
- Several useful example FDW implementations.
2020

2121
Multicorn also includes, under the covers, **two** shared libraries:
@@ -32,14 +32,13 @@ Multicorn also includes, under the covers, **two** shared libraries:
3232
2.) Change into the pgedge directory and install pgXX
3333
```bash
3434
cd pgedge
35-
./pgedge install pg16 --start
35+
./pgedge install pg17 --start
3636
./pgedge install multicorn2
3737
```
3838

3939
3.) Use multicorn as you normally would AND you can install popular FDW's that use multicorn such as ElasticSerachFDW & BigQueryFDW
4040
```bash
41-
./io install esfdw
42-
./io install bqfdw
41+
./pgedge install mqttclient
4342
```
4443

4544
## Building Multicorn2 against Postgres from Source
@@ -64,17 +63,16 @@ sudo yum -y install git python3 python3-devel python3-pip
6463
### Upgrade to latest PIP (recommended)
6564
```bash
6665
cd ~
67-
wget https://bootstrap.pypa.io/get-pip.py
68-
sudo python3 get-pip.py
69-
rm get-pip.py
66+
python3 -m venv venv
67+
source venv/bin/activate
7068
```
7169

72-
### Download & Compile Postgres 12+ source code
70+
### Download & Compile Postgres 13+ source code
7371
```bash
7472
cd ~
75-
wget https://ftp.postgresql.org/pub/source/v14.3/postgresql-14.3.tar.gz
76-
tar -xvf postgresql-14.3.tar.gz
77-
cd postgresql-14.3
73+
wget https://ftp.postgresql.org/pub/source/v17.0/postgresql-17.0.tar.gz
74+
tar -xvf postgresql-17.0.tar.gz
75+
cd postgresql-17.0
7876
./configure
7977
make
8078
sudo make install
@@ -83,10 +81,10 @@ sudo make install
8381
### Download & Compile Multicorn2
8482
```bash
8583
set PATH=/usr/local/pgsql/bin:$PATH
86-
cd ~/postgresql-14.3/contrib
87-
wget https://github.com/pgsql-io/multicorn2/archive/refs/tags/v2.3.tar.gz
88-
tar -xvf v2.3.tar.gz
89-
cd multicorn2-2.3
84+
cd ~/postgresql-17.0/contrib
85+
wget https://github.com/pgsql-io/multicorn2/archive/refs/tags/v3.0.tar.gz
86+
tar -xvf v3.0.tar.gz
87+
cd multicorn2-3.0
9088
make
9189
sudo make install
9290
```
@@ -117,9 +115,9 @@ sudo yum -y install git python3 python3-devel python3-pip
117115

118116
### Download & Compile Multicorn2
119117
```bash
120-
wget https://github.com/pgsql-io/multicorn2/archive/refs/tags/v2.5.tar.gz
121-
tar -xvf v2.5.tar.gz
122-
cd multicorn2-2.5
118+
wget https://github.com/pgsql-io/multicorn2/archive/refs/tags/v3.0.tar.gz
119+
tar -xvf v3.0.tar.gz
120+
cd multicorn2-3.0
123121
make
124122
sudo make install
125123
```
@@ -147,18 +145,18 @@ This can be slow to run when it is first executed (15-30 minutes) due to the nee
147145
To run a faster test suite against a specific version of Python and PostgreSQL, run:
148146

149147
```bash
150-
nix build .#testSuites.test_pg12_py39
148+
nix build .#testSuites.test_pg13_py39
151149
```
152150

153151
**Known issues:**
154-
- The tests cover only the supported range of Python & PostgreSQL combinations; in particular, Python releases 3.12 and later are disabled due to failures that have not been addressed.
152+
- The tests cover the supported range of Python & PostgreSQL combinations;
155153

156154
### Adding new Python or PostgreSQL versions to the test suite
157155

158156
1. Perform a `nix flake update` in order to provide access to the latest packages available from the Nix package manager.
159157

160158
2. Update the supported list of versions in flake.nix under the variable `testPythonVersions` or `testPostgresVersions`.
161159

162-
3. For new Python versions, create a new symlink to test-3.6 with the version number of the new Python version; and update the list of test directories in `makeTestSuite` in flake.nix.
160+
3. For new Python versions, create a new symlink to test-3.9 with the version number of the new Python version; and update the list of test directories in `makeTestSuite` in flake.nix.
163161

164162
4. Run the tests with `nix build .#allTestSuites` to ensure that the new versions are supported.

multicorn.control

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
comment = 'Multicorn2 Python3.9+ bindings for Postgres 12++ Foreign Data Wrapper'
2-
default_version = '3.0'
1+
comment = 'Multicorn2 Python3.9+ bindings for Postgres 13++ Foreign Data Wrapper'
2+
default_version = '3.1'
33
module_pathname = '$libdir/multicorn'
44
relocatable = true

0 commit comments

Comments
 (0)