squirrel-sql-client / squirrel-sql-code

Share of the SQuirreL SQL source code originating from SourceForge, see https://squirrelsql.org
GNU Lesser General Public License v2.1
59 stars 11 forks source link

bug report: error occurs when switch to 'Content' tab of user-defined type in PostgreSQL #27

Closed wangyuehong closed 8 months ago

wangyuehong commented 8 months ago

version: 4.6.0 os: mac m2 java:

java --version
java 17.0.9 2023-10-17 LTS
Java(TM) SE Runtime Environment (build 17.0.9+11-LTS-201)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.9+11-LTS-201, mixed mode, sharing)
  1. create a user defined type.
CREATE TYPE ftype AS (f1 int, f2 text);
  1. select it in object tree.
image

error message

Error occurred during task execution: | java.lang.IllegalStateException: Failed any way to execute content SQL. See former warning log entries for details.

stack trace

2023-11-10 22:16:16:680 [pool-1-thread-1] WARN  net.sourceforge.squirrel_sql.client.session.mainpanel.objecttree.tabs.table.ContentsTab  - Failed to execute content SQL: select * from "public"."ftype" tbl
org.postgresql.util.PSQLException: ERROR: cannot open relation "ftype"
  Detail: This operation is not supported for composite types.
  Position: 15
    at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2713)
    at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2401)
    at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:368)
    at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:498)
    at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:415)
    at org.postgresql.jdbc.PgStatement.executeWithFlags(PgStatement.java:335)
    at org.postgresql.jdbc.PgStatement.executeCachedSql(PgStatement.java:321)
    at org.postgresql.jdbc.PgStatement.executeWithFlags(PgStatement.java:297)
    at org.postgresql.jdbc.PgStatement.executeQuery(PgStatement.java:246)
    at net.sourceforge.squirrel_sql.client.session.mainpanel.objecttree.tabs.table.ContentsTab.createResultSet(ContentsTab.java:357)
    at net.sourceforge.squirrel_sql.client.session.mainpanel.objecttree.tabs.table.ContentsTab.createDataSet(ContentsTab.java:261)
    at net.sourceforge.squirrel_sql.client.session.mainpanel.objecttree.tabs.BaseDataSetTab.lambda$refreshComponent$0(BaseDataSetTab.java:127)
    at net.sourceforge.squirrel_sql.fw.util.TaskExecuter.run(TaskExecuter.java:82)
    at java.base/java.lang.Thread.run(Thread.java:842)
2023-11-10 22:16:16:681 [pool-1-thread-1] ERROR  net.sourceforge.squirrel_sql.fw.util.TaskThreadPool  - Error
java.lang.IllegalStateException: Failed any way to execute content SQL. See former warning log entries for details.
    at net.sourceforge.squirrel_sql.client.session.mainpanel.objecttree.tabs.table.ContentsTab.createDataSet(ContentsTab.java:265)
    at net.sourceforge.squirrel_sql.client.session.mainpanel.objecttree.tabs.BaseDataSetTab.lambda$refreshComponent$0(BaseDataSetTab.java:127)
    at net.sourceforge.squirrel_sql.fw.util.TaskExecuter.run(TaskExecuter.java:82)
    at java.base/java.lang.Thread.run(Thread.java:842)
2023-11-10 22:17:08:709 [pool-1-thread-1] INFO  net.sourceforge.squirrel_sql.client.session.SessionConnectionKeepAlive  - SessionConnectionKeepAlive (nas_pg) running SQL: select 1
2023-11-10 22:19:08:720 [pool-1-thread-1] INFO  net.sourceforge.squirrel_sql.client.session.SessionConnectionKeepAlive  - SessionConnectionKeepAlive (nas_pg) running SQL: select 1
gerdwagner commented 8 months ago

That SQuirreL can't read the contents of TYPE is alright.

But the behavior of the wait dialog was erroneous and was fixed. Now the dialog is closed immediately after reading the contents fails. That is why the dialog hardly becomes visible anymore. (In addition the dialog now has a close button.)