From 292877de0e6146dfe9c1f07ce20129d7b89faa31 Mon Sep 17 00:00:00 2001 From: Clint Wylie Date: Tue, 10 Nov 2020 19:57:39 -0800 Subject: [PATCH] modify access to protected SQLMetadataConnector methods to allow extensions to create SQL metadata tables using implementation specific constructs (payload type, serial type, etc) --- .../storage/sqlserver/SQLServerConnector.java | 6 +++--- .../metadata/storage/mysql/MySQLConnector.java | 8 ++++---- .../storage/postgresql/PostgreSQLConnector.java | 6 +++--- .../druid/metadata/SQLMetadataConnector.java | 17 +++++------------ .../metadata/storage/derby/DerbyConnector.java | 4 ++-- .../metadata/SQLMetadataConnectorTest.java | 4 ++-- 6 files changed, 19 insertions(+), 26 deletions(-) diff --git a/extensions-contrib/sqlserver-metadata-storage/src/main/java/org/apache/druid/metadata/storage/sqlserver/SQLServerConnector.java b/extensions-contrib/sqlserver-metadata-storage/src/main/java/org/apache/druid/metadata/storage/sqlserver/SQLServerConnector.java index 152501dc3c4c..d44e3489ae82 100644 --- a/extensions-contrib/sqlserver-metadata-storage/src/main/java/org/apache/druid/metadata/storage/sqlserver/SQLServerConnector.java +++ b/extensions-contrib/sqlserver-metadata-storage/src/main/java/org/apache/druid/metadata/storage/sqlserver/SQLServerConnector.java @@ -179,13 +179,13 @@ public RewrittenStatement rewrite(String sql, Binding params, StatementContext c } @Override - protected String getPayloadType() + public String getPayloadType() { return PAYLOAD_TYPE; } @Override - protected String getSerialType() + public String getSerialType() { return SERIAL_TYPE; } @@ -197,7 +197,7 @@ public String getQuoteString() } @Override - protected int getStreamingFetchSize() + public int getStreamingFetchSize() { return DEFAULT_STREAMING_RESULT_SIZE; } diff --git a/extensions-core/mysql-metadata-storage/src/main/java/org/apache/druid/metadata/storage/mysql/MySQLConnector.java b/extensions-core/mysql-metadata-storage/src/main/java/org/apache/druid/metadata/storage/mysql/MySQLConnector.java index f7fc37db1309..715a7f2b36dd 100644 --- a/extensions-core/mysql-metadata-storage/src/main/java/org/apache/druid/metadata/storage/mysql/MySQLConnector.java +++ b/extensions-core/mysql-metadata-storage/src/main/java/org/apache/druid/metadata/storage/mysql/MySQLConnector.java @@ -148,19 +148,19 @@ public MySQLConnector( } @Override - protected String getPayloadType() + public String getPayloadType() { return PAYLOAD_TYPE; } @Override - protected String getSerialType() + public String getSerialType() { return SERIAL_TYPE; } @Override - protected String getCollation() + public String getCollation() { return COLLATION; } @@ -172,7 +172,7 @@ public String getQuoteString() } @Override - protected int getStreamingFetchSize() + public int getStreamingFetchSize() { // this is MySQL's way of indicating you want results streamed back // see http://dev.mysql.com/doc/connector-j/5.1/en/connector-j-reference-implementation-notes.html diff --git a/extensions-core/postgresql-metadata-storage/src/main/java/org/apache/druid/metadata/storage/postgresql/PostgreSQLConnector.java b/extensions-core/postgresql-metadata-storage/src/main/java/org/apache/druid/metadata/storage/postgresql/PostgreSQLConnector.java index 0c5c4d0751d2..b48639bea409 100644 --- a/extensions-core/postgresql-metadata-storage/src/main/java/org/apache/druid/metadata/storage/postgresql/PostgreSQLConnector.java +++ b/extensions-core/postgresql-metadata-storage/src/main/java/org/apache/druid/metadata/storage/postgresql/PostgreSQLConnector.java @@ -121,13 +121,13 @@ public PostgreSQLConnector( } @Override - protected String getPayloadType() + public String getPayloadType() { return PAYLOAD_TYPE; } @Override - protected String getSerialType() + public String getSerialType() { return SERIAL_TYPE; } @@ -139,7 +139,7 @@ public String getQuoteString() } @Override - protected int getStreamingFetchSize() + public int getStreamingFetchSize() { return DEFAULT_STREAMING_RESULT_SIZE; } diff --git a/server/src/main/java/org/apache/druid/metadata/SQLMetadataConnector.java b/server/src/main/java/org/apache/druid/metadata/SQLMetadataConnector.java index e3cfe299b2b1..1e193886b8d9 100644 --- a/server/src/main/java/org/apache/druid/metadata/SQLMetadataConnector.java +++ b/server/src/main/java/org/apache/druid/metadata/SQLMetadataConnector.java @@ -71,14 +71,7 @@ public SQLMetadataConnector( { this.config = config; this.tablesConfigSupplier = tablesConfigSupplier; - this.shouldRetry = new Predicate() - { - @Override - public boolean apply(Throwable e) - { - return isTransientException(e); - } - }; + this.shouldRetry = this::isTransientException; } /** @@ -90,7 +83,7 @@ public boolean apply(Throwable e) * * @return String representing the SQL type */ - protected String getPayloadType() + public String getPayloadType() { return PAYLOAD_TYPE; } @@ -100,7 +93,7 @@ protected String getPayloadType() * * @return the collation for the character set */ - protected String getCollation() + public String getCollation() { return COLLATION; } @@ -114,7 +107,7 @@ protected String getCollation() * * @return String representing the SQL type and auto-increment statement */ - protected abstract String getSerialType(); + public abstract String getSerialType(); /** * Returns the value that should be passed to statement.setFetchSize to ensure results @@ -122,7 +115,7 @@ protected String getCollation() * * @return optimal fetch size to stream results back */ - protected abstract int getStreamingFetchSize(); + public abstract int getStreamingFetchSize(); /** * @return the string that should be used to quote string fields diff --git a/server/src/main/java/org/apache/druid/metadata/storage/derby/DerbyConnector.java b/server/src/main/java/org/apache/druid/metadata/storage/derby/DerbyConnector.java index 0bf3df8f305c..989d0decf3db 100644 --- a/server/src/main/java/org/apache/druid/metadata/storage/derby/DerbyConnector.java +++ b/server/src/main/java/org/apache/druid/metadata/storage/derby/DerbyConnector.java @@ -84,7 +84,7 @@ public boolean tableExists(Handle handle, String tableName) } @Override - protected String getSerialType() + public String getSerialType() { return SERIAL_TYPE; } @@ -102,7 +102,7 @@ public DBI getDBI() } @Override - protected int getStreamingFetchSize() + public int getStreamingFetchSize() { // Derby only supports fetch size of 1 return 1; diff --git a/server/src/test/java/org/apache/druid/metadata/SQLMetadataConnectorTest.java b/server/src/test/java/org/apache/druid/metadata/SQLMetadataConnectorTest.java index a6c756b66717..9c55a252b92d 100644 --- a/server/src/test/java/org/apache/druid/metadata/SQLMetadataConnectorTest.java +++ b/server/src/test/java/org/apache/druid/metadata/SQLMetadataConnectorTest.java @@ -159,13 +159,13 @@ public TestSQLMetadataConnector( } @Override - protected String getSerialType() + public String getSerialType() { return null; } @Override - protected int getStreamingFetchSize() + public int getStreamingFetchSize() { return 0; }