Message-ID: From: "arturgspb (@arturgspb)" To: "pgjdbc/pgjdbc" Date: Sun, 27 Mar 2016 14:09:04 +0000 Subject: Re: [pgjdbc/pgjdbc] issue #538: Why getSchemaName return empty string or exists getBaseSchemaName and getColumnName return getColumnLabel? In-Reply-To: References: List-Id: X-GitHub-Author-Login: arturgspb X-GitHub-Comment-Id: 202069493 X-GitHub-Comment-Type: issue_comment X-GitHub-Edited-At: 2016-03-27T14:10:27Z X-GitHub-Issue: 538 X-GitHub-Repo: pgjdbc/pgjdbc X-GitHub-Type: comment X-GitHub-Url: https://github.com/pgjdbc/pgjdbc/issues/538#issuecomment-202069493 Content-Type: text/plain; charset=utf-8 Example code: ``` java package ru.realweb.meta; import org.apache.commons.dbcp2.BasicDataSource; import org.postgresql.jdbc.PgResultSetMetaData; import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate; import org.springframework.jdbc.datasource.DataSourceTransactionManager; import org.springframework.jdbc.support.rowset.SqlRowSet; import org.springframework.jdbc.support.rowset.SqlRowSetMetaData; import java.sql.PreparedStatement; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.util.HashMap; public class Test { public static void main(String[] args) throws SQLException { String driverClassName = "org.postgresql.Driver"; String schema = "postgresql"; String urlAdditional = "?encoding=UNICODE&ApplicationName=app&allowMultiQueries=true"; BasicDataSource ds = new BasicDataSource(); ds.setDriverClassName(driverClassName); String hostPort = "***:5432/"; String url = "jdbc:" + schema + "://" + hostPort + "***" + urlAdditional; ds.setUrl(url); ds.setUsername("***"); ds.setPassword("***"); ds.setMaxTotal(50); ds.setMaxIdle(5); String sqlQuery = "select client_id as my_client_id, price as value from client_stats limit 10"; System.out.println("*** Pure JDBC"); PreparedStatement ps = ds.getConnection().prepareStatement(sqlQuery); ResultSetMetaData jdbcMetaData = ps.getMetaData(); for (int i = 1; i <= jdbcMetaData.getColumnCount(); i++) { System.out.println("\n"); System.out.println("jdbcMetaData.getColumnLabel() = " + jdbcMetaData.getColumnLabel(i)); if (jdbcMetaData instanceof PgResultSetMetaData) { PgResultSetMetaData pgmd = (PgResultSetMetaData) jdbcMetaData; System.out.println("pgmd.getColumnName = " + pgmd.getBaseColumnName(i)); System.out.println("pgmd.getBaseTableName = " + pgmd.getBaseTableName(i)); System.out.println("pgmd.getBaseSchemaName = " + pgmd.getBaseSchemaName(i)); } } System.out.println("\n\n"); System.out.println("*** Spring JDBC"); DataSourceTransactionManager transactionManager = new DataSourceTransactionManager(ds); NamedParameterJdbcTemplate jdbcTemplate = new NamedParameterJdbcTemplate(transactionManager.getDataSource()); SqlRowSet sqlRowSet = jdbcTemplate.queryForRowSet(sqlQuery, new HashMap<>()); SqlRowSetMetaData springMetaData = sqlRowSet.getMetaData(); for (int i = 1; i <= springMetaData.getColumnCount(); i++) { System.out.println("\n"); System.out.println("springMetaData.getColumnLabel(i) = " + springMetaData.getColumnLabel(i)); System.out.println("springMetaData.getColumnName(i) = " + springMetaData.getColumnName(i)); System.out.println("springMetaData.getTableName(i) = " + springMetaData.getTableName(i)); System.out.println("springMetaData.getSchemaName(i) = " + springMetaData.getSchemaName(i)); } } } ``` Will print: ``` plain *** Pure JDBC jdbcMetaData.getColumnLabel() = my_client_id pgmd.getColumnName = client_id pgmd.getBaseTableName = client_stats pgmd.getBaseSchemaName = public jdbcMetaData.getColumnLabel() = value pgmd.getColumnName = price pgmd.getBaseTableName = client_stats pgmd.getBaseSchemaName = public *** Spring JDBC springMetaData.getColumnLabel(i) = my_client_id springMetaData.getColumnName(i) = my_client_id springMetaData.getTableName(i) = client_stats springMetaData.getSchemaName(i) = springMetaData.getColumnLabel(i) = value springMetaData.getColumnName(i) = value springMetaData.getTableName(i) = client_stats springMetaData.getSchemaName(i) = ``` depends: org.springframework:spring-jdbc:4.2.5.RELEASE org.postgresql:postgresql:9.4.1208