diff --git a/sqlTranslate/src/main/java/generator/OpenGaussGenerator.java b/sqlTranslate/src/main/java/generator/OpenGaussGenerator.java index 7d5a4661..e35bc399 100644 --- a/sqlTranslate/src/main/java/generator/OpenGaussGenerator.java +++ b/sqlTranslate/src/main/java/generator/OpenGaussGenerator.java @@ -395,9 +395,17 @@ public class OpenGaussGenerator { DataTypeConvert((TriggerDeclareContentNode) node); } } - for (ASTNode child : node.getChildren()) { - visitTrigger(child); + if (!(node.getFirstChild() instanceof TriggerDeclareNode || node.getFirstChild() instanceof TriggerBeginNode)) { + for (ASTNode child : node.getChildren()) { + visitTrigger(child); + } } + else { + // TODO: need to handle trigger body + + + } + } private void visitPLSQL(ASTNode node) { diff --git a/sqlTranslate/src/main/java/parser/ast/ASTNode.java b/sqlTranslate/src/main/java/parser/ast/ASTNode.java index 5bce8b93..5d57574d 100644 --- a/sqlTranslate/src/main/java/parser/ast/ASTNode.java +++ b/sqlTranslate/src/main/java/parser/ast/ASTNode.java @@ -110,6 +110,13 @@ public abstract class ASTNode { return null; } + public ASTNode getFirstChild() { + if (hasChild()) + return children.get(0); + else + return null; + } + public List getChildrenByName(String childName) { List nodes = new ArrayList<>(); for (ASTNode child : children) {