提交 c7678ec5 编写于 作者: S Serge Rider

Remove SQL Server plan. No jaxb in Java 11, move to EE.


Former-commit-id: e3b80e67
上级 40b0d959
......@@ -24,14 +24,12 @@ import org.jkiss.dbeaver.Log;
import org.jkiss.dbeaver.ModelPreferences;
import org.jkiss.dbeaver.ext.mssql.SQLServerConstants;
import org.jkiss.dbeaver.ext.mssql.SQLServerUtils;
import org.jkiss.dbeaver.ext.mssql.model.plan.SQLServerQueryPlanner;
import org.jkiss.dbeaver.ext.mssql.model.session.SQLServerSessionManager;
import org.jkiss.dbeaver.model.*;
import org.jkiss.dbeaver.model.admin.sessions.DBAServerSessionManager;
import org.jkiss.dbeaver.model.connection.DBPConnectionConfiguration;
import org.jkiss.dbeaver.model.exec.*;
import org.jkiss.dbeaver.model.exec.jdbc.*;
import org.jkiss.dbeaver.model.exec.plan.DBCQueryPlanner;
import org.jkiss.dbeaver.model.impl.jdbc.JDBCDataSource;
import org.jkiss.dbeaver.model.impl.jdbc.JDBCExecutionContext;
import org.jkiss.dbeaver.model.impl.jdbc.JDBCUtils;
......@@ -324,8 +322,6 @@ public class SQLServerDataSource extends JDBCDataSource implements DBSObjectSele
return adapter.cast(new SQLServerStructureAssistant(this));
} else if (adapter == DBAServerSessionManager.class) {
return adapter.cast(new SQLServerSessionManager(this));
} else if (adapter == DBCQueryPlanner.class) {
return adapter.cast(new SQLServerQueryPlanner(this));
}
return super.getAdapter(adapter);
}
......
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2019 Serge Rider (serge@jkiss.org)
* Copyright (C) 2019 Andrew Khitrin (ahitrin@gmail.com)
*
* 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 org.jkiss.dbeaver.ext.mssql.model.plan;
import java.io.FileWriter;
import java.sql.SQLException;
import java.sql.SQLXML;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.Log;
import org.jkiss.dbeaver.model.exec.DBCException;
import org.jkiss.dbeaver.model.exec.DBCSession;
import org.jkiss.dbeaver.model.exec.jdbc.JDBCPreparedStatement;
import org.jkiss.dbeaver.model.exec.jdbc.JDBCResultSet;
import org.jkiss.dbeaver.model.exec.jdbc.JDBCSession;
import org.jkiss.dbeaver.model.exec.jdbc.JDBCStatement;
import org.jkiss.dbeaver.model.exec.plan.DBCPlanNode;
import org.jkiss.dbeaver.model.impl.plan.AbstractExecutionPlan;
import org.jkiss.utils.CommonUtils;
import org.jkiss.utils.xml.XMLException;
public class SQLServerPlanAnalyzer extends AbstractExecutionPlan {
private static final String TURN_PLAN_ON = "SET STATISTICS XML ON";
private String query;
private List<DBCPlanNode> nodes;
private static final Log log = Log.getLog(SQLServerPlanAnalyzer.class);
public SQLServerPlanAnalyzer(String query) {
this.query = query;
}
@Override
public String getQueryString() {
return query;
}
@Override
public String getPlanQueryString() throws DBException {
return query;
}
@Override
public List<? extends DBCPlanNode> getPlanNodes(Map<String, Object> options) {
return nodes;
}
public void explain(DBCSession session) throws DBCException
{
JDBCSession connection = (JDBCSession) session;
boolean oldAutoCommit = false;
try {
oldAutoCommit = connection.getAutoCommit();
if (oldAutoCommit) {
connection.setAutoCommit(false);
}
try (JDBCStatement dbStat = connection.createStatement()) {
dbStat.execute(TURN_PLAN_ON);
try (JDBCResultSet dbResult = dbStat.executeQuery(query)) {
if (dbStat.getMoreResults()) {
try (JDBCResultSet planResult = dbStat.getResultSet()) {
if (planResult.next()) {
nodes = SQLServerPlanParser.getInstance().parse(planResult.getString(1),query);
} else {
throw new DBCException("Query plan not available");
}
}
} else {
throw new DBCException("Query plan not supported");
}
} catch (Exception e) {
throw new DBCException("Can't parse plan XML", e);
}
}
} catch (SQLException e) {
throw new DBCException(e, session.getDataSource());
} finally {
// Rollback changes because EXPLAIN actually executes query and it could be INSERT/UPDATE
try {
connection.rollback();
if (oldAutoCommit) {
connection.setAutoCommit(true);
}
} catch (SQLException e) {
log.error("Error closing plan analyser", e);
}
}
}
}
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2019 Serge Rider (serge@jkiss.org)
* Copyright (C) 2019 Andrew Khitrin (ahitrin@gmail.com)
*
* 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 org.jkiss.dbeaver.ext.mssql.model.plan;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import org.jkiss.dbeaver.ext.mssql.model.plan.schemas.sql2017.RelOpType_sql2017;
import org.jkiss.dbeaver.model.exec.plan.DBCPlanNode;
import org.jkiss.dbeaver.model.impl.plan.AbstractExecutionPlanNode;
public class SQLServerPlanNode extends AbstractExecutionPlanNode {
private final RelOpType_sql2017 node;
private String name;
private final String type;
private final SQLServerPlanNode parent;
private final List<SQLServerPlanNode> nested = new ArrayList<>();
/*
@XmlAttribute(name = "Filtered")
protected Boolean filtered;
@XmlAttribute(name = "TableReferenceId")
protected Integer tableReferenceId;
@XmlAttribute(name = "CloneAccessScope")
protected CloneAccessScopeType_sql2017 cloneAccessScope;
@XmlAttribute(name = "Storage")
protected StorageType_sql2017 storage;
*/
public SQLServerPlanNode(String name, String type, RelOpType_sql2017 node,SQLServerPlanNode parent) {
this.name = name;
this.type = type;
this.parent = parent;
this.node = node;
}
@Override
public String getNodeName() {
return name;
}
@Override
public String getNodeType() {
return type;
}
@Override
public DBCPlanNode getParent() {
return parent;
}
@Override
public Collection<? extends DBCPlanNode> getNested() {
return nested;
}
public RelOpType_sql2017 getNode() {
return node;
}
public void addNested(SQLServerPlanNode node) {
nested.add(node);
}
@Override
public String toString() {
return "SQLServerPlanNode [name=" + name + ", type=" + type + "]";
}
public void setName(String name) {
this.name = name;
}
}
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2019 Serge Rider (serge@jkiss.org)
* Copyright (C) 2019 Andrew Khitrin (ahitrin@gmail.com)
*
* 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 org.jkiss.dbeaver.ext.mssql.model.plan;
import java.io.StringReader;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.Optional;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;
import javax.xml.bind.annotation.XmlAttribute;
import org.jkiss.dbeaver.Log;
import org.jkiss.dbeaver.ext.mssql.model.plan.schemas.sql2017.BaseStmtInfoType_sql2017;
import org.jkiss.dbeaver.ext.mssql.model.plan.schemas.sql2017.CloneAccessScopeType_sql2017;
import org.jkiss.dbeaver.ext.mssql.model.plan.schemas.sql2017.IndexKindType_sql2017;
import org.jkiss.dbeaver.ext.mssql.model.plan.schemas.sql2017.ObjectType_sql2017;
import org.jkiss.dbeaver.ext.mssql.model.plan.schemas.sql2017.QueryPlanType_sql2017;
import org.jkiss.dbeaver.ext.mssql.model.plan.schemas.sql2017.RelOpBaseType_sql2017;
import org.jkiss.dbeaver.ext.mssql.model.plan.schemas.sql2017.RelOpType_sql2017;
import org.jkiss.dbeaver.ext.mssql.model.plan.schemas.sql2017.RowsetType_sql2017;
import org.jkiss.dbeaver.ext.mssql.model.plan.schemas.sql2017.ShowPlanXML;
import org.jkiss.dbeaver.ext.mssql.model.plan.schemas.sql2017.ShowPlanXML.BatchSequence_sql2017.Batch_sql2017;
import org.jkiss.dbeaver.ext.mssql.model.plan.schemas.sql2017.StmtBlockType_sql2017;
import org.jkiss.dbeaver.ext.mssql.model.plan.schemas.sql2017.StmtSimpleType_sql2017;
import org.jkiss.dbeaver.ext.mssql.model.plan.schemas.sql2017.StorageType_sql2017;
import org.jkiss.dbeaver.model.exec.DBCException;
import org.jkiss.dbeaver.model.exec.plan.DBCPlanNode;
import org.xml.sax.InputSource;
public class SQLServerPlanParser {
public static final String rootNodeXPath = "/*[local-name() = 'ShowPlanXML']";
public static final String VERSION_ATTR = "Version";
private static final Log log = Log.getLog(SQLServerPlanParser.class);
private JAXBContext jaxbContext = null;
private Unmarshaller jaxbUnmarshaller = null;
public static SQLServerPlanParser instance = new SQLServerPlanParser();
private SQLServerPlanParser() {
}
public static SQLServerPlanParser getInstance() {
return instance;
}
private ShowPlanXML parseXML(String planString) throws JAXBException {
if (jaxbContext == null) {
jaxbContext = JAXBContext.newInstance(ShowPlanXML.class);
}
if (jaxbUnmarshaller == null) {
jaxbUnmarshaller = jaxbContext.createUnmarshaller();
}
return (ShowPlanXML) jaxbUnmarshaller.unmarshal(new InputSource(new StringReader(planString)));
}
private QueryPlanType_sql2017 findQueryPlan(ShowPlanXML plan, String query) {
for (Batch_sql2017 batch : plan.getBatchSequence().getBatch()) {
for (StmtBlockType_sql2017 stmt : batch.getStatements()) {
for (BaseStmtInfoType_sql2017 s : stmt.getStmtSimpleOrStmtCondOrStmtCursor()) {
if (s instanceof StmtSimpleType_sql2017) {
if (((StmtSimpleType_sql2017) s).getStatementText().equals(query.trim())) {
return ((StmtSimpleType_sql2017) s).getQueryPlan();
}
}
}
}
}
return null;
}
public List<Method> getAccessibleMethods(Class clazz) {
List<Method> result = new ArrayList<Method>();
while (clazz != null) {
for (Method method : clazz.getDeclaredMethods()) {
int modifiers = method.getModifiers();
if (Modifier.isPublic(modifiers)) {
if (RelOpBaseType_sql2017.class.isAssignableFrom(method.getReturnType())) {
result.add(method);
}
}
}
clazz = clazz.getSuperclass();
}
return result;
}
private RowsetType_sql2017 findRowset(Object obj)
throws IllegalAccessException, IllegalArgumentException, InvocationTargetException {
Class<?> clazz = obj.getClass();
while (clazz != null) {
for (Method method : clazz.getDeclaredMethods()) {
int modifiers = method.getModifiers();
if (Modifier.isPublic(modifiers)) {
if (RowsetType_sql2017.class.isAssignableFrom(method.getReturnType())) {
RowsetType_sql2017 res = (RowsetType_sql2017) method.invoke(obj);
if (res != null) {
return res;
}
}
}
}
clazz = clazz.getSuperclass();
}
return null;
}
private List<RelOpType_sql2017> getRelOpChild(Object object) {
List<RelOpType_sql2017> child = new ArrayList<RelOpType_sql2017>();
try {
Method method = object.getClass().getMethod("getRelOp");
if (RelOpType_sql2017.class.isAssignableFrom(method.getReturnType())) {
child.add((RelOpType_sql2017) method.invoke(object));
} else if (List.class.isAssignableFrom(method.getReturnType())) {
child.addAll((List<RelOpType_sql2017>) method.invoke(object));
}
} catch (NoSuchMethodException ne) {
log.debug("Leaf node " + object.getClass());
} catch (SecurityException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
log.debug("Ignored in getRelOp in " + object.getClass(), e);
}
return child;
}
private String parseObject(ObjectType_sql2017 o,SQLServerPlanNode planNode) {
StringBuilder sb = new StringBuilder();
if (o.getIndex() != null) {
if (o.getIndex() != null) {
sb.append(o.getIndex());
}
if (o.getIndexKind() != null) {
sb.append(" [").append(o.getIndexKind()).append("]");
}
sb.append(" ");
} else if (o.getTable() != null) {
if (o.getDatabase() != null) {
sb.append(o.getDatabase()).append(".");
}
if (o.getSchema() != null) {
sb.append(o.getSchema()).append(".");
}
if (o.getTable() != null) {
sb.append(o.getTable());
}
if (o.getAlias() != null) {
sb.append(" ").append(o.getAlias());
}
sb.append(" ");
} else {
return "";
}
return sb.toString();
}
private void setObjectName(Object obj,SQLServerPlanNode planNode) {
final StringBuilder sb = new StringBuilder();
try {
RowsetType_sql2017 rowset = findRowset(obj);
if (rowset == null) {
return ;
}
rowset.getObject().stream().forEach(o -> {
sb.append(parseObject(o,planNode));
if (sb.length() > 0) {
sb.append(" ");
}
});
} catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
log.debug(obj.getClass().getName() + " has no name");
return ;
}
planNode.setName(sb.toString());
}
private void addChilds(SQLServerPlanNode nodeParent)
throws IllegalAccessException, IllegalArgumentException, InvocationTargetException {
List<RelOpType_sql2017> childs = getChilds(nodeParent.getNode());
for (RelOpType_sql2017 child : childs) {
if (child != null) {
SQLServerPlanNode node = new SQLServerPlanNode("", child.getLogicalOp().value(),
child, nodeParent);
setObjectName(child,node);
nodeParent.addNested(node);
addChilds(node);
}
}
}
private List<RelOpType_sql2017> getChilds(RelOpType_sql2017 node)
throws IllegalAccessException, IllegalArgumentException, InvocationTargetException {
List<RelOpType_sql2017> childs = new ArrayList<>();
List<Method> allChildMethods = getAccessibleMethods(node.getClass());
for (Method method : allChildMethods) {
Object result = method.invoke(node);
if (result != null) {
childs.addAll(getRelOpChild(result));
}
}
return childs;
}
public List<DBCPlanNode> parse(String planString, String sqlString) throws DBCException {
List<DBCPlanNode> nodes = new ArrayList<>();
try {
ShowPlanXML plan = parseXML(planString);
QueryPlanType_sql2017 queryPlan = findQueryPlan(plan, sqlString);
if (queryPlan == null) {
throw new DBCException("Unable to find plan");
}
RelOpType_sql2017 relOpRoot = queryPlan.getRelOp();
SQLServerPlanNode root = new SQLServerPlanNode("",
relOpRoot.getLogicalOp().value(), relOpRoot, null);
setObjectName(relOpRoot,root);
addChilds(root);
nodes.add(root);
return nodes;
} catch (JAXBException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
throw new DBCException("Error parsing plan", e);
}
}
}
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2019 Serge Rider (serge@jkiss.org)
* Copyright (C) 2019 Andrew Khitrin (ahitrin@gmail.com)
*
* 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 org.jkiss.dbeaver.ext.mssql.model.plan;
import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.ext.mssql.model.SQLServerDataSource;
import org.jkiss.dbeaver.model.DBPDataSource;
import org.jkiss.dbeaver.model.exec.DBCSession;
import org.jkiss.dbeaver.model.exec.plan.DBCPlan;
import org.jkiss.dbeaver.model.exec.plan.DBCPlanStyle;
import org.jkiss.dbeaver.model.exec.plan.DBCQueryPlanner;
public class SQLServerQueryPlanner implements DBCQueryPlanner {
private final SQLServerDataSource dataSource;
public SQLServerQueryPlanner(SQLServerDataSource dataSource) {
this.dataSource = dataSource;
}
@Override
public DBPDataSource getDataSource() {
return dataSource;
}
@Override
public DBCPlan planQueryExecution(DBCSession session, String query) throws DBException {
SQLServerPlanAnalyzer plan = new SQLServerPlanAnalyzer(query);
plan.explain(session);
return plan;
}
@Override
public DBCPlanStyle getPlanStyle() {
return DBCPlanStyle.PLAN;
}
}
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2019 Serge Rider (serge@jkiss.org)
* Copyright (C) 2019 Andrew Khitrin (ahitrin@gmail.com)
*
* 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 org.jkiss.dbeaver.ext.mssql.model.plan.meta;
import org.jkiss.dbeaver.ext.mssql.model.plan.schemas.sql2017.RelOpType_sql2017;
public interface SQLServerRelNode {
RelOpType_sql2017 getRelOp();
}
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2019 Serge Rider (serge@jkiss.org)
* Copyright (C) 2019 Andrew Khitrin (ahitrin@gmail.com)
*
* 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 org.jkiss.dbeaver.ext.mssql.model.plan.meta;
import java.util.List;
import org.jkiss.dbeaver.ext.mssql.model.plan.schemas.sql2017.RelOpType_sql2017;
public interface SQLServerRelNodes {
List<RelOpType_sql2017> getRelOp();
}
package org.jkiss.dbeaver.ext.mssql.model.plan.schemas.sql2017;
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;
/**
*
* The Adaptive Join element replaces a adaptive concat with Hash Join and Nested loops as inputs. This element
* will have 3 inputs the two children of the HJ and the inner child of the NLJ. We append the required HJ and NLJ properties to the new
* AdaptiveJoin showplan element.
*
*
* <p>Java class for AdaptiveJoinType complex type.
*
* <p>The following schema fragment specifies the expected content contained within this class.
*
* <pre>
* &lt;complexType name="AdaptiveJoinType">
* &lt;complexContent>
* &lt;extension base="{http://schemas.microsoft.com/sqlserver/2004/07/showplan}RelOpBaseType">
* &lt;sequence>
* &lt;element name="HashKeysBuild" type="{http://schemas.microsoft.com/sqlserver/2004/07/showplan}ColumnReferenceListType" minOccurs="0"/>
* &lt;element name="HashKeysProbe" type="{http://schemas.microsoft.com/sqlserver/2004/07/showplan}ColumnReferenceListType" minOccurs="0"/>
* &lt;element name="BuildResidual" type="{http://schemas.microsoft.com/sqlserver/2004/07/showplan}ScalarExpressionType" minOccurs="0"/>
* &lt;element name="ProbeResidual" type="{http://schemas.microsoft.com/sqlserver/2004/07/showplan}ScalarExpressionType" minOccurs="0"/>
* &lt;element name="StarJoinInfo" type="{http://schemas.microsoft.com/sqlserver/2004/07/showplan}StarJoinInfoType" minOccurs="0"/>
* &lt;element name="Predicate" type="{http://schemas.microsoft.com/sqlserver/2004/07/showplan}ScalarExpressionType" minOccurs="0"/>
* &lt;element name="PassThru" type="{http://schemas.microsoft.com/sqlserver/2004/07/showplan}ScalarExpressionType" minOccurs="0"/>
* &lt;element name="OuterReferences" type="{http://schemas.microsoft.com/sqlserver/2004/07/showplan}ColumnReferenceListType" minOccurs="0"/>
* &lt;element name="PartitionId" type="{http://schemas.microsoft.com/sqlserver/2004/07/showplan}SingleColumnReferenceType" minOccurs="0"/>
* &lt;element name="RelOp" type="{http://schemas.microsoft.com/sqlserver/2004/07/showplan}RelOpType" maxOccurs="3" minOccurs="3"/>
* &lt;/sequence>
* &lt;attribute name="BitmapCreator" type="{http://www.w3.org/2001/XMLSchema}boolean" />
* &lt;attribute name="Optimized" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" />
* &lt;/extension>
* &lt;/complexContent>
* &lt;/complexType>
* </pre>
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "AdaptiveJoinType", namespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan", propOrder = {
"hashKeysBuild",
"hashKeysProbe",
"buildResidual",
"probeResidual",
"starJoinInfo",
"predicate",
"passThru",
"outerReferences",
"partitionId",
"relOp"
})
public class AdaptiveJoinType_sql2017
extends RelOpBaseType_sql2017
{
@XmlElement(name = "HashKeysBuild", namespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan")
protected ColumnReferenceListType_sql2017 hashKeysBuild;
@XmlElement(name = "HashKeysProbe", namespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan")
protected ColumnReferenceListType_sql2017 hashKeysProbe;
@XmlElement(name = "BuildResidual", namespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan")
protected ScalarExpressionType_sql2017 buildResidual;
@XmlElement(name = "ProbeResidual", namespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan")
protected ScalarExpressionType_sql2017 probeResidual;
@XmlElement(name = "StarJoinInfo", namespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan")
protected StarJoinInfoType_sql2017 starJoinInfo;
@XmlElement(name = "Predicate", namespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan")
protected ScalarExpressionType_sql2017 predicate;
@XmlElement(name = "PassThru", namespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan")
protected ScalarExpressionType_sql2017 passThru;
@XmlElement(name = "OuterReferences", namespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan")
protected ColumnReferenceListType_sql2017 outerReferences;
@XmlElement(name = "PartitionId", namespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan")
protected SingleColumnReferenceType_sql2017 partitionId;
@XmlElement(name = "RelOp", namespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan", required = true)
protected List<RelOpType_sql2017> relOp;
@XmlAttribute(name = "BitmapCreator")
protected Boolean bitmapCreator;
@XmlAttribute(name = "Optimized", required = true)
protected boolean optimized;
/**
* Gets the value of the hashKeysBuild property.
*
* @return
* possible object is
* {@link ColumnReferenceListType_sql2017 }
*
*/
public ColumnReferenceListType_sql2017 getHashKeysBuild() {
return hashKeysBuild;
}
/**
* Sets the value of the hashKeysBuild property.
*
* @param value
* allowed object is
* {@link ColumnReferenceListType_sql2017 }
*
*/
public void setHashKeysBuild(ColumnReferenceListType_sql2017 value) {
this.hashKeysBuild = value;
}
/**
* Gets the value of the hashKeysProbe property.
*
* @return
* possible object is
* {@link ColumnReferenceListType_sql2017 }
*
*/
public ColumnReferenceListType_sql2017 getHashKeysProbe() {
return hashKeysProbe;
}
/**
* Sets the value of the hashKeysProbe property.
*
* @param value
* allowed object is
* {@link ColumnReferenceListType_sql2017 }
*
*/
public void setHashKeysProbe(ColumnReferenceListType_sql2017 value) {
this.hashKeysProbe = value;
}
/**
* Gets the value of the buildResidual property.
*
* @return
* possible object is
* {@link ScalarExpressionType_sql2017 }
*
*/
public ScalarExpressionType_sql2017 getBuildResidual() {
return buildResidual;
}
/**
* Sets the value of the buildResidual property.
*
* @param value
* allowed object is
* {@link ScalarExpressionType_sql2017 }
*
*/
public void setBuildResidual(ScalarExpressionType_sql2017 value) {
this.buildResidual = value;
}
/**
* Gets the value of the probeResidual property.
*
* @return
* possible object is
* {@link ScalarExpressionType_sql2017 }
*
*/
public ScalarExpressionType_sql2017 getProbeResidual() {
return probeResidual;
}
/**
* Sets the value of the probeResidual property.
*
* @param value
* allowed object is
* {@link ScalarExpressionType_sql2017 }
*
*/
public void setProbeResidual(ScalarExpressionType_sql2017 value) {
this.probeResidual = value;
}
/**
* Gets the value of the starJoinInfo property.
*
* @return
* possible object is
* {@link StarJoinInfoType_sql2017 }
*
*/
public StarJoinInfoType_sql2017 getStarJoinInfo() {
return starJoinInfo;
}
/**
* Sets the value of the starJoinInfo property.
*
* @param value
* allowed object is
* {@link StarJoinInfoType_sql2017 }
*
*/
public void setStarJoinInfo(StarJoinInfoType_sql2017 value) {
this.starJoinInfo = value;
}
/**
* Gets the value of the predicate property.
*
* @return
* possible object is
* {@link ScalarExpressionType_sql2017 }
*
*/
public ScalarExpressionType_sql2017 getPredicate() {
return predicate;
}
/**
* Sets the value of the predicate property.
*
* @param value
* allowed object is
* {@link ScalarExpressionType_sql2017 }
*
*/
public void setPredicate(ScalarExpressionType_sql2017 value) {
this.predicate = value;
}
/**
* Gets the value of the passThru property.
*
* @return
* possible object is
* {@link ScalarExpressionType_sql2017 }
*
*/
public ScalarExpressionType_sql2017 getPassThru() {
return passThru;
}
/**
* Sets the value of the passThru property.
*
* @param value
* allowed object is
* {@link ScalarExpressionType_sql2017 }
*
*/
public void setPassThru(ScalarExpressionType_sql2017 value) {
this.passThru = value;
}
/**
* Gets the value of the outerReferences property.
*
* @return
* possible object is
* {@link ColumnReferenceListType_sql2017 }
*
*/
public ColumnReferenceListType_sql2017 getOuterReferences() {
return outerReferences;
}
/**
* Sets the value of the outerReferences property.
*
* @param value
* allowed object is
* {@link ColumnReferenceListType_sql2017 }
*
*/
public void setOuterReferences(ColumnReferenceListType_sql2017 value) {
this.outerReferences = value;
}
/**
* Gets the value of the partitionId property.
*
* @return
* possible object is
* {@link SingleColumnReferenceType_sql2017 }
*
*/
public SingleColumnReferenceType_sql2017 getPartitionId() {
return partitionId;
}
/**
* Sets the value of the partitionId property.
*
* @param value
* allowed object is
* {@link SingleColumnReferenceType_sql2017 }
*
*/
public void setPartitionId(SingleColumnReferenceType_sql2017 value) {
this.partitionId = value;
}
/**
* Gets the value of the relOp property.
*
* <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
* This is why there is not a <CODE>set</CODE> method for the relOp property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getRelOp().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
* {@link RelOpType_sql2017 }
*
*
*/
public List<RelOpType_sql2017> getRelOp() {
if (relOp == null) {
relOp = new ArrayList<RelOpType_sql2017>();
}
return this.relOp;
}
/**
* Gets the value of the bitmapCreator property.
*
* @return
* possible object is
* {@link Boolean }
*
*/
public Boolean getBitmapCreator() {
return bitmapCreator;
}
/**
* Sets the value of the bitmapCreator property.
*
* @param value
* allowed object is
* {@link Boolean }
*
*/
public void setBitmapCreator(Boolean value) {
this.bitmapCreator = value;
}
/**
* Gets the value of the optimized property.
*
*/
public boolean isOptimized() {
return optimized;
}
/**
* Sets the value of the optimized property.
*
*/
public void setOptimized(boolean value) {
this.optimized = value;
}
}
package org.jkiss.dbeaver.ext.mssql.model.plan.schemas.sql2017;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlType;
/**
* Warning information for plan-affecting type conversion
*
* <p>Java class for AffectingConvertWarningType complex type.
*
* <p>The following schema fragment specifies the expected content contained within this class.
*
* <pre>
* &lt;complexType name="AffectingConvertWarningType">
* &lt;complexContent>
* &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* &lt;sequence>
* &lt;/sequence>
* &lt;attribute name="ConvertIssue" use="required">
* &lt;simpleType>
* &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
* &lt;enumeration value="Cardinality Estimate"/>
* &lt;enumeration value="Seek Plan"/>
* &lt;/restriction>
* &lt;/simpleType>
* &lt;/attribute>
* &lt;attribute name="Expression" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
* &lt;/restriction>
* &lt;/complexContent>
* &lt;/complexType>
* </pre>
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "AffectingConvertWarningType", namespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan")
public class AffectingConvertWarningType_sql2017 {
@XmlAttribute(name = "ConvertIssue", required = true)
protected String convertIssue;
@XmlAttribute(name = "Expression", required = true)
protected String expression;
/**
* Gets the value of the convertIssue property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getConvertIssue() {
return convertIssue;
}
/**
* Sets the value of the convertIssue property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setConvertIssue(String value) {
this.convertIssue = value;
}
/**
* Gets the value of the expression property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getExpression() {
return expression;
}
/**
* Sets the value of the expression property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setExpression(String value) {
this.expression = value;
}
}
package org.jkiss.dbeaver.ext.mssql.model.plan.schemas.sql2017;
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;
/**
* <p>Java class for AggregateType complex type.
*
* <p>The following schema fragment specifies the expected content contained within this class.
*
* <pre>
* &lt;complexType name="AggregateType">
* &lt;complexContent>
* &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* &lt;sequence>
* &lt;element name="ScalarOperator" type="{http://schemas.microsoft.com/sqlserver/2004/07/showplan}ScalarType" maxOccurs="unbounded" minOccurs="0"/>
* &lt;/sequence>
* &lt;attribute name="AggType" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
* &lt;attribute name="Distinct" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" />
* &lt;/restriction>
* &lt;/complexContent>
* &lt;/complexType>
* </pre>
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "AggregateType", namespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan", propOrder = {
"scalarOperator"
})
public class AggregateType_sql2017 {
@XmlElement(name = "ScalarOperator", namespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan")
protected List<ScalarType_sql2017> scalarOperator;
@XmlAttribute(name = "AggType", required = true)
protected String aggType;
@XmlAttribute(name = "Distinct", required = true)
protected boolean distinct;
/**
* Gets the value of the scalarOperator property.
*
* <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
* This is why there is not a <CODE>set</CODE> method for the scalarOperator property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getScalarOperator().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
* {@link ScalarType_sql2017 }
*
*
*/
public List<ScalarType_sql2017> getScalarOperator() {
if (scalarOperator == null) {
scalarOperator = new ArrayList<ScalarType_sql2017>();
}
return this.scalarOperator;
}
/**
* Gets the value of the aggType property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getAggType() {
return aggType;
}
/**
* Sets the value of the aggType property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setAggType(String value) {
this.aggType = value;
}
/**
* Gets the value of the distinct property.
*
*/
public boolean isDistinct() {
return distinct;
}
/**
* Sets the value of the distinct property.
*
*/
public void setDistinct(boolean value) {
this.distinct = value;
}
}
package org.jkiss.dbeaver.ext.mssql.model.plan.schemas.sql2017;
import javax.xml.bind.annotation.XmlEnum;
import javax.xml.bind.annotation.XmlType;
/**
* <p>Java class for ArithmeticOperationType.
*
* <p>The following schema fragment specifies the expected content contained within this class.
* <p>
* <pre>
* &lt;simpleType name="ArithmeticOperationType">
* &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
* &lt;enumeration value="ADD"/>
* &lt;enumeration value="BIT_ADD"/>
* &lt;enumeration value="BIT_AND"/>
* &lt;enumeration value="BIT_COMBINE"/>
* &lt;enumeration value="BIT_NOT"/>
* &lt;enumeration value="BIT_OR"/>
* &lt;enumeration value="BIT_XOR"/>
* &lt;enumeration value="DIV"/>
* &lt;enumeration value="HASH"/>
* &lt;enumeration value="MINUS"/>
* &lt;enumeration value="MOD"/>
* &lt;enumeration value="MULT"/>
* &lt;enumeration value="SUB"/>
* &lt;/restriction>
* &lt;/simpleType>
* </pre>
*
*/
@XmlType(name = "ArithmeticOperationType", namespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan")
@XmlEnum
public enum ArithmeticOperationType_sql2017 {
ADD,
BIT_ADD,
BIT_AND,
BIT_COMBINE,
BIT_NOT,
BIT_OR,
BIT_XOR,
DIV,
HASH,
MINUS,
MOD,
MULT,
SUB;
public String value() {
return name();
}
public static ArithmeticOperationType_sql2017 fromValue(String v) {
return valueOf(v);
}
}
package org.jkiss.dbeaver.ext.mssql.model.plan.schemas.sql2017;
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;
/**
* <p>Java class for ArithmeticType complex type.
*
* <p>The following schema fragment specifies the expected content contained within this class.
*
* <pre>
* &lt;complexType name="ArithmeticType">
* &lt;complexContent>
* &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* &lt;sequence>
* &lt;element name="ScalarOperator" type="{http://schemas.microsoft.com/sqlserver/2004/07/showplan}ScalarType" maxOccurs="2"/>
* &lt;/sequence>
* &lt;attribute name="Operation" use="required" type="{http://schemas.microsoft.com/sqlserver/2004/07/showplan}ArithmeticOperationType" />
* &lt;/restriction>
* &lt;/complexContent>
* &lt;/complexType>
* </pre>
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "ArithmeticType", namespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan", propOrder = {
"scalarOperator"
})
public class ArithmeticType_sql2017 {
@XmlElement(name = "ScalarOperator", namespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan", required = true)
protected List<ScalarType_sql2017> scalarOperator;
@XmlAttribute(name = "Operation", required = true)
protected ArithmeticOperationType_sql2017 operation;
/**
* Gets the value of the scalarOperator property.
*
* <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
* This is why there is not a <CODE>set</CODE> method for the scalarOperator property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getScalarOperator().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
* {@link ScalarType_sql2017 }
*
*
*/
public List<ScalarType_sql2017> getScalarOperator() {
if (scalarOperator == null) {
scalarOperator = new ArrayList<ScalarType_sql2017>();
}
return this.scalarOperator;
}
/**
* Gets the value of the operation property.
*
* @return
* possible object is
* {@link ArithmeticOperationType_sql2017 }
*
*/
public ArithmeticOperationType_sql2017 getOperation() {
return operation;
}
/**
* Sets the value of the operation property.
*
* @param value
* allowed object is
* {@link ArithmeticOperationType_sql2017 }
*
*/
public void setOperation(ArithmeticOperationType_sql2017 value) {
this.operation = value;
}
}
package org.jkiss.dbeaver.ext.mssql.model.plan.schemas.sql2017;
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.JAXBElement;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElementRef;
import javax.xml.bind.annotation.XmlElementRefs;
import javax.xml.bind.annotation.XmlType;
/**
* <p>Java class for AssignType complex type.
*
* <p>The following schema fragment specifies the expected content contained within this class.
*
* <pre>
* &lt;complexType name="AssignType">
* &lt;complexContent>
* &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* &lt;sequence>
* &lt;choice>
* &lt;element name="ColumnReference" type="{http://schemas.microsoft.com/sqlserver/2004/07/showplan}ColumnReferenceType"/>
* &lt;element name="ScalarOperator" type="{http://schemas.microsoft.com/sqlserver/2004/07/showplan}ScalarType"/>
* &lt;/choice>
* &lt;element name="ScalarOperator" type="{http://schemas.microsoft.com/sqlserver/2004/07/showplan}ScalarType"/>
* &lt;/sequence>
* &lt;/restriction>
* &lt;/complexContent>
* &lt;/complexType>
* </pre>
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "AssignType", namespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan", propOrder = {
"content"
})
public class AssignType_sql2017 {
@XmlElementRefs({
@XmlElementRef(name = "ScalarOperator", namespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan", type = JAXBElement.class, required = false),
@XmlElementRef(name = "ColumnReference", namespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan", type = JAXBElement.class, required = false)
})
protected List<JAXBElement<?>> content;
/**
* Gets the rest of the content model.
*
* <p>
* You are getting this "catch-all" property because of the following reason:
* The field name "ScalarOperator" is used by two different parts of a schema. See:
* line 1640 of file:/C:/dbeaver/mssql_plans/schemas/sql2017/showplanxml.xsd
* line 1638 of file:/C:/dbeaver/mssql_plans/schemas/sql2017/showplanxml.xsd
* <p>
* To get rid of this property, apply a property customization to one
* of both of the following declarations to change their names:
* Gets the value of the content property.
*
* <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
* This is why there is not a <CODE>set</CODE> method for the content property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getContent().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
* {@link JAXBElement }{@code <}{@link ScalarType_sql2017 }{@code >}
* {@link JAXBElement }{@code <}{@link ColumnReferenceType_sql2017 }{@code >}
*
*
*/
public List<JAXBElement<?>> getContent() {
if (content == null) {
content = new ArrayList<JAXBElement<?>>();
}
return this.content;
}
}
package org.jkiss.dbeaver.ext.mssql.model.plan.schemas.sql2017;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;
/**
* <p>Java class for BatchHashTableBuildType complex type.
*
* <p>The following schema fragment specifies the expected content contained within this class.
*
* <pre>
* &lt;complexType name="BatchHashTableBuildType">
* &lt;complexContent>
* &lt;extension base="{http://schemas.microsoft.com/sqlserver/2004/07/showplan}RelOpBaseType">
* &lt;sequence>
* &lt;element name="RelOp" type="{http://schemas.microsoft.com/sqlserver/2004/07/showplan}RelOpType"/>
* &lt;/sequence>
* &lt;attribute name="BitmapCreator" type="{http://www.w3.org/2001/XMLSchema}boolean" />
* &lt;/extension>
* &lt;/complexContent>
* &lt;/complexType>
* </pre>
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "BatchHashTableBuildType", namespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan", propOrder = {
"relOp"
})
public class BatchHashTableBuildType_sql2017
extends RelOpBaseType_sql2017
{
@XmlElement(name = "RelOp", namespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan", required = true)
protected RelOpType_sql2017 relOp;
@XmlAttribute(name = "BitmapCreator")
protected Boolean bitmapCreator;
/**
* Gets the value of the relOp property.
*
* @return
* possible object is
* {@link RelOpType_sql2017 }
*
*/
public RelOpType_sql2017 getRelOp() {
return relOp;
}
/**
* Sets the value of the relOp property.
*
* @param value
* allowed object is
* {@link RelOpType_sql2017 }
*
*/
public void setRelOp(RelOpType_sql2017 value) {
this.relOp = value;
}
/**
* Gets the value of the bitmapCreator property.
*
* @return
* possible object is
* {@link Boolean }
*
*/
public Boolean getBitmapCreator() {
return bitmapCreator;
}
/**
* Sets the value of the bitmapCreator property.
*
* @param value
* allowed object is
* {@link Boolean }
*
*/
public void setBitmapCreator(Boolean value) {
this.bitmapCreator = value;
}
}
package org.jkiss.dbeaver.ext.mssql.model.plan.schemas.sql2017;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;
/**
* <p>Java class for BitmapType complex type.
*
* <p>The following schema fragment specifies the expected content contained within this class.
*
* <pre>
* &lt;complexType name="BitmapType">
* &lt;complexContent>
* &lt;extension base="{http://schemas.microsoft.com/sqlserver/2004/07/showplan}RelOpBaseType">
* &lt;sequence>
* &lt;element name="HashKeys" type="{http://schemas.microsoft.com/sqlserver/2004/07/showplan}ColumnReferenceListType"/>
* &lt;element name="RelOp" type="{http://schemas.microsoft.com/sqlserver/2004/07/showplan}RelOpType"/>
* &lt;/sequence>
* &lt;/extension>
* &lt;/complexContent>
* &lt;/complexType>
* </pre>
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "BitmapType", namespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan", propOrder = {
"hashKeys",
"relOp"
})
public class BitmapType_sql2017
extends RelOpBaseType_sql2017
{
@XmlElement(name = "HashKeys", namespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan", required = true)
protected ColumnReferenceListType_sql2017 hashKeys;
@XmlElement(name = "RelOp", namespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan", required = true)
protected RelOpType_sql2017 relOp;
/**
* Gets the value of the hashKeys property.
*
* @return
* possible object is
* {@link ColumnReferenceListType_sql2017 }
*
*/
public ColumnReferenceListType_sql2017 getHashKeys() {
return hashKeys;
}
/**
* Sets the value of the hashKeys property.
*
* @param value
* allowed object is
* {@link ColumnReferenceListType_sql2017 }
*
*/
public void setHashKeys(ColumnReferenceListType_sql2017 value) {
this.hashKeys = value;
}
/**
* Gets the value of the relOp property.
*
* @return
* possible object is
* {@link RelOpType_sql2017 }
*
*/
public RelOpType_sql2017 getRelOp() {
return relOp;
}
/**
* Sets the value of the relOp property.
*
* @param value
* allowed object is
* {@link RelOpType_sql2017 }
*
*/
public void setRelOp(RelOpType_sql2017 value) {
this.relOp = value;
}
}
package org.jkiss.dbeaver.ext.mssql.model.plan.schemas.sql2017;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlType;
/**
* <p>Java class for CLRFunctionType complex type.
*
* <p>The following schema fragment specifies the expected content contained within this class.
*
* <pre>
* &lt;complexType name="CLRFunctionType">
* &lt;complexContent>
* &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* &lt;sequence>
* &lt;/sequence>
* &lt;attribute name="Assembly" type="{http://www.w3.org/2001/XMLSchema}string" />
* &lt;attribute name="Class" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
* &lt;attribute name="Method" type="{http://www.w3.org/2001/XMLSchema}string" />
* &lt;/restriction>
* &lt;/complexContent>
* &lt;/complexType>
* </pre>
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "CLRFunctionType", namespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan")
public class CLRFunctionType_sql2017 {
@XmlAttribute(name = "Assembly")
protected String assembly;
@XmlAttribute(name = "Class", required = true)
protected String clazz;
@XmlAttribute(name = "Method")
protected String method;
/**
* Gets the value of the assembly property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getAssembly() {
return assembly;
}
/**
* Sets the value of the assembly property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setAssembly(String value) {
this.assembly = value;
}
/**
* Gets the value of the clazz property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getClazz() {
return clazz;
}
/**
* Sets the value of the clazz property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setClazz(String value) {
this.clazz = value;
}
/**
* Gets the value of the method property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getMethod() {
return method;
}
/**
* Sets the value of the method property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setMethod(String value) {
this.method = value;
}
}
package org.jkiss.dbeaver.ext.mssql.model.plan.schemas.sql2017;
import javax.xml.bind.annotation.XmlEnum;
import javax.xml.bind.annotation.XmlEnumValue;
import javax.xml.bind.annotation.XmlType;
/**
* <p>Java class for CloneAccessScopeType.
*
* <p>The following schema fragment specifies the expected content contained within this class.
* <p>
* <pre>
* &lt;simpleType name="CloneAccessScopeType">
* &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
* &lt;enumeration value="Primary"/>
* &lt;enumeration value="Secondary"/>
* &lt;enumeration value="Both"/>
* &lt;enumeration value="Either"/>
* &lt;enumeration value="ExactMatch"/>
* &lt;enumeration value="Local"/>
* &lt;/restriction>
* &lt;/simpleType>
* </pre>
*
*/
@XmlType(name = "CloneAccessScopeType", namespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan")
@XmlEnum
public enum CloneAccessScopeType_sql2017 {
@XmlEnumValue("Primary")
PRIMARY("Primary"),
@XmlEnumValue("Secondary")
SECONDARY("Secondary"),
@XmlEnumValue("Both")
BOTH("Both"),
@XmlEnumValue("Either")
EITHER("Either"),
@XmlEnumValue("ExactMatch")
EXACT_MATCH("ExactMatch"),
@XmlEnumValue("Local")
LOCAL("Local");
private final String value;
CloneAccessScopeType_sql2017(String v) {
value = v;
}
public String value() {
return value;
}
public static CloneAccessScopeType_sql2017 fromValue(String v) {
for (CloneAccessScopeType_sql2017 c: CloneAccessScopeType_sql2017 .values()) {
if (c.value.equals(v)) {
return c;
}
}
throw new IllegalArgumentException(v);
}
}
package org.jkiss.dbeaver.ext.mssql.model.plan.schemas.sql2017;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;
/**
* <p>Java class for CollapseType complex type.
*
* <p>The following schema fragment specifies the expected content contained within this class.
*
* <pre>
* &lt;complexType name="CollapseType">
* &lt;complexContent>
* &lt;extension base="{http://schemas.microsoft.com/sqlserver/2004/07/showplan}RelOpBaseType">
* &lt;sequence>
* &lt;element name="GroupBy" type="{http://schemas.microsoft.com/sqlserver/2004/07/showplan}ColumnReferenceListType"/>
* &lt;element name="RelOp" type="{http://schemas.microsoft.com/sqlserver/2004/07/showplan}RelOpType"/>
* &lt;/sequence>
* &lt;/extension>
* &lt;/complexContent>
* &lt;/complexType>
* </pre>
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "CollapseType", namespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan", propOrder = {
"groupBy",
"relOp"
})
public class CollapseType_sql2017
extends RelOpBaseType_sql2017
{
@XmlElement(name = "GroupBy", namespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan", required = true)
protected ColumnReferenceListType_sql2017 groupBy;
@XmlElement(name = "RelOp", namespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan", required = true)
protected RelOpType_sql2017 relOp;
/**
* Gets the value of the groupBy property.
*
* @return
* possible object is
* {@link ColumnReferenceListType_sql2017 }
*
*/
public ColumnReferenceListType_sql2017 getGroupBy() {
return groupBy;
}
/**
* Sets the value of the groupBy property.
*
* @param value
* allowed object is
* {@link ColumnReferenceListType_sql2017 }
*
*/
public void setGroupBy(ColumnReferenceListType_sql2017 value) {
this.groupBy = value;
}
/**
* Gets the value of the relOp property.
*
* @return
* possible object is
* {@link RelOpType_sql2017 }
*
*/
public RelOpType_sql2017 getRelOp() {
return relOp;
}
/**
* Sets the value of the relOp property.
*
* @param value
* allowed object is
* {@link RelOpType_sql2017 }
*
*/
public void setRelOp(RelOpType_sql2017 value) {
this.relOp = value;
}
}
package org.jkiss.dbeaver.ext.mssql.model.plan.schemas.sql2017;
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;
/**
* <p>Java class for ColumnGroupType complex type.
*
* <p>The following schema fragment specifies the expected content contained within this class.
*
* <pre>
* &lt;complexType name="ColumnGroupType">
* &lt;complexContent>
* &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* &lt;sequence>
* &lt;element name="Column" type="{http://schemas.microsoft.com/sqlserver/2004/07/showplan}ColumnType" maxOccurs="unbounded"/>
* &lt;/sequence>
* &lt;attribute name="Usage" use="required">
* &lt;simpleType>
* &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
* &lt;enumeration value="EQUALITY"/>
* &lt;enumeration value="INEQUALITY"/>
* &lt;enumeration value="INCLUDE"/>
* &lt;/restriction>
* &lt;/simpleType>
* &lt;/attribute>
* &lt;/restriction>
* &lt;/complexContent>
* &lt;/complexType>
* </pre>
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "ColumnGroupType", namespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan", propOrder = {
"column"
})
public class ColumnGroupType_sql2017 {
@XmlElement(name = "Column", namespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan", required = true)
protected List<ColumnType_sql2017> column;
@XmlAttribute(name = "Usage", required = true)
protected String usage;
/**
* Gets the value of the column property.
*
* <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
* This is why there is not a <CODE>set</CODE> method for the column property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getColumn().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
* {@link ColumnType_sql2017 }
*
*
*/
public List<ColumnType_sql2017> getColumn() {
if (column == null) {
column = new ArrayList<ColumnType_sql2017>();
}
return this.column;
}
/**
* Gets the value of the usage property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getUsage() {
return usage;
}
/**
* Sets the value of the usage property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setUsage(String value) {
this.usage = value;
}
}
package org.jkiss.dbeaver.ext.mssql.model.plan.schemas.sql2017;
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;
/**
* <p>Java class for ColumnReferenceListType complex type.
*
* <p>The following schema fragment specifies the expected content contained within this class.
*
* <pre>
* &lt;complexType name="ColumnReferenceListType">
* &lt;complexContent>
* &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* &lt;sequence>
* &lt;element name="ColumnReference" type="{http://schemas.microsoft.com/sqlserver/2004/07/showplan}ColumnReferenceType" maxOccurs="unbounded" minOccurs="0"/>
* &lt;/sequence>
* &lt;/restriction>
* &lt;/complexContent>
* &lt;/complexType>
* </pre>
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "ColumnReferenceListType", namespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan", propOrder = {
"columnReference"
})
public class ColumnReferenceListType_sql2017 {
@XmlElement(name = "ColumnReference", namespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan")
protected List<ColumnReferenceType_sql2017> columnReference;
/**
* Gets the value of the columnReference property.
*
* <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
* This is why there is not a <CODE>set</CODE> method for the columnReference property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getColumnReference().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
* {@link ColumnReferenceType_sql2017 }
*
*
*/
public List<ColumnReferenceType_sql2017> getColumnReference() {
if (columnReference == null) {
columnReference = new ArrayList<ColumnReferenceType_sql2017>();
}
return this.columnReference;
}
}
package org.jkiss.dbeaver.ext.mssql.model.plan.schemas.sql2017;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;
/**
* <p>Java class for ColumnReferenceType complex type.
*
* <p>The following schema fragment specifies the expected content contained within this class.
*
* <pre>
* &lt;complexType name="ColumnReferenceType">
* &lt;complexContent>
* &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* &lt;sequence>
* &lt;element name="ScalarOperator" type="{http://schemas.microsoft.com/sqlserver/2004/07/showplan}ScalarType" minOccurs="0"/>
* &lt;element name="InternalInfo" type="{http://schemas.microsoft.com/sqlserver/2004/07/showplan}InternalInfoType" minOccurs="0"/>
* &lt;/sequence>
* &lt;attribute name="Server" type="{http://www.w3.org/2001/XMLSchema}string" />
* &lt;attribute name="Database" type="{http://www.w3.org/2001/XMLSchema}string" />
* &lt;attribute name="Schema" type="{http://www.w3.org/2001/XMLSchema}string" />
* &lt;attribute name="Table" type="{http://www.w3.org/2001/XMLSchema}string" />
* &lt;attribute name="Alias" type="{http://www.w3.org/2001/XMLSchema}string" />
* &lt;attribute name="Column" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
* &lt;attribute name="ComputedColumn" type="{http://www.w3.org/2001/XMLSchema}boolean" />
* &lt;attribute name="ParameterDataType" type="{http://www.w3.org/2001/XMLSchema}string" />
* &lt;attribute name="ParameterCompiledValue" type="{http://www.w3.org/2001/XMLSchema}string" />
* &lt;attribute name="ParameterRuntimeValue" type="{http://www.w3.org/2001/XMLSchema}string" />
* &lt;/restriction>
* &lt;/complexContent>
* &lt;/complexType>
* </pre>
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "ColumnReferenceType", namespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan", propOrder = {
"scalarOperator",
"internalInfo"
})
public class ColumnReferenceType_sql2017 {
@XmlElement(name = "ScalarOperator", namespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan")
protected ScalarType_sql2017 scalarOperator;
@XmlElement(name = "InternalInfo", namespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan")
protected InternalInfoType_sql2017 internalInfo;
@XmlAttribute(name = "Server")
protected String server;
@XmlAttribute(name = "Database")
protected String database;
@XmlAttribute(name = "Schema")
protected String schema;
@XmlAttribute(name = "Table")
protected String table;
@XmlAttribute(name = "Alias")
protected String alias;
@XmlAttribute(name = "Column", required = true)
protected String column;
@XmlAttribute(name = "ComputedColumn")
protected Boolean computedColumn;
@XmlAttribute(name = "ParameterDataType")
protected String parameterDataType;
@XmlAttribute(name = "ParameterCompiledValue")
protected String parameterCompiledValue;
@XmlAttribute(name = "ParameterRuntimeValue")
protected String parameterRuntimeValue;
/**
* Gets the value of the scalarOperator property.
*
* @return
* possible object is
* {@link ScalarType_sql2017 }
*
*/
public ScalarType_sql2017 getScalarOperator() {
return scalarOperator;
}
/**
* Sets the value of the scalarOperator property.
*
* @param value
* allowed object is
* {@link ScalarType_sql2017 }
*
*/
public void setScalarOperator(ScalarType_sql2017 value) {
this.scalarOperator = value;
}
/**
* Gets the value of the internalInfo property.
*
* @return
* possible object is
* {@link InternalInfoType_sql2017 }
*
*/
public InternalInfoType_sql2017 getInternalInfo() {
return internalInfo;
}
/**
* Sets the value of the internalInfo property.
*
* @param value
* allowed object is
* {@link InternalInfoType_sql2017 }
*
*/
public void setInternalInfo(InternalInfoType_sql2017 value) {
this.internalInfo = value;
}
/**
* Gets the value of the server property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getServer() {
return server;
}
/**
* Sets the value of the server property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setServer(String value) {
this.server = value;
}
/**
* Gets the value of the database property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getDatabase() {
return database;
}
/**
* Sets the value of the database property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setDatabase(String value) {
this.database = value;
}
/**
* Gets the value of the schema property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getSchema() {
return schema;
}
/**
* Sets the value of the schema property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setSchema(String value) {
this.schema = value;
}
/**
* Gets the value of the table property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getTable() {
return table;
}
/**
* Sets the value of the table property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setTable(String value) {
this.table = value;
}
/**
* Gets the value of the alias property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getAlias() {
return alias;
}
/**
* Sets the value of the alias property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setAlias(String value) {
this.alias = value;
}
/**
* Gets the value of the column property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getColumn() {
return column;
}
/**
* Sets the value of the column property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setColumn(String value) {
this.column = value;
}
/**
* Gets the value of the computedColumn property.
*
* @return
* possible object is
* {@link Boolean }
*
*/
public Boolean getComputedColumn() {
return computedColumn;
}
/**
* Sets the value of the computedColumn property.
*
* @param value
* allowed object is
* {@link Boolean }
*
*/
public void setComputedColumn(Boolean value) {
this.computedColumn = value;
}
/**
* Gets the value of the parameterDataType property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getParameterDataType() {
return parameterDataType;
}
/**
* Sets the value of the parameterDataType property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setParameterDataType(String value) {
this.parameterDataType = value;
}
/**
* Gets the value of the parameterCompiledValue property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getParameterCompiledValue() {
return parameterCompiledValue;
}
/**
* Sets the value of the parameterCompiledValue property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setParameterCompiledValue(String value) {
this.parameterCompiledValue = value;
}
/**
* Gets the value of the parameterRuntimeValue property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getParameterRuntimeValue() {
return parameterRuntimeValue;
}
/**
* Sets the value of the parameterRuntimeValue property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setParameterRuntimeValue(String value) {
this.parameterRuntimeValue = value;
}
}
package org.jkiss.dbeaver.ext.mssql.model.plan.schemas.sql2017;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlType;
/**
* <p>Java class for ColumnType complex type.
*
* <p>The following schema fragment specifies the expected content contained within this class.
*
* <pre>
* &lt;complexType name="ColumnType">
* &lt;complexContent>
* &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* &lt;attribute name="Name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
* &lt;attribute name="ColumnId" use="required" type="{http://www.w3.org/2001/XMLSchema}int" />
* &lt;/restriction>
* &lt;/complexContent>
* &lt;/complexType>
* </pre>
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "ColumnType", namespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan")
public class ColumnType_sql2017 {
@XmlAttribute(name = "Name", required = true)
protected String name;
@XmlAttribute(name = "ColumnId", required = true)
protected int columnId;
/**
* Gets the value of the name property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getName() {
return name;
}
/**
* Sets the value of the name property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setName(String value) {
this.name = value;
}
/**
* Gets the value of the columnId property.
*
*/
public int getColumnId() {
return columnId;
}
/**
* Sets the value of the columnId property.
*
*/
public void setColumnId(int value) {
this.columnId = value;
}
}
package org.jkiss.dbeaver.ext.mssql.model.plan.schemas.sql2017;
import javax.xml.bind.annotation.XmlEnum;
import javax.xml.bind.annotation.XmlEnumValue;
import javax.xml.bind.annotation.XmlType;
/**
* <p>Java class for CompareOpType.
*
* <p>The following schema fragment specifies the expected content contained within this class.
* <p>
* <pre>
* &lt;simpleType name="CompareOpType">
* &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
* &lt;enumeration value="BINARY IS"/>
* &lt;enumeration value="BOTH NULL"/>
* &lt;enumeration value="EQ"/>
* &lt;enumeration value="GE"/>
* &lt;enumeration value="GT"/>
* &lt;enumeration value="IS"/>
* &lt;enumeration value="IS NOT"/>
* &lt;enumeration value="IS NOT NULL"/>
* &lt;enumeration value="IS NULL"/>
* &lt;enumeration value="LE"/>
* &lt;enumeration value="LT"/>
* &lt;enumeration value="NE"/>
* &lt;enumeration value="ONE NULL"/>
* &lt;/restriction>
* &lt;/simpleType>
* </pre>
*
*/
@XmlType(name = "CompareOpType", namespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan")
@XmlEnum
public enum CompareOpType_sql2017 {
@XmlEnumValue("BINARY IS")
BINARY_IS("BINARY IS"),
@XmlEnumValue("BOTH NULL")
BOTH_NULL("BOTH NULL"),
EQ("EQ"),
GE("GE"),
GT("GT"),
IS("IS"),
@XmlEnumValue("IS NOT")
IS_NOT("IS NOT"),
@XmlEnumValue("IS NOT NULL")
IS_NOT_NULL("IS NOT NULL"),
@XmlEnumValue("IS NULL")
IS_NULL("IS NULL"),
LE("LE"),
LT("LT"),
NE("NE"),
@XmlEnumValue("ONE NULL")
ONE_NULL("ONE NULL");
private final String value;
CompareOpType_sql2017(String v) {
value = v;
}
public String value() {
return value;
}
public static CompareOpType_sql2017 fromValue(String v) {
for (CompareOpType_sql2017 c: CompareOpType_sql2017 .values()) {
if (c.value.equals(v)) {
return c;
}
}
throw new IllegalArgumentException(v);
}
}
package org.jkiss.dbeaver.ext.mssql.model.plan.schemas.sql2017;
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;
/**
* <p>Java class for CompareType complex type.
*
* <p>The following schema fragment specifies the expected content contained within this class.
*
* <pre>
* &lt;complexType name="CompareType">
* &lt;complexContent>
* &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* &lt;sequence>
* &lt;element name="ScalarOperator" type="{http://schemas.microsoft.com/sqlserver/2004/07/showplan}ScalarType" maxOccurs="2"/>
* &lt;/sequence>
* &lt;attribute name="CompareOp" use="required" type="{http://schemas.microsoft.com/sqlserver/2004/07/showplan}CompareOpType" />
* &lt;/restriction>
* &lt;/complexContent>
* &lt;/complexType>
* </pre>
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "CompareType", namespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan", propOrder = {
"scalarOperator"
})
public class CompareType_sql2017 {
@XmlElement(name = "ScalarOperator", namespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan", required = true)
protected List<ScalarType_sql2017> scalarOperator;
@XmlAttribute(name = "CompareOp", required = true)
protected CompareOpType_sql2017 compareOp;
/**
* Gets the value of the scalarOperator property.
*
* <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
* This is why there is not a <CODE>set</CODE> method for the scalarOperator property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getScalarOperator().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
* {@link ScalarType_sql2017 }
*
*
*/
public List<ScalarType_sql2017> getScalarOperator() {
if (scalarOperator == null) {
scalarOperator = new ArrayList<ScalarType_sql2017>();
}
return this.scalarOperator;
}
/**
* Gets the value of the compareOp property.
*
* @return
* possible object is
* {@link CompareOpType_sql2017 }
*
*/
public CompareOpType_sql2017 getCompareOp() {
return compareOp;
}
/**
* Sets the value of the compareOp property.
*
* @param value
* allowed object is
* {@link CompareOpType_sql2017 }
*
*/
public void setCompareOp(CompareOpType_sql2017 value) {
this.compareOp = value;
}
}
package org.jkiss.dbeaver.ext.mssql.model.plan.schemas.sql2017;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;
/**
* <p>Java class for ComputeScalarType complex type.
*
* <p>The following schema fragment specifies the expected content contained within this class.
*
* <pre>
* &lt;complexType name="ComputeScalarType">
* &lt;complexContent>
* &lt;extension base="{http://schemas.microsoft.com/sqlserver/2004/07/showplan}RelOpBaseType">
* &lt;sequence>
* &lt;element name="RelOp" type="{http://schemas.microsoft.com/sqlserver/2004/07/showplan}RelOpType"/>
* &lt;/sequence>
* &lt;attribute name="ComputeSequence" type="{http://www.w3.org/2001/XMLSchema}boolean" />
* &lt;/extension>
* &lt;/complexContent>
* &lt;/complexType>
* </pre>
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "ComputeScalarType", namespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan", propOrder = {
"relOp"
})
public class ComputeScalarType_sql2017
extends RelOpBaseType_sql2017
{
@XmlElement(name = "RelOp", namespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan", required = true)
protected RelOpType_sql2017 relOp;
@XmlAttribute(name = "ComputeSequence")
protected Boolean computeSequence;
/**
* Gets the value of the relOp property.
*
* @return
* possible object is
* {@link RelOpType_sql2017 }
*
*/
public RelOpType_sql2017 getRelOp() {
return relOp;
}
/**
* Sets the value of the relOp property.
*
* @param value
* allowed object is
* {@link RelOpType_sql2017 }
*
*/
public void setRelOp(RelOpType_sql2017 value) {
this.relOp = value;
}
/**
* Gets the value of the computeSequence property.
*
* @return
* possible object is
* {@link Boolean }
*
*/
public Boolean getComputeSequence() {
return computeSequence;
}
/**
* Sets the value of the computeSequence property.
*
* @param value
* allowed object is
* {@link Boolean }
*
*/
public void setComputeSequence(Boolean value) {
this.computeSequence = value;
}
}
package org.jkiss.dbeaver.ext.mssql.model.plan.schemas.sql2017;
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlSeeAlso;
import javax.xml.bind.annotation.XmlType;
/**
* <p>Java class for ConcatType complex type.
*
* <p>The following schema fragment specifies the expected content contained within this class.
*
* <pre>
* &lt;complexType name="ConcatType">
* &lt;complexContent>
* &lt;extension base="{http://schemas.microsoft.com/sqlserver/2004/07/showplan}RelOpBaseType">
* &lt;sequence>
* &lt;element name="RelOp" type="{http://schemas.microsoft.com/sqlserver/2004/07/showplan}RelOpType" maxOccurs="unbounded" minOccurs="2"/>
* &lt;/sequence>
* &lt;/extension>
* &lt;/complexContent>
* &lt;/complexType>
* </pre>
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "ConcatType", namespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan", propOrder = {
"relOp"
})
@XmlSeeAlso({
SwitchType_sql2017 .class
})
public class ConcatType_sql2017
extends RelOpBaseType_sql2017
{
@XmlElement(name = "RelOp", namespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan", required = true)
protected List<RelOpType_sql2017> relOp;
/**
* Gets the value of the relOp property.
*
* <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
* This is why there is not a <CODE>set</CODE> method for the relOp property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getRelOp().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
* {@link RelOpType_sql2017 }
*
*
*/
public List<RelOpType_sql2017> getRelOp() {
if (relOp == null) {
relOp = new ArrayList<RelOpType_sql2017>();
}
return this.relOp;
}
}
package org.jkiss.dbeaver.ext.mssql.model.plan.schemas.sql2017;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;
/**
* <p>Java class for ConditionalType complex type.
*
* <p>The following schema fragment specifies the expected content contained within this class.
*
* <pre>
* &lt;complexType name="ConditionalType">
* &lt;complexContent>
* &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* &lt;sequence>
* &lt;element name="Condition" type="{http://schemas.microsoft.com/sqlserver/2004/07/showplan}ScalarExpressionType"/>
* &lt;element name="Then" type="{http://schemas.microsoft.com/sqlserver/2004/07/showplan}ScalarExpressionType"/>
* &lt;element name="Else" type="{http://schemas.microsoft.com/sqlserver/2004/07/showplan}ScalarExpressionType"/>
* &lt;/sequence>
* &lt;/restriction>
* &lt;/complexContent>
* &lt;/complexType>
* </pre>
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "ConditionalType", namespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan", propOrder = {
"condition",
"then",
"_else"
})
public class ConditionalType_sql2017 {
@XmlElement(name = "Condition", namespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan", required = true)
protected ScalarExpressionType_sql2017 condition;
@XmlElement(name = "Then", namespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan", required = true)
protected ScalarExpressionType_sql2017 then;
@XmlElement(name = "Else", namespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan", required = true)
protected ScalarExpressionType_sql2017 _else;
/**
* Gets the value of the condition property.
*
* @return
* possible object is
* {@link ScalarExpressionType_sql2017 }
*
*/
public ScalarExpressionType_sql2017 getCondition() {
return condition;
}
/**
* Sets the value of the condition property.
*
* @param value
* allowed object is
* {@link ScalarExpressionType_sql2017 }
*
*/
public void setCondition(ScalarExpressionType_sql2017 value) {
this.condition = value;
}
/**
* Gets the value of the then property.
*
* @return
* possible object is
* {@link ScalarExpressionType_sql2017 }
*
*/
public ScalarExpressionType_sql2017 getThen() {
return then;
}
/**
* Sets the value of the then property.
*
* @param value
* allowed object is
* {@link ScalarExpressionType_sql2017 }
*
*/
public void setThen(ScalarExpressionType_sql2017 value) {
this.then = value;
}
/**
* Gets the value of the else property.
*
* @return
* possible object is
* {@link ScalarExpressionType_sql2017 }
*
*/
public ScalarExpressionType_sql2017 getElse() {
return _else;
}
/**
* Sets the value of the else property.
*
* @param value
* allowed object is
* {@link ScalarExpressionType_sql2017 }
*
*/
public void setElse(ScalarExpressionType_sql2017 value) {
this._else = value;
}
}
package org.jkiss.dbeaver.ext.mssql.model.plan.schemas.sql2017;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlType;
/**
* <p>Java class for ConstType complex type.
*
* <p>The following schema fragment specifies the expected content contained within this class.
*
* <pre>
* &lt;complexType name="ConstType">
* &lt;complexContent>
* &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* &lt;attribute name="ConstValue" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
* &lt;/restriction>
* &lt;/complexContent>
* &lt;/complexType>
* </pre>
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "ConstType", namespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan")
public class ConstType_sql2017 {
@XmlAttribute(name = "ConstValue", required = true)
protected String constValue;
/**
* Gets the value of the constValue property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getConstValue() {
return constValue;
}
/**
* Sets the value of the constValue property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setConstValue(String value) {
this.constValue = value;
}
}
package org.jkiss.dbeaver.ext.mssql.model.plan.schemas.sql2017;
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;
/**
* <p>Java class for ConstantScanType complex type.
*
* <p>The following schema fragment specifies the expected content contained within this class.
*
* <pre>
* &lt;complexType name="ConstantScanType">
* &lt;complexContent>
* &lt;extension base="{http://schemas.microsoft.com/sqlserver/2004/07/showplan}RelOpBaseType">
* &lt;sequence>
* &lt;element name="Values" minOccurs="0">
* &lt;complexType>
* &lt;complexContent>
* &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* &lt;sequence>
* &lt;element name="Row" type="{http://schemas.microsoft.com/sqlserver/2004/07/showplan}ScalarExpressionListType" maxOccurs="unbounded" minOccurs="0"/>
* &lt;/sequence>
* &lt;/restriction>
* &lt;/complexContent>
* &lt;/complexType>
* &lt;/element>
* &lt;/sequence>
* &lt;/extension>
* &lt;/complexContent>
* &lt;/complexType>
* </pre>
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "ConstantScanType", namespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan", propOrder = {
"values"
})
public class ConstantScanType_sql2017
extends RelOpBaseType_sql2017
{
@XmlElement(name = "Values", namespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan")
protected ConstantScanType_sql2017 .Values_sql2017 values;
/**
* Gets the value of the values property.
*
* @return
* possible object is
* {@link ConstantScanType_sql2017 .Values_sql2017 }
*
*/
public ConstantScanType_sql2017 .Values_sql2017 getValues() {
return values;
}
/**
* Sets the value of the values property.
*
* @param value
* allowed object is
* {@link ConstantScanType_sql2017 .Values_sql2017 }
*
*/
public void setValues(ConstantScanType_sql2017 .Values_sql2017 value) {
this.values = value;
}
/**
* <p>Java class for anonymous complex type.
*
* <p>The following schema fragment specifies the expected content contained within this class.
*
* <pre>
* &lt;complexType>
* &lt;complexContent>
* &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* &lt;sequence>
* &lt;element name="Row" type="{http://schemas.microsoft.com/sqlserver/2004/07/showplan}ScalarExpressionListType" maxOccurs="unbounded" minOccurs="0"/>
* &lt;/sequence>
* &lt;/restriction>
* &lt;/complexContent>
* &lt;/complexType>
* </pre>
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
"row"
})
public static class Values_sql2017 {
@XmlElement(name = "Row", namespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan")
protected List<ScalarExpressionListType_sql2017> row;
/**
* Gets the value of the row property.
*
* <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
* This is why there is not a <CODE>set</CODE> method for the row property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getRow().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
* {@link ScalarExpressionListType_sql2017 }
*
*
*/
public List<ScalarExpressionListType_sql2017> getRow() {
if (row == null) {
row = new ArrayList<ScalarExpressionListType_sql2017>();
}
return this.row;
}
}
}
package org.jkiss.dbeaver.ext.mssql.model.plan.schemas.sql2017;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;
/**
* <p>Java class for ConvertType complex type.
*
* <p>The following schema fragment specifies the expected content contained within this class.
*
* <pre>
* &lt;complexType name="ConvertType">
* &lt;complexContent>
* &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* &lt;sequence>
* &lt;element name="Style" type="{http://schemas.microsoft.com/sqlserver/2004/07/showplan}ScalarExpressionType" minOccurs="0"/>
* &lt;element name="ScalarOperator" type="{http://schemas.microsoft.com/sqlserver/2004/07/showplan}ScalarType"/>
* &lt;/sequence>
* &lt;attribute name="DataType" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
* &lt;attribute name="Length" type="{http://www.w3.org/2001/XMLSchema}int" />
* &lt;attribute name="Precision" type="{http://www.w3.org/2001/XMLSchema}int" />
* &lt;attribute name="Scale" type="{http://www.w3.org/2001/XMLSchema}int" />
* &lt;attribute name="Style" use="required" type="{http://www.w3.org/2001/XMLSchema}int" />
* &lt;attribute name="Implicit" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" />
* &lt;/restriction>
* &lt;/complexContent>
* &lt;/complexType>
* </pre>
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "ConvertType", namespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan", propOrder = {
"convertStyle",
"scalarOperator"
})
public class ConvertType_sql2017 {
@XmlElement(name = "Style", namespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan")
protected ScalarExpressionType_sql2017 convertStyle;
@XmlElement(name = "ScalarOperator", namespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan", required = true)
protected ScalarType_sql2017 scalarOperator;
@XmlAttribute(name = "DataType", required = true)
protected String dataType;
@XmlAttribute(name = "Length")
protected Integer length;
@XmlAttribute(name = "Precision")
protected Integer precision;
@XmlAttribute(name = "Scale")
protected Integer scale;
@XmlAttribute(name = "Style", required = true)
protected int style;
@XmlAttribute(name = "Implicit", required = true)
protected boolean implicit;
/**
* Gets the value of the convertStyle property.
*
* @return
* possible object is
* {@link ScalarExpressionType_sql2017 }
*
*/
public ScalarExpressionType_sql2017 getConvertStyle() {
return convertStyle;
}
/**
* Sets the value of the convertStyle property.
*
* @param value
* allowed object is
* {@link ScalarExpressionType_sql2017 }
*
*/
public void setConvertStyle(ScalarExpressionType_sql2017 value) {
this.convertStyle = value;
}
/**
* Gets the value of the scalarOperator property.
*
* @return
* possible object is
* {@link ScalarType_sql2017 }
*
*/
public ScalarType_sql2017 getScalarOperator() {
return scalarOperator;
}
/**
* Sets the value of the scalarOperator property.
*
* @param value
* allowed object is
* {@link ScalarType_sql2017 }
*
*/
public void setScalarOperator(ScalarType_sql2017 value) {
this.scalarOperator = value;
}
/**
* Gets the value of the dataType property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getDataType() {
return dataType;
}
/**
* Sets the value of the dataType property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setDataType(String value) {
this.dataType = value;
}
/**
* Gets the value of the length property.
*
* @return
* possible object is
* {@link Integer }
*
*/
public Integer getLength() {
return length;
}
/**
* Sets the value of the length property.
*
* @param value
* allowed object is
* {@link Integer }
*
*/
public void setLength(Integer value) {
this.length = value;
}
/**
* Gets the value of the precision property.
*
* @return
* possible object is
* {@link Integer }
*
*/
public Integer getPrecision() {
return precision;
}
/**
* Sets the value of the precision property.
*
* @param value
* allowed object is
* {@link Integer }
*
*/
public void setPrecision(Integer value) {
this.precision = value;
}
/**
* Gets the value of the scale property.
*
* @return
* possible object is
* {@link Integer }
*
*/
public Integer getScale() {
return scale;
}
/**
* Sets the value of the scale property.
*
* @param value
* allowed object is
* {@link Integer }
*
*/
public void setScale(Integer value) {
this.scale = value;
}
/**
* Gets the value of the style property.
*
*/
public int getStyle() {
return style;
}
/**
* Sets the value of the style property.
*
*/
public void setStyle(int value) {
this.style = value;
}
/**
* Gets the value of the implicit property.
*
*/
public boolean isImplicit() {
return implicit;
}
/**
* Sets the value of the implicit property.
*
*/
public void setImplicit(boolean value) {
this.implicit = value;
}
}
package org.jkiss.dbeaver.ext.mssql.model.plan.schemas.sql2017;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;
/**
* <p>Java class for CreateIndexType complex type.
*
* <p>The following schema fragment specifies the expected content contained within this class.
*
* <pre>
* &lt;complexType name="CreateIndexType">
* &lt;complexContent>
* &lt;extension base="{http://schemas.microsoft.com/sqlserver/2004/07/showplan}RowsetType">
* &lt;sequence>
* &lt;element name="RelOp" type="{http://schemas.microsoft.com/sqlserver/2004/07/showplan}RelOpType"/>
* &lt;/sequence>
* &lt;/extension>
* &lt;/complexContent>
* &lt;/complexType>
* </pre>
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "CreateIndexType", namespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan", propOrder = {
"relOp"
})
public class CreateIndexType_sql2017
extends RowsetType_sql2017
{
@XmlElement(name = "RelOp", namespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan", required = true)
protected RelOpType_sql2017 relOp;
/**
* Gets the value of the relOp property.
*
* @return
* possible object is
* {@link RelOpType_sql2017 }
*
*/
public RelOpType_sql2017 getRelOp() {
return relOp;
}
/**
* Sets the value of the relOp property.
*
* @param value
* allowed object is
* {@link RelOpType_sql2017 }
*
*/
public void setRelOp(RelOpType_sql2017 value) {
this.relOp = value;
}
}
package org.jkiss.dbeaver.ext.mssql.model.plan.schemas.sql2017;
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;
/**
* <p>Java class for CursorPlanType complex type.
*
* <p>The following schema fragment specifies the expected content contained within this class.
*
* <pre>
* &lt;complexType name="CursorPlanType">
* &lt;complexContent>
* &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* &lt;sequence>
* &lt;element name="Operation" maxOccurs="2" minOccurs="0">
* &lt;complexType>
* &lt;complexContent>
* &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* &lt;sequence>
* &lt;element name="QueryPlan" type="{http://schemas.microsoft.com/sqlserver/2004/07/showplan}QueryPlanType"/>
* &lt;element name="UDF" type="{http://schemas.microsoft.com/sqlserver/2004/07/showplan}FunctionType" maxOccurs="unbounded" minOccurs="0"/>
* &lt;/sequence>
* &lt;attribute name="OperationType" use="required">
* &lt;simpleType>
* &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
* &lt;enumeration value="FetchQuery"/>
* &lt;enumeration value="PopulateQuery"/>
* &lt;enumeration value="RefreshQuery"/>
* &lt;/restriction>
* &lt;/simpleType>
* &lt;/attribute>
* &lt;/restriction>
* &lt;/complexContent>
* &lt;/complexType>
* &lt;/element>
* &lt;/sequence>
* &lt;attribute name="CursorName" type="{http://www.w3.org/2001/XMLSchema}string" />
* &lt;attribute name="CursorActualType" type="{http://schemas.microsoft.com/sqlserver/2004/07/showplan}CursorType" />
* &lt;attribute name="CursorRequestedType" type="{http://schemas.microsoft.com/sqlserver/2004/07/showplan}CursorType" />
* &lt;attribute name="CursorConcurrency">
* &lt;simpleType>
* &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
* &lt;enumeration value="Read Only"/>
* &lt;enumeration value="Pessimistic"/>
* &lt;enumeration value="Optimistic"/>
* &lt;/restriction>
* &lt;/simpleType>
* &lt;/attribute>
* &lt;attribute name="ForwardOnly" type="{http://www.w3.org/2001/XMLSchema}boolean" />
* &lt;/restriction>
* &lt;/complexContent>
* &lt;/complexType>
* </pre>
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "CursorPlanType", namespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan", propOrder = {
"operation"
})
public class CursorPlanType_sql2017 {
@XmlElement(name = "Operation", namespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan")
protected List<CursorPlanType_sql2017 .Operation_sql2017> operation;
@XmlAttribute(name = "CursorName")
protected String cursorName;
@XmlAttribute(name = "CursorActualType")
protected CursorType_sql2017 cursorActualType;
@XmlAttribute(name = "CursorRequestedType")
protected CursorType_sql2017 cursorRequestedType;
@XmlAttribute(name = "CursorConcurrency")
protected String cursorConcurrency;
@XmlAttribute(name = "ForwardOnly")
protected Boolean forwardOnly;
/**
* Gets the value of the operation property.
*
* <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
* This is why there is not a <CODE>set</CODE> method for the operation property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getOperation().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
* {@link CursorPlanType_sql2017 .Operation_sql2017 }
*
*
*/
public List<CursorPlanType_sql2017 .Operation_sql2017> getOperation() {
if (operation == null) {
operation = new ArrayList<CursorPlanType_sql2017 .Operation_sql2017>();
}
return this.operation;
}
/**
* Gets the value of the cursorName property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getCursorName() {
return cursorName;
}
/**
* Sets the value of the cursorName property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setCursorName(String value) {
this.cursorName = value;
}
/**
* Gets the value of the cursorActualType property.
*
* @return
* possible object is
* {@link CursorType_sql2017 }
*
*/
public CursorType_sql2017 getCursorActualType() {
return cursorActualType;
}
/**
* Sets the value of the cursorActualType property.
*
* @param value
* allowed object is
* {@link CursorType_sql2017 }
*
*/
public void setCursorActualType(CursorType_sql2017 value) {
this.cursorActualType = value;
}
/**
* Gets the value of the cursorRequestedType property.
*
* @return
* possible object is
* {@link CursorType_sql2017 }
*
*/
public CursorType_sql2017 getCursorRequestedType() {
return cursorRequestedType;
}
/**
* Sets the value of the cursorRequestedType property.
*
* @param value
* allowed object is
* {@link CursorType_sql2017 }
*
*/
public void setCursorRequestedType(CursorType_sql2017 value) {
this.cursorRequestedType = value;
}
/**
* Gets the value of the cursorConcurrency property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getCursorConcurrency() {
return cursorConcurrency;
}
/**
* Sets the value of the cursorConcurrency property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setCursorConcurrency(String value) {
this.cursorConcurrency = value;
}
/**
* Gets the value of the forwardOnly property.
*
* @return
* possible object is
* {@link Boolean }
*
*/
public Boolean getForwardOnly() {
return forwardOnly;
}
/**
* Sets the value of the forwardOnly property.
*
* @param value
* allowed object is
* {@link Boolean }
*
*/
public void setForwardOnly(Boolean value) {
this.forwardOnly = value;
}
/**
* <p>Java class for anonymous complex type.
*
* <p>The following schema fragment specifies the expected content contained within this class.
*
* <pre>
* &lt;complexType>
* &lt;complexContent>
* &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* &lt;sequence>
* &lt;element name="QueryPlan" type="{http://schemas.microsoft.com/sqlserver/2004/07/showplan}QueryPlanType"/>
* &lt;element name="UDF" type="{http://schemas.microsoft.com/sqlserver/2004/07/showplan}FunctionType" maxOccurs="unbounded" minOccurs="0"/>
* &lt;/sequence>
* &lt;attribute name="OperationType" use="required">
* &lt;simpleType>
* &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
* &lt;enumeration value="FetchQuery"/>
* &lt;enumeration value="PopulateQuery"/>
* &lt;enumeration value="RefreshQuery"/>
* &lt;/restriction>
* &lt;/simpleType>
* &lt;/attribute>
* &lt;/restriction>
* &lt;/complexContent>
* &lt;/complexType>
* </pre>
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
"queryPlan",
"udf"
})
public static class Operation_sql2017 {
@XmlElement(name = "QueryPlan", namespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan", required = true)
protected QueryPlanType_sql2017 queryPlan;
@XmlElement(name = "UDF", namespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan")
protected List<FunctionType_sql2017> udf;
@XmlAttribute(name = "OperationType", required = true)
protected String operationType;
/**
* Gets the value of the queryPlan property.
*
* @return
* possible object is
* {@link QueryPlanType_sql2017 }
*
*/
public QueryPlanType_sql2017 getQueryPlan() {
return queryPlan;
}
/**
* Sets the value of the queryPlan property.
*
* @param value
* allowed object is
* {@link QueryPlanType_sql2017 }
*
*/
public void setQueryPlan(QueryPlanType_sql2017 value) {
this.queryPlan = value;
}
/**
* Gets the value of the udf property.
*
* <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
* This is why there is not a <CODE>set</CODE> method for the udf property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getUDF().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
* {@link FunctionType_sql2017 }
*
*
*/
public List<FunctionType_sql2017> getUDF() {
if (udf == null) {
udf = new ArrayList<FunctionType_sql2017>();
}
return this.udf;
}
/**
* Gets the value of the operationType property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getOperationType() {
return operationType;
}
/**
* Sets the value of the operationType property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setOperationType(String value) {
this.operationType = value;
}
}
}
package org.jkiss.dbeaver.ext.mssql.model.plan.schemas.sql2017;
import javax.xml.bind.annotation.XmlEnum;
import javax.xml.bind.annotation.XmlEnumValue;
import javax.xml.bind.annotation.XmlType;
/**
* <p>Java class for CursorType.
*
* <p>The following schema fragment specifies the expected content contained within this class.
* <p>
* <pre>
* &lt;simpleType name="CursorType">
* &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
* &lt;enumeration value="Dynamic"/>
* &lt;enumeration value="FastForward"/>
* &lt;enumeration value="Keyset"/>
* &lt;enumeration value="SnapShot"/>
* &lt;/restriction>
* &lt;/simpleType>
* </pre>
*
*/
@XmlType(name = "CursorType", namespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan")
@XmlEnum
public enum CursorType_sql2017 {
@XmlEnumValue("Dynamic")
DYNAMIC("Dynamic"),
@XmlEnumValue("FastForward")
FAST_FORWARD("FastForward"),
@XmlEnumValue("Keyset")
KEYSET("Keyset"),
@XmlEnumValue("SnapShot")
SNAP_SHOT("SnapShot");
private final String value;
CursorType_sql2017(String v) {
value = v;
}
public String value() {
return value;
}
public static CursorType_sql2017 fromValue(String v) {
for (CursorType_sql2017 c: CursorType_sql2017 .values()) {
if (c.value.equals(v)) {
return c;
}
}
throw new IllegalArgumentException(v);
}
}
package org.jkiss.dbeaver.ext.mssql.model.plan.schemas.sql2017;
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.JAXBElement;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementRef;
import javax.xml.bind.annotation.XmlElementRefs;
import javax.xml.bind.annotation.XmlType;
/**
* <p>Java class for DefinedValuesListType complex type.
*
* <p>The following schema fragment specifies the expected content contained within this class.
*
* <pre>
* &lt;complexType name="DefinedValuesListType">
* &lt;complexContent>
* &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* &lt;sequence>
* &lt;element name="DefinedValue" maxOccurs="unbounded" minOccurs="0">
* &lt;complexType>
* &lt;complexContent>
* &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* &lt;sequence>
* &lt;choice>
* &lt;element name="ValueVector">
* &lt;complexType>
* &lt;complexContent>
* &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* &lt;sequence>
* &lt;element name="ColumnReference" type="{http://schemas.microsoft.com/sqlserver/2004/07/showplan}ColumnReferenceType" maxOccurs="unbounded" minOccurs="2"/>
* &lt;/sequence>
* &lt;/restriction>
* &lt;/complexContent>
* &lt;/complexType>
* &lt;/element>
* &lt;element name="ColumnReference" type="{http://schemas.microsoft.com/sqlserver/2004/07/showplan}ColumnReferenceType"/>
* &lt;/choice>
* &lt;choice minOccurs="0">
* &lt;element name="ColumnReference" type="{http://schemas.microsoft.com/sqlserver/2004/07/showplan}ColumnReferenceType" maxOccurs="unbounded"/>
* &lt;element name="ScalarOperator" type="{http://schemas.microsoft.com/sqlserver/2004/07/showplan}ScalarType"/>
* &lt;/choice>
* &lt;/sequence>
* &lt;/restriction>
* &lt;/complexContent>
* &lt;/complexType>
* &lt;/element>
* &lt;/sequence>
* &lt;/restriction>
* &lt;/complexContent>
* &lt;/complexType>
* </pre>
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "DefinedValuesListType", namespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan", propOrder = {
"definedValue"
})
public class DefinedValuesListType_sql2017 {
@XmlElement(name = "DefinedValue", namespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan")
protected List<DefinedValuesListType_sql2017 .DefinedValue_sql2017> definedValue;
/**
* Gets the value of the definedValue property.
*
* <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
* This is why there is not a <CODE>set</CODE> method for the definedValue property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getDefinedValue().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
* {@link DefinedValuesListType_sql2017 .DefinedValue_sql2017 }
*
*
*/
public List<DefinedValuesListType_sql2017 .DefinedValue_sql2017> getDefinedValue() {
if (definedValue == null) {
definedValue = new ArrayList<DefinedValuesListType_sql2017 .DefinedValue_sql2017>();
}
return this.definedValue;
}
/**
* <p>Java class for anonymous complex type.
*
* <p>The following schema fragment specifies the expected content contained within this class.
*
* <pre>
* &lt;complexType>
* &lt;complexContent>
* &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* &lt;sequence>
* &lt;choice>
* &lt;element name="ValueVector">
* &lt;complexType>
* &lt;complexContent>
* &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* &lt;sequence>
* &lt;element name="ColumnReference" type="{http://schemas.microsoft.com/sqlserver/2004/07/showplan}ColumnReferenceType" maxOccurs="unbounded" minOccurs="2"/>
* &lt;/sequence>
* &lt;/restriction>
* &lt;/complexContent>
* &lt;/complexType>
* &lt;/element>
* &lt;element name="ColumnReference" type="{http://schemas.microsoft.com/sqlserver/2004/07/showplan}ColumnReferenceType"/>
* &lt;/choice>
* &lt;choice minOccurs="0">
* &lt;element name="ColumnReference" type="{http://schemas.microsoft.com/sqlserver/2004/07/showplan}ColumnReferenceType" maxOccurs="unbounded"/>
* &lt;element name="ScalarOperator" type="{http://schemas.microsoft.com/sqlserver/2004/07/showplan}ScalarType"/>
* &lt;/choice>
* &lt;/sequence>
* &lt;/restriction>
* &lt;/complexContent>
* &lt;/complexType>
* </pre>
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
"content"
})
public static class DefinedValue_sql2017 {
@XmlElementRefs({
@XmlElementRef(name = "ScalarOperator", namespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan", type = JAXBElement.class, required = false),
@XmlElementRef(name = "ColumnReference", namespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan", type = JAXBElement.class, required = false),
@XmlElementRef(name = "ValueVector", namespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan", type = JAXBElement.class, required = false)
})
protected List<JAXBElement<?>> content;
/**
* Gets the rest of the content model.
*
* <p>
* You are getting this "catch-all" property because of the following reason:
* The field name "ColumnReference" is used by two different parts of a schema. See:
* line 404 of file:/C:/dbeaver/mssql_plans/schemas/sql2017/showplanxml.xsd
* line 401 of file:/C:/dbeaver/mssql_plans/schemas/sql2017/showplanxml.xsd
* <p>
* To get rid of this property, apply a property customization to one
* of both of the following declarations to change their names:
* Gets the value of the content property.
*
* <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
* This is why there is not a <CODE>set</CODE> method for the content property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getContent().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
* {@link JAXBElement }{@code <}{@link ScalarType_sql2017 }{@code >}
* {@link JAXBElement }{@code <}{@link ColumnReferenceType_sql2017 }{@code >}
* {@link JAXBElement }{@code <}{@link DefinedValuesListType_sql2017 .DefinedValue_sql2017 .ValueVector_sql2017 }{@code >}
*
*
*/
public List<JAXBElement<?>> getContent() {
if (content == null) {
content = new ArrayList<JAXBElement<?>>();
}
return this.content;
}
/**
* <p>Java class for anonymous complex type.
*
* <p>The following schema fragment specifies the expected content contained within this class.
*
* <pre>
* &lt;complexType>
* &lt;complexContent>
* &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* &lt;sequence>
* &lt;element name="ColumnReference" type="{http://schemas.microsoft.com/sqlserver/2004/07/showplan}ColumnReferenceType" maxOccurs="unbounded" minOccurs="2"/>
* &lt;/sequence>
* &lt;/restriction>
* &lt;/complexContent>
* &lt;/complexType>
* </pre>
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
"columnReference"
})
public static class ValueVector_sql2017 {
@XmlElement(name = "ColumnReference", namespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan", required = true)
protected List<ColumnReferenceType_sql2017> columnReference;
/**
* Gets the value of the columnReference property.
*
* <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
* This is why there is not a <CODE>set</CODE> method for the columnReference property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getColumnReference().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
* {@link ColumnReferenceType_sql2017 }
*
*
*/
public List<ColumnReferenceType_sql2017> getColumnReference() {
if (columnReference == null) {
columnReference = new ArrayList<ColumnReferenceType_sql2017>();
}
return this.columnReference;
}
}
}
}
package org.jkiss.dbeaver.ext.mssql.model.plan.schemas.sql2017;
import javax.xml.bind.annotation.XmlEnum;
import javax.xml.bind.annotation.XmlEnumValue;
import javax.xml.bind.annotation.XmlType;
/**
* <p>Java class for ExecutionModeType.
*
* <p>The following schema fragment specifies the expected content contained within this class.
* <p>
* <pre>
* &lt;simpleType name="ExecutionModeType">
* &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
* &lt;enumeration value="Row"/>
* &lt;enumeration value="Batch"/>
* &lt;/restriction>
* &lt;/simpleType>
* </pre>
*
*/
@XmlType(name = "ExecutionModeType", namespace = "http://schemas.microsoft.com/sqlserver/2004/07/showplan")
@XmlEnum
public enum ExecutionModeType_sql2017 {
@XmlEnumValue("Row")
ROW("Row"),
@XmlEnumValue("Batch")
BATCH("Batch");
private final String value;
ExecutionModeType_sql2017(String v) {
value = v;
}
public String value() {
return value;
}
public static ExecutionModeType_sql2017 fromValue(String v) {
for (ExecutionModeType_sql2017 c: ExecutionModeType_sql2017 .values()) {
if (c.value.equals(v)) {
return c;
}
}
throw new IllegalArgumentException(v);
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册