[NO ISSUE][JDBC] Relax access modifiers
- user model changes: no
- storage format changes: no
- interface changes: yes
Change-Id: Id42a8f548d950ede71d6f112993fafeeda2e8331
Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb-clients/+/13703
Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Reviewed-by: Dmitry Lychagin <dmitry.lychagin@couchbase.com>
Reviewed-by: Ian Maxon <imaxon@uci.edu>
diff --git a/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBColumn.java b/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBColumn.java
index eb2de01..45799fa 100644
--- a/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBColumn.java
+++ b/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBColumn.java
@@ -21,7 +21,7 @@
import java.util.Objects;
-final class ADBColumn {
+public class ADBColumn {
private final String name;
@@ -29,21 +29,21 @@
private final boolean optional;
- ADBColumn(String name, ADBDatatype type, boolean optional) {
+ public ADBColumn(String name, ADBDatatype type, boolean optional) {
this.name = Objects.requireNonNull(name);
this.type = Objects.requireNonNull(type);
this.optional = optional || type.isNullOrMissing() || type == ADBDatatype.ANY;
}
- String getName() {
+ public String getName() {
return name;
}
- ADBDatatype getType() {
+ public ADBDatatype getType() {
return type;
}
- boolean isOptional() {
+ public boolean isOptional() {
return optional;
}
diff --git a/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBConnection.java b/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBConnection.java
index c9d78f7..23b98af 100644
--- a/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBConnection.java
+++ b/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBConnection.java
@@ -48,12 +48,12 @@
public class ADBConnection extends ADBWrapperSupport implements Connection {
- final ADBProtocolBase protocol;
- final String url;
- final String databaseVersion;
- final ADBDriverProperty.CatalogDataverseMode catalogDataverseMode;
- final boolean catalogIncludesSchemaless;
- final boolean sqlCompatMode;
+ protected final ADBProtocolBase protocol;
+ protected final String url;
+ protected final String databaseVersion;
+ protected final ADBDriverProperty.CatalogDataverseMode catalogDataverseMode;
+ protected final boolean catalogIncludesSchemaless;
+ protected final boolean sqlCompatMode;
private final AtomicBoolean closed;
private final ConcurrentLinkedQueue<ADBStatement> statements;
private volatile SQLWarning warning;
@@ -63,7 +63,7 @@
// Lifecycle
- protected ADBConnection(ADBProtocolBase protocol, String url, String databaseVersion, String dataverseCanonicalName,
+ public ADBConnection(ADBProtocolBase protocol, String url, String databaseVersion, String dataverseCanonicalName,
Map<ADBDriverProperty, Object> properties, SQLWarning connectWarning) throws SQLException {
this.url = Objects.requireNonNull(url);
this.protocol = Objects.requireNonNull(protocol);
@@ -78,7 +78,7 @@
initCatalogSchema(protocol, dataverseCanonicalName);
}
- private void initCatalogSchema(ADBProtocolBase protocol, String dataverseCanonicalName) throws SQLException {
+ protected void initCatalogSchema(ADBProtocolBase protocol, String dataverseCanonicalName) throws SQLException {
switch (catalogDataverseMode) {
case CATALOG:
catalog = dataverseCanonicalName == null || dataverseCanonicalName.isEmpty()
@@ -126,7 +126,7 @@
closeImpl(executor);
}
- void closeImpl(Executor executor) throws SQLException {
+ protected void closeImpl(Executor executor) throws SQLException {
boolean wasClosed = closed.getAndSet(true);
if (wasClosed) {
return;
@@ -146,7 +146,7 @@
}
}
- private void closeStatementsAndProtocol() throws SQLException {
+ protected void closeStatementsAndProtocol() throws SQLException {
SQLException err = null;
try {
closeRegisteredStatements();
@@ -267,7 +267,7 @@
}
}
- private ADBStatement createStatementImpl() {
+ protected ADBStatement createStatementImpl() {
ADBStatement stmt = new ADBStatement(this);
registerStatement(stmt);
return stmt;
@@ -364,7 +364,7 @@
this.schema = schema;
}
- String getDataverseCanonicalName() {
+ protected String getDataverseCanonicalName() {
switch (catalogDataverseMode) {
case CATALOG:
return catalog;
@@ -377,7 +377,7 @@
}
}
- private static ADBDriverProperty.CatalogDataverseMode getCatalogDataverseMode(
+ protected static ADBDriverProperty.CatalogDataverseMode getCatalogDataverseMode(
Map<ADBDriverProperty, Object> properties, ADBErrorReporter errorReporter) throws SQLException {
int mode = ((Number) ADBDriverProperty.Common.CATALOG_DATAVERSE_MODE.fetchPropertyValue(properties)).intValue();
try {
diff --git a/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBDatabaseMetaData.java b/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBDatabaseMetaData.java
index 3e8cfc4..81e42eb 100644
--- a/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBDatabaseMetaData.java
+++ b/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBDatabaseMetaData.java
@@ -26,20 +26,20 @@
import java.sql.SQLException;
import java.util.Objects;
-final class ADBDatabaseMetaData extends ADBWrapperSupport implements DatabaseMetaData {
+public class ADBDatabaseMetaData extends ADBWrapperSupport implements DatabaseMetaData {
/*
* See org.apache.asterix.metadata.utils.MetadataConstants.METADATA_OBJECT_NAME_LENGTH_LIMIT_UTF8
*/
private static final int METADATA_OBJECT_NAME_LENGTH_LIMIT_UTF8 = 251;
- private final ADBMetaStatement metaStatement;
+ protected final ADBMetaStatement metaStatement;
- private final String databaseVersionText;
+ protected final String databaseVersionText;
private volatile ADBProductVersion databaseVersion;
- ADBDatabaseMetaData(ADBMetaStatement metaStatement, String databaseVersionText) {
+ public ADBDatabaseMetaData(ADBMetaStatement metaStatement, String databaseVersionText) {
this.metaStatement = Objects.requireNonNull(metaStatement);
this.databaseVersionText = databaseVersionText;
}
@@ -48,22 +48,22 @@
@Override
public String getDriverName() {
- return metaStatement.connection.protocol.getDriverContext().getDriverVersion().productName;
+ return metaStatement.connection.protocol.getDriverContext().getDriverVersion().getProductName();
}
@Override
public String getDriverVersion() {
- return metaStatement.connection.protocol.getDriverContext().getDriverVersion().productVersion;
+ return metaStatement.connection.protocol.getDriverContext().getDriverVersion().getProductVersion();
}
@Override
public int getDriverMajorVersion() {
- return metaStatement.connection.protocol.getDriverContext().getDriverVersion().majorVersion;
+ return metaStatement.connection.protocol.getDriverContext().getDriverVersion().getMajorVersion();
}
@Override
public int getDriverMinorVersion() {
- return metaStatement.connection.protocol.getDriverContext().getDriverVersion().minorVersion;
+ return metaStatement.connection.protocol.getDriverContext().getDriverVersion().getMinorVersion();
}
@Override
@@ -80,25 +80,25 @@
@Override
public String getDatabaseProductName() {
- return getDatabaseVersion().productName;
+ return getDatabaseVersion().getProductName();
}
@Override
public String getDatabaseProductVersion() {
- return getDatabaseVersion().productVersion;
+ return getDatabaseVersion().getProductVersion();
}
@Override
public int getDatabaseMajorVersion() {
- return getDatabaseVersion().majorVersion;
+ return getDatabaseVersion().getMajorVersion();
}
@Override
public int getDatabaseMinorVersion() {
- return getDatabaseVersion().minorVersion;
+ return getDatabaseVersion().getMinorVersion();
}
- private ADBProductVersion getDatabaseVersion() {
+ protected ADBProductVersion getDatabaseVersion() {
ADBProductVersion result = databaseVersion;
if (result == null) {
databaseVersion = result = ADBProductVersion.parseDatabaseVersion(databaseVersionText);
@@ -136,11 +136,11 @@
}
//TODO:document
- private boolean supportsCatalogsInStatements() {
+ protected boolean supportsCatalogsInStatements() {
return false;
}
- private boolean supportsSchemasInStatements() {
+ protected boolean supportsSchemasInStatements() {
return false;
}
@@ -509,7 +509,6 @@
@Override
public String getTimeDateFunctions() {
- // TODO:review
return "current_date,current_time,current_datetime";
}
diff --git a/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBDatatype.java b/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBDatatype.java
index e6634b5..b2482a2 100644
--- a/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBDatatype.java
+++ b/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBDatatype.java
@@ -25,7 +25,7 @@
import java.util.Map;
import java.util.Objects;
-enum ADBDatatype {
+public enum ADBDatatype {
TINYINT(1, "int8", JDBCType.TINYINT, Byte.class),
SMALLINT(2, "int16", JDBCType.SMALLINT, Short.class),
INTEGER(3, "int32", JDBCType.INTEGER, Integer.class),
@@ -98,19 +98,19 @@
this.javaClass = Objects.requireNonNull(javaClass);
}
- byte getTypeTag() {
+ public byte getTypeTag() {
return typeTag;
}
- String getTypeName() {
+ public String getTypeName() {
return typeName;
}
- JDBCType getJdbcType() {
+ public JDBCType getJdbcType() {
return jdbcType;
}
- Class<?> getJavaClass() {
+ public Class<?> getJavaClass() {
return javaClass;
}
@@ -119,15 +119,15 @@
return getTypeName();
}
- boolean isDerived() {
+ public boolean isDerived() {
return this == OBJECT || isList();
}
- boolean isList() {
+ public boolean isList() {
return this == ARRAY || this == MULTISET;
}
- boolean isNullOrMissing() {
+ public boolean isNullOrMissing() {
return this == NULL || this == MISSING;
}
@@ -162,7 +162,7 @@
return maxTypeTag;
}
- static String getDerivedRecordName(ADBDatatype type) {
+ public static String getDerivedRecordName(ADBDatatype type) {
switch (type) {
case OBJECT:
return "Record";
diff --git a/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBDriverBase.java b/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBDriverBase.java
index 9524b1c..ce4f336 100644
--- a/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBDriverBase.java
+++ b/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBDriverBase.java
@@ -53,7 +53,7 @@
protected final int defaultApiPort;
- protected volatile ADBDriverContext context;
+ private volatile ADBDriverContext context;
public ADBDriverBase(String driverScheme, int defaultApiPort) {
this.urlScheme = JDBC_SCHEME + Objects.requireNonNull(driverScheme);
@@ -68,7 +68,7 @@
}
}
- private static void parseConnectionProperties(Properties inProps, ADBDriverContext driverContext,
+ protected static void parseConnectionProperties(Properties inProps, ADBDriverContext driverContext,
Map<ADBDriverProperty, Object> outProperties, SQLWarning outWarning) throws SQLException {
if (inProps != null) {
for (Enumeration<?> en = inProps.propertyNames(); en.hasMoreElements();) {
@@ -79,7 +79,7 @@
}
}
- private static void parseConnectionProperty(String name, String textValue, ADBDriverContext driverContext,
+ protected static void parseConnectionProperty(String name, String textValue, ADBDriverContext driverContext,
Map<ADBDriverProperty, Object> outProperties, SQLWarning outWarning) throws SQLException {
ADBDriverProperty property = driverContext.getSupportedProperties().get(name);
if (property == null) {
@@ -191,11 +191,11 @@
}
public int getMajorVersion() {
- return getOrCreateDriverContext().getDriverVersion().majorVersion;
+ return getOrCreateDriverContext().getDriverVersion().getMajorVersion();
}
public int getMinorVersion() {
- return getOrCreateDriverContext().getDriverVersion().minorVersion;
+ return getOrCreateDriverContext().getDriverVersion().getMinorVersion();
}
public boolean jdbcCompliant() {
diff --git a/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBMetaStatement.java b/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBMetaStatement.java
index 0e2f53d..4525062 100644
--- a/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBMetaStatement.java
+++ b/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBMetaStatement.java
@@ -40,7 +40,7 @@
private static final String PK_NAME_SUFFIX = "_pk";
private static final String FK_NAME_SUFFIX = "_fk";
- protected ADBMetaStatement(ADBConnection connection) {
+ public ADBMetaStatement(ADBConnection connection) {
super(connection);
}
@@ -51,7 +51,7 @@
//sql.append("set `compiler.min.memory.allocation` 'false';\n");
}
- ADBResultSet executeGetCatalogsQuery() throws SQLException {
+ protected ADBResultSet executeGetCatalogsQuery() throws SQLException {
checkClosed();
StringBuilder sql = new StringBuilder(256);
@@ -78,7 +78,7 @@
return executeQueryImpl(sql.toString(), null);
}
- ADBResultSet executeGetSchemasQuery() throws SQLException {
+ protected ADBResultSet executeGetSchemasQuery() throws SQLException {
String catalog;
switch (connection.catalogDataverseMode) {
case CATALOG:
@@ -93,11 +93,12 @@
return executeGetSchemasQuery(catalog, null, "0");
}
- ADBResultSet executeGetSchemasQuery(String catalog, String schemaPattern) throws SQLException {
+ protected ADBResultSet executeGetSchemasQuery(String catalog, String schemaPattern) throws SQLException {
return executeGetSchemasQuery(catalog, schemaPattern, "1");
}
- ADBResultSet executeGetSchemasQuery(String catalog, String schemaPattern, String tag) throws SQLException {
+ protected ADBResultSet executeGetSchemasQuery(String catalog, String schemaPattern, String tag)
+ throws SQLException {
checkClosed();
StringBuilder sql = new StringBuilder(512);
@@ -132,8 +133,8 @@
return executeQueryImpl(sql.toString(), Arrays.asList(catalog, schemaPattern));
}
- ADBResultSet executeGetTablesQuery(String catalog, String schemaPattern, String tableNamePattern, String[] types)
- throws SQLException {
+ protected ADBResultSet executeGetTablesQuery(String catalog, String schemaPattern, String tableNamePattern,
+ String[] types) throws SQLException {
checkClosed();
String datasetTermTabular = getDatasetTerm(true);
@@ -203,7 +204,7 @@
return executeQueryImpl(sql.toString(), Arrays.asList(typesList, catalog, schemaPattern, tableNamePattern));
}
- ADBResultSet executeGetColumnsQuery(String catalog, String schemaPattern, String tableNamePattern,
+ protected ADBResultSet executeGetColumnsQuery(String catalog, String schemaPattern, String tableNamePattern,
String columnNamePattern) throws SQLException {
checkClosed();
@@ -293,7 +294,7 @@
Arrays.asList(catalog, schemaPattern, tableNamePattern, columnNamePattern));
}
- ADBResultSet executeGetPrimaryKeysQuery(String catalog, String schema, String table) throws SQLException {
+ protected ADBResultSet executeGetPrimaryKeysQuery(String catalog, String schema, String table) throws SQLException {
checkClosed();
StringBuilder sql = new StringBuilder(1024);
@@ -353,17 +354,19 @@
return executeQueryImpl(sql.toString(), Arrays.asList(catalog, schema, table));
}
- ADBResultSet executeGetImportedKeysQuery(String catalog, String schema, String table) throws SQLException {
+ protected ADBResultSet executeGetImportedKeysQuery(String catalog, String schema, String table)
+ throws SQLException {
return executeGetImportedExportedKeysQuery("JDBC-GetImportedKeys", null, null, null, catalog, schema, table,
false);
}
- ADBResultSet executeGetExportedKeysQuery(String catalog, String schema, String table) throws SQLException {
+ protected ADBResultSet executeGetExportedKeysQuery(String catalog, String schema, String table)
+ throws SQLException {
return executeGetImportedExportedKeysQuery("JDBC-GetExportedKeys", catalog, schema, table, null, null, null,
true);
}
- ADBResultSet executeCrossReferenceQuery(String parentCatalog, String parentSchema, String parentTable,
+ protected ADBResultSet executeCrossReferenceQuery(String parentCatalog, String parentSchema, String parentTable,
String foreignCatalog, String foreignSchema, String foreignTable) throws SQLException {
return executeGetImportedExportedKeysQuery("JDBC-CrossReference", parentCatalog, parentSchema, parentTable,
foreignCatalog, foreignSchema, foreignTable, true);
@@ -462,7 +465,7 @@
Arrays.asList(pkCatalog, pkSchema, pkTable, fkCatalog, fkSchema, fkTable));
}
- ADBResultSet executeGetTableTypesQuery() throws SQLException {
+ protected ADBResultSet executeGetTableTypesQuery() throws SQLException {
checkClosed();
LinkedHashSet<String> tableTypes = new LinkedHashSet<>();
@@ -485,7 +488,7 @@
return createSystemResultSet(columns, result);
}
- ADBResultSet executeGetTypeInfoQuery() throws SQLException {
+ protected ADBResultSet executeGetTypeInfoQuery() throws SQLException {
checkClosed();
AbstractValueSerializer int16Ser = getADMFormatSerializer(Short.class);
@@ -550,7 +553,7 @@
return createSystemResultSet(columns, result);
}
- private void populateTypeInfo(ObjectNode typeInfo, ADBDatatype type, int precision, Integer precisionRadix,
+ protected void populateTypeInfo(ObjectNode typeInfo, ADBDatatype type, int precision, Integer precisionRadix,
Integer minScale, Integer maxScale, Boolean searchable, String literalPrefix, String literalSuffix,
ADBPreparedStatement.AbstractValueSerializer int16Ser,
ADBPreparedStatement.AbstractValueSerializer int32Ser,
@@ -577,13 +580,13 @@
typeInfo.put("NUM_PREC_RADIX", int32Ser.serializeToString(precisionRadix != null ? precisionRadix : 10));
}
- ADBResultSet executeEmptyResultQuery() throws SQLException {
+ protected ADBResultSet executeEmptyResultQuery() throws SQLException {
checkClosed();
return createEmptyResultSet();
}
@Override
- ADBStatement getResultSetStatement(ADBResultSet rs) {
+ protected ADBStatement getResultSetStatement(ADBResultSet rs) {
return null;
}
diff --git a/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBParameterMetaData.java b/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBParameterMetaData.java
index d612b3f..a42def1 100644
--- a/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBParameterMetaData.java
+++ b/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBParameterMetaData.java
@@ -23,11 +23,11 @@
import java.sql.Types;
import java.util.Objects;
-final class ADBParameterMetaData extends ADBWrapperSupport implements ParameterMetaData {
+public class ADBParameterMetaData extends ADBWrapperSupport implements ParameterMetaData {
- final ADBPreparedStatement statement;
+ protected final ADBPreparedStatement statement;
- final int parameterCount;
+ protected final int parameterCount;
public ADBParameterMetaData(ADBPreparedStatement statement, int parameterCount) {
this.statement = Objects.requireNonNull(statement);
diff --git a/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBPreparedStatement.java b/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBPreparedStatement.java
index c95d462..7a6d5af 100644
--- a/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBPreparedStatement.java
+++ b/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBPreparedStatement.java
@@ -41,15 +41,15 @@
import java.util.Collections;
import java.util.List;
-final class ADBPreparedStatement extends ADBStatement implements PreparedStatement {
+public class ADBPreparedStatement extends ADBStatement implements PreparedStatement {
- final String sql;
+ protected final String sql;
- final List<Object> args;
+ protected final List<Object> args;
- final List<ADBColumn> resultColumns;
+ protected final List<ADBColumn> resultColumns;
- ADBPreparedStatement(ADBConnection connection, String sql) throws SQLException {
+ public ADBPreparedStatement(ADBConnection connection, String sql) throws SQLException {
super(connection);
ADBProtocolBase.SubmitStatementOptions stmtOptions = createSubmitStatementOptions();
stmtOptions.compileOnly = true;
diff --git a/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBProductVersion.java b/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBProductVersion.java
index 5255d75..a49a209 100644
--- a/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBProductVersion.java
+++ b/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBProductVersion.java
@@ -22,29 +22,45 @@
import java.util.regex.Matcher;
import java.util.regex.Pattern;
-final class ADBProductVersion {
+public class ADBProductVersion {
public static final String ASTERIXDB = "Apache AsterixDB";
private static final Pattern DATABASE_VERSION_PATTERN =
Pattern.compile("(?<name>[^/]+)(?:/(?<ver>(?:(?<vermj>\\d+)(?:\\.(?<vermn>\\d+))?)?.*))?");
- final String productName;
+ private final String productName;
- final String productVersion;
+ private final String productVersion;
- final int majorVersion;
+ private final int majorVersion;
- final int minorVersion;
+ private final int minorVersion;
- private ADBProductVersion(String productName, String productVersion, int majorVersion, int minorVersion) {
+ public ADBProductVersion(String productName, String productVersion, int majorVersion, int minorVersion) {
this.productName = productName != null ? productName : ASTERIXDB;
this.productVersion = productVersion != null ? productVersion : majorVersion + "." + minorVersion;
this.majorVersion = majorVersion;
this.minorVersion = minorVersion;
}
- static ADBProductVersion parseDriverVersion(Package driverPackage) {
+ public String getProductName() {
+ return productName;
+ }
+
+ public String getProductVersion() {
+ return productVersion;
+ }
+
+ public int getMajorVersion() {
+ return majorVersion;
+ }
+
+ public int getMinorVersion() {
+ return minorVersion;
+ }
+
+ public static ADBProductVersion parseDriverVersion(Package driverPackage) {
int majorVersion = 0, minorVersion = 0;
String productName = driverPackage.getImplementationTitle();
if (productName == null) {
@@ -65,7 +81,7 @@
return new ADBProductVersion(productName, productVersion, majorVersion, minorVersion);
}
- static ADBProductVersion parseDatabaseVersion(String serverVersion) {
+ public static ADBProductVersion parseDatabaseVersion(String serverVersion) {
String dbProductName = null;
String dbProductVersion = null;
int dbMajorVersion = 0;
diff --git a/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBResultSet.java b/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBResultSet.java
index 8ba5b83..1d46b4e 100644
--- a/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBResultSet.java
+++ b/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBResultSet.java
@@ -53,7 +53,7 @@
import com.fasterxml.jackson.core.JsonToken;
import com.fasterxml.jackson.databind.ObjectReader;
-final class ADBResultSet extends ADBWrapperSupport implements java.sql.ResultSet {
+public class ADBResultSet extends ADBWrapperSupport implements java.sql.ResultSet {
static final int RESULT_SET_HOLDABILITY = HOLD_CURSORS_OVER_COMMIT;
@@ -80,7 +80,8 @@
// Lifecycle
- ADBResultSet(ADBResultSetMetaData metadata, JsonParser rowParser, boolean rowParserOwnsResources, long maxRows) {
+ public ADBResultSet(ADBResultSetMetaData metadata, JsonParser rowParser, boolean rowParserOwnsResources,
+ long maxRows) {
this.metadata = Objects.requireNonNull(metadata);
this.rowParser = Objects.requireNonNull(rowParser);
this.rowParserOwnsResources = rowParserOwnsResources;
diff --git a/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBResultSetMetaData.java b/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBResultSetMetaData.java
index 67dd217..8e2cb01 100644
--- a/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBResultSetMetaData.java
+++ b/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBResultSetMetaData.java
@@ -27,7 +27,7 @@
import java.util.Map;
import java.util.Objects;
-final class ADBResultSetMetaData extends ADBWrapperSupport implements ResultSetMetaData {
+public class ADBResultSetMetaData extends ADBWrapperSupport implements ResultSetMetaData {
final ADBStatement statement;
@@ -35,7 +35,7 @@
private final Map<String, Integer> indexByName;
- ADBResultSetMetaData(ADBStatement statement, List<ADBColumn> columns) {
+ public ADBResultSetMetaData(ADBStatement statement, List<ADBColumn> columns) {
this.statement = Objects.requireNonNull(statement);
this.columns = columns != null ? columns : Collections.emptyList();
this.indexByName = createIndexByName(this.columns);
diff --git a/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBRowStore.java b/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBRowStore.java
index ad9d691..ed6995d 100644
--- a/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBRowStore.java
+++ b/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBRowStore.java
@@ -64,7 +64,7 @@
import com.fasterxml.jackson.databind.deser.BeanDeserializerModifier;
import com.fasterxml.jackson.databind.module.SimpleModule;
-final class ADBRowStore {
+public final class ADBRowStore {
static final char TEXT_DELIMITER = ':';
private static final String ROW_STORE_ATTR_NAME = ADBRowStore.class.getSimpleName();
@@ -95,7 +95,7 @@
private JsonGenerator jsonGen;
private StringWriter jsonGenBuffer;
- ADBRowStore(ADBResultSet resultSet, int initialColumnCount) {
+ public ADBRowStore(ADBResultSet resultSet, int initialColumnCount) {
this.resultSet = Objects.requireNonNull(resultSet);
columnTypes = new ADBDatatype[initialColumnCount];
objectStore = new Object[initialColumnCount];
diff --git a/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBStatement.java b/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBStatement.java
index ce706a4..6eea813 100644
--- a/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBStatement.java
+++ b/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBStatement.java
@@ -63,7 +63,7 @@
import com.fasterxml.jackson.databind.node.ArrayNode;
import com.fasterxml.jackson.databind.ser.BeanSerializerModifier;
-class ADBStatement extends ADBWrapperSupport implements java.sql.Statement {
+public class ADBStatement extends ADBWrapperSupport implements java.sql.Statement {
static final List<Class<?>> SET_OBJECT_ATOMIC_EXTRA =
Arrays.asList(SqlCalendarDate.class, SqlCalendarTime.class, SqlCalendarTimestamp.class);
@@ -75,7 +75,7 @@
protected final ADBConnection connection;
protected final AtomicBoolean closed = new AtomicBoolean(false);
- protected volatile boolean closeOnCompletion;
+ private volatile boolean closeOnCompletion;
protected int queryTimeoutSeconds;
protected long maxRows;
@@ -95,7 +95,7 @@
// Lifecycle
- ADBStatement(ADBConnection connection) {
+ public ADBStatement(ADBConnection connection) {
this.connection = Objects.requireNonNull(connection);
this.resultSetsWithResources = new ConcurrentLinkedQueue<>();
this.resultSetsWithoutResources = new ConcurrentLinkedQueue<>();
@@ -107,7 +107,7 @@
closeImpl(true, true);
}
- void closeImpl(boolean closeResultSets, boolean notifyConnection) throws SQLException {
+ protected void closeImpl(boolean closeResultSets, boolean notifyConnection) throws SQLException {
boolean wasClosed = closed.getAndSet(true);
if (wasClosed) {
return;
@@ -406,7 +406,7 @@
// ResultSet lifecycle
- private ADBResultSet fetchResultSet(ADBProtocolBase.QueryServiceResponse execResponse) throws SQLException {
+ protected ADBResultSet fetchResultSet(ADBProtocolBase.QueryServiceResponse execResponse) throws SQLException {
List<ADBColumn> columns = connection.protocol.getColumns(execResponse);
if (getLogger().isLoggable(Level.FINER)) {
getLogger().log(Level.FINE, "result schema " + columns);
@@ -432,7 +432,7 @@
return createSystemResultSet(Collections.emptyList(), empty);
}
- private ADBResultSet createResultSetImpl(List<ADBColumn> columns, JsonParser rowParser,
+ protected ADBResultSet createResultSetImpl(List<ADBColumn> columns, JsonParser rowParser,
boolean rowParserOwnsResources, long maxRows) {
ADBResultSetMetaData metadata = new ADBResultSetMetaData(this, columns);
ADBResultSet rs = new ADBResultSet(metadata, rowParser, rowParserOwnsResources, maxRows);
@@ -440,7 +440,7 @@
return rs;
}
- private void registerResultSet(ADBResultSet rs) {
+ protected void registerResultSet(ADBResultSet rs) {
if (rs.rowParserOwnsResources) {
resultSetsWithResources.add(rs);
} else {
@@ -470,7 +470,7 @@
}
}
- private void closeRegisteredResultSets() throws SQLException {
+ protected void closeRegisteredResultSets() throws SQLException {
SQLException err = null;
try {
closedRegisteredResultSetsImpl(resultSetsWithResources, Function.identity());
@@ -490,7 +490,7 @@
}
}
- private <T> void closedRegisteredResultSetsImpl(Queue<T> queue, Function<T, ADBResultSet> rsAccessor)
+ protected <T> void closedRegisteredResultSetsImpl(Queue<T> queue, Function<T, ADBResultSet> rsAccessor)
throws SQLException {
SQLException err = null;
T item;
@@ -643,15 +643,15 @@
// Serialization
- static void configureADMFormatSerialization(SimpleModule serdeModule) {
+ protected static void configureADMFormatSerialization(SimpleModule serdeModule) {
serdeModule.setSerializerModifier(createADMFormatSerializerModifier());
}
- static AbstractValueSerializer getADMFormatSerializer(Class<?> cls) {
+ protected static AbstractValueSerializer getADMFormatSerializer(Class<?> cls) {
return SERIALIZER_MAP.get(cls);
}
- private static BeanSerializerModifier createADMFormatSerializerModifier() {
+ protected static BeanSerializerModifier createADMFormatSerializerModifier() {
return new BeanSerializerModifier() {
@Override
public JsonSerializer<?> modifySerializer(SerializationConfig config, BeanDescription beanDesc,
@@ -667,7 +667,7 @@
};
}
- static boolean isSetObjectCompatible(Class<?> cls) {
+ protected static boolean isSetObjectCompatible(Class<?> cls) {
if (ADBRowStore.OBJECT_ACCESSORS_ATOMIC.containsKey(cls) || SET_OBJECT_ATOMIC_EXTRA.contains(cls)) {
return true;
}
@@ -679,7 +679,7 @@
return false;
}
- private static Map<Class<?>, AbstractValueSerializer> createSerializerMap() {
+ protected static Map<Class<?>, AbstractValueSerializer> createSerializerMap() {
Map<Class<?>, AbstractValueSerializer> serializerMap = new HashMap<>();
registerSerializer(serializerMap, createGenericSerializer(Byte.class, ADBDatatype.TINYINT));
registerSerializer(serializerMap, createGenericSerializer(Short.class, ADBDatatype.SMALLINT));
@@ -703,12 +703,12 @@
return serializerMap;
}
- private static void registerSerializer(Map<Class<?>, AbstractValueSerializer> map,
+ protected static void registerSerializer(Map<Class<?>, AbstractValueSerializer> map,
AbstractValueSerializer serializer) {
map.put(serializer.getJavaType(), serializer);
}
- private static ATaggedValueSerializer createGenericSerializer(Class<?> javaType, ADBDatatype ADBDatatype) {
+ protected static ATaggedValueSerializer createGenericSerializer(Class<?> javaType, ADBDatatype ADBDatatype) {
return new ATaggedValueSerializer(javaType, ADBDatatype) {
@Override
protected void serializeNonTaggedValue(Object value, StringBuilder out) {
@@ -717,7 +717,7 @@
};
}
- private static AbstractValueSerializer createStringSerializer() {
+ protected static AbstractValueSerializer createStringSerializer() {
return new AbstractValueSerializer(java.lang.String.class) {
@Override
public void serialize(Object value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
@@ -731,7 +731,7 @@
};
}
- private static ATaggedValueSerializer createFloatSerializer() {
+ protected static ATaggedValueSerializer createFloatSerializer() {
return new ATaggedValueSerializer(Float.class, ADBDatatype.FLOAT) {
@Override
protected void serializeNonTaggedValue(Object value, StringBuilder out) {
@@ -741,7 +741,7 @@
};
}
- private static ATaggedValueSerializer createDoubleSerializer() {
+ protected static ATaggedValueSerializer createDoubleSerializer() {
return new ATaggedValueSerializer(Double.class, ADBDatatype.DOUBLE) {
@Override
protected void serializeNonTaggedValue(Object value, StringBuilder out) {
@@ -751,7 +751,7 @@
};
}
- private static ATaggedValueSerializer createSqlDateSerializer() {
+ protected static ATaggedValueSerializer createSqlDateSerializer() {
return new ATaggedValueSerializer(java.sql.Date.class, ADBDatatype.DATE) {
@Override
protected void serializeNonTaggedValue(Object value, StringBuilder out) {
@@ -763,7 +763,7 @@
};
}
- private static ATaggedValueSerializer createSqlDateWithCalendarSerializer() {
+ protected static ATaggedValueSerializer createSqlDateWithCalendarSerializer() {
return new ATaggedValueSerializer(SqlCalendarDate.class, ADBDatatype.DATE) {
@Override
protected void serializeNonTaggedValue(Object value, StringBuilder out) {
@@ -776,7 +776,7 @@
};
}
- private static ATaggedValueSerializer createLocalDateSerializer() {
+ protected static ATaggedValueSerializer createLocalDateSerializer() {
return new ATaggedValueSerializer(java.time.LocalDate.class, ADBDatatype.DATE) {
@Override
protected void serializeNonTaggedValue(Object value, StringBuilder out) {
@@ -786,7 +786,7 @@
};
}
- private static ATaggedValueSerializer createSqlTimeSerializer() {
+ protected static ATaggedValueSerializer createSqlTimeSerializer() {
return new ATaggedValueSerializer(java.sql.Time.class, ADBDatatype.TIME) {
@Override
protected void serializeNonTaggedValue(Object value, StringBuilder out) {
@@ -798,7 +798,7 @@
};
}
- private static ATaggedValueSerializer createSqlCalendarTimeSerializer() {
+ protected static ATaggedValueSerializer createSqlCalendarTimeSerializer() {
return new ATaggedValueSerializer(SqlCalendarTime.class, ADBDatatype.TIME) {
@Override
protected void serializeNonTaggedValue(Object value, StringBuilder out) {
@@ -811,7 +811,7 @@
};
}
- private static ATaggedValueSerializer createLocalTimeSerializer() {
+ protected static ATaggedValueSerializer createLocalTimeSerializer() {
return new ATaggedValueSerializer(java.time.LocalTime.class, ADBDatatype.TIME) {
@Override
protected void serializeNonTaggedValue(Object value, StringBuilder out) {
@@ -822,7 +822,7 @@
};
}
- private static ATaggedValueSerializer createSqlTimestampSerializer() {
+ protected static ATaggedValueSerializer createSqlTimestampSerializer() {
return new ATaggedValueSerializer(java.sql.Timestamp.class, ADBDatatype.DATETIME) {
@Override
protected void serializeNonTaggedValue(Object value, StringBuilder out) {
@@ -833,7 +833,7 @@
};
}
- private static ATaggedValueSerializer createSqlCalendarTimestampSerializer() {
+ protected static ATaggedValueSerializer createSqlCalendarTimestampSerializer() {
return new ATaggedValueSerializer(SqlCalendarTimestamp.class, ADBDatatype.DATETIME) {
@Override
protected void serializeNonTaggedValue(Object value, StringBuilder out) {
@@ -845,7 +845,7 @@
};
}
- private static ATaggedValueSerializer createLocalDateTimeSerializer() {
+ protected static ATaggedValueSerializer createLocalDateTimeSerializer() {
return new ATaggedValueSerializer(java.time.LocalDateTime.class, ADBDatatype.DATETIME) {
@Override
protected void serializeNonTaggedValue(Object value, StringBuilder out) {
@@ -855,7 +855,7 @@
};
}
- private static ATaggedValueSerializer createPeriodSerializer() {
+ protected static ATaggedValueSerializer createPeriodSerializer() {
return new ATaggedValueSerializer(java.time.Period.class, ADBDatatype.YEARMONTHDURATION) {
@Override
protected void serializeNonTaggedValue(Object value, StringBuilder out) {
@@ -865,7 +865,7 @@
};
}
- private static ATaggedValueSerializer createDurationSerializer() {
+ protected static ATaggedValueSerializer createDurationSerializer() {
return new ATaggedValueSerializer(java.time.Duration.class, ADBDatatype.DAYTIMEDURATION) {
@Override
protected void serializeNonTaggedValue(Object value, StringBuilder out) {
@@ -875,7 +875,7 @@
};
}
- static abstract class AbstractValueSerializer extends JsonSerializer<Object> {
+ protected static abstract class AbstractValueSerializer extends JsonSerializer<Object> {
protected final Class<?> javaType;
@@ -890,7 +890,7 @@
abstract String serializeToString(Object value);
}
- private static abstract class ATaggedValueSerializer extends AbstractValueSerializer {
+ protected static abstract class ATaggedValueSerializer extends AbstractValueSerializer {
protected static ZoneId TZ_UTC = ZoneId.of("UTC");
@@ -931,7 +931,7 @@
}
}
- static abstract class AbstractSqlCalendarDateTime {
+ protected static abstract class AbstractSqlCalendarDateTime {
final TimeZone timeZone;
AbstractSqlCalendarDateTime(TimeZone timeZone) {
@@ -939,7 +939,7 @@
}
}
- static final class SqlCalendarDate extends AbstractSqlCalendarDateTime {
+ protected static final class SqlCalendarDate extends AbstractSqlCalendarDateTime {
final Date date;
SqlCalendarDate(Date date, TimeZone timeZone) {
@@ -948,7 +948,7 @@
}
}
- static final class SqlCalendarTime extends AbstractSqlCalendarDateTime {
+ protected static final class SqlCalendarTime extends AbstractSqlCalendarDateTime {
final Time time;
SqlCalendarTime(Time time, TimeZone timeZone) {
@@ -957,7 +957,7 @@
}
}
- static final class SqlCalendarTimestamp extends AbstractSqlCalendarDateTime {
+ protected static final class SqlCalendarTimestamp extends AbstractSqlCalendarDateTime {
final Timestamp timestamp;
SqlCalendarTimestamp(Timestamp timestamp, TimeZone timeZone) {
diff --git a/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBWrapperSupport.java b/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBWrapperSupport.java
index 30cbfd0..032659b 100644
--- a/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBWrapperSupport.java
+++ b/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBWrapperSupport.java
@@ -22,7 +22,7 @@
import java.sql.SQLException;
import java.sql.Wrapper;
-abstract class ADBWrapperSupport implements Wrapper {
+public abstract class ADBWrapperSupport implements Wrapper {
@Override
public final boolean isWrapperFor(Class<?> iface) {