From 9bee75de11460a6b2f130d96544ca49d04035fd8 Mon Sep 17 00:00:00 2001 From: sunzhengfang Date: Thu, 30 Nov 2017 16:03:35 +0800 Subject: [PATCH] #346 Suggested:when view set `ALGORITHM` ,dble can return unsupported prompts --- src/main/java/com/actiontech/dble/meta/ViewMeta.java | 4 ++++ .../java/com/actiontech/dble/meta/ViewMetaParser.java | 2 ++ .../actiontech/dble/parser/ViewMetaParserTest.java | 11 +++++++++++ 3 files changed, 17 insertions(+) diff --git a/src/main/java/com/actiontech/dble/meta/ViewMeta.java b/src/main/java/com/actiontech/dble/meta/ViewMeta.java index 578264506..eda54cdb9 100644 --- a/src/main/java/com/actiontech/dble/meta/ViewMeta.java +++ b/src/main/java/com/actiontech/dble/meta/ViewMeta.java @@ -71,6 +71,10 @@ public class ViewMeta { viewParser.parseCreateView(this); try { + if ("".equals(viewName)) { + throw new Exception("sql not supported "); + } + DbleServer.getInstance().getTmManager().addMetaLock(schema, viewName); //check if the select part has diff --git a/src/main/java/com/actiontech/dble/meta/ViewMetaParser.java b/src/main/java/com/actiontech/dble/meta/ViewMetaParser.java index 5a92a2456..b97e92b70 100644 --- a/src/main/java/com/actiontech/dble/meta/ViewMetaParser.java +++ b/src/main/java/com/actiontech/dble/meta/ViewMetaParser.java @@ -91,6 +91,8 @@ public class ViewMetaParser { return originalSql.substring(viewNameStat, offset); } } + } else { + return ""; } } } diff --git a/src/test/java/com/actiontech/dble/parser/ViewMetaParserTest.java b/src/test/java/com/actiontech/dble/parser/ViewMetaParserTest.java index bebe9a336..c87d016cc 100644 --- a/src/test/java/com/actiontech/dble/parser/ViewMetaParserTest.java +++ b/src/test/java/com/actiontech/dble/parser/ViewMetaParserTest.java @@ -38,6 +38,17 @@ public class ViewMetaParserTest { } + @Test + public void getViewNodeSupportTest() { + ViewMetaParser x = new ViewMetaParser("create or replace ALGORITHM = MERGE view x_xx__xx(id,name)as select * from suntest"); + Assert.assertEquals("", x.getViewName()); + x = new ViewMetaParser("create or replace DEFINER = CURRENT_USER view x_xx__xx(id,name)as select * from suntest"); + Assert.assertEquals("", x.getViewName()); + x = new ViewMetaParser("create or replace SQL SECURITY DEFINER view x_xx__xx(id,name)as select * from suntest"); + Assert.assertEquals("", x.getViewName()); + + } + @Test public void parseTotalTest() { ViewMetaParser x = new ViewMetaParser(" create or replace view x_xx__xx(id,name)as select * from suntest");