This is an automated email from the ASF dual-hosted git repository.

chenyz pushed a commit to branch udsf
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit 73215358b7eb81df29eca570cb4c84c712e994fc
Author: Chen YZ <[email protected]>
AuthorDate: Tue Nov 19 19:14:52 2024 +0800

    save
---
 .../plan/relational/sql/parser/AstBuilder.java         | 18 +++++++++++++++---
 1 file changed, 15 insertions(+), 3 deletions(-)

diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/parser/AstBuilder.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/parser/AstBuilder.java
index 85d5638a0b0..c079a00439a 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/parser/AstBuilder.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/parser/AstBuilder.java
@@ -45,6 +45,7 @@ import 
org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ColumnDefinition;
 import 
org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression;
 import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CountDevice;
 import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CreateDB;
+import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CreateFunction;
 import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CreateIndex;
 import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CreatePipe;
 import 
org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CreatePipePlugin;
@@ -60,6 +61,7 @@ import 
org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DescribeTable;
 import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DoubleLiteral;
 import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DropColumn;
 import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DropDB;
+import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DropFunction;
 import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DropIndex;
 import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DropPipe;
 import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DropPipePlugin;
@@ -130,6 +132,7 @@ import 
org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ShowCurrentUser;
 import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ShowDB;
 import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ShowDataNodes;
 import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ShowDevice;
+import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ShowFunctions;
 import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ShowIndex;
 import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ShowPipePlugins;
 import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ShowPipes;
@@ -163,6 +166,7 @@ import 
org.apache.iotdb.db.queryengine.plan.relational.sql.util.AstUtil;
 import org.apache.iotdb.db.queryengine.plan.statement.StatementType;
 import org.apache.iotdb.db.queryengine.plan.statement.crud.InsertRowStatement;
 import org.apache.iotdb.db.queryengine.plan.statement.crud.InsertRowsStatement;
+import 
org.apache.iotdb.db.queryengine.plan.statement.metadata.CreateFunctionStatement;
 import org.apache.iotdb.db.queryengine.plan.statement.sys.FlushStatement;
 import 
org.apache.iotdb.db.queryengine.plan.statement.sys.SetConfigurationStatement;
 import 
org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.TableBuiltinScalarFunction;
@@ -577,7 +581,14 @@ public class AstBuilder extends 
RelationalSqlBaseVisitor<Node> {
 
   @Override
   public Node 
visitCreateFunctionStatement(RelationalSqlParser.CreateFunctionStatementContext 
ctx) {
-    return super.visitCreateFunctionStatement(ctx);
+    final String udfName = ((Identifier) visit(ctx.udfName)).getValue();
+    final String className = ((Identifier) visit(ctx.className)).getValue();
+    if (ctx.uriClause() == null) {
+      return new CreateFunction(getLocation(ctx),udfName, className);
+    } else {
+      String uriString = parseAndValidateURI(ctx.uriClause());
+      return new CreateFunction(getLocation(ctx),udfName, className, 
uriString);
+    }
   }
 
   @Override
@@ -587,12 +598,13 @@ public class AstBuilder extends 
RelationalSqlBaseVisitor<Node> {
 
   @Override
   public Node 
visitDropFunctionStatement(RelationalSqlParser.DropFunctionStatementContext 
ctx) {
-    return super.visitDropFunctionStatement(ctx);
+    final String udfName = ((Identifier) visit(ctx.udfName)).getValue();
+    return new DropFunction(getLocation(ctx), udfName);
   }
 
   @Override
   public Node 
visitShowFunctionsStatement(RelationalSqlParser.ShowFunctionsStatementContext 
ctx) {
-    return super.visitShowFunctionsStatement(ctx);
+    return new ShowFunctions();
   }
 
   @Override

Reply via email to