You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by yi...@apache.org on 2024/02/28 05:09:13 UTC
(doris) 07/22: [opt](plsql) Fix procedure key compatibility (#31445)
This is an automated email from the ASF dual-hosted git repository.
yiguolei pushed a commit to branch branch-2.1
in repository https://gitbox.apache.org/repos/asf/doris.git
commit c0754583cbbca4d85fb799f5656aa07ceb80c5dd
Author: Xinyi Zou <zo...@gmail.com>
AuthorDate: Tue Feb 27 22:23:11 2024 +0800
[opt](plsql) Fix procedure key compatibility (#31445)
use dbId replace dbName, because dbName may be renamed by Alter.
procedure key add package name (only reserved, currently no plans to support package)
Optimize procedure create and exception
---
.../doris/nereids/parser/LogicalPlanBuilder.java | 2 +-
.../plans/commands/CreateProcedureCommand.java | 6 +-
.../trees/plans/commands/info/FuncNameInfo.java | 70 +++++++++++++++++-----
.../src/main/java/org/apache/doris/plsql/Exec.java | 2 +-
.../plsql/functions/DorisFunctionRegistry.java | 32 +++++-----
.../doris/plsql/functions/FunctionRegistry.java | 2 +
.../plsql/functions/InMemoryFunctionRegistry.java | 5 ++
.../apache/doris/plsql/metastore/PlsqlManager.java | 16 ++---
.../doris/plsql/metastore/PlsqlMetaClient.java | 59 +++++++++---------
.../apache/doris/plsql/metastore/PlsqlPackage.java | 12 ++--
.../doris/plsql/metastore/PlsqlProcedureKey.java | 28 ++++-----
.../plsql/metastore/PlsqlStoredProcedure.java | 19 +++---
.../doris/plsql/packages/DorisPackageRegistry.java | 12 ++--
gensrc/thrift/FrontendService.thrift | 17 +++---
14 files changed, 167 insertions(+), 115 deletions(-)
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/parser/LogicalPlanBuilder.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/parser/LogicalPlanBuilder.java
index 99b8dde6c58..eee7c787c6e 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/parser/LogicalPlanBuilder.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/parser/LogicalPlanBuilder.java
@@ -3335,7 +3335,7 @@ public class LogicalPlanBuilder extends DorisParserBaseVisitor<Object> {
List<Expression> arguments = ctx.expression().stream()
.<Expression>map(this::typedVisit)
.collect(ImmutableList.toImmutableList());
- UnboundFunction unboundFunction = new UnboundFunction(procedureName.getDb(), procedureName.getName(),
+ UnboundFunction unboundFunction = new UnboundFunction(procedureName.getDbName(), procedureName.getName(),
true, arguments);
return new CallCommand(unboundFunction, getOriginSql(ctx));
}
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/CreateProcedureCommand.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/CreateProcedureCommand.java
index 1a11512d96e..39a93831848 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/CreateProcedureCommand.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/CreateProcedureCommand.java
@@ -54,11 +54,7 @@ public class CreateProcedureCommand extends Command implements ForwardWithSync {
@Override
public void run(ConnectContext ctx, StmtExecutor executor) throws Exception {
- // TODO, removeCached needs to be synchronized to all Observer FEs.
- // Even if it is always executed on the Master FE, it still has to deal with Master switching.
- ctx.getPlSqlOperation().getExec().functions.removeCached(procedureName.toString());
- client.addPlsqlStoredProcedure(procedureName.getName(), procedureName.getCtl(), procedureName.getDb(),
- ctx.getQualifiedUser(), source, isForce);
+ ctx.getPlSqlOperation().getExec().functions.save(procedureName, source, isForce);
}
@Override
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/FuncNameInfo.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/FuncNameInfo.java
index 7268a5804be..eb07f973918 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/FuncNameInfo.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/FuncNameInfo.java
@@ -17,6 +17,8 @@
package org.apache.doris.nereids.trees.plans.commands.info;
+import org.apache.doris.catalog.DatabaseIf;
+import org.apache.doris.common.FeConstants;
import org.apache.doris.datasource.InternalCatalog;
import org.apache.doris.nereids.exceptions.AnalysisException;
import org.apache.doris.nereids.util.Utils;
@@ -28,15 +30,19 @@ import com.google.common.collect.Lists;
import java.util.List;
import java.util.Objects;
+import java.util.Optional;
/**
* procedure, function, package name info
*/
public class FuncNameInfo {
private final List<String> nameParts;
- private String ctl;
- private String db;
+ private String ctl = "";
+ private long ctlId = -1;
+ private String db = "";
+ private long dbId = -1;
private final String name;
+ private boolean isAnalyzed = false;
/**
* FuncNameInfo
@@ -91,22 +97,32 @@ public class FuncNameInfo {
* @param ctx ctx
*/
public void analyze(ConnectContext ctx) {
- if (Strings.isNullOrEmpty(ctl)) {
- ctl = ctx.getDefaultCatalog();
+ if (isAnalyzed) {
+ return;
+ }
+ try {
if (Strings.isNullOrEmpty(ctl)) {
- ctl = InternalCatalog.INTERNAL_CATALOG_NAME;
+ ctl = ctx.getDefaultCatalog();
+ if (Strings.isNullOrEmpty(ctl)) {
+ ctl = InternalCatalog.INTERNAL_CATALOG_NAME;
+ }
}
- }
- if (Strings.isNullOrEmpty(db)) {
- db = ctx.getDatabase();
+ ctlId = ctx.getCatalog(ctl).getId();
if (Strings.isNullOrEmpty(db)) {
- throw new AnalysisException("procedure/function/package name no database selected");
+ db = ctx.getDatabase();
+ if (Strings.isNullOrEmpty(db)) {
+ db = FeConstants.INTERNAL_DB_NAME;
+ }
}
+ Optional<DatabaseIf> dbInstance = ctx.getCatalog(ctl).getDb(db);
+ dbId = dbInstance.map(DatabaseIf::getId).orElse(-1L);
+ if (Strings.isNullOrEmpty(name)) {
+ throw new AnalysisException("procedure/function/package name is null");
+ }
+ } catch (Exception e) {
+ throw new AnalysisException("failed to analyze procedure name", e);
}
-
- if (Strings.isNullOrEmpty(name)) {
- throw new AnalysisException("procedure/function/package name is null");
- }
+ isAnalyzed = true;
}
/**
@@ -115,29 +131,51 @@ public class FuncNameInfo {
* @return ctlName
*/
public String getCtl() {
+ analyze(ConnectContext.get());
return ctl == null ? "" : ctl;
}
+ /**
+ * get catalog id
+ *
+ * @return ctlId
+ */
+ public long getCtlId() {
+ analyze(ConnectContext.get());
+ return ctlId;
+ }
+
/**
* get db name
*
* @return dbName
*/
- public String getDb() {
+ public String getDbName() {
+ analyze(ConnectContext.get());
return db == null ? "" : db;
}
+ /**
+ * get db id
+ *
+ * @return dbId
+ */
+ public long getDbId() {
+ analyze(ConnectContext.get());
+ return dbId;
+ }
+
/**
* get table name
*
* @return tableName
*/
public String getName() {
+ analyze(ConnectContext.get());
return name == null ? "" : name;
}
public String toString() {
- return nameParts.stream().map(Utils::quoteIfNeeded)
- .reduce((left, right) -> left + "." + right).orElse("");
+ return nameParts.stream().map(Utils::quoteIfNeeded).reduce((left, right) -> left + "." + right).orElse("");
}
}
diff --git a/fe/fe-core/src/main/java/org/apache/doris/plsql/Exec.java b/fe/fe-core/src/main/java/org/apache/doris/plsql/Exec.java
index 98ebebfd4ea..34e84ab4097 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/plsql/Exec.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/plsql/Exec.java
@@ -1625,7 +1625,7 @@ public class Exec extends org.apache.doris.nereids.PLParserBaseVisitor<Integer>
FuncNameInfo procedureName = new FuncNameInfo(nameParts);
Package packCallContext = exec.getPackageCallContext();
boolean executed = false;
- Package pack = findPackage(procedureName.getDb());
+ Package pack = findPackage(procedureName.getDbName());
if (pack != null) {
executed = pack.execFunc(procedureName.getName(), params);
}
diff --git a/fe/fe-core/src/main/java/org/apache/doris/plsql/functions/DorisFunctionRegistry.java b/fe/fe-core/src/main/java/org/apache/doris/plsql/functions/DorisFunctionRegistry.java
index d28ebaaa644..8316962a209 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/plsql/functions/DorisFunctionRegistry.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/plsql/functions/DorisFunctionRegistry.java
@@ -66,10 +66,9 @@ public class DorisFunctionRegistry implements FunctionRegistry {
@Override
public void remove(FuncNameInfo procedureName) {
try {
- client.dropPlsqlStoredProcedure(procedureName.getName(), procedureName.getCtl(),
- procedureName.getDb());
+ client.dropPlsqlStoredProcedure(procedureName.getName(), procedureName.getCtlId(), procedureName.getDbId());
} catch (Exception e) {
- throw new RuntimeException(e);
+ throw new RuntimeException("failed to remove procedure", e);
}
}
@@ -124,8 +123,8 @@ public class DorisFunctionRegistry implements FunctionRegistry {
}
}
- private void callWithParameters(Expr_func_paramsContext ctx, ParserRuleContext procCtx,
- HashMap<String, Var> out, ArrayList<Var> actualParams) {
+ private void callWithParameters(Expr_func_paramsContext ctx, ParserRuleContext procCtx, HashMap<String, Var> out,
+ ArrayList<Var> actualParams) {
if (procCtx instanceof Create_function_stmtContext) {
Create_function_stmtContext func = (Create_function_stmtContext) procCtx;
InMemoryFunctionRegistry.setCallParameters(func.multipartIdentifier().getText(), ctx, actualParams,
@@ -152,9 +151,8 @@ public class DorisFunctionRegistry implements FunctionRegistry {
}
private Optional<PlsqlStoredProcedure> getProc(FuncNameInfo procedureName) {
- return Optional.ofNullable(
- client.getPlsqlStoredProcedure(procedureName.getName(), procedureName.getCtl(),
- procedureName.getDb()));
+ return Optional.ofNullable(client.getPlsqlStoredProcedure(procedureName.getName(), procedureName.getCtlId(),
+ procedureName.getDbId()));
}
private ArrayList<Var> getActualCallParameters(Expr_func_paramsContext actual) {
@@ -179,7 +177,7 @@ public class DorisFunctionRegistry implements FunctionRegistry {
}
trace(ctx, "CREATE FUNCTION " + procedureName.toString());
saveInCache(procedureName.toString(), ctx);
- saveStoredProc(procedureName, Exec.getFormattedText(ctx), ctx.REPLACE() != null);
+ save(procedureName, Exec.getFormattedText(ctx), ctx.REPLACE() != null);
}
@Override
@@ -192,13 +190,19 @@ public class DorisFunctionRegistry implements FunctionRegistry {
}
trace(ctx, "CREATE PROCEDURE " + procedureName.toString());
saveInCache(procedureName.toString(), ctx);
- saveStoredProc(procedureName, Exec.getFormattedText(ctx), ctx.REPLACE() != null);
+ save(procedureName, Exec.getFormattedText(ctx), ctx.REPLACE() != null);
}
- private void saveStoredProc(FuncNameInfo procedureName, String source, boolean isForce) {
- client.addPlsqlStoredProcedure(procedureName.getName(), procedureName.getCtl(),
- procedureName.getDb(),
- ConnectContext.get().getQualifiedUser(), source, isForce);
+ @Override
+ public void save(FuncNameInfo procedureName, String source, boolean isForce) {
+ try {
+ // TODO support packageName
+ client.addPlsqlStoredProcedure(procedureName.getName(), procedureName.getCtlId(), procedureName.getDbId(),
+ "",
+ ConnectContext.get().getQualifiedUser(), source, isForce);
+ } catch (Exception e) {
+ throw new RuntimeException("failed to save procedure", e);
+ }
}
private void saveInCache(String name, ParserRuleContext procCtx) {
diff --git a/fe/fe-core/src/main/java/org/apache/doris/plsql/functions/FunctionRegistry.java b/fe/fe-core/src/main/java/org/apache/doris/plsql/functions/FunctionRegistry.java
index e45a5eff3e4..e9d07c31682 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/plsql/functions/FunctionRegistry.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/plsql/functions/FunctionRegistry.java
@@ -32,6 +32,8 @@ public interface FunctionRegistry {
void addUserProcedure(Create_procedure_stmtContext ctx);
+ void save(FuncNameInfo procedureName, String source, boolean isForce);
+
boolean exists(FuncNameInfo procedureName);
void remove(FuncNameInfo procedureName);
diff --git a/fe/fe-core/src/main/java/org/apache/doris/plsql/functions/InMemoryFunctionRegistry.java b/fe/fe-core/src/main/java/org/apache/doris/plsql/functions/InMemoryFunctionRegistry.java
index ab39f617271..59143a57194 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/plsql/functions/InMemoryFunctionRegistry.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/plsql/functions/InMemoryFunctionRegistry.java
@@ -55,6 +55,11 @@ public class InMemoryFunctionRegistry implements FunctionRegistry {
this.builtinFunctions = builtinFunctions;
}
+ @Override
+ public void save(FuncNameInfo procedureName, String source, boolean isForce) {
+ throw new RuntimeException("InMemoryFunctionRegistry no support save");
+ }
+
@Override
public boolean exists(FuncNameInfo procedureName) {
return funcMap.containsKey(procedureName.toString()) || procMap.containsKey(procedureName.toString());
diff --git a/fe/fe-core/src/main/java/org/apache/doris/plsql/metastore/PlsqlManager.java b/fe/fe-core/src/main/java/org/apache/doris/plsql/metastore/PlsqlManager.java
index b1ee73e544d..0057c9b7275 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/plsql/metastore/PlsqlManager.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/plsql/metastore/PlsqlManager.java
@@ -49,8 +49,8 @@ public class PlsqlManager implements Writable {
}
public void addPlsqlStoredProcedure(PlsqlStoredProcedure procedure, boolean isForce) {
- PlsqlProcedureKey plsqlProcedureKey = new PlsqlProcedureKey(procedure.getName(), procedure.getCatalogName(),
- procedure.getDbName());
+ PlsqlProcedureKey plsqlProcedureKey = new PlsqlProcedureKey(procedure.getName(), procedure.getCatalogId(),
+ procedure.getDbId());
if (isForce) {
nameToStoredProcedures.put(plsqlProcedureKey, procedure);
} else if (nameToStoredProcedures.putIfAbsent(plsqlProcedureKey, procedure) != null) {
@@ -61,8 +61,8 @@ public class PlsqlManager implements Writable {
}
public void replayAddPlsqlStoredProcedure(PlsqlStoredProcedure procedure) {
- PlsqlProcedureKey plsqlProcedureKey = new PlsqlProcedureKey(procedure.getName(), procedure.getCatalogName(),
- procedure.getDbName());
+ PlsqlProcedureKey plsqlProcedureKey = new PlsqlProcedureKey(procedure.getName(), procedure.getCatalogId(),
+ procedure.getDbId());
nameToStoredProcedures.put(plsqlProcedureKey, procedure);
LOG.info("Replay add stored procedure success: {}", plsqlProcedureKey);
}
@@ -83,8 +83,8 @@ public class PlsqlManager implements Writable {
}
public void addPackage(PlsqlPackage pkg, boolean isForce) {
- PlsqlProcedureKey plsqlProcedureKey = new PlsqlProcedureKey(pkg.getName(), pkg.getCatalogName(),
- pkg.getDbName());
+ PlsqlProcedureKey plsqlProcedureKey = new PlsqlProcedureKey(pkg.getName(), pkg.getCatalogId(),
+ pkg.getDbId());
nameToPackages.put(plsqlProcedureKey, pkg);
if (isForce) {
nameToPackages.put(plsqlProcedureKey, pkg);
@@ -96,8 +96,8 @@ public class PlsqlManager implements Writable {
}
public void replayAddPlsqlPackage(PlsqlPackage pkg) {
- PlsqlProcedureKey plsqlProcedureKey = new PlsqlProcedureKey(pkg.getName(), pkg.getCatalogName(),
- pkg.getDbName());
+ PlsqlProcedureKey plsqlProcedureKey = new PlsqlProcedureKey(pkg.getName(), pkg.getCatalogId(),
+ pkg.getDbId());
nameToPackages.put(plsqlProcedureKey, pkg);
LOG.info("Replay add plsql package success: {}", plsqlProcedureKey);
}
diff --git a/fe/fe-core/src/main/java/org/apache/doris/plsql/metastore/PlsqlMetaClient.java b/fe/fe-core/src/main/java/org/apache/doris/plsql/metastore/PlsqlMetaClient.java
index 86d4474ca76..15974511b78 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/plsql/metastore/PlsqlMetaClient.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/plsql/metastore/PlsqlMetaClient.java
@@ -41,63 +41,66 @@ public class PlsqlMetaClient {
public PlsqlMetaClient() {
}
- public void addPlsqlStoredProcedure(String name, String catalogName, String dbName, String ownerName, String source,
+ public void addPlsqlStoredProcedure(String name, long catalogId, long dbId, String packageName,
+ String ownerName, String source,
boolean isForce) {
checkPriv();
if (Env.getCurrentEnv().isMaster()) {
Env.getCurrentEnv().getPlsqlManager()
- .addPlsqlStoredProcedure(new PlsqlStoredProcedure(name, catalogName, dbName, ownerName, source),
+ .addPlsqlStoredProcedure(
+ new PlsqlStoredProcedure(name, catalogId, dbId, packageName, ownerName, source),
isForce);
} else {
- addPlsqlStoredProcedureThrift(name, catalogName, dbName, ownerName, source, isForce);
+ addPlsqlStoredProcedureThrift(name, catalogId, dbId, packageName, ownerName, source, isForce);
}
}
- public void dropPlsqlStoredProcedure(String name, String catalogName, String dbName) {
+ public void dropPlsqlStoredProcedure(String name, long catalogId, long dbId) {
checkPriv();
if (Env.getCurrentEnv().isMaster()) {
Env.getCurrentEnv().getPlsqlManager()
- .dropPlsqlStoredProcedure(new PlsqlProcedureKey(name, catalogName, dbName));
+ .dropPlsqlStoredProcedure(new PlsqlProcedureKey(name, catalogId, dbId));
} else {
- dropStoredProcedureThrift(name, catalogName, dbName);
+ dropStoredProcedureThrift(name, catalogId, dbId);
}
}
- public PlsqlStoredProcedure getPlsqlStoredProcedure(String name, String catalogName, String dbName) {
+ public PlsqlStoredProcedure getPlsqlStoredProcedure(String name, long catalogId, long dbId) {
return Env.getCurrentEnv().getPlsqlManager()
- .getPlsqlStoredProcedure(new PlsqlProcedureKey(name, catalogName, dbName));
+ .getPlsqlStoredProcedure(new PlsqlProcedureKey(name, catalogId, dbId));
}
- public void addPlsqlPackage(String name, String catalogName, String dbName, String ownerName, String header,
+ public void addPlsqlPackage(String name, long catalogId, long dbId, String ownerName, String header,
String body) {
checkPriv();
if (Env.getCurrentEnv().isMaster()) {
Env.getCurrentEnv().getPlsqlManager()
- .addPackage(new PlsqlPackage(name, catalogName, dbName, ownerName, header, body),
+ .addPackage(new PlsqlPackage(name, catalogId, dbId, ownerName, header, body),
false);
} else {
- addPlsqlPackageThrift(name, catalogName, dbName, ownerName, header, body);
+ addPlsqlPackageThrift(name, catalogId, dbId, ownerName, header, body);
}
}
- public void dropPlsqlPackage(String name, String catalogName, String dbName) {
+ public void dropPlsqlPackage(String name, long catalogId, long dbId) {
checkPriv();
if (Env.getCurrentEnv().isMaster()) {
- Env.getCurrentEnv().getPlsqlManager().dropPackage(new PlsqlProcedureKey(name, catalogName, dbName));
+ Env.getCurrentEnv().getPlsqlManager().dropPackage(new PlsqlProcedureKey(name, catalogId, dbId));
} else {
- dropPlsqlPackageThrift(name, catalogName, dbName);
+ dropPlsqlPackageThrift(name, catalogId, dbId);
}
}
- public PlsqlPackage getPlsqlPackage(String name, String catalogName, String dbName) {
- return Env.getCurrentEnv().getPlsqlManager().getPackage(new PlsqlProcedureKey(name, catalogName, dbName));
+ public PlsqlPackage getPlsqlPackage(String name, long catalogId, long dbId) {
+ return Env.getCurrentEnv().getPlsqlManager().getPackage(new PlsqlProcedureKey(name, catalogId, dbId));
}
- protected void addPlsqlStoredProcedureThrift(String name, String catalogName, String dbName, String ownerName,
+ protected void addPlsqlStoredProcedureThrift(String name, long catalogId, long dbId, String packageName,
+ String ownerName,
String source, boolean isForce) {
TPlsqlStoredProcedure tPlsqlStoredProcedure = new TPlsqlStoredProcedure().setName(name)
- .setCatalogName(catalogName)
- .setDbName(dbName).setOwnerName(ownerName).setSource(source);
+ .setCatalogId(catalogId).setDbId(dbId)
+ .setPackageName(packageName).setOwnerName(ownerName).setSource(source);
TAddPlsqlStoredProcedureRequest tAddPlsqlStoredProcedureRequest = new TAddPlsqlStoredProcedureRequest()
.setPlsqlStoredProcedure(tPlsqlStoredProcedure);
tAddPlsqlStoredProcedureRequest.setIsForce(isForce);
@@ -110,9 +113,9 @@ public class PlsqlMetaClient {
}
}
- protected void dropStoredProcedureThrift(String name, String catalogName, String dbName) {
- TPlsqlProcedureKey tPlsqlProcedureKey = new TPlsqlProcedureKey().setName(name).setCatalogName(catalogName)
- .setDbName(dbName);
+ protected void dropStoredProcedureThrift(String name, long catalogId, long dbId) {
+ TPlsqlProcedureKey tPlsqlProcedureKey = new TPlsqlProcedureKey().setName(name).setCatalogId(catalogId)
+ .setDbId(dbId);
TDropPlsqlStoredProcedureRequest tDropPlsqlStoredProcedureRequest
= new TDropPlsqlStoredProcedureRequest().setPlsqlProcedureKey(
tPlsqlProcedureKey);
@@ -125,10 +128,10 @@ public class PlsqlMetaClient {
}
}
- protected void addPlsqlPackageThrift(String name, String catalogName, String dbName, String ownerName,
+ protected void addPlsqlPackageThrift(String name, long catalogId, long dbId, String ownerName,
String header, String body) {
- TPlsqlPackage tPlsqlPackage = new TPlsqlPackage().setName(name).setCatalogName(catalogName)
- .setDbName(dbName).setOwnerName(ownerName).setHeader(header).setBody(body);
+ TPlsqlPackage tPlsqlPackage = new TPlsqlPackage().setName(name).setCatalogId(catalogId)
+ .setDbId(dbId).setOwnerName(ownerName).setHeader(header).setBody(body);
TAddPlsqlPackageRequest tAddPlsqlPackageRequest = new TAddPlsqlPackageRequest()
.setPlsqlPackage(tPlsqlPackage);
@@ -140,9 +143,9 @@ public class PlsqlMetaClient {
}
}
- protected void dropPlsqlPackageThrift(String name, String catalogName, String dbName) {
- TPlsqlProcedureKey tPlsqlProcedureKey = new TPlsqlProcedureKey().setName(name).setCatalogName(catalogName)
- .setDbName(dbName);
+ protected void dropPlsqlPackageThrift(String name, long catalogId, long dbId) {
+ TPlsqlProcedureKey tPlsqlProcedureKey = new TPlsqlProcedureKey().setName(name).setCatalogId(catalogId)
+ .setDbId(dbId);
TDropPlsqlPackageRequest tDropPlsqlPackageRequest = new TDropPlsqlPackageRequest().setPlsqlProcedureKey(
tPlsqlProcedureKey);
diff --git a/fe/fe-core/src/main/java/org/apache/doris/plsql/metastore/PlsqlPackage.java b/fe/fe-core/src/main/java/org/apache/doris/plsql/metastore/PlsqlPackage.java
index 41114890c58..2af6445fd1b 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/plsql/metastore/PlsqlPackage.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/plsql/metastore/PlsqlPackage.java
@@ -36,11 +36,11 @@ public class PlsqlPackage implements Writable {
@SerializedName(value = "name")
private String name;
- @SerializedName(value = "catalogName")
- private String catalogName;
+ @SerializedName(value = "catalogId")
+ private long catalogId;
- @SerializedName(value = "dbName")
- private String dbName;
+ @SerializedName(value = "dbId")
+ private long dbId;
@SerializedName(value = "ownerName")
private String ownerName;
@@ -57,12 +57,12 @@ public class PlsqlPackage implements Writable {
}
public TPlsqlPackage toThrift() {
- return new TPlsqlPackage().setName(name).setCatalogName(catalogName).setDbName(dbName).setOwnerName(ownerName)
+ return new TPlsqlPackage().setName(name).setCatalogId(catalogId).setDbId(dbId).setOwnerName(ownerName)
.setHeader(header).setBody(body);
}
public static PlsqlPackage fromThrift(TPlsqlPackage pkg) {
- return new PlsqlPackage(pkg.getName(), pkg.getCatalogName(), pkg.getDbName(), pkg.getOwnerName(),
+ return new PlsqlPackage(pkg.getName(), pkg.getCatalogId(), pkg.getDbId(), pkg.getOwnerName(),
pkg.getHeader(), pkg.getBody());
}
diff --git a/fe/fe-core/src/main/java/org/apache/doris/plsql/metastore/PlsqlProcedureKey.java b/fe/fe-core/src/main/java/org/apache/doris/plsql/metastore/PlsqlProcedureKey.java
index c2472c07382..fbcf77ecead 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/plsql/metastore/PlsqlProcedureKey.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/plsql/metastore/PlsqlProcedureKey.java
@@ -37,29 +37,29 @@ public class PlsqlProcedureKey implements Writable {
@SerializedName(value = "name")
private String name;
- @SerializedName(value = "catalogName")
- private String catalogName;
+ @SerializedName(value = "catalogId")
+ private long catalogId;
- @SerializedName(value = "dbName")
- private String dbName;
+ @SerializedName(value = "dbId")
+ private long dbId;
- public PlsqlProcedureKey(String name, String catalogName, String dbName) {
+ public PlsqlProcedureKey(String name, long catalogId, long dbId) {
this.name = name;
- this.catalogName = catalogName;
- this.dbName = dbName;
+ this.catalogId = catalogId;
+ this.dbId = dbId;
}
public TPlsqlProcedureKey toThrift() {
- return new TPlsqlProcedureKey().setName(name).setCatalogName(catalogName).setDbName(dbName);
+ return new TPlsqlProcedureKey().setName(name).setCatalogId(catalogId).setDbId(dbId);
}
public static PlsqlProcedureKey fromThrift(TPlsqlProcedureKey key) {
- return new PlsqlProcedureKey(key.getName(), key.getCatalogName(), key.getDbName());
+ return new PlsqlProcedureKey(key.getName(), key.getCatalogId(), key.getDbId());
}
@Override
public int hashCode() {
- return Objects.hash(name, catalogName, dbName);
+ return Objects.hash(name, catalogId, dbId);
}
@Override
@@ -67,14 +67,14 @@ public class PlsqlProcedureKey implements Writable {
if (!(obj instanceof PlsqlProcedureKey)) {
return false;
}
- return Objects.equals(this.name, ((PlsqlProcedureKey) obj).name) && Objects.equals(this.catalogName,
- ((PlsqlProcedureKey) obj).catalogName)
- && Objects.equals(this.dbName, ((PlsqlProcedureKey) obj).dbName);
+ return Objects.equals(this.name, ((PlsqlProcedureKey) obj).name) && Objects.equals(this.catalogId,
+ ((PlsqlProcedureKey) obj).catalogId)
+ && Objects.equals(this.dbId, ((PlsqlProcedureKey) obj).dbId);
}
@Override
public String toString() {
- return "name:" + name + ", catalogName:" + catalogName + ", dbName:" + dbName;
+ return "name:" + name + ", catalogName:" + catalogId + ", dbId:" + dbId;
}
@Override
diff --git a/fe/fe-core/src/main/java/org/apache/doris/plsql/metastore/PlsqlStoredProcedure.java b/fe/fe-core/src/main/java/org/apache/doris/plsql/metastore/PlsqlStoredProcedure.java
index b181b19473d..9325684cc47 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/plsql/metastore/PlsqlStoredProcedure.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/plsql/metastore/PlsqlStoredProcedure.java
@@ -36,11 +36,14 @@ public class PlsqlStoredProcedure implements Writable {
@SerializedName(value = "name")
private String name;
- @SerializedName(value = "catalogName")
- private String catalogName;
+ @SerializedName(value = "catalogId")
+ private long catalogId;
- @SerializedName(value = "dbName")
- private String dbName;
+ @SerializedName(value = "dbId")
+ private long dbId;
+
+ @SerializedName(value = "packageName")
+ private String packageName;
@SerializedName(value = "ownerName")
private String ownerName;
@@ -49,13 +52,13 @@ public class PlsqlStoredProcedure implements Writable {
private String source;
public TPlsqlStoredProcedure toThrift() {
- return new TPlsqlStoredProcedure().setName(name).setCatalogName(catalogName).setDbName(dbName)
- .setOwnerName(ownerName).setSource(source);
+ return new TPlsqlStoredProcedure().setName(name).setCatalogId(catalogId).setDbId(dbId)
+ .setPackageName(packageName).setOwnerName(ownerName).setSource(source);
}
public static PlsqlStoredProcedure fromThrift(TPlsqlStoredProcedure procedure) {
- return new PlsqlStoredProcedure(procedure.getName(), procedure.getCatalogName(), procedure.getDbName(),
- procedure.getOwnerName(), procedure.source);
+ return new PlsqlStoredProcedure(procedure.getName(), procedure.getCatalogId(), procedure.getDbId(),
+ procedure.getPackageName(), procedure.getOwnerName(), procedure.source);
}
@Override
diff --git a/fe/fe-core/src/main/java/org/apache/doris/plsql/packages/DorisPackageRegistry.java b/fe/fe-core/src/main/java/org/apache/doris/plsql/packages/DorisPackageRegistry.java
index ae0222cc405..3852c71d760 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/plsql/packages/DorisPackageRegistry.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/plsql/packages/DorisPackageRegistry.java
@@ -78,18 +78,18 @@ public class DorisPackageRegistry implements PackageRegistry {
}
private PlsqlPackage findPackage(String name) throws TException {
- return client.getPlsqlPackage(name.toUpperCase(), ConnectContext.get().getCurrentCatalog().getName(),
- ConnectContext.get().getDatabase());
+ return client.getPlsqlPackage(name.toUpperCase(), ConnectContext.get().getCurrentCatalog().getId(),
+ ConnectContext.get().getCurrentDbId());
}
@Override
public void dropPackage(String name) {
- client.dropPlsqlPackage(name, ConnectContext.get().getCurrentCatalog().getName(),
- ConnectContext.get().getDatabase());
+ client.dropPlsqlPackage(name, ConnectContext.get().getCurrentCatalog().getId(),
+ ConnectContext.get().getCurrentDbId());
}
private void savePackage(String name, String header, String body) {
- client.addPlsqlPackage(name.toUpperCase(), ConnectContext.get().getCurrentCatalog().getName(),
- ConnectContext.get().getDatabase(), ConnectContext.get().getQualifiedUser(), header, body);
+ client.addPlsqlPackage(name.toUpperCase(), ConnectContext.get().getCurrentCatalog().getId(),
+ ConnectContext.get().getCurrentDbId(), ConnectContext.get().getQualifiedUser(), header, body);
}
}
diff --git a/gensrc/thrift/FrontendService.thrift b/gensrc/thrift/FrontendService.thrift
index 1e433d42f5d..a7bf0893c46 100644
--- a/gensrc/thrift/FrontendService.thrift
+++ b/gensrc/thrift/FrontendService.thrift
@@ -1142,16 +1142,17 @@ struct TRestoreSnapshotResult {
struct TPlsqlStoredProcedure {
1: optional string name
- 2: optional string catalogName
- 3: optional string dbName
- 4: optional string ownerName
- 5: optional string source
+ 2: optional i64 catalogId
+ 3: optional i64 dbId
+ 4: optional string packageName
+ 5: optional string ownerName
+ 6: optional string source
}
struct TPlsqlPackage {
1: optional string name
- 2: optional string catalogName
- 3: optional string dbName
+ 2: optional i64 catalogId
+ 3: optional i64 dbId
4: optional string ownerName
5: optional string header
6: optional string body
@@ -1159,8 +1160,8 @@ struct TPlsqlPackage {
struct TPlsqlProcedureKey {
1: optional string name
- 2: optional string catalogName
- 3: optional string dbName
+ 2: optional i64 catalogId
+ 3: optional i64 dbId
}
struct TAddPlsqlStoredProcedureRequest {
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org