[BUG] pg14 getCreateTableSql Error

Open
#6 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
42/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Stale
Tech stack
java, postgresql
Domain
databases

Research direction

Start with PostgresqlClient.getCreateTableSql at line 330 and PostgreSQLTest.getCreateTable at line 355, then reproduce the failure against PostgreSQL 14.2. Inspect the SQL that references the missing consrc column and verify that getCreateTableSql completes successfully with the PostgreSQL 14 catalog; add or update the relevant test if the existing test does not cover this version.

Written by the indexing model from the issue text.

Description

数据库版本:14.2 (Debian 14.2-1.pgdg110+1)

postgreSQL 14版本时,postgresql 插件的getCreateTableSql 方法会报错。


com.dtstack.dtcenter.loader.exception.DtLoaderException: SQL execute exception:ERROR: column "consrc" does not exist
  建议:Perhaps you meant to reference the column "c.conkey" or the column "c.conbin".
  位置:143

	at com.dtstack.dtcenter.loader.ClassLoaderCallBackMethod.callbackAndReset(ClassLoaderCallBackMethod.java:36)
	at com.dtstack.dtcenter.loader.client.sql.DataSourceClientProxy.getCreateTableSql(DataSourceClientProxy.java:155)
	at com.dtstack.dtcenter.loader.client.sql.PostgreSQLTest.getCreateTable(PostgreSQLTest.java:355)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:160)
	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
	at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)
	at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:221)
	at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54)
Caused by: com.dtstack.dtcenter.loader.exception.DtLoaderException: SQL execute exception:ERROR: column "consrc" does not exist
  建议:Perhaps you meant to reference the column "c.conkey" or the column "c.conbin".
  位置:143
	at com.dtstack.dtcenter.common.loader.common.utils.DBUtil.executeQuery(DBUtil.java:123)
	at com.dtstack.dtcenter.common.loader.rdbms.AbsRdbmsClient.executeQuery(AbsRdbmsClient.java:153)
	at com.dtstack.dtcenter.common.loader.rdbms.AbsRdbmsClient.executeQuery(AbsRdbmsClient.java:163)
	at com.dtstack.dtcenter.common.loader.postgresql.PostgresqlClient.getCreateTableSql(PostgresqlClient.java:330)
	at com.dtstack.dtcenter.loader.client.sql.DataSourceClientProxy.lambda$getCreateTableSql$17(DataSourceClientProxy.java:155)
	at com.dtstack.dtcenter.loader.ClassLoaderCallBackMethod.callbackAndReset(ClassLoaderCallBackMethod.java:34)
	... 25 more
Caused by: org.postgresql.util.PSQLException: ERROR: column "consrc" does not exist
  建议:Perhaps you meant to reference the column "c.conkey" or the column "c.conbin".
  位置:143
	at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2433)
	at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2178)
	at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:306)
	at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:441)
	at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:365)
	at org.postgresql.jdbc.PgStatement.executeWithFlags(PgStatement.java:307)
	at org.postgresql.jdbc.PgStatement.executeCachedSql(PgStatement.java:293)
	at org.postgresql.jdbc.PgStatement.executeWithFlags(PgStatement.java:270)
	at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:266)
	at com.zaxxer.hikari.pool.ProxyStatement.execute(ProxyStatement.java:95)
	at com.zaxxer.hikari.pool.HikariProxyStatement.execute(HikariProxyStatement.java)
	at com.dtstack.dtcenter.common.loader.common.utils.DBUtil.executeQuery(DBUtil.java:98)
	... 30 more
Dominant language
Java
Stars
69
Forks
47
PR merge metrics
No merged PRs in 30d

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from DTStack/DatasourceX

All issues in DTStack/DatasourceX

Similar issues

More Java issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.