Skip to content

Commit cd11f52

Browse files
committed
fixing coverage report
1 parent c51f367 commit cd11f52

File tree

11 files changed

+47
-14
lines changed

11 files changed

+47
-14
lines changed

.github/workflows/analysis.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,5 +96,5 @@ jobs:
9696
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
9797
run: |
9898
mvn --batch-mode -DclickhouseVersion=$PREFERRED_LTS_VERSION \
99-
-Panalysis verify org.sonarsource.scanner.maven:sonar-maven-plugin:sonar
99+
-Panalysis org.sonarsource.scanner.maven:sonar-maven-plugin:sonar verify
100100
continue-on-error: true

clickhouse-jdbc/pom.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
<javacc-plugin.version>4.1.4</javacc-plugin.version>
2121
<spec.title>JDBC</spec.title>
2222
<spec.version>4.2</spec.version>
23+
<sonar.coverage.jacoco.xmlReportPaths>${project.basedir}/target/site/jacoco-aggregate/jacoco.xml</sonar.coverage.jacoco.xmlReportPaths>
2324

2425
<imageName>clickhouse-jdbc-bin</imageName>
2526
<mainClass>com.clickhouse.jdbc.Main</mainClass>

client-v2/pom.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
<properties>
2020
<apache.httpclient.version>5.3.1</apache.httpclient.version>
2121
<shade.base>${project.groupId}.shaded</shade.base>
22+
<sonar.coverage.jacoco.xmlReportPaths>${project.basedir}/target/site/jacoco-aggregate/jacoco.xml</sonar.coverage.jacoco.xmlReportPaths>
2223
</properties>
2324

2425
<dependencies>

jdbc-v2/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
<javacc-plugin.version>4.1.4</javacc-plugin.version>
2121
<spec.title>JDBC</spec.title>
2222
<spec.version>4.2</spec.version>
23-
23+
<sonar.coverage.jacoco.xmlReportPaths>${project.basedir}/target/site/jacoco-aggregate/jacoco.xml</sonar.coverage.jacoco.xmlReportPaths>
2424
<shade.base>${project.groupId}.shaded</shade.base>
2525
</properties>
2626

