This is an automated email from the ASF dual-hosted git repository.
jackietien pushed a commit to branch ty/mysql-connector
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/ty/mysql-connector by this
push:
new 31da5272b21 move to udf-library
31da5272b21 is described below
commit 31da5272b216529ac0b9c2ed63a1b66d7b361743
Author: JackieTien97 <[email protected]>
AuthorDate: Fri Jun 27 16:07:41 2025 +0800
move to udf-library
---
.../udf/api/exception/CloseFailedInExternalDB.java | 7 +++++
.../api/exception/ExecutionFailedInExternalDB.java | 7 +++++
.../java/org/apache/iotdb/rpc/TSStatusCode.java | 1 +
iotdb-core/datanode/pom.xml | 5 ----
.../fragment/FragmentInstanceManager.java | 10 +++++++
.../function/TableFunctionLeafOperator.java | 18 ++++++++++--
.../plan/planner/TableOperatorGenerator.java | 10 ++++++-
.../function/TableBuiltinTableFunction.java | 6 +---
library-udf/pom.xml | 16 +++++++++++
.../connector/JDBCConnectionPool.java | 32 +++++++++++-----------
.../connector/MySqlConnectorTableFunction.java | 32 ++++++++++------------
.../connector/converter/BinaryConverter.java | 2 +-
.../connector/converter/BlobConverter.java | 2 +-
.../connector/converter/BooleanConverter.java | 2 +-
.../connector/converter/DateConverter.java | 2 +-
.../connector/converter/DoubleConverter.java | 2 +-
.../connector/converter/FloatConverter.java | 2 +-
.../connector/converter/Int32Converter.java | 2 +-
.../connector/converter/Int64Converter.java | 2 +-
.../connector/converter/ResultSetConverter.java | 2 +-
.../connector/converter/StringConverter.java | 2 +-
.../connector/converter/TimeConverter.java | 2 +-
.../connector/converter/TimestampConverter.java | 2 +-
23 files changed, 110 insertions(+), 58 deletions(-)
diff --git
a/iotdb-api/udf-api/src/main/java/org/apache/iotdb/udf/api/exception/CloseFailedInExternalDB.java
b/iotdb-api/udf-api/src/main/java/org/apache/iotdb/udf/api/exception/CloseFailedInExternalDB.java
new file mode 100644
index 00000000000..52e2c1cd609
--- /dev/null
+++
b/iotdb-api/udf-api/src/main/java/org/apache/iotdb/udf/api/exception/CloseFailedInExternalDB.java
@@ -0,0 +1,7 @@
+package org.apache.iotdb.udf.api.exception;
+
+public class CloseFailedInExternalDB extends UDFException {
+ public CloseFailedInExternalDB(String externalDB, Throwable throwable) {
+ super(String.format("Close connection failed in %s.", externalDB),
throwable);
+ }
+}
diff --git
a/iotdb-api/udf-api/src/main/java/org/apache/iotdb/udf/api/exception/ExecutionFailedInExternalDB.java
b/iotdb-api/udf-api/src/main/java/org/apache/iotdb/udf/api/exception/ExecutionFailedInExternalDB.java
new file mode 100644
index 00000000000..971742360d9
--- /dev/null
+++
b/iotdb-api/udf-api/src/main/java/org/apache/iotdb/udf/api/exception/ExecutionFailedInExternalDB.java
@@ -0,0 +1,7 @@
+package org.apache.iotdb.udf.api.exception;
+
+public class ExecutionFailedInExternalDB extends UDFException {
+ public ExecutionFailedInExternalDB(String externalDB, Throwable throwable) {
+ super(String.format("Execution failed in %s.", externalDB), throwable);
+ }
+}
diff --git
a/iotdb-client/service-rpc/src/main/java/org/apache/iotdb/rpc/TSStatusCode.java
b/iotdb-client/service-rpc/src/main/java/org/apache/iotdb/rpc/TSStatusCode.java
index da5f18578ea..73908f97995 100644
---
a/iotdb-client/service-rpc/src/main/java/org/apache/iotdb/rpc/TSStatusCode.java
+++
b/iotdb-client/service-rpc/src/main/java/org/apache/iotdb/rpc/TSStatusCode.java
@@ -223,6 +223,7 @@ public enum TSStatusCode {
DROP_UDF_ON_DATANODE_ERROR(1203),
CREATE_UDF_ERROR(1204),
DROP_UDF_ERROR(1205),
+ EXECUTE_UDF_ERROR(1206),
// Trigger
CREATE_TRIGGER_ERROR(1300),
diff --git a/iotdb-core/datanode/pom.xml b/iotdb-core/datanode/pom.xml
index c0ae646b895..0a4d9418916 100644
--- a/iotdb-core/datanode/pom.xml
+++ b/iotdb-core/datanode/pom.xml
@@ -313,11 +313,6 @@
<groupId>org.java-websocket</groupId>
<artifactId>Java-WebSocket</artifactId>
</dependency>
- <dependency>
- <groupId>com.mysql</groupId>
- <artifactId>mysql-connector-j</artifactId>
- <version>${mysql.jdbc.version}</version>
- </dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/fragment/FragmentInstanceManager.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/fragment/FragmentInstanceManager.java
index c8fded6e2a8..89d50ce0264 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/fragment/FragmentInstanceManager.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/fragment/FragmentInstanceManager.java
@@ -27,6 +27,7 @@ import org.apache.iotdb.commons.exception.IoTDBException;
import org.apache.iotdb.commons.exception.IoTDBRuntimeException;
import org.apache.iotdb.commons.exception.QueryTimeoutException;
import org.apache.iotdb.db.conf.IoTDBDescriptor;
+import org.apache.iotdb.db.exception.sql.SemanticException;
import org.apache.iotdb.db.queryengine.common.FragmentInstanceId;
import org.apache.iotdb.db.queryengine.common.QueryId;
import org.apache.iotdb.db.queryengine.execution.driver.IDriver;
@@ -44,6 +45,9 @@ import
org.apache.iotdb.db.schemaengine.schemaregion.ISchemaRegion;
import org.apache.iotdb.db.storageengine.dataregion.IDataRegionForQuery;
import org.apache.iotdb.db.utils.SetThreadName;
import org.apache.iotdb.mpp.rpc.thrift.TFetchFragmentInstanceStatisticsResp;
+import org.apache.iotdb.rpc.TSStatusCode;
+import org.apache.iotdb.udf.api.exception.UDFException;
+import org.apache.iotdb.udf.api.exception.UDFTypeMismatchException;
import io.airlift.units.Duration;
import org.slf4j.Logger;
@@ -198,6 +202,12 @@ public class FragmentInstanceManager {
TOO_MANY_CONCURRENT_QUERIES_ERROR.getStatusCode()));
} else if (t instanceof IoTDBRuntimeException) {
stateMachine.failed(t);
+ } else if (t instanceof UDFTypeMismatchException) {
+ stateMachine.failed(new SemanticException(t.getMessage()));
+ } else if (t instanceof UDFException) {
+ stateMachine.failed(
+ new IoTDBRuntimeException(
+ t.getMessage(),
TSStatusCode.EXECUTE_UDF_ERROR.getStatusCode(), true));
} else {
logger.warn("error when create
FragmentInstanceExecution.", t);
stateMachine.failed(t);
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/function/TableFunctionLeafOperator.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/function/TableFunctionLeafOperator.java
index fcce22ea0f4..76874b2f725 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/function/TableFunctionLeafOperator.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/function/TableFunctionLeafOperator.java
@@ -19,8 +19,12 @@
package org.apache.iotdb.db.queryengine.execution.operator.process.function;
+import org.apache.iotdb.commons.exception.IoTDBRuntimeException;
import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext;
import
org.apache.iotdb.db.queryengine.execution.operator.process.ProcessOperator;
+import org.apache.iotdb.rpc.TSStatusCode;
+import org.apache.iotdb.udf.api.exception.CloseFailedInExternalDB;
+import org.apache.iotdb.udf.api.exception.ExecutionFailedInExternalDB;
import
org.apache.iotdb.udf.api.relational.table.TableFunctionProcessorProvider;
import
org.apache.iotdb.udf.api.relational.table.processor.TableFunctionLeafProcessor;
@@ -61,7 +65,12 @@ public class TableFunctionLeafOperator implements
ProcessOperator {
@Override
public TsBlock next() throws Exception {
List<ColumnBuilder> columnBuilders = getOutputColumnBuilders();
- processor.process(columnBuilders);
+ try {
+ processor.process(columnBuilders);
+ } catch (ExecutionFailedInExternalDB e) {
+ throw new IoTDBRuntimeException(
+ e.getMessage(),
TSStatusCode.EXECUTION_FAILED_IN_EXTERNAL_DB.getStatusCode(), true);
+ }
return buildTsBlock(columnBuilders);
}
@@ -83,7 +92,12 @@ public class TableFunctionLeafOperator implements
ProcessOperator {
@Override
public void close() throws Exception {
- processor.beforeDestroy();
+ try {
+ processor.beforeDestroy();
+ } catch (CloseFailedInExternalDB e) {
+ throw new IoTDBRuntimeException(
+ e.getMessage(),
TSStatusCode.CLOSE_FAILED_IN_EXTERNAL_DB.getStatusCode(), true);
+ }
}
@Override
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/TableOperatorGenerator.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/TableOperatorGenerator.java
index 3ab89c139ee..f21336fba4b 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/TableOperatorGenerator.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/TableOperatorGenerator.java
@@ -22,6 +22,7 @@ package org.apache.iotdb.db.queryengine.plan.planner;
import org.apache.iotdb.common.rpc.thrift.TEndPoint;
import org.apache.iotdb.commons.conf.CommonDescriptor;
import org.apache.iotdb.commons.exception.IllegalPathException;
+import org.apache.iotdb.commons.exception.IoTDBRuntimeException;
import org.apache.iotdb.commons.path.AlignedFullPath;
import org.apache.iotdb.commons.path.NonAlignedFullPath;
import org.apache.iotdb.commons.path.PartialPath;
@@ -227,6 +228,8 @@ import
org.apache.iotdb.db.schemaengine.schemaregion.read.resp.info.IDeviceSchem
import org.apache.iotdb.db.schemaengine.table.DataNodeTableCache;
import org.apache.iotdb.db.schemaengine.table.DataNodeTreeViewSchemaUtils;
import org.apache.iotdb.db.utils.datastructure.SortKey;
+import org.apache.iotdb.rpc.TSStatusCode;
+import org.apache.iotdb.udf.api.exception.ExecutionFailedInExternalDB;
import org.apache.iotdb.udf.api.relational.TableFunction;
import
org.apache.iotdb.udf.api.relational.table.TableFunctionProcessorProvider;
@@ -3140,7 +3143,12 @@ public class TableOperatorGenerator extends
PlanVisitor<Operator, LocalExecution
context.getNextOperatorId(),
node.getPlanNodeId(),
TableFunctionLeafOperator.class.getSimpleName());
- return new TableFunctionLeafOperator(operatorContext, processorProvider,
outputDataTypes);
+ try {
+ return new TableFunctionLeafOperator(operatorContext,
processorProvider, outputDataTypes);
+ } catch (ExecutionFailedInExternalDB e) {
+ throw new IoTDBRuntimeException(
+ e.getMessage(),
TSStatusCode.EXECUTION_FAILED_IN_EXTERNAL_DB.getStatusCode(), true);
+ }
} else {
Operator operator = node.getChild().accept(this, context);
OperatorContext operatorContext =
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/TableBuiltinTableFunction.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/TableBuiltinTableFunction.java
index bd19dc636f3..4a07f9a0c7b 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/TableBuiltinTableFunction.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/TableBuiltinTableFunction.java
@@ -26,7 +26,6 @@ import
org.apache.iotdb.commons.udf.builtin.relational.tvf.SessionTableFunction;
import org.apache.iotdb.commons.udf.builtin.relational.tvf.TumbleTableFunction;
import
org.apache.iotdb.commons.udf.builtin.relational.tvf.VariationTableFunction;
import
org.apache.iotdb.db.queryengine.plan.relational.function.tvf.ForecastTableFunction;
-import
org.apache.iotdb.db.queryengine.plan.relational.function.tvf.connector.MySqlConnectorTableFunction;
import org.apache.iotdb.udf.api.relational.TableFunction;
import java.util.Arrays;
@@ -41,8 +40,7 @@ public enum TableBuiltinTableFunction {
SESSION("session"),
VARIATION("variation"),
CAPACITY("capacity"),
- FORECAST("forecast"),
- MYSQL_CONNECTOR("mysql_connector");
+ FORECAST("forecast");
private final String functionName;
@@ -84,8 +82,6 @@ public enum TableBuiltinTableFunction {
return new CapacityTableFunction();
case "forecast":
return new ForecastTableFunction();
- case "mysql_connector":
- return new MySqlConnectorTableFunction();
default:
throw new UnsupportedOperationException("Unsupported table function: "
+ functionName);
}
diff --git a/library-udf/pom.xml b/library-udf/pom.xml
index def22af948e..f51d839ca59 100644
--- a/library-udf/pom.xml
+++ b/library-udf/pom.xml
@@ -38,6 +38,16 @@
<artifactId>common</artifactId>
<version>${tsfile.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.tsfile</groupId>
+ <artifactId>tsfile-java</artifactId>
+ <version>${tsfile.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.mysql</groupId>
+ <artifactId>mysql-connector-j</artifactId>
+ <version>${mysql.jdbc.version}</version>
+ </dependency>
<dependency>
<groupId>org.apache.iotdb</groupId>
<artifactId>udf-api</artifactId>
@@ -77,6 +87,12 @@
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.tsfile</groupId>
+ <artifactId>tsfile</artifactId>
+ <version>2.1.0-250622-SNAPSHOT</version>
+ <scope>compile</scope>
+ </dependency>
</dependencies>
<profiles>
<profile>
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/connector/JDBCConnectionPool.java
b/library-udf/src/main/java/org/apache/iotdb/library/relational/tablefunction/connector/JDBCConnectionPool.java
similarity index 67%
rename from
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/connector/JDBCConnectionPool.java
rename to
library-udf/src/main/java/org/apache/iotdb/library/relational/tablefunction/connector/JDBCConnectionPool.java
index 612d548079f..dc29befab9a 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/connector/JDBCConnectionPool.java
+++
b/library-udf/src/main/java/org/apache/iotdb/library/relational/tablefunction/connector/JDBCConnectionPool.java
@@ -1,18 +1,18 @@
-package org.apache.iotdb.db.queryengine.plan.relational.function.tvf.connector;
+package org.apache.iotdb.library.relational.tablefunction.connector;
-import org.apache.iotdb.db.exception.sql.SemanticException;
-import
org.apache.iotdb.db.queryengine.plan.relational.function.tvf.connector.converter.BinaryConverter;
-import
org.apache.iotdb.db.queryengine.plan.relational.function.tvf.connector.converter.BlobConverter;
-import
org.apache.iotdb.db.queryengine.plan.relational.function.tvf.connector.converter.BooleanConverter;
-import
org.apache.iotdb.db.queryengine.plan.relational.function.tvf.connector.converter.DateConverter;
-import
org.apache.iotdb.db.queryengine.plan.relational.function.tvf.connector.converter.DoubleConverter;
-import
org.apache.iotdb.db.queryengine.plan.relational.function.tvf.connector.converter.FloatConverter;
-import
org.apache.iotdb.db.queryengine.plan.relational.function.tvf.connector.converter.Int32Converter;
-import
org.apache.iotdb.db.queryengine.plan.relational.function.tvf.connector.converter.Int64Converter;
-import
org.apache.iotdb.db.queryengine.plan.relational.function.tvf.connector.converter.ResultSetConverter;
-import
org.apache.iotdb.db.queryengine.plan.relational.function.tvf.connector.converter.StringConverter;
-import
org.apache.iotdb.db.queryengine.plan.relational.function.tvf.connector.converter.TimeConverter;
-import
org.apache.iotdb.db.queryengine.plan.relational.function.tvf.connector.converter.TimestampConverter;
+import
org.apache.iotdb.library.relational.tablefunction.connector.converter.BinaryConverter;
+import
org.apache.iotdb.library.relational.tablefunction.connector.converter.BlobConverter;
+import
org.apache.iotdb.library.relational.tablefunction.connector.converter.BooleanConverter;
+import
org.apache.iotdb.library.relational.tablefunction.connector.converter.DateConverter;
+import
org.apache.iotdb.library.relational.tablefunction.connector.converter.DoubleConverter;
+import
org.apache.iotdb.library.relational.tablefunction.connector.converter.FloatConverter;
+import
org.apache.iotdb.library.relational.tablefunction.connector.converter.Int32Converter;
+import
org.apache.iotdb.library.relational.tablefunction.connector.converter.Int64Converter;
+import
org.apache.iotdb.library.relational.tablefunction.connector.converter.ResultSetConverter;
+import
org.apache.iotdb.library.relational.tablefunction.connector.converter.StringConverter;
+import
org.apache.iotdb.library.relational.tablefunction.connector.converter.TimeConverter;
+import
org.apache.iotdb.library.relational.tablefunction.connector.converter.TimestampConverter;
+import org.apache.iotdb.udf.api.exception.UDFTypeMismatchException;
import org.apache.iotdb.udf.api.type.Type;
import org.slf4j.Logger;
@@ -78,7 +78,7 @@ public class JDBCConnectionPool {
case java.sql.Types.BOOLEAN:
return Type.BOOLEAN;
default:
- throw new SemanticException("Unsupported JDBC type: " + type);
+ throw new UDFTypeMismatchException("Unsupported JDBC type: " + type);
}
}
@@ -119,7 +119,7 @@ public class JDBCConnectionPool {
case java.sql.Types.BOOLEAN:
return new BooleanConverter();
default:
- throw new SemanticException("Unsupported JDBC type: " + type);
+ throw new UDFTypeMismatchException("Unsupported JDBC type: " + type);
}
}
}
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/connector/MySqlConnectorTableFunction.java
b/library-udf/src/main/java/org/apache/iotdb/library/relational/tablefunction/connector/MySqlConnectorTableFunction.java
similarity index 87%
rename from
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/connector/MySqlConnectorTableFunction.java
rename to
library-udf/src/main/java/org/apache/iotdb/library/relational/tablefunction/connector/MySqlConnectorTableFunction.java
index 2fe02b72bdd..d7745e545d9 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/connector/MySqlConnectorTableFunction.java
+++
b/library-udf/src/main/java/org/apache/iotdb/library/relational/tablefunction/connector/MySqlConnectorTableFunction.java
@@ -1,9 +1,8 @@
-package org.apache.iotdb.db.queryengine.plan.relational.function.tvf.connector;
+package org.apache.iotdb.library.relational.tablefunction.connector;
-import org.apache.iotdb.commons.exception.IoTDBRuntimeException;
-import org.apache.iotdb.db.exception.sql.SemanticException;
-import
org.apache.iotdb.db.queryengine.plan.relational.function.tvf.connector.converter.ResultSetConverter;
-import org.apache.iotdb.rpc.TSStatusCode;
+import
org.apache.iotdb.library.relational.tablefunction.connector.converter.ResultSetConverter;
+import org.apache.iotdb.udf.api.exception.CloseFailedInExternalDB;
+import org.apache.iotdb.udf.api.exception.ExecutionFailedInExternalDB;
import org.apache.iotdb.udf.api.exception.UDFException;
import org.apache.iotdb.udf.api.relational.TableFunction;
import org.apache.iotdb.udf.api.relational.table.TableFunctionAnalysis;
@@ -36,9 +35,7 @@ import java.util.Arrays;
import java.util.List;
import java.util.Map;
-import static
org.apache.iotdb.db.queryengine.plan.relational.function.tvf.connector.JDBCConnectionPool.translateJDBCTypeToUDFType;
-import static org.apache.iotdb.rpc.TSStatusCode.CLOSE_FAILED_IN_EXTERNAL_DB;
-import static
org.apache.iotdb.rpc.TSStatusCode.EXECUTION_FAILED_IN_EXTERNAL_DB;
+import static
org.apache.iotdb.library.relational.tablefunction.connector.JDBCConnectionPool.translateJDBCTypeToUDFType;
public class MySqlConnectorTableFunction implements TableFunction {
@@ -83,11 +80,10 @@ public class MySqlConnectorTableFunction implements
TableFunction {
outputStream.flush();
return publicBAOS.toByteArray();
} catch (IOException e) {
- throw new IoTDBRuntimeException(
+ throw new UDFException(
String.format(
"Error occurred while serializing
MySqlConnectorTableFunctionHandle: %s",
- e.getMessage()),
- TSStatusCode.INTERNAL_SERVER_ERROR.getStatusCode());
+ e.getMessage()));
}
}
@@ -107,11 +103,13 @@ public class MySqlConnectorTableFunction implements
TableFunction {
private static final String SQL = "SQL";
private static final String URL = "URL";
- private static final String DEFAULT_URL = "jdbc:mysql://localhost:3306";
+ private static final String DEFAULT_URL =
+ "jdbc:mysql://localhost:3306?allowPublicKeyRetrieval=true";
private static final String USERNAME = "USERNAME";
private static final String DEFAULT_USERNAME = "root";
private static final String PASSWORD = "PASSWORD";
- private static final String DEFAULT_PASSWORD = "root";
+ private static final String DEFAULT_PASSWORD = "iotdb2025";
+ private static final String MYSQL = "MYSQL";
@Override
public List<ParameterSpecification> getArgumentsSpecifications() {
@@ -154,7 +152,7 @@ public class MySqlConnectorTableFunction implements
TableFunction {
types[i - 1] = type;
}
} catch (SQLException e) {
- throw new SemanticException(e);
+ throw new UDFException("Get ResultSetMetaData failed.", e);
}
MySqlConnectorTableFunctionHandle handle =
new MySqlConnectorTableFunctionHandle(sql, url, userName, password,
types);
@@ -205,7 +203,7 @@ public class MySqlConnectorTableFunction implements
TableFunction {
this.statement = connection.createStatement();
this.resultSet = statement.executeQuery(handle.sql);
} catch (SQLException e) {
- throw new IoTDBRuntimeException(e,
EXECUTION_FAILED_IN_EXTERNAL_DB.getStatusCode(), true);
+ throw new ExecutionFailedInExternalDB(MYSQL, e);
}
}
@@ -227,7 +225,7 @@ public class MySqlConnectorTableFunction implements
TableFunction {
}
}
} catch (SQLException e) {
- throw new IoTDBRuntimeException(e,
EXECUTION_FAILED_IN_EXTERNAL_DB.getStatusCode(), true);
+ throw new ExecutionFailedInExternalDB(MYSQL, e);
}
}
@@ -249,7 +247,7 @@ public class MySqlConnectorTableFunction implements
TableFunction {
connection.close();
}
} catch (SQLException e) {
- throw new IoTDBRuntimeException(e,
CLOSE_FAILED_IN_EXTERNAL_DB.getStatusCode(), true);
+ throw new CloseFailedInExternalDB(MYSQL, e);
}
}
}
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/connector/converter/BinaryConverter.java
b/library-udf/src/main/java/org/apache/iotdb/library/relational/tablefunction/connector/converter/BinaryConverter.java
similarity index 85%
rename from
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/connector/converter/BinaryConverter.java
rename to
library-udf/src/main/java/org/apache/iotdb/library/relational/tablefunction/connector/converter/BinaryConverter.java
index 8742244da0c..2109bb4fe76 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/connector/converter/BinaryConverter.java
+++
b/library-udf/src/main/java/org/apache/iotdb/library/relational/tablefunction/connector/converter/BinaryConverter.java
@@ -1,4 +1,4 @@
-package
org.apache.iotdb.db.queryengine.plan.relational.function.tvf.connector.converter;
+package org.apache.iotdb.library.relational.tablefunction.connector.converter;
import org.apache.tsfile.block.column.ColumnBuilder;
import org.apache.tsfile.utils.Binary;
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/connector/converter/BlobConverter.java
b/library-udf/src/main/java/org/apache/iotdb/library/relational/tablefunction/connector/converter/BlobConverter.java
similarity index 86%
rename from
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/connector/converter/BlobConverter.java
rename to
library-udf/src/main/java/org/apache/iotdb/library/relational/tablefunction/connector/converter/BlobConverter.java
index 7445d370600..aee1a6f0531 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/connector/converter/BlobConverter.java
+++
b/library-udf/src/main/java/org/apache/iotdb/library/relational/tablefunction/connector/converter/BlobConverter.java
@@ -1,4 +1,4 @@
-package
org.apache.iotdb.db.queryengine.plan.relational.function.tvf.connector.converter;
+package org.apache.iotdb.library.relational.tablefunction.connector.converter;
import org.apache.tsfile.block.column.ColumnBuilder;
import org.apache.tsfile.utils.Binary;
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/connector/converter/BooleanConverter.java
b/library-udf/src/main/java/org/apache/iotdb/library/relational/tablefunction/connector/converter/BooleanConverter.java
similarity index 84%
rename from
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/connector/converter/BooleanConverter.java
rename to
library-udf/src/main/java/org/apache/iotdb/library/relational/tablefunction/connector/converter/BooleanConverter.java
index 00b9edbea68..7f2dee686b6 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/connector/converter/BooleanConverter.java
+++
b/library-udf/src/main/java/org/apache/iotdb/library/relational/tablefunction/connector/converter/BooleanConverter.java
@@ -1,4 +1,4 @@
-package
org.apache.iotdb.db.queryengine.plan.relational.function.tvf.connector.converter;
+package org.apache.iotdb.library.relational.tablefunction.connector.converter;
import org.apache.tsfile.block.column.ColumnBuilder;
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/connector/converter/DateConverter.java
b/library-udf/src/main/java/org/apache/iotdb/library/relational/tablefunction/connector/converter/DateConverter.java
similarity index 87%
rename from
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/connector/converter/DateConverter.java
rename to
library-udf/src/main/java/org/apache/iotdb/library/relational/tablefunction/connector/converter/DateConverter.java
index c4bfd8798c4..7bf55f61a62 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/connector/converter/DateConverter.java
+++
b/library-udf/src/main/java/org/apache/iotdb/library/relational/tablefunction/connector/converter/DateConverter.java
@@ -1,4 +1,4 @@
-package
org.apache.iotdb.db.queryengine.plan.relational.function.tvf.connector.converter;
+package org.apache.iotdb.library.relational.tablefunction.connector.converter;
import org.apache.tsfile.block.column.ColumnBuilder;
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/connector/converter/DoubleConverter.java
b/library-udf/src/main/java/org/apache/iotdb/library/relational/tablefunction/connector/converter/DoubleConverter.java
similarity index 84%
rename from
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/connector/converter/DoubleConverter.java
rename to
library-udf/src/main/java/org/apache/iotdb/library/relational/tablefunction/connector/converter/DoubleConverter.java
index 9c6fcc07d5f..de62bd64be6 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/connector/converter/DoubleConverter.java
+++
b/library-udf/src/main/java/org/apache/iotdb/library/relational/tablefunction/connector/converter/DoubleConverter.java
@@ -1,4 +1,4 @@
-package
org.apache.iotdb.db.queryengine.plan.relational.function.tvf.connector.converter;
+package org.apache.iotdb.library.relational.tablefunction.connector.converter;
import org.apache.tsfile.block.column.ColumnBuilder;
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/connector/converter/FloatConverter.java
b/library-udf/src/main/java/org/apache/iotdb/library/relational/tablefunction/connector/converter/FloatConverter.java
similarity index 84%
rename from
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/connector/converter/FloatConverter.java
rename to
library-udf/src/main/java/org/apache/iotdb/library/relational/tablefunction/connector/converter/FloatConverter.java
index 4be85a509f7..6f0628b795c 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/connector/converter/FloatConverter.java
+++
b/library-udf/src/main/java/org/apache/iotdb/library/relational/tablefunction/connector/converter/FloatConverter.java
@@ -1,4 +1,4 @@
-package
org.apache.iotdb.db.queryengine.plan.relational.function.tvf.connector.converter;
+package org.apache.iotdb.library.relational.tablefunction.connector.converter;
import org.apache.tsfile.block.column.ColumnBuilder;
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/connector/converter/Int32Converter.java
b/library-udf/src/main/java/org/apache/iotdb/library/relational/tablefunction/connector/converter/Int32Converter.java
similarity index 84%
rename from
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/connector/converter/Int32Converter.java
rename to
library-udf/src/main/java/org/apache/iotdb/library/relational/tablefunction/connector/converter/Int32Converter.java
index a36f82390e3..ec9d78fd49c 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/connector/converter/Int32Converter.java
+++
b/library-udf/src/main/java/org/apache/iotdb/library/relational/tablefunction/connector/converter/Int32Converter.java
@@ -1,4 +1,4 @@
-package
org.apache.iotdb.db.queryengine.plan.relational.function.tvf.connector.converter;
+package org.apache.iotdb.library.relational.tablefunction.connector.converter;
import org.apache.tsfile.block.column.ColumnBuilder;
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/connector/converter/Int64Converter.java
b/library-udf/src/main/java/org/apache/iotdb/library/relational/tablefunction/connector/converter/Int64Converter.java
similarity index 84%
rename from
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/connector/converter/Int64Converter.java
rename to
library-udf/src/main/java/org/apache/iotdb/library/relational/tablefunction/connector/converter/Int64Converter.java
index 27369c6a11f..1bc740f5afd 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/connector/converter/Int64Converter.java
+++
b/library-udf/src/main/java/org/apache/iotdb/library/relational/tablefunction/connector/converter/Int64Converter.java
@@ -1,4 +1,4 @@
-package
org.apache.iotdb.db.queryengine.plan.relational.function.tvf.connector.converter;
+package org.apache.iotdb.library.relational.tablefunction.connector.converter;
import org.apache.tsfile.block.column.ColumnBuilder;
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/connector/converter/ResultSetConverter.java
b/library-udf/src/main/java/org/apache/iotdb/library/relational/tablefunction/connector/converter/ResultSetConverter.java
similarity index 74%
rename from
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/connector/converter/ResultSetConverter.java
rename to
library-udf/src/main/java/org/apache/iotdb/library/relational/tablefunction/connector/converter/ResultSetConverter.java
index 47638ca1927..618c16c70bb 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/connector/converter/ResultSetConverter.java
+++
b/library-udf/src/main/java/org/apache/iotdb/library/relational/tablefunction/connector/converter/ResultSetConverter.java
@@ -1,4 +1,4 @@
-package
org.apache.iotdb.db.queryengine.plan.relational.function.tvf.connector.converter;
+package org.apache.iotdb.library.relational.tablefunction.connector.converter;
import org.apache.tsfile.block.column.ColumnBuilder;
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/connector/converter/StringConverter.java
b/library-udf/src/main/java/org/apache/iotdb/library/relational/tablefunction/connector/converter/StringConverter.java
similarity index 87%
rename from
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/connector/converter/StringConverter.java
rename to
library-udf/src/main/java/org/apache/iotdb/library/relational/tablefunction/connector/converter/StringConverter.java
index 8d74d457a37..6e833b60113 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/connector/converter/StringConverter.java
+++
b/library-udf/src/main/java/org/apache/iotdb/library/relational/tablefunction/connector/converter/StringConverter.java
@@ -1,4 +1,4 @@
-package
org.apache.iotdb.db.queryengine.plan.relational.function.tvf.connector.converter;
+package org.apache.iotdb.library.relational.tablefunction.connector.converter;
import org.apache.tsfile.block.column.ColumnBuilder;
import org.apache.tsfile.common.conf.TSFileConfig;
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/connector/converter/TimeConverter.java
b/library-udf/src/main/java/org/apache/iotdb/library/relational/tablefunction/connector/converter/TimeConverter.java
similarity index 88%
rename from
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/connector/converter/TimeConverter.java
rename to
library-udf/src/main/java/org/apache/iotdb/library/relational/tablefunction/connector/converter/TimeConverter.java
index dc83dddb19f..7e110b53530 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/connector/converter/TimeConverter.java
+++
b/library-udf/src/main/java/org/apache/iotdb/library/relational/tablefunction/connector/converter/TimeConverter.java
@@ -1,4 +1,4 @@
-package
org.apache.iotdb.db.queryengine.plan.relational.function.tvf.connector.converter;
+package org.apache.iotdb.library.relational.tablefunction.connector.converter;
import org.apache.iotdb.db.utils.TimestampPrecisionUtils;
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/connector/converter/TimestampConverter.java
b/library-udf/src/main/java/org/apache/iotdb/library/relational/tablefunction/connector/converter/TimestampConverter.java
similarity index 88%
rename from
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/connector/converter/TimestampConverter.java
rename to
library-udf/src/main/java/org/apache/iotdb/library/relational/tablefunction/connector/converter/TimestampConverter.java
index 96ff79a452c..3329220216c 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/connector/converter/TimestampConverter.java
+++
b/library-udf/src/main/java/org/apache/iotdb/library/relational/tablefunction/connector/converter/TimestampConverter.java
@@ -1,4 +1,4 @@
-package
org.apache.iotdb.db.queryengine.plan.relational.function.tvf.connector.converter;
+package org.apache.iotdb.library.relational.tablefunction.connector.converter;
import org.apache.iotdb.db.utils.TimestampPrecisionUtils;