pgjdbc/pgjdbc GitHub issues and pull requests (mirror)  
help / color / mirror / Atom feed
From: 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