jdbc-v2/src/main/java/com/clickhouse/jdbc/PreparedStatementImpl.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -318,7 +318,7 @@ public ResultSetMetaData getMetaData() throws SQLException {
318318
TableSchema tSchema = connection.getClient().getTableSchemaFromQuery(sql);
319319
resultSetMetaData = new ResultSetMetaDataImpl(tSchema.getColumns(),
320320
connection.getSchema(), connection.getCatalog(),
321-
tSchema.getTableName(), Collections.emptyMap());
321+
tSchema.getTableName(), JdbcUtils.DATA_TYPE_CLASS_MAP);
322322
} catch (Exception e) {
323323
LOG.warn("Failed to get schema for statement '{}'", originalSql);
324324
}
@@ -327,7 +327,7 @@ public ResultSetMetaData getMetaData() throws SQLException {
327327
if (resultSetMetaData == null) {
328328
resultSetMetaData = new ResultSetMetaDataImpl(Collections.emptyList(),
329329
connection.getSchema(), connection.getCatalog(),
330-
"", Collections.emptyMap());
330+
"", JdbcUtils.DATA_TYPE_CLASS_MAP);
331331
}
332332
} else if (currentResultSet != null) {
333333
resultSetMetaData = currentResultSet.getMetaData();
@@ -383,7 +383,7 @@ public void setURL(int parameterIndex, URL x) throws SQLException {
383383
/**
384384
* Returned metadata has only minimal information about parameters. Currently only their count.
385385
* Current implementation do not parse SQL to detect type of each parameter.
386-
*
386+
*
387387
* @see ParameterMetaDataImpl
388388
* @return {@link ParameterMetaDataImpl}
389389
* @throws SQLException if the statement is close

jdbc-v2/src/main/java/com/clickhouse/jdbc/ResultSetImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ public ResultSetImpl(StatementImpl parentStatement, QueryResponse response, Clic
6060
// Result set contains columns from one database (there is a special table engine 'Merge' to do cross DB queries)
6161
this.metaData = new ResultSetMetaDataImpl(tableMetadata
6262
.getColumns(), response.getSettings().getDatabase(), "", tableMetadata.getTableName(),
63-
Collections.emptyMap());
63+
JdbcUtils.DATA_TYPE_CLASS_MAP);
6464
this.closed = false;
6565
this.wasNull = false;
6666
this.defaultCalendar = parentStatement.connection.defaultCalendar;

jdbc-v2/src/main/java/com/clickhouse/jdbc/internal/JdbcUtils.java

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import com.clickhouse.client.api.data_formats.internal.BinaryStreamReader;
44
import com.clickhouse.data.ClickHouseDataType;
55
import com.clickhouse.jdbc.types.Array;
6+
import com.google.common.collect.ImmutableMap;
67

78
import java.net.Inet4Address;
89
import java.net.Inet6Address;
@@ -27,7 +28,7 @@
2728

2829
public class JdbcUtils {
2930
//Define a map to store the mapping between ClickHouse data types and SQL data types
30-
private static final Map<ClickHouseDataType, SQLType> CLICKHOUSE_TO_SQL_TYPE_MAP = generateTypeMap();
31+
public static final Map<ClickHouseDataType, SQLType> CLICKHOUSE_TO_SQL_TYPE_MAP = generateTypeMap();
3132

3233
public static final Map<String, SQLType> CLICKHOUSE_TYPE_NAME_TO_SQL_TYPE_MAP = Collections.unmodifiableMap(generateTypeMap().entrySet()
3334
.stream().collect(
@@ -72,10 +73,10 @@ private static Map<ClickHouseDataType, SQLType> generateTypeMap() {
7273
map.put(ClickHouseDataType.LineString, JDBCType.OTHER);
7374
map.put(ClickHouseDataType.MultiPolygon, JDBCType.OTHER);
7475
map.put(ClickHouseDataType.MultiLineString, JDBCType.OTHER);
75-
return map;
76+
return ImmutableMap.copyOf(map);
7677
}
7778

78-
private static final Map<SQLType, Class<?>> SQL_TYPE_TO_CLASS_MAP = generateClassMap();
79+
public static final Map<SQLType, Class<?>> SQL_TYPE_TO_CLASS_MAP = generateClassMap();
7980
private static Map<SQLType, Class<?>> generateClassMap() {
8081
Map<SQLType, Class<?>> map = new HashMap<>();
8182
map.put(JDBCType.CHAR, String.class);
@@ -112,6 +113,16 @@ private static Map<SQLType, Class<?>> generateClassMap() {
112113
map.put(JDBCType.LONGNVARCHAR, String.class);
113114
map.put(JDBCType.NCLOB, java.sql.NClob.class);
114115
map.put(JDBCType.SQLXML, java.sql.SQLXML.class);
116+
return ImmutableMap.copyOf(map);
117+
}
118+
119+
public static final Map<ClickHouseDataType, Class<?>> DATA_TYPE_CLASS_MAP = getDataTypeClassMap();
120+
private static Map<ClickHouseDataType, Class<?>> getDataTypeClassMap() {
121+
Map<ClickHouseDataType, Class<?>> map = new HashMap<>();
122+
for (Map.Entry<ClickHouseDataType, SQLType> e : CLICKHOUSE_TO_SQL_TYPE_MAP.entrySet()) {
123+
map.put(e.getKey(), SQL_TYPE_TO_CLASS_MAP.get(e.getValue()));
124+
}
125+
115126
return map;
116127
}
117128

@@ -124,7 +135,7 @@ public static SQLType convertToSqlType(ClickHouseDataType clickhouseType) {
124135
}
125136

126137
public static Class<?> convertToJavaClass(ClickHouseDataType clickhouseType) {
127-
return SQL_TYPE_TO_CLASS_MAP.get(convertToSqlType(clickhouseType));
138+
return DATA_TYPE_CLASS_MAP.get(clickhouseType);
128139
}
129140

130141
public static List<String> tokenizeSQL(String sql) {

jdbc-v2/src/main/java/com/clickhouse/jdbc/internal/MetadataResultSet.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public MetadataResultSet(ResultSetImpl resultSet) throws SQLException {
2525
this.overridingSchemaAdaptor = new OverridingSchemaAdaptor(resultSet.getSchema());
2626
this.setMetaData(new ResultSetMetaDataImpl(overridingSchemaAdaptor.getColumns(),
2727
overridingSchemaAdaptor.getDatabaseName(), "",
28-
overridingSchemaAdaptor.getTableName(), Collections.emptyMap()));
28+
overridingSchemaAdaptor.getTableName(), JdbcUtils.DATA_TYPE_CLASS_MAP));
2929
ResultSetMetaData metaData = getMetaData();
3030
int count = metaData.getColumnCount();
3131
cachedColumnLabels = new String[count];

jdbc-v2/src/main/java/com/clickhouse/jdbc/metadata/ParameterMetaDataImpl.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@
1313
*/
1414
public class ParameterMetaDataImpl implements ParameterMetaData, JdbcV2Wrapper {
1515

16+
private static final int FAIL_SAFE_PRECISION = 0;
17+
18+
private static final int FAIL_SAFE_SCALE = 0;
19+
1620
private final int paramCount;
1721

1822
public ParameterMetaDataImpl(int paramCount) {
@@ -63,7 +67,7 @@ public boolean isSigned(int param) throws SQLException {
6367
@Override
6468
public int getPrecision(int param) throws SQLException {
6569
checkParamIndex(param);
66-
return 0;
70+
return FAIL_SAFE_PRECISION;
6771
}
6872

6973
/**
@@ -75,7 +79,7 @@ public int getPrecision(int param) throws SQLException {
7579
@Override
7680
public int getScale(int param) throws SQLException {
7781
checkParamIndex(param);
78-
return 0;
82+
return FAIL_SAFE_SCALE;
7983
}
8084

8185
/**

jdbc-v2/src/test/java/com/clickhouse/jdbc/metadata/ResultSetMetaDataImplTest.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,18 @@
33
import com.clickhouse.jdbc.JdbcIntegrationTest;
44
import org.testng.annotations.Test;
55

6+
import java.math.BigInteger;
67
import java.sql.Connection;
8+
import java.sql.DatabaseMetaData;
79
import java.sql.ResultSet;
810
import java.sql.ResultSetMetaData;
911
import java.sql.Statement;
1012
import java.sql.Types;
1113

1214
import static org.testng.Assert.assertEquals;
15+
import static org.testng.Assert.assertFalse;
16+
import static org.testng.Assert.assertThrows;
17+
import static org.testng.Assert.assertTrue;
1318

1419

1520
public class ResultSetMetaDataImplTest extends JdbcIntegrationTest {
@@ -53,9 +58,21 @@ public void testGetColumnTypeIntegers() throws Exception {
5358
ResultSet rs = stmt.executeQuery("SELECT toInt8(1), toInt16(1), toInt32(1), toInt64(1) AS a");
5459
ResultSetMetaData rsmd = rs.getMetaData();
5560
assertEquals(rsmd.getColumnType(1), Types.TINYINT);
61+
assertEquals(rsmd.getColumnClassName(1), Integer.class.getName());
5662
assertEquals(rsmd.getColumnType(2), Types.SMALLINT);
63+
assertEquals(rsmd.getColumnClassName(2), Integer.class.getName());
5764
assertEquals(rsmd.getColumnType(3), Types.INTEGER);
65+
assertEquals(rsmd.getColumnClassName(3), Integer.class.getName());
5866
assertEquals(rsmd.getColumnType(4), Types.BIGINT);
67+
assertEquals(rsmd.getColumnClassName(4), Long.class.getName());
68+
69+
for (int i = 1; i <= rsmd.getColumnCount(); i++) {
70+
assertTrue(rsmd.isCaseSensitive(i));
71+
assertFalse(rsmd.isCurrency(i));
72+
assertEquals(rsmd.isNullable(i), ResultSetMetaData.columnNoNulls);
73+
assertTrue(rsmd.isSearchable(i));
74+
assertTrue(rsmd.isSigned(i));
75+
}
5976
}
6077
}
6178
}

0 commit comments

Comments
 (0)