pramsey / pgsql-ogr-fdw

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

ERROR: cannot find 'fid' column in table 'bytea_fdw' #231

Closed jajahaha closed 2 years ago

jajahaha commented 2 years ago

Postgres 14.4 Postgis 3.2.1 OGR_FDW 1.1 and GDAL 2.4.0

when i run regress testcase using installcheck,i got this error message:

pgsql-ogr-fdw-1.1.1/expected/pgsql.out pgsql-ogr-fdw-1.1.1/results/pgsql.out @@ -179,6 +179,7 @@ DELETE FROM bytea_fdw WHERE fid = 4; DEBUG: OGR SQL: (fid = 4) +ERROR: cannot find 'fid' column in table 'bytea_fdw'

could anyone explain why?

pramsey commented 2 years ago

Nope, it's a serious mystery. There's a 'fid' in the table definition and no good reason for it to disappear. The CI runs fine no breakages.

pramsey commented 2 years ago

I take it back, I'm bringing CI back online and seeing this error.

pramsey commented 2 years ago

Confirmed locally too. Very odd. Maybe something with PgSQL 14? Will continue to look.

pramsey commented 2 years ago

I think this is a PgSQL 14 thing, which is going to force me to deal with #103 as well. Basically the delete call is no longer returning a whole row to be deleted, potentially because of how lazy I have been in setting up target lists earlier in the process. It's all very complex and ugly.

pramsey commented 2 years ago

Didn't have to deal with #103. That's still an open issue. Somehow the target relation (the foreign table) needs to know which column holds the OGR fid. A mandatory "primary key" attribute or something would allow the column to be named whatever it wants to be.