pramsey / pgsql-ogr-fdw

PostgreSQL foreign data wrapper for OGR
MIT License
237 stars 34 forks source link

PostgreSQL 15, ogr_fdw did not return an FdwRoutine struct Windows issue #242

Closed robe2 closed 1 year ago

robe2 commented 1 year ago

I have PostgreSQL 15 installed and ogr_fdw 1.1.2 on windows.

When linking an excel file, which worked on PostgreSQL 14 ogr_fdw 1.1.2, I'm getting a peculiar error

Failed: Error: foreign-data wrapper handler function 26562 did not return an FdwRoutine struct

I'm going to test on a couple other systems to see if it's windows specific or PG15 specific.

robe2 commented 1 year ago

Sorry I missed this earlier. I was getting a failure regressing against PG 15 (but I thought it was a pathing issue).

Anyway manually testing with:

CREATE SERVER svr_csv
   FOREIGN DATA WRAPPER ogr_fdw
  OPTIONS (datasource '/tmp/no_geom.csv',format 'CSV');

  IMPORT FOREIGN SCHEMA ogr_all
    FROM SERVER svr_csv INTO staging;

I get the same error on my windows dev. I still need to test on linux machines.

ERROR:  foreign-data wrapper handler function 5089554 did not return an FdwRoutine struct
SQL state: XX000

Just the function number changes

robe2 commented 1 year ago

Confirmed it happens on ubuntu as well. They don't have ogr_fdw yet for PostgreSQL 15, but compiling my own, I get the same error winnie was showing:

============== running regression test queries        ==============
test file                         ... /bin/sh: 1: cannot open /projects/pgsql-ogr-fdw/sql/file.sql: No such file
diff: /projects/pgsql-ogr-fdw/expected/file.out: No such file or directory
diff: /projects/pgsql-ogr-fdw/results/file.out: No such file or directory
diff command failed with status 512: diff  "/projects/pgsql-ogr-fdw/expected/file.out" "/root/projects/pgsql-ogr-fdw/results/file.out" > "/root/projects/pgsql-ogr-fdw/results/file.out.diff"
make: *** [/usr/lib/postgresql/15/lib/pgxs/src/makefiles/pgxs.mk:433: installcheck] Error 2

Which I had dismissed as a configuration error rather than a real one.

robe2 commented 1 year ago

So I guess the above error is unrelated, as @pramsey mentioned is because of - https://github.com/postgres/postgres/commit/d1029bb5a26cb84b116b0dee4dde312291359f2a

I did a manual check of my mingw64 install, and the same script worked fine. So I guess my issue is for some reason EDB windows is not compatible with MingW compiled PostgreSQL :(.

So I guess this is my packaging issue have to figure out what changed with how they are compiling.

robe2 commented 1 year ago

Turns out this was not a windows/mingw issue either. I must have built against PG 15 beta something or RC something. Once I rebuilt postgresql 15 from stable branch and recompiled, my mingw compiled ogr_fdw worked find under EDB again.

Now I just have to release a new PostGIS 15 Windows bundle with the new file.