pgjdbc/pgjdbc GitHub issues and pull requests (mirror)
help / color / mirror / Atom feedFrom: rtrier (@rtrier) <[email protected]>
To: pgjdbc/pgjdbc <[email protected]>
Subject: [pgjdbc/pgjdbc] issue #3562: After insert with PreparedStatement into table with complex types querying leads to resultset with incorrect type
Date: Sun, 09 Mar 2025 14:44:26 +0000
Message-ID: <[email protected]> (raw)
After creation of a databaseConnection I call addDataType multible times
`pgconn.addDataType("\"xplan_gml\".\"xp_gemeinde\"", Gemeinde.class);`
`pgconn.addDataType("\"xplan_gml\".\"xp_planaufstellendegemeinde\"", PlanaufstellendeGemeinde.class);`
`pgconn.addDataType("\"xplan_gml\".\"xp_spezexternereferenz\"", PGExterneReferenz.class);`
`pgconn.addDataType("\"xplan_gml\".\"so_planart\"", PG_SO_Planart.class);`
`pgconn.addDataType("\"xplan_gml\".\"bp_status\"", CodeList.class);`
`pgconn.addDataType("\"bp_status\"", CodeList.class);`
If I make a select Statement the MetaData of the ResultSet is correct:
`ColumnName Type ColumnClassName ColumnTypeName`
`gml_id 1111 java.util.UUID uuid`
`name 12 java.lang.String varchar`
`nummer 12 java.lang.String varchar`
`gemeinde 2003 java.sql.Array "xplan_gml"."_xp_gemeinde"`
`externereferenz 2003 java.sql.Array "xplankonverter"."_xp_spezexternereferenzauslegung"`
`inkrafttretensdatum 91 java.sql.Date date`
`auslegungsstartdatum 2003 java.sql.Array _date`
`auslegungsenddatum 2003 java.sql.Array _date`
`rechtsstand 12 java.lang.String "xplan_gml"."bp_rechtsstand"`
`planart 2003 java.sql.Array "xplan_gml"."_bp_planart"`
`raeumlichergeltungsbereich 1111 org.postgis.jts.JtsGeometry geometry`
`konvertierung_id 4 java.lang.Integer int4`
`internalid 12 java.lang.String varchar`
`aendert 2003 java.sql.Array "xplan_gml"."_xp_verbundenerplan"`
`wurdegeaendertvon 2003 java.sql.Array "xplan_gml"."_xp_verbundenerplan"`
`status 2002 de.gdiservice.bplan.CodeList "xplan_gml"."bp_status"`
`verfahren 12 java.lang.String "xplan_gml"."bp_verfahren"`
`untergangsdatum 91 java.sql.Date date`
`genehmigungsdatum 91 java.sql.Date date`
`gruenordnungsplan -7 java.lang.Boolean bool`
`ausfertigungsdatum 91 java.sql.Date date`
`durchfuehrungsvertrag -7 java.lang.Boolean bool`
`erschliessungsvertrag -7 java.lang.Boolean bool`
`rechtsverordnungsdatum 91 java.sql.Date date`
`satzungsbeschlussdatum 91 java.sql.Date date`
`staedtebaulichervertrag -7 java.lang.Boolean bool`
`planaufstellendegemeinde 2003 java.sql.Array "xplan_gml"."_xp_planaufstellendegemeinde"`
`veraenderungssperredatum 91 java.sql.Date date`
`aufstellungsbeschlussdatum 91 java.sql.Date date`
`traegerbeteiligungsenddatum 2003 java.sql.Array _date`
`veraenderungssperreenddatum 91 java.sql.Date date`
`traegerbeteiligungsstartdatum 2003 java.sql.Array _date`
`verlaengerungveraenderungssperre 12 java.lang.String "xplan_gml"."xp_verlaengerungveraenderungssperre"`
`veraenderungssperrebeschlussdatum 91 java.sql.Date date`
If I insert into the table a row, which failed because the count of values in the column gemeinde is not correct, I get an exception as expected. so far so good.
If I call with the same connection a select statement the MetaData looks like:
`ColumnName Type ColumnClassName ColumnTypeName`
`gml_id 1111 java.util.UUID uuid`
`name 12 java.lang.String varchar`
`nummer 12 java.lang.String varchar`
`gemeinde 2003 java.sql.Array _xp_gemeinde`
`externereferenz 2003 java.sql.Array _xp_spezexternereferenzauslegung`
`inkrafttretensdatum 91 java.sql.Date date`
`auslegungsstartdatum 2003 java.sql.Array _date`
`auslegungsenddatum 2003 java.sql.Array _date`
`rechtsstand 12 java.lang.String bp_rechtsstand`
`planart 2003 java.sql.Array _bp_planart`
`raeumlichergeltungsbereich 1111 org.postgis.jts.JtsGeometry geometry`
`konvertierung_id 4 java.lang.Integer int4`
`internalid 12 java.lang.String varchar`
`aendert 2003 java.sql.Array _xp_verbundenerplan`
`wurdegeaendertvon 2003 java.sql.Array _xp_verbundenerplan`
`status 2002 java.lang.String bp_status`
`verfahren 12 java.lang.String bp_verfahren`
`untergangsdatum 91 java.sql.Date date`
`genehmigungsdatum 91 java.sql.Date date`
`gruenordnungsplan -7 java.lang.Boolean bool`
`ausfertigungsdatum 91 java.sql.Date date`
`durchfuehrungsvertrag -7 java.lang.Boolean bool`
`erschliessungsvertrag -7 java.lang.Boolean bool`
`rechtsverordnungsdatum 91 java.sql.Date date`
`satzungsbeschlussdatum 91 java.sql.Date date`
`staedtebaulichervertrag -7 java.lang.Boolean bool`
`planaufstellendegemeinde 2003 java.sql.Array "xplan_gml"."_xp_planaufstellendegemeinde"`
`veraenderungssperredatum 91 java.sql.Date date`
`aufstellungsbeschlussdatum 91 java.sql.Date date`
`traegerbeteiligungsenddatum 2003 java.sql.Array _date`
`veraenderungssperreenddatum 91 java.sql.Date date`
`traegerbeteiligungsstartdatum 2003 java.sql.Array _date`
`verlaengerungveraenderungssperre 12 java.lang.String "xplan_gml"."xp_verlaengerungveraenderungssperre"`
`veraenderungssperrebeschlussdatum 91 java.sql.Date date`
At the end this leads that the status for instance is not from Type de.gdiservice.bplan.CodeList.
**Driver Version?**
JDBC 42.6.0 and 42.7.5
**Java Version?**
11
**OS Version?**
Windows 10
**PostgreSQL Version?**
"PostgreSQL 16.8 (Debian 16.8-1.pgdg110+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 10.2.1-6) 10.2.1 20210110, 64-bit"
[metadata-ok.txt](https://github.com/user-attachments/files/19150262/metadata-ok.txt)
[metadata-withErrors.txt](https://github.com/user-attachments/files/19150261/metadata-withErrors.txt)
view thread (10+ messages) latest in thread
reply
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: github://pgjdbc/pgjdbc
Cc: [email protected], [email protected]
Subject: Re: [pgjdbc/pgjdbc] issue #3562: After insert with PreparedStatement into table with complex types querying leads to resultset with incorrect type
In-Reply-To: <<[email protected]>>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox