From 097fb38266a3670edd77f8066403a8236a13d59f Mon Sep 17 00:00:00 2001 From: hexinyu <1213652135@qq.com> Date: Wed, 29 Jun 2022 11:11:55 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=87=AA=E5=AE=9A=E4=B9=89?= =?UTF-8?q?=E5=87=BD=E6=95=B0=E7=9A=84=E5=87=BD=E6=95=B0=E4=BD=93=E5=8F=AA?= =?UTF-8?q?=E6=9C=89return=E8=AF=AD=E5=8F=A5=EF=BC=8C=E8=BF=81=E7=A7=BB?= =?UTF-8?q?=E6=8A=A5=E9=94=99=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 4 ++-- .../mysql/MySqlToOpenGaussOutputVisitor.java | 21 ++++++++++++++++--- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 74d0882..806e3cb 100644 --- a/README.md +++ b/README.md @@ -60,7 +60,7 @@ openGauss-tools-sql-translator是一个使用java编写的实现MySQL向openGaus ### [13.1.11 CREATE DATABASE Statement](https://dev.mysql.com/doc/refman/5.7/en/create-database.html) -> 1. 翻译成openGauss的CREATE DATABASE,MySQL的create_option有 CHARACTER SET或 COLLATE字段,openGauss不支持 +> 1. 翻译成openGauss的CREATE SCHEMA,MySQL的create_option有 CHARACTER SET或 COLLATE字段,openGauss不兼容 ### [13.1.12 CREATE EVENT Statement](https://dev.mysql.com/doc/refman/5.7/en/create-event.html) @@ -137,7 +137,7 @@ openGauss-tools-sql-translator是一个使用java编写的实现MySQL向openGaus ### [13.1.22 DROP DATABASE Statement](https://dev.mysql.com/doc/refman/5.7/en/drop-database.html) -> 1. 完全支持 +> 1. 翻译成openGauss的DROP SCHEMA语句 ### [13.1.23 DROP EVENT Statement](https://dev.mysql.com/doc/refman/5.7/en/drop-event.html) diff --git a/src/main/java/org/opengauss/sqltranslator/dialect/mysql/MySqlToOpenGaussOutputVisitor.java b/src/main/java/org/opengauss/sqltranslator/dialect/mysql/MySqlToOpenGaussOutputVisitor.java index f762fbd..e95ff62 100644 --- a/src/main/java/org/opengauss/sqltranslator/dialect/mysql/MySqlToOpenGaussOutputVisitor.java +++ b/src/main/java/org/opengauss/sqltranslator/dialect/mysql/MySqlToOpenGaussOutputVisitor.java @@ -715,11 +715,18 @@ public class MySqlToOpenGaussOutputVisitor extends MySqlOutputVisitor { if (x.isDeterministic()) { print(ucase ? " IMMUTABLE" : " immutable"); } - SQLStatement block = x.getBlock(); println(); print0("AS $$"); println(); - block.accept(this); + if ((x.getBlock().getClass()) == SQLBlockStatement.class) { + x.getBlock().accept(this); + } else { + println("BEGIN"); + x.getBlock().accept(this); + print0(";"); + println(); + printUcase("END"); + } return false; } @@ -810,7 +817,15 @@ public class MySqlToOpenGaussOutputVisitor extends MySqlOutputVisitor { println(); print0("AS "); println(); - x.getBlock().accept(this); + if ((x.getBlock().getClass()) == SQLBlockStatement.class) { + x.getBlock().accept(this); + } else { + println("BEGIN"); + x.getBlock().accept(this); + print0(";"); + println(); + printUcase("END"); + } return false; } -- Gitee