com.alibaba.druid.sql.ast.statement.SQLCreateFunctionStatement Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of druid Show documentation
Show all versions of druid Show documentation
An JDBC datasource implementation.
/*
* Copyright 1999-2017 Alibaba Group Holding Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.alibaba.druid.sql.ast.statement;
import com.alibaba.druid.sql.ast.*;
import com.alibaba.druid.sql.ast.expr.SQLPropertyExpr;
import com.alibaba.druid.sql.visitor.SQLASTVisitor;
import java.util.ArrayList;
import java.util.List;
/**
* Created by wenshao on 23/05/2017.
*/
public class SQLCreateFunctionStatement extends SQLStatementImpl implements SQLCreateStatement, SQLObjectWithDataType {
protected SQLName definer;
protected boolean create = true;
protected boolean orReplace;
protected SQLName name;
protected SQLStatement block;
protected List parameters = new ArrayList();
// for oracle
private String javaCallSpec;
private SQLName authid;
SQLDataType returnDataType;
// for mysql
private String comment;
private boolean deterministic;
private boolean parallelEnable;
private boolean aggregate;
private SQLName using;
private boolean pipelined;
private boolean resultCache;
private String wrappedSource;
private String language;
private boolean temporary;
protected boolean ifNotExists;
public SQLCreateFunctionStatement() {
}
public SQLCreateFunctionStatement clone() {
SQLCreateFunctionStatement x = new SQLCreateFunctionStatement();
if (definer != null) {
x.setDefiner(definer.clone());
}
x.create = create;
x.orReplace = orReplace;
if (name != null) {
x.setName(name.clone());
}
if (block != null) {
x.setBlock(block.clone());
}
for (SQLParameter p : parameters) {
SQLParameter p2 = p.clone();
p2.setParent(x);
x.parameters.add(p2);
}
x.javaCallSpec = javaCallSpec;
if (authid != null) {
x.setAuthid(authid.clone());
}
if (returnDataType != null) {
x.setReturnDataType(returnDataType.clone());
}
x.comment = comment;
x.deterministic = deterministic;
x.pipelined = pipelined;
x.language = language;
return x;
}
@Override
public void accept0(SQLASTVisitor visitor) {
if (visitor.visit(this)) {
acceptChild(visitor, definer);
acceptChild(visitor, name);
acceptChild(visitor, parameters);
acceptChild(visitor, returnDataType);
acceptChild(visitor, block);
}
visitor.endVisit(this);
}
public List getParameters() {
return parameters;
}
public void setParameters(List parameters) {
this.parameters = parameters;
}
public SQLName getName() {
return name;
}
public void setName(SQLName x) {
if (x != null) {
x.setParent(this);
}
this.name = x;
}
public SQLStatement getBlock() {
return block;
}
public void setBlock(SQLStatement block) {
if (block != null) {
block.setParent(this);
}
this.block = block;
}
public SQLName getAuthid() {
return authid;
}
public void setAuthid(SQLName authid) {
if (authid != null) {
authid.setParent(this);
}
this.authid = authid;
}
public String getLanguage() {
return language;
}
public void setLanguage(String language) {
this.language = language;
}
public boolean isOrReplace() {
return orReplace;
}
public void setOrReplace(boolean orReplace) {
this.orReplace = orReplace;
}
public SQLName getDefiner() {
return definer;
}
public void setDefiner(SQLName definer) {
this.definer = definer;
}
public boolean isCreate() {
return create;
}
public void setCreate(boolean create) {
this.create = create;
}
public String getJavaCallSpec() {
return javaCallSpec;
}
public void setJavaCallSpec(String javaCallSpec) {
this.javaCallSpec = javaCallSpec;
}
public SQLDataType getReturnDataType() {
return returnDataType;
}
public void setReturnDataType(SQLDataType returnDataType) {
if (returnDataType != null) {
returnDataType.setParent(this);
}
this.returnDataType = returnDataType;
}
public String getComment() {
return comment;
}
public void setComment(String comment) {
this.comment = comment;
}
public boolean isDeterministic() {
return deterministic;
}
public void setDeterministic(boolean deterministic) {
this.deterministic = deterministic;
}
public String getSchema() {
SQLName name = getName();
if (name == null) {
return null;
}
if (name instanceof SQLPropertyExpr) {
return ((SQLPropertyExpr) name).getOwnernName();
}
return null;
}
@Override
public SQLDataType getDataType() {
return returnDataType;
}
@Override
public void setDataType(SQLDataType dataType) {
this.setReturnDataType(dataType);
}
public boolean isParallelEnable() {
return parallelEnable;
}
public void setParallelEnable(boolean parallel_enable) {
this.parallelEnable = parallel_enable;
}
public boolean isAggregate() {
return aggregate;
}
public void setAggregate(boolean aggregate) {
this.aggregate = aggregate;
}
public SQLName getUsing() {
return using;
}
public void setUsing(SQLName using) {
this.using = using;
}
public boolean isPipelined() {
return pipelined;
}
public void setPipelined(boolean pipelined) {
this.pipelined = pipelined;
}
public boolean isResultCache() {
return resultCache;
}
public void setResultCache(boolean resultCache) {
this.resultCache = resultCache;
}
public String getWrappedSource() {
return wrappedSource;
}
public void setWrappedSource(String wrappedSource) {
this.wrappedSource = wrappedSource;
}
public boolean isTemporary() {
return temporary;
}
public void setTemporary(boolean temporary) {
this.temporary = temporary;
}
public boolean isIfNotExists() {
return ifNotExists;
}
public void setIfNotExists(boolean ifNotExists) {
this.ifNotExists = ifNotExists;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy