fix: view name parse issue

npe when no database selected

(cherry picked from commit 2d0bca0085)
This commit is contained in:
guoaomen
2023-04-04 15:59:04 +08:00
committed by wenyh1
parent 97ff060e2d
commit f9b92e7199
3 changed files with 4 additions and 3 deletions

View File

@@ -73,7 +73,6 @@ public class ViewMetaParser {
continue;
case '/':
offset = ParseUtil.comment(originalSql, offset);
offset++;
break;
case 'a':
offset = offset + 5;

View File

@@ -31,7 +31,8 @@ public class DruidAlterViewParser extends DruidImplicitCommitParser {
@Override
public SchemaConfig doVisitorParse(SchemaConfig schema, RouteResultset rrs, SQLStatement stmt, ServerSchemaStatVisitor visitor, ShardingService service, boolean isExplain) throws SQLException {
String sql = rrs.getStatement();
vm = new ViewMeta(schema.getName(), sql, ProxyMeta.getInstance().getTmManager());
String schemaName = schema == null ? null : schema.getName();
vm = new ViewMeta(schemaName, sql, ProxyMeta.getInstance().getTmManager());
vm.init();
checkSchema(vm.getSchema());
PlanNode oldViewNode = ProxyMeta.getInstance().getTmManager().getSyncView(vm.getSchema(), vm.getViewName());

View File

@@ -32,7 +32,8 @@ public class DruidCreateOrReplaceViewParser extends DruidImplicitCommitParser {
@Override
public SchemaConfig doVisitorParse(SchemaConfig schema, RouteResultset rrs, SQLStatement stmt, ServerSchemaStatVisitor visitor, ShardingService service, boolean isExplain) throws SQLException {
String sql = rrs.getStatement();
vm = new ViewMeta(schema.getName(), sql, ProxyMeta.getInstance().getTmManager());
String schemaName = schema == null ? null : schema.getName();
vm = new ViewMeta(schemaName, sql, ProxyMeta.getInstance().getTmManager());
vm.init();
SQLCreateViewStatement createViewStatement = (SQLCreateViewStatement) stmt;
checkSchema(vm.getSchema());