teiid SVN: r3141 - in tags: teiid-parent-7.4.0.CR1 and 49 other directories.
by teiid-commits@lists.jboss.org
Author: shawkins
Date: 2011-05-03 12:47:11 -0400 (Tue, 03 May 2011)
New Revision: 3141
Added:
tags/teiid-parent-7.4.0.CR1/
tags/teiid-parent-7.4.0.CR1/adminshell/pom.xml
tags/teiid-parent-7.4.0.CR1/api/pom.xml
tags/teiid-parent-7.4.0.CR1/api/src/main/java/org/teiid/metadata/MetadataRepository.java
tags/teiid-parent-7.4.0.CR1/build/kits/jboss-container/deployers/teiid.deployer/teiid-deployer-jboss-beans.xml
tags/teiid-parent-7.4.0.CR1/build/pom.xml
tags/teiid-parent-7.4.0.CR1/cache-jbosscache/pom.xml
tags/teiid-parent-7.4.0.CR1/client-jdk15/pom.xml
tags/teiid-parent-7.4.0.CR1/client/pom.xml
tags/teiid-parent-7.4.0.CR1/common-core/pom.xml
tags/teiid-parent-7.4.0.CR1/connectors/connector-file/pom.xml
tags/teiid-parent-7.4.0.CR1/connectors/connector-ldap/pom.xml
tags/teiid-parent-7.4.0.CR1/connectors/connector-salesforce/pom.xml
tags/teiid-parent-7.4.0.CR1/connectors/connector-ws/pom.xml
tags/teiid-parent-7.4.0.CR1/connectors/pom.xml
tags/teiid-parent-7.4.0.CR1/connectors/salesforce-api/pom.xml
tags/teiid-parent-7.4.0.CR1/connectors/sandbox/pom.xml
tags/teiid-parent-7.4.0.CR1/connectors/sandbox/translator-yahoo/pom.xml
tags/teiid-parent-7.4.0.CR1/connectors/translator-file/pom.xml
tags/teiid-parent-7.4.0.CR1/connectors/translator-jdbc/pom.xml
tags/teiid-parent-7.4.0.CR1/connectors/translator-ldap/pom.xml
tags/teiid-parent-7.4.0.CR1/connectors/translator-loopback/pom.xml
tags/teiid-parent-7.4.0.CR1/connectors/translator-olap/pom.xml
tags/teiid-parent-7.4.0.CR1/connectors/translator-salesforce/pom.xml
tags/teiid-parent-7.4.0.CR1/connectors/translator-ws/pom.xml
tags/teiid-parent-7.4.0.CR1/console/pom.xml
tags/teiid-parent-7.4.0.CR1/documentation/admin-guide/pom.xml
tags/teiid-parent-7.4.0.CR1/documentation/caching-guide/pom.xml
tags/teiid-parent-7.4.0.CR1/documentation/caching-guide/src/main/docbook/en-US/content/results.xml
tags/teiid-parent-7.4.0.CR1/documentation/client-developers-guide/pom.xml
tags/teiid-parent-7.4.0.CR1/documentation/client-developers-guide/src/main/docbook/en-US/content/prepared-statements.xml
tags/teiid-parent-7.4.0.CR1/documentation/developer-guide/pom.xml
tags/teiid-parent-7.4.0.CR1/documentation/developer-guide/src/main/docbook/en-US/Developer_Guide.xml
tags/teiid-parent-7.4.0.CR1/documentation/developer-guide/src/main/docbook/en-US/content/runtime-updates.xml
tags/teiid-parent-7.4.0.CR1/documentation/docbook/custom.dtd
tags/teiid-parent-7.4.0.CR1/documentation/pom.xml
tags/teiid-parent-7.4.0.CR1/documentation/quick-start-example/pom.xml
tags/teiid-parent-7.4.0.CR1/documentation/reference/pom.xml
tags/teiid-parent-7.4.0.CR1/documentation/reference/src/main/docbook/en-US/content/grammar.xml
tags/teiid-parent-7.4.0.CR1/documentation/reference/src/main/docbook/en-US/content/system_schema.xml
tags/teiid-parent-7.4.0.CR1/documentation/reference/src/main/docbook/en-US/content/translators.xml
tags/teiid-parent-7.4.0.CR1/engine/pom.xml
tags/teiid-parent-7.4.0.CR1/engine/src/main/java/org/teiid/dqp/internal/process/DataTierManagerImpl.java
tags/teiid-parent-7.4.0.CR1/engine/src/main/java/org/teiid/query/processor/DdlPlan.java
tags/teiid-parent-7.4.0.CR1/hibernate-dialect/pom.xml
tags/teiid-parent-7.4.0.CR1/jboss-integration/pom.xml
tags/teiid-parent-7.4.0.CR1/metadata/pom.xml
tags/teiid-parent-7.4.0.CR1/pom.xml
tags/teiid-parent-7.4.0.CR1/runtime/pom.xml
tags/teiid-parent-7.4.0.CR1/runtime/src/main/java/org/teiid/deployers/VDBRepository.java
tags/teiid-parent-7.4.0.CR1/test-integration/common/pom.xml
tags/teiid-parent-7.4.0.CR1/test-integration/db/pom.xml
tags/teiid-parent-7.4.0.CR1/test-integration/pom.xml
Removed:
tags/teiid-parent-7.4.0.CR1/adminshell/pom.xml
tags/teiid-parent-7.4.0.CR1/api/pom.xml
tags/teiid-parent-7.4.0.CR1/api/src/main/java/org/teiid/metadata/MetadataRepository.java
tags/teiid-parent-7.4.0.CR1/build/kits/jboss-container/deployers/teiid.deployer/teiid-deployer-jboss-beans.xml
tags/teiid-parent-7.4.0.CR1/build/pom.xml
tags/teiid-parent-7.4.0.CR1/cache-jbosscache/pom.xml
tags/teiid-parent-7.4.0.CR1/client-jdk15/pom.xml
tags/teiid-parent-7.4.0.CR1/client/pom.xml
tags/teiid-parent-7.4.0.CR1/common-core/pom.xml
tags/teiid-parent-7.4.0.CR1/connectors/connector-file/pom.xml
tags/teiid-parent-7.4.0.CR1/connectors/connector-ldap/pom.xml
tags/teiid-parent-7.4.0.CR1/connectors/connector-salesforce/pom.xml
tags/teiid-parent-7.4.0.CR1/connectors/connector-ws/pom.xml
tags/teiid-parent-7.4.0.CR1/connectors/pom.xml
tags/teiid-parent-7.4.0.CR1/connectors/salesforce-api/pom.xml
tags/teiid-parent-7.4.0.CR1/connectors/sandbox/pom.xml
tags/teiid-parent-7.4.0.CR1/connectors/sandbox/translator-yahoo/pom.xml
tags/teiid-parent-7.4.0.CR1/connectors/translator-file/pom.xml
tags/teiid-parent-7.4.0.CR1/connectors/translator-jdbc/pom.xml
tags/teiid-parent-7.4.0.CR1/connectors/translator-ldap/pom.xml
tags/teiid-parent-7.4.0.CR1/connectors/translator-loopback/pom.xml
tags/teiid-parent-7.4.0.CR1/connectors/translator-olap/pom.xml
tags/teiid-parent-7.4.0.CR1/connectors/translator-salesforce/pom.xml
tags/teiid-parent-7.4.0.CR1/connectors/translator-ws/pom.xml
tags/teiid-parent-7.4.0.CR1/console/pom.xml
tags/teiid-parent-7.4.0.CR1/documentation/admin-guide/pom.xml
tags/teiid-parent-7.4.0.CR1/documentation/caching-guide/pom.xml
tags/teiid-parent-7.4.0.CR1/documentation/caching-guide/src/main/docbook/en-US/content/results.xml
tags/teiid-parent-7.4.0.CR1/documentation/client-developers-guide/pom.xml
tags/teiid-parent-7.4.0.CR1/documentation/client-developers-guide/src/main/docbook/en-US/content/prepared-statements.xml
tags/teiid-parent-7.4.0.CR1/documentation/developer-guide/pom.xml
tags/teiid-parent-7.4.0.CR1/documentation/developer-guide/src/main/docbook/en-US/Developer_Guide.xml
tags/teiid-parent-7.4.0.CR1/documentation/docbook/custom.dtd
tags/teiid-parent-7.4.0.CR1/documentation/pom.xml
tags/teiid-parent-7.4.0.CR1/documentation/quick-start-example/pom.xml
tags/teiid-parent-7.4.0.CR1/documentation/reference/pom.xml
tags/teiid-parent-7.4.0.CR1/documentation/reference/src/main/docbook/en-US/content/grammar.xml
tags/teiid-parent-7.4.0.CR1/documentation/reference/src/main/docbook/en-US/content/system_schema.xml
tags/teiid-parent-7.4.0.CR1/documentation/reference/src/main/docbook/en-US/content/translators.xml
tags/teiid-parent-7.4.0.CR1/engine/pom.xml
tags/teiid-parent-7.4.0.CR1/engine/src/main/java/org/teiid/dqp/internal/process/DataTierManagerImpl.java
tags/teiid-parent-7.4.0.CR1/engine/src/main/java/org/teiid/query/processor/DdlPlan.java
tags/teiid-parent-7.4.0.CR1/hibernate-dialect/pom.xml
tags/teiid-parent-7.4.0.CR1/jboss-integration/pom.xml
tags/teiid-parent-7.4.0.CR1/metadata/pom.xml
tags/teiid-parent-7.4.0.CR1/pom.xml
tags/teiid-parent-7.4.0.CR1/runtime/pom.xml
tags/teiid-parent-7.4.0.CR1/runtime/src/main/java/org/teiid/deployers/VDBRepository.java
tags/teiid-parent-7.4.0.CR1/test-integration/common/pom.xml
tags/teiid-parent-7.4.0.CR1/test-integration/db/pom.xml
tags/teiid-parent-7.4.0.CR1/test-integration/pom.xml
Log:
[maven-release-plugin] copy for tag teiid-parent-7.4.0.CR1
Deleted: tags/teiid-parent-7.4.0.CR1/adminshell/pom.xml
===================================================================
--- trunk/adminshell/pom.xml 2011-05-03 09:43:58 UTC (rev 3137)
+++ tags/teiid-parent-7.4.0.CR1/adminshell/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -1,69 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <parent>
- <artifactId>teiid-parent</artifactId>
- <groupId>org.jboss.teiid</groupId>
- <version>7.4.0.CR1-SNAPSHOT</version>
- </parent>
- <modelVersion>4.0.0</modelVersion>
- <artifactId>teiid-adminshell</artifactId>
- <name>Adminshell</name>
- <description>Adminshell for Teiid</description>
- <dependencies>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-common-core</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-common-core</artifactId>
- <type>test-jar</type>
- </dependency>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-client</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.codehaus.groovy</groupId>
- <artifactId>groovy-all</artifactId>
- <version>1.7.2</version>
- </dependency>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>3.8.1</version>
- </dependency>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>4.4</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>jline</groupId>
- <artifactId>jline</artifactId>
- <version>0.9.94</version>
- <scope>compile</scope>
- <exclusions>
- <exclusion>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>org.fusesource.jansi</groupId>
- <artifactId>jansi</artifactId>
- <version>1.2.1</version>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>commons-cli</groupId>
- <artifactId>commons-cli</artifactId>
- <version>1.2</version>
- <scope>compile</scope>
- </dependency>
- </dependencies>
-</project>
\ No newline at end of file
Copied: tags/teiid-parent-7.4.0.CR1/adminshell/pom.xml (from rev 3140, trunk/adminshell/pom.xml)
===================================================================
--- tags/teiid-parent-7.4.0.CR1/adminshell/pom.xml (rev 0)
+++ tags/teiid-parent-7.4.0.CR1/adminshell/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <artifactId>teiid-parent</artifactId>
+ <groupId>org.jboss.teiid</groupId>
+ <version>7.4.0.CR1</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>teiid-adminshell</artifactId>
+ <name>Adminshell</name>
+ <description>Adminshell for Teiid</description>
+ <dependencies>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-common-core</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-common-core</artifactId>
+ <type>test-jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-client</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.groovy</groupId>
+ <artifactId>groovy-all</artifactId>
+ <version>1.7.2</version>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>3.8.1</version>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.4</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>jline</groupId>
+ <artifactId>jline</artifactId>
+ <version>0.9.94</version>
+ <scope>compile</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.fusesource.jansi</groupId>
+ <artifactId>jansi</artifactId>
+ <version>1.2.1</version>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>commons-cli</groupId>
+ <artifactId>commons-cli</artifactId>
+ <version>1.2</version>
+ <scope>compile</scope>
+ </dependency>
+ </dependencies>
+</project>
\ No newline at end of file
Deleted: tags/teiid-parent-7.4.0.CR1/api/pom.xml
===================================================================
--- trunk/api/pom.xml 2011-05-03 09:43:58 UTC (rev 3137)
+++ tags/teiid-parent-7.4.0.CR1/api/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <parent>
- <artifactId>teiid-parent</artifactId>
- <groupId>org.jboss.teiid</groupId>
- <version>7.4.0.CR1-SNAPSHOT</version>
- </parent>
- <modelVersion>4.0.0</modelVersion>
- <artifactId>teiid-api</artifactId>
- <name>Teiid Translator API</name>
- <description>API for creating Translators and other common extenders in Teiid</description>
-
- <dependencies>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-common-core</artifactId>
- <scope>provided</scope>
- </dependency>
-
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-common-core</artifactId>
- <type>test-jar</type>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>javax.resource</groupId>
- <artifactId>connector-api</artifactId>
- <scope>provided</scope>
- </dependency>
-
- </dependencies>
-</project>
Copied: tags/teiid-parent-7.4.0.CR1/api/pom.xml (from rev 3140, trunk/api/pom.xml)
===================================================================
--- tags/teiid-parent-7.4.0.CR1/api/pom.xml (rev 0)
+++ tags/teiid-parent-7.4.0.CR1/api/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <artifactId>teiid-parent</artifactId>
+ <groupId>org.jboss.teiid</groupId>
+ <version>7.4.0.CR1</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>teiid-api</artifactId>
+ <name>Teiid Translator API</name>
+ <description>API for creating Translators and other common extenders in Teiid</description>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-common-core</artifactId>
+ <scope>provided</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-common-core</artifactId>
+ <type>test-jar</type>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>javax.resource</groupId>
+ <artifactId>connector-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+
+ </dependencies>
+</project>
Deleted: tags/teiid-parent-7.4.0.CR1/api/src/main/java/org/teiid/metadata/MetadataRepository.java
===================================================================
--- trunk/api/src/main/java/org/teiid/metadata/MetadataRepository.java 2011-05-03 09:43:58 UTC (rev 3137)
+++ tags/teiid-parent-7.4.0.CR1/api/src/main/java/org/teiid/metadata/MetadataRepository.java 2011-05-03 16:47:11 UTC (rev 3141)
@@ -1,151 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301 USA.
- */
-
-package org.teiid.metadata;
-import java.util.LinkedHashMap;
-
-/**
- * A hook for externalizing view, procedure, and other metadata.
- */
-public interface MetadataRepository {
-
- /**
- * Returns an updated view definition (AS SQL only) or null if the current view definition should be used
- * should be used.
- */
- String getViewDefinition(String vdbName, int vdbVersion, Table table);
-
- /**
- * Set the view definition
- * @param vdbName
- * @param vdbVersion
- * @param table
- * @param viewDefinition
- */
- void setViewDefinition(String vdbName, int vdbVersion, Table table, String viewDefinition);
-
- /**
- * Returns an updated trigger definition (FOR EACH ROW ...) or null if the current view definition should be used
- * should be used.
- */
- String getInsteadOfTriggerDefinition(String vdbName, int vdbVersion, Table table, Table.TriggerEvent triggerOperation);
-
- /**
- *
- * @param vdbName
- * @param vdbVersion
- * @param table
- * @param triggerOperation
- * @param triggerDefinition
- */
- void setInsteadOfTriggerDefinition(String vdbName, int vdbVersion, Table table, Table.TriggerEvent triggerOperation, String triggerDefinition);
-
- /**
- * Returns whether the trigger is enabled
- * @param vdbName
- * @param vdbVersion
- * @param table
- * @param triggerOperation
- * @return
- */
- boolean isInsteadOfTriggerEnabled(String vdbName, int vdbVersion, Table table, Table.TriggerEvent triggerOperation);
-
- /**
- * Set the given trigger enabled.
- * @param vdbName
- * @param vdbVersion
- * @param table
- * @param triggerOperation
- * @param enabled
- */
- void setInsteadOfTriggerEnabled(String vdbName, int vdbVersion, Table table, Table.TriggerEvent triggerOperation, boolean enabled);
-
- /**
- * Returns an updated procedure definition (CREATE PROCEDURE ...) or null if the current procedure definition should be used
- * should be used.
- */
- String getProcedureDefinition(String vdbName, int vdbVersion, Procedure procedure);
-
- /**
- * Set the procedure definition
- * @param vdbName
- * @param vdbVersion
- * @param table
- * @param procedureDefinition
- */
- void setProcedureDefinition(String vdbName, int vdbVersion, Procedure procedure, String procedureDefinition);
-
- /**
- * Get updated {@link TableStats} for the given table
- * @param vdbName
- * @param vdbVersion
- * @param table
- * @return the stats. a null result or a null stat indicates that the current value should be used
- */
- TableStats getTableStats(String vdbName, int vdbVersion, Table table);
-
- /**
- * Set the {@link TableStats} for the given table
- * @param vdbName
- * @param vdbVersion
- * @param table
- * @param tableStats
- */
- void setTableStats(String vdbName, int vdbVersion, Table table, TableStats tableStats);
-
- /**
- * Get updated {@link ColumnStats} for the given column
- * @param vdbName
- * @param vdbVersion
- * @param column
- * @return the stats. a null result or a null stat indicates that the default should be used
- */
- ColumnStats getColumnStats(String vdbName, int vdbVersion, Column column);
-
- /**
- * Set the {@link ColumnStats} for a given column
- * @param vdbName
- * @param vdbVersion
- * @param column
- * @param columnStats
- */
- void setColumnStats(String vdbName, int vdbVersion, Column column, ColumnStats columnStats);
-
- /**
- * Get the extension metadata for a given record.
- * @param vdbName
- * @param vdbVersion
- * @param record
- * @return
- */
- LinkedHashMap<String, String> getProperties(String vdbName, int vdbVersion, AbstractMetadataRecord record);
-
- /**
- * Set an extension metadata property for a given record.
- * @param vdbName
- * @param vdbVersion
- * @param record
- * @param name
- * @param value
- */
- void setProperty(String vdbName, int vdbVersion, AbstractMetadataRecord record, String name, String value);
-}
Copied: tags/teiid-parent-7.4.0.CR1/api/src/main/java/org/teiid/metadata/MetadataRepository.java (from rev 3138, trunk/api/src/main/java/org/teiid/metadata/MetadataRepository.java)
===================================================================
--- tags/teiid-parent-7.4.0.CR1/api/src/main/java/org/teiid/metadata/MetadataRepository.java (rev 0)
+++ tags/teiid-parent-7.4.0.CR1/api/src/main/java/org/teiid/metadata/MetadataRepository.java 2011-05-03 16:47:11 UTC (rev 3141)
@@ -0,0 +1,165 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership. Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301 USA.
+ */
+
+package org.teiid.metadata;
+import java.util.LinkedHashMap;
+
+/**
+ * A hook for externalizing view, procedure, and other metadata.
+ */
+public interface MetadataRepository {
+
+ /**
+ * Marks the start of vdb metadata loading
+ * @param vdbName
+ * @param vdbVersion
+ */
+ void startLoadVdb(String vdbName, int vdbVersion);
+
+ /**
+ * Marks the end of vdb metadata loading
+ * @param vdbName
+ * @param vdbVersion
+ */
+ void endLoadVdb(String vdbName, int vdbVersion);
+
+ /**
+ * Returns an updated view definition (AS SQL only) or null if the current view definition should be used
+ * should be used.
+ */
+ String getViewDefinition(String vdbName, int vdbVersion, Table table);
+
+ /**
+ * Set the view definition
+ * @param vdbName
+ * @param vdbVersion
+ * @param table
+ * @param viewDefinition
+ */
+ void setViewDefinition(String vdbName, int vdbVersion, Table table, String viewDefinition);
+
+ /**
+ * Returns an updated trigger definition (FOR EACH ROW ...) or null if the current view definition should be used
+ * should be used.
+ */
+ String getInsteadOfTriggerDefinition(String vdbName, int vdbVersion, Table table, Table.TriggerEvent triggerOperation);
+
+ /**
+ *
+ * @param vdbName
+ * @param vdbVersion
+ * @param table
+ * @param triggerOperation
+ * @param triggerDefinition
+ */
+ void setInsteadOfTriggerDefinition(String vdbName, int vdbVersion, Table table, Table.TriggerEvent triggerOperation, String triggerDefinition);
+
+ /**
+ * Returns whether the trigger is enabled
+ * @param vdbName
+ * @param vdbVersion
+ * @param table
+ * @param triggerOperation
+ * @return
+ */
+ Boolean isInsteadOfTriggerEnabled(String vdbName, int vdbVersion, Table table, Table.TriggerEvent triggerOperation);
+
+ /**
+ * Set the given trigger enabled.
+ * @param vdbName
+ * @param vdbVersion
+ * @param table
+ * @param triggerOperation
+ * @param enabled
+ */
+ void setInsteadOfTriggerEnabled(String vdbName, int vdbVersion, Table table, Table.TriggerEvent triggerOperation, boolean enabled);
+
+ /**
+ * Returns an updated procedure definition (CREATE PROCEDURE ...) or null if the current procedure definition should be used
+ * should be used.
+ */
+ String getProcedureDefinition(String vdbName, int vdbVersion, Procedure procedure);
+
+ /**
+ * Set the procedure definition
+ * @param vdbName
+ * @param vdbVersion
+ * @param table
+ * @param procedureDefinition
+ */
+ void setProcedureDefinition(String vdbName, int vdbVersion, Procedure procedure, String procedureDefinition);
+
+ /**
+ * Get updated {@link TableStats} for the given table
+ * @param vdbName
+ * @param vdbVersion
+ * @param table
+ * @return the stats. a null result or a null stat indicates that the current value should be used
+ */
+ TableStats getTableStats(String vdbName, int vdbVersion, Table table);
+
+ /**
+ * Set the {@link TableStats} for the given table
+ * @param vdbName
+ * @param vdbVersion
+ * @param table
+ * @param tableStats
+ */
+ void setTableStats(String vdbName, int vdbVersion, Table table, TableStats tableStats);
+
+ /**
+ * Get updated {@link ColumnStats} for the given column
+ * @param vdbName
+ * @param vdbVersion
+ * @param column
+ * @return the stats. a null result or a null stat indicates that the default should be used
+ */
+ ColumnStats getColumnStats(String vdbName, int vdbVersion, Column column);
+
+ /**
+ * Set the {@link ColumnStats} for a given column
+ * @param vdbName
+ * @param vdbVersion
+ * @param column
+ * @param columnStats
+ */
+ void setColumnStats(String vdbName, int vdbVersion, Column column, ColumnStats columnStats);
+
+ /**
+ * Get the extension metadata for a given record.
+ * @param vdbName
+ * @param vdbVersion
+ * @param record
+ * @return
+ */
+ LinkedHashMap<String, String> getProperties(String vdbName, int vdbVersion, AbstractMetadataRecord record);
+
+ /**
+ * Set an extension metadata property for a given record.
+ * @param vdbName
+ * @param vdbVersion
+ * @param record
+ * @param name
+ * @param value
+ */
+ void setProperty(String vdbName, int vdbVersion, AbstractMetadataRecord record, String name, String value);
+}
Deleted: tags/teiid-parent-7.4.0.CR1/build/kits/jboss-container/deployers/teiid.deployer/teiid-deployer-jboss-beans.xml
===================================================================
--- trunk/build/kits/jboss-container/deployers/teiid.deployer/teiid-deployer-jboss-beans.xml 2011-05-03 09:43:58 UTC (rev 3137)
+++ tags/teiid-parent-7.4.0.CR1/build/kits/jboss-container/deployers/teiid.deployer/teiid-deployer-jboss-beans.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -1,107 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<deployment xmlns="urn:jboss:bean-deployer:2.0">
-
- <!-- Deployer specific Stuff -->
- <bean name="VDBStructure" class="org.teiid.deployers.VDBStructure" />
-
- <bean name="SystemFunctionManager" class="org.teiid.query.function.SystemFunctionManager">
- <property name="allowEnvFunction">false</property>
- </bean>
-
- <bean name="VDBRepository" class="org.teiid.deployers.VDBRepository">
- <property name="systemFunctionManager"><inject bean="SystemFunctionManager"/></property>
- </bean>
-
- <bean name="SecurityHelper" class="org.teiid.jboss.JBossSecurityHelper"/>
-
- <bean name="JBossLifeCycleListener" class="org.teiid.jboss.JBossLifeCycleListener"/>
-
- <bean name="VDBParserDeployer" class="org.teiid.deployers.VDBParserDeployer">
- <property name="vdbRepository"><inject bean="VDBRepository"/></property>
- <property name="objectSerializer"><inject bean="ObjectSerializer"/></property>
- <property name="managedObjectFactory"><inject bean="ManagedObjectFactory"/></property>
- </bean>
-
- <bean name="VDBMetaDataInstanceClassFactory" class="org.teiid.jboss.deployers.VDBMetaDataInstanceClassFactory">
- <constructor>
- <parameter><inject bean="ManagedObjectFactory"/></parameter>
- </constructor>
- </bean>
-
- <bean name="DynamicVDBDeployer" class="org.teiid.deployers.DynamicVDBDeployer">
- </bean>
-
-
- <bean name="ObjectSerializer" class="org.teiid.deployers.ObjectSerializer">
- <property name="attachmentStoreRoot">${jboss.server.data.dir}/teiid</property>
- </bean>
-
- <bean name="VDBDeployer" class="org.teiid.deployers.VDBDeployer">
- <install bean="ManagedDeploymentCreator" method="addAttachmentType">
- <parameter>
- <value>org.teiid.adminapi.impl.VDBMetaData</value>
- </parameter>
- <parameter>
- <value>teiid-vdb</value>
- </parameter>
- </install>
- <uninstall bean="ManagedDeploymentCreator" method="removeAttachmentType">
- <parameter>
- <value>org.teiid.adminapi.impl.VDBMetaData</value>
- </parameter>
- </uninstall>
- <property name="VDBRepository"><inject bean="VDBRepository"/></property>
- <property name="objectSerializer"><inject bean="ObjectSerializer"/></property>
- <property name="translatorRepository"><inject bean="translatorRepository"/></property>
- <property name="containerLifeCycleListener"><inject bean="JBossLifeCycleListener"/></property>
- <property name="threadPool"><inject bean="jboss.system:service=ThreadPool"/></property>
- <depends>SystemVDBDeployer</depends>
- </bean>
-
- <bean name="SystemVDBDeployer" class="org.teiid.deployers.SystemVDBDeployer">
- <property name="VDBRepository"><inject bean="VDBRepository"/></property>
- </bean>
-
- <bean name="ConnectionFactoryDeployer" class="org.teiid.jboss.deployers.ConnectionFactoryDeployer">
- <property name="VDBStatusChecker"><inject bean="VDBStatusChecker"/></property>
- </bean>
-
- <bean name="translatorRepository" class="org.teiid.dqp.internal.datamgr.TranslatorRepository"/>
-
- <bean name="TranslatorParserDeployer" class="org.teiid.deployers.TranslatorParserDeployer"/>
- <bean name="TranslatorDeployer" class="org.teiid.deployers.TranslatorDeployer">
- <property name="translatorRepository"><inject bean="translatorRepository"/></property>
- <property name="VDBStatusChecker"><inject bean="VDBStatusChecker"/></property>
- </bean>
-
- <bean name="TranslatorAnnotationScanner" class="org.teiid.deployers.TranslatorAnnotationScanningDeployer">
- <property name="translatorRepository"><inject bean="translatorRepository"/></property>
- <property name="VDBStatusChecker"><inject bean="VDBStatusChecker"/></property>
- <property name="managedObjectFactory"><inject bean="ManagedObjectFactory"/></property>
- </bean>
-
- <bean name="VDBStatusChecker" class="org.teiid.deployers.VDBStatusChecker">
- <property name="VDBRepository"><inject bean="VDBRepository"/></property>
- <property name="threadPool"><inject bean="jboss.system:service=ThreadPool"/></property>
- </bean>
-
- <!-- Persistence class for the VDB deployment file -->
- <bean name="VDBMetadataComponentMapper" class="org.teiid.jboss.deployers.VDBMetadataComponentMapper">
- <constructor><parameter><inject bean="PersistenceFactory" /></parameter></constructor>
- </bean>
- <!-- Persistence class for the Translator deployment file -->
- <bean name="TranslatorMetadataGroupComponentMapper" class="org.teiid.jboss.deployers.TranslatorMetadataGroupComponentMapper">
- <constructor><parameter><inject bean="PersistenceFactory" /></parameter></constructor>
- </bean>
-
- <bean name="TranslatorMetadataICF" class="org.teiid.templates.TranslatorMetadataICF">
- <constructor>
- <parameter><inject bean="ManagedObjectFactory"/></parameter>
- </constructor>
- </bean>
-
- <!-- used for the translators -->
- <bean name="TranslatorDeploymentTemplateInfoFactory" class="org.teiid.templates.TranslatorTemplateInfoFactory"/>
-
-</deployment>
\ No newline at end of file
Copied: tags/teiid-parent-7.4.0.CR1/build/kits/jboss-container/deployers/teiid.deployer/teiid-deployer-jboss-beans.xml (from rev 3138, trunk/build/kits/jboss-container/deployers/teiid.deployer/teiid-deployer-jboss-beans.xml)
===================================================================
--- tags/teiid-parent-7.4.0.CR1/build/kits/jboss-container/deployers/teiid.deployer/teiid-deployer-jboss-beans.xml (rev 0)
+++ tags/teiid-parent-7.4.0.CR1/build/kits/jboss-container/deployers/teiid.deployer/teiid-deployer-jboss-beans.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+
+ <!-- Deployer specific Stuff -->
+ <bean name="VDBStructure" class="org.teiid.deployers.VDBStructure" />
+
+ <bean name="SystemFunctionManager" class="org.teiid.query.function.SystemFunctionManager">
+ <property name="allowEnvFunction">false</property>
+ </bean>
+
+ <bean name="VDBRepository" class="org.teiid.deployers.VDBRepository">
+ <property name="systemFunctionManager"><inject bean="SystemFunctionManager"/></property>
+ <!--
+ Optionally set a org.teiid.metadata.MetadataRepository for persistent metadata updates
+ -->
+ <!-- <property name="metadataRepository"><inject bean="MetadataRepository"/></property> -->
+ </bean>
+
+ <bean name="SecurityHelper" class="org.teiid.jboss.JBossSecurityHelper"/>
+
+ <bean name="JBossLifeCycleListener" class="org.teiid.jboss.JBossLifeCycleListener"/>
+
+ <bean name="VDBParserDeployer" class="org.teiid.deployers.VDBParserDeployer">
+ <property name="vdbRepository"><inject bean="VDBRepository"/></property>
+ <property name="objectSerializer"><inject bean="ObjectSerializer"/></property>
+ <property name="managedObjectFactory"><inject bean="ManagedObjectFactory"/></property>
+ </bean>
+
+ <bean name="VDBMetaDataInstanceClassFactory" class="org.teiid.jboss.deployers.VDBMetaDataInstanceClassFactory">
+ <constructor>
+ <parameter><inject bean="ManagedObjectFactory"/></parameter>
+ </constructor>
+ </bean>
+
+ <bean name="DynamicVDBDeployer" class="org.teiid.deployers.DynamicVDBDeployer">
+ </bean>
+
+
+ <bean name="ObjectSerializer" class="org.teiid.deployers.ObjectSerializer">
+ <property name="attachmentStoreRoot">${jboss.server.data.dir}/teiid</property>
+ </bean>
+
+ <bean name="VDBDeployer" class="org.teiid.deployers.VDBDeployer">
+ <install bean="ManagedDeploymentCreator" method="addAttachmentType">
+ <parameter>
+ <value>org.teiid.adminapi.impl.VDBMetaData</value>
+ </parameter>
+ <parameter>
+ <value>teiid-vdb</value>
+ </parameter>
+ </install>
+ <uninstall bean="ManagedDeploymentCreator" method="removeAttachmentType">
+ <parameter>
+ <value>org.teiid.adminapi.impl.VDBMetaData</value>
+ </parameter>
+ </uninstall>
+ <property name="VDBRepository"><inject bean="VDBRepository"/></property>
+ <property name="objectSerializer"><inject bean="ObjectSerializer"/></property>
+ <property name="translatorRepository"><inject bean="translatorRepository"/></property>
+ <property name="containerLifeCycleListener"><inject bean="JBossLifeCycleListener"/></property>
+ <property name="threadPool"><inject bean="jboss.system:service=ThreadPool"/></property>
+ <depends>SystemVDBDeployer</depends>
+ </bean>
+
+ <bean name="SystemVDBDeployer" class="org.teiid.deployers.SystemVDBDeployer">
+ <property name="VDBRepository"><inject bean="VDBRepository"/></property>
+ </bean>
+
+ <bean name="ConnectionFactoryDeployer" class="org.teiid.jboss.deployers.ConnectionFactoryDeployer">
+ <property name="VDBStatusChecker"><inject bean="VDBStatusChecker"/></property>
+ </bean>
+
+ <bean name="translatorRepository" class="org.teiid.dqp.internal.datamgr.TranslatorRepository"/>
+
+ <bean name="TranslatorParserDeployer" class="org.teiid.deployers.TranslatorParserDeployer"/>
+ <bean name="TranslatorDeployer" class="org.teiid.deployers.TranslatorDeployer">
+ <property name="translatorRepository"><inject bean="translatorRepository"/></property>
+ <property name="VDBStatusChecker"><inject bean="VDBStatusChecker"/></property>
+ </bean>
+
+ <bean name="TranslatorAnnotationScanner" class="org.teiid.deployers.TranslatorAnnotationScanningDeployer">
+ <property name="translatorRepository"><inject bean="translatorRepository"/></property>
+ <property name="VDBStatusChecker"><inject bean="VDBStatusChecker"/></property>
+ <property name="managedObjectFactory"><inject bean="ManagedObjectFactory"/></property>
+ </bean>
+
+ <bean name="VDBStatusChecker" class="org.teiid.deployers.VDBStatusChecker">
+ <property name="VDBRepository"><inject bean="VDBRepository"/></property>
+ <property name="threadPool"><inject bean="jboss.system:service=ThreadPool"/></property>
+ </bean>
+
+ <!-- Persistence class for the VDB deployment file -->
+ <bean name="VDBMetadataComponentMapper" class="org.teiid.jboss.deployers.VDBMetadataComponentMapper">
+ <constructor><parameter><inject bean="PersistenceFactory" /></parameter></constructor>
+ </bean>
+ <!-- Persistence class for the Translator deployment file -->
+ <bean name="TranslatorMetadataGroupComponentMapper" class="org.teiid.jboss.deployers.TranslatorMetadataGroupComponentMapper">
+ <constructor><parameter><inject bean="PersistenceFactory" /></parameter></constructor>
+ </bean>
+
+ <bean name="TranslatorMetadataICF" class="org.teiid.templates.TranslatorMetadataICF">
+ <constructor>
+ <parameter><inject bean="ManagedObjectFactory"/></parameter>
+ </constructor>
+ </bean>
+
+ <!-- used for the translators -->
+ <bean name="TranslatorDeploymentTemplateInfoFactory" class="org.teiid.templates.TranslatorTemplateInfoFactory"/>
+
+</deployment>
\ No newline at end of file
Deleted: tags/teiid-parent-7.4.0.CR1/build/pom.xml
===================================================================
--- trunk/build/pom.xml 2011-05-03 09:43:58 UTC (rev 3137)
+++ tags/teiid-parent-7.4.0.CR1/build/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -1,136 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <parent>
- <artifactId>teiid-parent</artifactId>
- <groupId>org.jboss.teiid</groupId>
- <version>7.4.0.CR1-SNAPSHOT</version>
- </parent>
- <modelVersion>4.0.0</modelVersion>
- <artifactId>teiid</artifactId>
- <name>Build</name>
- <description>Teiid Build</description>
- <dependencies>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-client-jdk15</artifactId>
- <version>${version}</version>
- </dependency>
- <dependency>
- <groupId>net.sf.retrotranslator</groupId>
- <artifactId>retrotranslator-runtime</artifactId>
- <version>1.2.9</version>
- </dependency>
-
- <dependency>
- <groupId>net.sf.retrotranslator</groupId>
- <artifactId>retrotranslator-transformer</artifactId>
- <version>1.2.9</version>
- </dependency>
- </dependencies>
- <build>
- <outputDirectory>target/kits</outputDirectory>
- <resources>
- <resource>
- <directory>kits</directory>
- <filtering>true</filtering>
- <includes>
- <include>**/*.xml</include>
- <include>**/*.properties</include>
- <include>**/*.sh</include>
- <include>**/*.bat</include>
- <include>**/*.html</include>
- </includes>
- </resource>
- <resource>
- <directory>kits</directory>
- <filtering>false</filtering>
- <excludes>
- <exclude>**/*.xml</exclude>
- <exclude>**/*.properties</exclude>
- <exclude>**/*.sh</exclude>
- <exclude>**/*.bat</exclude>
- <exclude>**/*.html</exclude>
- </excludes>
- </resource>
- </resources>
- <pluginManagement>
- <plugins>
- <plugin>
- <artifactId>maven-assembly-plugin</artifactId>
- </plugin>
- </plugins>
- </pluginManagement>
- <plugins>
- <plugin>
- <artifactId>maven-assembly-plugin</artifactId>
-
- <configuration>
- <descriptors>
- <descriptor>assembly/client-jar.xml</descriptor>
- <descriptor>assembly/jboss-container/dist.xml</descriptor>
- <descriptor>assembly/adminshell/adminshell-dist.xml</descriptor>
- </descriptors>
- </configuration>
-
- <executions>
- <execution>
- <id>create-assemblies</id>
- <phase>package</phase>
- <goals>
- <goal>single</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
-
- <profiles>
- <profile>
- <!--
- This profile is activated manually, as in "mvn ... -P release ..."
- -->
- <id>release</id>
- <build>
- <plugins>
- <plugin>
- <artifactId>maven-assembly-plugin</artifactId>
- <configuration>
- <descriptors>
- <descriptor>assembly/src.xml</descriptor>
- <descriptor>assembly/docs.xml</descriptor>
- <descriptor>assembly/client-jar.xml</descriptor>
- <descriptor>assembly/jboss-container/dist.xml</descriptor>
- <descriptor>assembly/adminshell/adminshell-dist.xml</descriptor>
- </descriptors>
- </configuration>
- </plugin>
-
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>exec-maven-plugin</artifactId>
- <version>1.1.1</version>
- <executions>
- <execution>
- <phase>package</phase>
- <goals>
- <goal>java</goal>
- </goals>
- <configuration>
- <mainClass>net.sf.retrotranslator.transformer.Retrotranslator</mainClass>
- <arguments>
- <argument>-srcjar</argument>
- <argument>${pom.basedir}/target/teiid-${pom.version}-client.jar</argument>
- <argument>-destjar</argument>
- <argument>${pom.basedir}/target/teiid-${pom.version}-client-jdk15.jar</argument>
- <argument>-embed</argument>
- <argument>org.teiid.retroruntime</argument>
- </arguments>
- </configuration>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
- </profile>
- </profiles>
-</project>
\ No newline at end of file
Copied: tags/teiid-parent-7.4.0.CR1/build/pom.xml (from rev 3140, trunk/build/pom.xml)
===================================================================
--- tags/teiid-parent-7.4.0.CR1/build/pom.xml (rev 0)
+++ tags/teiid-parent-7.4.0.CR1/build/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -0,0 +1,136 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <artifactId>teiid-parent</artifactId>
+ <groupId>org.jboss.teiid</groupId>
+ <version>7.4.0.CR1</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>teiid</artifactId>
+ <name>Build</name>
+ <description>Teiid Build</description>
+ <dependencies>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-client-jdk15</artifactId>
+ <version>${version}</version>
+ </dependency>
+ <dependency>
+ <groupId>net.sf.retrotranslator</groupId>
+ <artifactId>retrotranslator-runtime</artifactId>
+ <version>1.2.9</version>
+ </dependency>
+
+ <dependency>
+ <groupId>net.sf.retrotranslator</groupId>
+ <artifactId>retrotranslator-transformer</artifactId>
+ <version>1.2.9</version>
+ </dependency>
+ </dependencies>
+ <build>
+ <outputDirectory>target/kits</outputDirectory>
+ <resources>
+ <resource>
+ <directory>kits</directory>
+ <filtering>true</filtering>
+ <includes>
+ <include>**/*.xml</include>
+ <include>**/*.properties</include>
+ <include>**/*.sh</include>
+ <include>**/*.bat</include>
+ <include>**/*.html</include>
+ </includes>
+ </resource>
+ <resource>
+ <directory>kits</directory>
+ <filtering>false</filtering>
+ <excludes>
+ <exclude>**/*.xml</exclude>
+ <exclude>**/*.properties</exclude>
+ <exclude>**/*.sh</exclude>
+ <exclude>**/*.bat</exclude>
+ <exclude>**/*.html</exclude>
+ </excludes>
+ </resource>
+ </resources>
+ <pluginManagement>
+ <plugins>
+ <plugin>
+ <artifactId>maven-assembly-plugin</artifactId>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+ <plugins>
+ <plugin>
+ <artifactId>maven-assembly-plugin</artifactId>
+
+ <configuration>
+ <descriptors>
+ <descriptor>assembly/client-jar.xml</descriptor>
+ <descriptor>assembly/jboss-container/dist.xml</descriptor>
+ <descriptor>assembly/adminshell/adminshell-dist.xml</descriptor>
+ </descriptors>
+ </configuration>
+
+ <executions>
+ <execution>
+ <id>create-assemblies</id>
+ <phase>package</phase>
+ <goals>
+ <goal>single</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+
+ <profiles>
+ <profile>
+ <!--
+ This profile is activated manually, as in "mvn ... -P release ..."
+ -->
+ <id>release</id>
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-assembly-plugin</artifactId>
+ <configuration>
+ <descriptors>
+ <descriptor>assembly/src.xml</descriptor>
+ <descriptor>assembly/docs.xml</descriptor>
+ <descriptor>assembly/client-jar.xml</descriptor>
+ <descriptor>assembly/jboss-container/dist.xml</descriptor>
+ <descriptor>assembly/adminshell/adminshell-dist.xml</descriptor>
+ </descriptors>
+ </configuration>
+ </plugin>
+
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>exec-maven-plugin</artifactId>
+ <version>1.1.1</version>
+ <executions>
+ <execution>
+ <phase>package</phase>
+ <goals>
+ <goal>java</goal>
+ </goals>
+ <configuration>
+ <mainClass>net.sf.retrotranslator.transformer.Retrotranslator</mainClass>
+ <arguments>
+ <argument>-srcjar</argument>
+ <argument>${pom.basedir}/target/teiid-${pom.version}-client.jar</argument>
+ <argument>-destjar</argument>
+ <argument>${pom.basedir}/target/teiid-${pom.version}-client-jdk15.jar</argument>
+ <argument>-embed</argument>
+ <argument>org.teiid.retroruntime</argument>
+ </arguments>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+</project>
\ No newline at end of file
Deleted: tags/teiid-parent-7.4.0.CR1/cache-jbosscache/pom.xml
===================================================================
--- trunk/cache-jbosscache/pom.xml 2011-05-03 09:43:58 UTC (rev 3137)
+++ tags/teiid-parent-7.4.0.CR1/cache-jbosscache/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <parent>
- <artifactId>teiid-parent</artifactId>
- <groupId>org.jboss.teiid</groupId>
- <version>7.4.0.CR1-SNAPSHOT</version>
- </parent>
- <modelVersion>4.0.0</modelVersion>
- <artifactId>teiid-cache-jbosscache</artifactId>
- <name>JBoss Cache</name>
- <description>JBossCache provider.</description>
- <dependencies>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-common-core</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-api</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-engine</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.cache</groupId>
- <artifactId>jbosscache-core</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.man</groupId>
- <artifactId>jboss-managed</artifactId>
- <scope>provided</scope>
- </dependency>
- </dependencies>
-</project>
\ No newline at end of file
Copied: tags/teiid-parent-7.4.0.CR1/cache-jbosscache/pom.xml (from rev 3140, trunk/cache-jbosscache/pom.xml)
===================================================================
--- tags/teiid-parent-7.4.0.CR1/cache-jbosscache/pom.xml (rev 0)
+++ tags/teiid-parent-7.4.0.CR1/cache-jbosscache/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <artifactId>teiid-parent</artifactId>
+ <groupId>org.jboss.teiid</groupId>
+ <version>7.4.0.CR1</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>teiid-cache-jbosscache</artifactId>
+ <name>JBoss Cache</name>
+ <description>JBossCache provider.</description>
+ <dependencies>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-common-core</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-engine</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.cache</groupId>
+ <artifactId>jbosscache-core</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.man</groupId>
+ <artifactId>jboss-managed</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ </dependencies>
+</project>
\ No newline at end of file
Deleted: tags/teiid-parent-7.4.0.CR1/client/pom.xml
===================================================================
--- trunk/client/pom.xml 2011-05-03 09:43:58 UTC (rev 3137)
+++ tags/teiid-parent-7.4.0.CR1/client/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <parent>
- <artifactId>teiid-parent</artifactId>
- <groupId>org.jboss.teiid</groupId>
- <version>7.4.0.CR1-SNAPSHOT</version>
- </parent>
- <modelVersion>4.0.0</modelVersion>
- <artifactId>teiid-client</artifactId>
- <name>Client</name>
- <description>Contains the packages related to communication, administrative api,
- sessioning and transport level messaging.</description>
- <dependencies>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-common-core</artifactId>
- </dependency>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-common-core</artifactId>
- <type>test-jar</type>
- </dependency>
- <dependency>
- <groupId>org.jboss.man</groupId>
- <artifactId>jboss-managed</artifactId>
- </dependency>
- </dependencies>
-</project>
\ No newline at end of file
Copied: tags/teiid-parent-7.4.0.CR1/client/pom.xml (from rev 3140, trunk/client/pom.xml)
===================================================================
--- tags/teiid-parent-7.4.0.CR1/client/pom.xml (rev 0)
+++ tags/teiid-parent-7.4.0.CR1/client/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <artifactId>teiid-parent</artifactId>
+ <groupId>org.jboss.teiid</groupId>
+ <version>7.4.0.CR1</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>teiid-client</artifactId>
+ <name>Client</name>
+ <description>Contains the packages related to communication, administrative api,
+ sessioning and transport level messaging.</description>
+ <dependencies>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-common-core</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-common-core</artifactId>
+ <type>test-jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.man</groupId>
+ <artifactId>jboss-managed</artifactId>
+ </dependency>
+ </dependencies>
+</project>
\ No newline at end of file
Deleted: tags/teiid-parent-7.4.0.CR1/client-jdk15/pom.xml
===================================================================
--- trunk/client-jdk15/pom.xml 2011-05-03 09:43:58 UTC (rev 3137)
+++ tags/teiid-parent-7.4.0.CR1/client-jdk15/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <parent>
- <artifactId>teiid-parent</artifactId>
- <groupId>org.jboss.teiid</groupId>
- <version>7.4.0.CR1-SNAPSHOT</version>
- </parent>
- <modelVersion>4.0.0</modelVersion>
- <artifactId>teiid-client-jdk15</artifactId>
- <name>Client JDK15</name>
- <description>Contains the packages related retrotranslator that will convert 1.6 to 1.5</description>
- <dependencies>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-common-core</artifactId>
- </dependency>
- </dependencies>
-</project>
Copied: tags/teiid-parent-7.4.0.CR1/client-jdk15/pom.xml (from rev 3140, trunk/client-jdk15/pom.xml)
===================================================================
--- tags/teiid-parent-7.4.0.CR1/client-jdk15/pom.xml (rev 0)
+++ tags/teiid-parent-7.4.0.CR1/client-jdk15/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <artifactId>teiid-parent</artifactId>
+ <groupId>org.jboss.teiid</groupId>
+ <version>7.4.0.CR1</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>teiid-client-jdk15</artifactId>
+ <name>Client JDK15</name>
+ <description>Contains the packages related retrotranslator that will convert 1.6 to 1.5</description>
+ <dependencies>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-common-core</artifactId>
+ </dependency>
+ </dependencies>
+</project>
Deleted: tags/teiid-parent-7.4.0.CR1/common-core/pom.xml
===================================================================
--- trunk/common-core/pom.xml 2011-05-03 09:43:58 UTC (rev 3137)
+++ tags/teiid-parent-7.4.0.CR1/common-core/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -1,51 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <parent>
- <artifactId>teiid-parent</artifactId>
- <groupId>org.jboss.teiid</groupId>
- <version>7.4.0.CR1-SNAPSHOT</version>
- </parent>
- <modelVersion>4.0.0</modelVersion>
- <artifactId>teiid-common-core</artifactId>
- <name>Common Core</name>
- <description>Core shared library</description>
- <build>
- <plugins>
- <plugin>
- <artifactId>maven-antrun-plugin</artifactId>
- <executions>
- <execution>
- <phase>process-resources</phase>
- <configuration>
- <tasks>
- <tstamp />
- <replace dir="${project.build.outputDirectory}" token="@build-date@" value="${DSTAMP}">
- <include name="**/*.properties" />
- </replace>
- </tasks>
- </configuration>
- <goals>
- <goal>run</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- </plugins>
- <resources>
- <resource>
- <directory>src/main/resources</directory>
- <filtering>true</filtering>
- <includes>
- <include>**/*.properties</include>
- </includes>
- </resource>
- <resource>
- <directory>src/main/resources</directory>
- <filtering>false</filtering>
- <excludes>
- <exclude>**/*.properties</exclude>
- </excludes>
- </resource>
- </resources>
- </build>
-</project>
\ No newline at end of file
Copied: tags/teiid-parent-7.4.0.CR1/common-core/pom.xml (from rev 3140, trunk/common-core/pom.xml)
===================================================================
--- tags/teiid-parent-7.4.0.CR1/common-core/pom.xml (rev 0)
+++ tags/teiid-parent-7.4.0.CR1/common-core/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <artifactId>teiid-parent</artifactId>
+ <groupId>org.jboss.teiid</groupId>
+ <version>7.4.0.CR1</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>teiid-common-core</artifactId>
+ <name>Common Core</name>
+ <description>Core shared library</description>
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <execution>
+ <phase>process-resources</phase>
+ <configuration>
+ <tasks>
+ <tstamp />
+ <replace dir="${project.build.outputDirectory}" token="@build-date@" value="${DSTAMP}">
+ <include name="**/*.properties" />
+ </replace>
+ </tasks>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ <resources>
+ <resource>
+ <directory>src/main/resources</directory>
+ <filtering>true</filtering>
+ <includes>
+ <include>**/*.properties</include>
+ </includes>
+ </resource>
+ <resource>
+ <directory>src/main/resources</directory>
+ <filtering>false</filtering>
+ <excludes>
+ <exclude>**/*.properties</exclude>
+ </excludes>
+ </resource>
+ </resources>
+ </build>
+</project>
\ No newline at end of file
Deleted: tags/teiid-parent-7.4.0.CR1/connectors/connector-file/pom.xml
===================================================================
--- trunk/connectors/connector-file/pom.xml 2011-05-03 09:43:58 UTC (rev 3137)
+++ tags/teiid-parent-7.4.0.CR1/connectors/connector-file/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -1,58 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <parent>
- <artifactId>connectors</artifactId>
- <groupId>org.jboss.teiid</groupId>
- <version>7.4.0.CR1-SNAPSHOT</version>
- </parent>
- <modelVersion>4.0.0</modelVersion>
- <artifactId>connector-file</artifactId>
- <groupId>org.jboss.teiid.connectors</groupId>
- <name>File Connector</name>
- <packaging>rar</packaging>
- <description>This connector reads data from files.</description>
-
- <dependencies>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-api</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-common-core</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>javax.resource</groupId>
- <artifactId>connector-api</artifactId>
- <scope>provided</scope>
- </dependency>
- </dependencies>
- <build>
- <plugins>
- <plugin>
- <artifactId>maven-jar-plugin</artifactId>
- <executions>
- <execution>
- <id>build_jar</id>
- <phase>process-classes</phase>
- <goals>
- <goal>jar</goal>
- </goals>
- </execution>
- <execution>
- <id>deploy_jar</id>
- <phase>package</phase>
- <goals>
- <goal>jar</goal>
- </goals>
- <configuration>
- <classifier>lib</classifier>
- </configuration>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
-</project>
\ No newline at end of file
Copied: tags/teiid-parent-7.4.0.CR1/connectors/connector-file/pom.xml (from rev 3140, trunk/connectors/connector-file/pom.xml)
===================================================================
--- tags/teiid-parent-7.4.0.CR1/connectors/connector-file/pom.xml (rev 0)
+++ tags/teiid-parent-7.4.0.CR1/connectors/connector-file/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <artifactId>connectors</artifactId>
+ <groupId>org.jboss.teiid</groupId>
+ <version>7.4.0.CR1</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>connector-file</artifactId>
+ <groupId>org.jboss.teiid.connectors</groupId>
+ <name>File Connector</name>
+ <packaging>rar</packaging>
+ <description>This connector reads data from files.</description>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-common-core</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.resource</groupId>
+ <artifactId>connector-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-jar-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>build_jar</id>
+ <phase>process-classes</phase>
+ <goals>
+ <goal>jar</goal>
+ </goals>
+ </execution>
+ <execution>
+ <id>deploy_jar</id>
+ <phase>package</phase>
+ <goals>
+ <goal>jar</goal>
+ </goals>
+ <configuration>
+ <classifier>lib</classifier>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+</project>
\ No newline at end of file
Deleted: tags/teiid-parent-7.4.0.CR1/connectors/connector-ldap/pom.xml
===================================================================
--- trunk/connectors/connector-ldap/pom.xml 2011-05-03 09:43:58 UTC (rev 3137)
+++ tags/teiid-parent-7.4.0.CR1/connectors/connector-ldap/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -1,57 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <parent>
- <artifactId>connectors</artifactId>
- <groupId>org.jboss.teiid</groupId>
- <version>7.4.0.CR1-SNAPSHOT</version>
- </parent>
- <modelVersion>4.0.0</modelVersion>
- <artifactId>connector-ldap</artifactId>
- <groupId>org.jboss.teiid.connectors</groupId>
- <name>LDAP Connector</name>
- <description>LDAP Connector</description>
- <packaging>rar</packaging>
-
- <dependencies>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-api</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-common-core</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>javax.resource</groupId>
- <artifactId>connector-api</artifactId>
- <scope>provided</scope>
- </dependency>
- </dependencies>
- <build>
- <plugins>
- <plugin>
- <artifactId>maven-jar-plugin</artifactId>
- <executions>
- <execution>
- <id>build_jar</id>
- <phase>process-classes</phase>
- <goals>
- <goal>jar</goal>
- </goals>
- </execution>
- <execution>
- <id>deploy_jar</id>
- <phase>package</phase>
- <goals>
- <goal>jar</goal>
- </goals>
- <configuration>
- <classifier>lib</classifier>
- </configuration>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
-</project>
\ No newline at end of file
Copied: tags/teiid-parent-7.4.0.CR1/connectors/connector-ldap/pom.xml (from rev 3140, trunk/connectors/connector-ldap/pom.xml)
===================================================================
--- tags/teiid-parent-7.4.0.CR1/connectors/connector-ldap/pom.xml (rev 0)
+++ tags/teiid-parent-7.4.0.CR1/connectors/connector-ldap/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -0,0 +1,57 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <artifactId>connectors</artifactId>
+ <groupId>org.jboss.teiid</groupId>
+ <version>7.4.0.CR1</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>connector-ldap</artifactId>
+ <groupId>org.jboss.teiid.connectors</groupId>
+ <name>LDAP Connector</name>
+ <description>LDAP Connector</description>
+ <packaging>rar</packaging>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-common-core</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.resource</groupId>
+ <artifactId>connector-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-jar-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>build_jar</id>
+ <phase>process-classes</phase>
+ <goals>
+ <goal>jar</goal>
+ </goals>
+ </execution>
+ <execution>
+ <id>deploy_jar</id>
+ <phase>package</phase>
+ <goals>
+ <goal>jar</goal>
+ </goals>
+ <configuration>
+ <classifier>lib</classifier>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+</project>
\ No newline at end of file
Deleted: tags/teiid-parent-7.4.0.CR1/connectors/connector-salesforce/pom.xml
===================================================================
--- trunk/connectors/connector-salesforce/pom.xml 2011-05-03 09:43:58 UTC (rev 3137)
+++ tags/teiid-parent-7.4.0.CR1/connectors/connector-salesforce/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -1,94 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <parent>
- <artifactId>connectors</artifactId>
- <groupId>org.jboss.teiid</groupId>
- <version>7.4.0.CR1-SNAPSHOT</version>
- </parent>
- <modelVersion>4.0.0</modelVersion>
- <artifactId>connector-salesforce</artifactId>
- <groupId>org.jboss.teiid.connectors</groupId>
- <name>Salesforce Connector</name>
- <packaging>rar</packaging>
- <description>Integrates the query engine with Salesforce.com.</description>
- <dependencies>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-api</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-common-core</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.teiid.connectors</groupId>
- <artifactId>salesforce-api</artifactId>
- <version>${project.version}</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.teiid.connectors</groupId>
- <artifactId>translator-salesforce</artifactId>
- <version>${project.version}</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>javax.resource</groupId>
- <artifactId>connector-api</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.cxf</groupId>
- <artifactId>cxf-rt-frontend-jaxws</artifactId>
- <version>2.2.2</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.cxf</groupId>
- <artifactId>cxf-rt-transports-http</artifactId>
- <version>2.2.2</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.cxf</groupId>
- <artifactId>cxf-rt-ws-security</artifactId>
- <version>2.2.2</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.cxf</groupId>
- <artifactId>cxf-rt-ws-policy</artifactId>
- <version>2.2.2</version>
- <scope>provided</scope>
- </dependency>
- </dependencies>
-
- <build>
- <plugins>
- <plugin>
- <artifactId>maven-jar-plugin</artifactId>
- <executions>
- <execution>
- <id>build_jar</id>
- <phase>process-classes</phase>
- <goals>
- <goal>jar</goal>
- </goals>
- </execution>
- <execution>
- <id>deploy_jar</id>
- <phase>package</phase>
- <goals>
- <goal>jar</goal>
- </goals>
- <configuration>
- <classifier>lib</classifier>
- </configuration>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
-</project>
\ No newline at end of file
Copied: tags/teiid-parent-7.4.0.CR1/connectors/connector-salesforce/pom.xml (from rev 3140, trunk/connectors/connector-salesforce/pom.xml)
===================================================================
--- tags/teiid-parent-7.4.0.CR1/connectors/connector-salesforce/pom.xml (rev 0)
+++ tags/teiid-parent-7.4.0.CR1/connectors/connector-salesforce/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <artifactId>connectors</artifactId>
+ <groupId>org.jboss.teiid</groupId>
+ <version>7.4.0.CR1</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>connector-salesforce</artifactId>
+ <groupId>org.jboss.teiid.connectors</groupId>
+ <name>Salesforce Connector</name>
+ <packaging>rar</packaging>
+ <description>Integrates the query engine with Salesforce.com.</description>
+ <dependencies>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-common-core</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.teiid.connectors</groupId>
+ <artifactId>salesforce-api</artifactId>
+ <version>${project.version}</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.teiid.connectors</groupId>
+ <artifactId>translator-salesforce</artifactId>
+ <version>${project.version}</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.resource</groupId>
+ <artifactId>connector-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-rt-frontend-jaxws</artifactId>
+ <version>2.2.2</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-rt-transports-http</artifactId>
+ <version>2.2.2</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-rt-ws-security</artifactId>
+ <version>2.2.2</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-rt-ws-policy</artifactId>
+ <version>2.2.2</version>
+ <scope>provided</scope>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-jar-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>build_jar</id>
+ <phase>process-classes</phase>
+ <goals>
+ <goal>jar</goal>
+ </goals>
+ </execution>
+ <execution>
+ <id>deploy_jar</id>
+ <phase>package</phase>
+ <goals>
+ <goal>jar</goal>
+ </goals>
+ <configuration>
+ <classifier>lib</classifier>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+</project>
\ No newline at end of file
Deleted: tags/teiid-parent-7.4.0.CR1/connectors/connector-ws/pom.xml
===================================================================
--- trunk/connectors/connector-ws/pom.xml 2011-05-03 09:43:58 UTC (rev 3137)
+++ tags/teiid-parent-7.4.0.CR1/connectors/connector-ws/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -1,82 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <parent>
- <artifactId>connectors</artifactId>
- <groupId>org.jboss.teiid</groupId>
- <version>7.4.0.CR1-SNAPSHOT</version>
- </parent>
- <modelVersion>4.0.0</modelVersion>
- <artifactId>connector-ws</artifactId>
- <groupId>org.jboss.teiid.connectors</groupId>
- <name>Web Service Connector</name>
- <packaging>rar</packaging>
- <description>This connector reads data from Web Services</description>
-
- <dependencies>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-api</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-common-core</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>javax.resource</groupId>
- <artifactId>connector-api</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.cxf</groupId>
- <artifactId>cxf-rt-frontend-jaxws</artifactId>
- <version>2.2.2</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.cxf</groupId>
- <artifactId>cxf-rt-transports-http</artifactId>
- <version>2.2.2</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.cxf</groupId>
- <artifactId>cxf-rt-ws-security</artifactId>
- <version>2.2.2</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.cxf</groupId>
- <artifactId>cxf-rt-ws-policy</artifactId>
- <version>2.2.2</version>
- <scope>provided</scope>
- </dependency>
- </dependencies>
- <build>
- <plugins>
- <plugin>
- <artifactId>maven-jar-plugin</artifactId>
- <executions>
- <execution>
- <id>build_jar</id>
- <phase>process-classes</phase>
- <goals>
- <goal>jar</goal>
- </goals>
- </execution>
- <execution>
- <id>deploy_jar</id>
- <phase>package</phase>
- <goals>
- <goal>jar</goal>
- </goals>
- <configuration>
- <classifier>lib</classifier>
- </configuration>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
-</project>
Copied: tags/teiid-parent-7.4.0.CR1/connectors/connector-ws/pom.xml (from rev 3140, trunk/connectors/connector-ws/pom.xml)
===================================================================
--- tags/teiid-parent-7.4.0.CR1/connectors/connector-ws/pom.xml (rev 0)
+++ tags/teiid-parent-7.4.0.CR1/connectors/connector-ws/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <artifactId>connectors</artifactId>
+ <groupId>org.jboss.teiid</groupId>
+ <version>7.4.0.CR1</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>connector-ws</artifactId>
+ <groupId>org.jboss.teiid.connectors</groupId>
+ <name>Web Service Connector</name>
+ <packaging>rar</packaging>
+ <description>This connector reads data from Web Services</description>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-common-core</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.resource</groupId>
+ <artifactId>connector-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-rt-frontend-jaxws</artifactId>
+ <version>2.2.2</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-rt-transports-http</artifactId>
+ <version>2.2.2</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-rt-ws-security</artifactId>
+ <version>2.2.2</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-rt-ws-policy</artifactId>
+ <version>2.2.2</version>
+ <scope>provided</scope>
+ </dependency>
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-jar-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>build_jar</id>
+ <phase>process-classes</phase>
+ <goals>
+ <goal>jar</goal>
+ </goals>
+ </execution>
+ <execution>
+ <id>deploy_jar</id>
+ <phase>package</phase>
+ <goals>
+ <goal>jar</goal>
+ </goals>
+ <configuration>
+ <classifier>lib</classifier>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+</project>
Deleted: tags/teiid-parent-7.4.0.CR1/connectors/pom.xml
===================================================================
--- trunk/connectors/pom.xml 2011-05-03 09:43:58 UTC (rev 3137)
+++ tags/teiid-parent-7.4.0.CR1/connectors/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -1,91 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <parent>
- <artifactId>teiid-parent</artifactId>
- <groupId>org.jboss.teiid</groupId>
- <version>7.4.0.CR1-SNAPSHOT</version>
- </parent>
- <modelVersion>4.0.0</modelVersion>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>connectors</artifactId>
- <packaging>pom</packaging>
- <name>Connectors</name>
- <description>This project is aggregator for all the supported connectors.</description>
- <dependencies>
-
- <!-- Internal Test Dependencies -->
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-api</artifactId>
- <type>test-jar</type>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-engine</artifactId>
- <type>test-jar</type>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-common-core</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-common-core</artifactId>
- <type>test-jar</type>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-client</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-engine</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-metadata</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-metadata</artifactId>
- <type>test-jar</type>
- <scope>test</scope>
- </dependency>
-
- <!-- External dependencies -->
- <dependency>
- <groupId>org.jboss</groupId>
- <artifactId>jboss-vfs</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.man</groupId>
- <artifactId>jboss-managed</artifactId>
- <scope>test</scope>
- </dependency>
-
- </dependencies>
-
- <modules>
- <module>translator-jdbc</module>
- <module>translator-ldap</module>
- <module>translator-loopback</module>
- <module>translator-file</module>
- <module>translator-salesforce</module>
- <module>connector-file</module>
- <module>connector-salesforce</module>
- <module>connector-ldap</module>
- <module>salesforce-api</module>
- <module>connector-ws</module>
- <module>sandbox</module>
- <module>translator-ws</module>
- <module>translator-olap</module>
- </modules>
-</project>
Copied: tags/teiid-parent-7.4.0.CR1/connectors/pom.xml (from rev 3140, trunk/connectors/pom.xml)
===================================================================
--- tags/teiid-parent-7.4.0.CR1/connectors/pom.xml (rev 0)
+++ tags/teiid-parent-7.4.0.CR1/connectors/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <artifactId>teiid-parent</artifactId>
+ <groupId>org.jboss.teiid</groupId>
+ <version>7.4.0.CR1</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>connectors</artifactId>
+ <packaging>pom</packaging>
+ <name>Connectors</name>
+ <description>This project is aggregator for all the supported connectors.</description>
+ <dependencies>
+
+ <!-- Internal Test Dependencies -->
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-api</artifactId>
+ <type>test-jar</type>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-engine</artifactId>
+ <type>test-jar</type>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-common-core</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-common-core</artifactId>
+ <type>test-jar</type>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-client</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-engine</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-metadata</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-metadata</artifactId>
+ <type>test-jar</type>
+ <scope>test</scope>
+ </dependency>
+
+ <!-- External dependencies -->
+ <dependency>
+ <groupId>org.jboss</groupId>
+ <artifactId>jboss-vfs</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.man</groupId>
+ <artifactId>jboss-managed</artifactId>
+ <scope>test</scope>
+ </dependency>
+
+ </dependencies>
+
+ <modules>
+ <module>translator-jdbc</module>
+ <module>translator-ldap</module>
+ <module>translator-loopback</module>
+ <module>translator-file</module>
+ <module>translator-salesforce</module>
+ <module>connector-file</module>
+ <module>connector-salesforce</module>
+ <module>connector-ldap</module>
+ <module>salesforce-api</module>
+ <module>connector-ws</module>
+ <module>sandbox</module>
+ <module>translator-ws</module>
+ <module>translator-olap</module>
+ </modules>
+</project>
Deleted: tags/teiid-parent-7.4.0.CR1/connectors/salesforce-api/pom.xml
===================================================================
--- trunk/connectors/salesforce-api/pom.xml 2011-05-03 09:43:58 UTC (rev 3137)
+++ tags/teiid-parent-7.4.0.CR1/connectors/salesforce-api/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -1,14 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <parent>
- <artifactId>connectors</artifactId>
- <groupId>org.jboss.teiid</groupId>
- <version>7.4.0.CR1-SNAPSHOT</version>
- </parent>
- <modelVersion>4.0.0</modelVersion>
- <artifactId>salesforce-api</artifactId>
- <groupId>org.jboss.teiid.connectors</groupId>
- <name>Salesforce API</name>
- <description>The java API for the Salesforce.com partner web service API</description>
- <dependencies>
- </dependencies>
-</project>
\ No newline at end of file
Copied: tags/teiid-parent-7.4.0.CR1/connectors/salesforce-api/pom.xml (from rev 3140, trunk/connectors/salesforce-api/pom.xml)
===================================================================
--- tags/teiid-parent-7.4.0.CR1/connectors/salesforce-api/pom.xml (rev 0)
+++ tags/teiid-parent-7.4.0.CR1/connectors/salesforce-api/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -0,0 +1,14 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <artifactId>connectors</artifactId>
+ <groupId>org.jboss.teiid</groupId>
+ <version>7.4.0.CR1</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>salesforce-api</artifactId>
+ <groupId>org.jboss.teiid.connectors</groupId>
+ <name>Salesforce API</name>
+ <description>The java API for the Salesforce.com partner web service API</description>
+ <dependencies>
+ </dependencies>
+</project>
\ No newline at end of file
Deleted: tags/teiid-parent-7.4.0.CR1/connectors/sandbox/pom.xml
===================================================================
--- trunk/connectors/sandbox/pom.xml 2011-05-03 09:43:58 UTC (rev 3137)
+++ tags/teiid-parent-7.4.0.CR1/connectors/sandbox/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <parent>
- <artifactId>connectors</artifactId>
- <groupId>org.jboss.teiid</groupId>
- <version>7.4.0.CR1-SNAPSHOT</version>
- </parent>
- <modelVersion>4.0.0</modelVersion>
- <groupId>org.jboss.teiid.connectors</groupId>
- <artifactId>sandbox</artifactId>
- <packaging>pom</packaging>
- <name>Sandbox</name>
- <description>Experimental connectors in progress</description>
- <modules>
- <module>translator-yahoo</module>
- </modules>
-</project>
Copied: tags/teiid-parent-7.4.0.CR1/connectors/sandbox/pom.xml (from rev 3140, trunk/connectors/sandbox/pom.xml)
===================================================================
--- tags/teiid-parent-7.4.0.CR1/connectors/sandbox/pom.xml (rev 0)
+++ tags/teiid-parent-7.4.0.CR1/connectors/sandbox/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <artifactId>connectors</artifactId>
+ <groupId>org.jboss.teiid</groupId>
+ <version>7.4.0.CR1</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.jboss.teiid.connectors</groupId>
+ <artifactId>sandbox</artifactId>
+ <packaging>pom</packaging>
+ <name>Sandbox</name>
+ <description>Experimental connectors in progress</description>
+ <modules>
+ <module>translator-yahoo</module>
+ </modules>
+</project>
Deleted: tags/teiid-parent-7.4.0.CR1/connectors/sandbox/translator-yahoo/pom.xml
===================================================================
--- trunk/connectors/sandbox/translator-yahoo/pom.xml 2011-05-03 09:43:58 UTC (rev 3137)
+++ tags/teiid-parent-7.4.0.CR1/connectors/sandbox/translator-yahoo/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -1,52 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <parent>
- <artifactId>sandbox</artifactId>
- <groupId>org.jboss.teiid.connectors</groupId>
- <version>7.4.0.CR1-SNAPSHOT</version>
- </parent>
- <modelVersion>4.0.0</modelVersion>
- <artifactId>translator-yahoo</artifactId>
- <groupId>org.jboss.teiid.connectors.sandbox</groupId>
- <name>Yahoo Translator</name>
- <description>Test translator used to query ticker symbols from Yahoo website</description>
- <dependencies>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-api</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-common-core</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>javax.resource</groupId>
- <artifactId>connector-api</artifactId>
- <scope>provided</scope>
- </dependency>
- </dependencies>
-
- <build>
- <outputDirectory>target/classes</outputDirectory>
- <resources>
- <resource>
- <directory>src/main/resources</directory>
- <filtering>true</filtering>
- <includes>
- <include>**/*.xml</include>
- <include>**/*.properties</include>
- </includes>
- </resource>
- <resource>
- <directory>src/main/resources</directory>
- <filtering>false</filtering>
- <excludes>
- <exclude>**/*.xml</exclude>
- <exclude>**/*.properties</exclude>
- </excludes>
- </resource>
- </resources>
- </build>
-</project>
Copied: tags/teiid-parent-7.4.0.CR1/connectors/sandbox/translator-yahoo/pom.xml (from rev 3140, trunk/connectors/sandbox/translator-yahoo/pom.xml)
===================================================================
--- tags/teiid-parent-7.4.0.CR1/connectors/sandbox/translator-yahoo/pom.xml (rev 0)
+++ tags/teiid-parent-7.4.0.CR1/connectors/sandbox/translator-yahoo/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <artifactId>sandbox</artifactId>
+ <groupId>org.jboss.teiid.connectors</groupId>
+ <version>7.4.0.CR1</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>translator-yahoo</artifactId>
+ <groupId>org.jboss.teiid.connectors.sandbox</groupId>
+ <name>Yahoo Translator</name>
+ <description>Test translator used to query ticker symbols from Yahoo website</description>
+ <dependencies>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-common-core</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.resource</groupId>
+ <artifactId>connector-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <outputDirectory>target/classes</outputDirectory>
+ <resources>
+ <resource>
+ <directory>src/main/resources</directory>
+ <filtering>true</filtering>
+ <includes>
+ <include>**/*.xml</include>
+ <include>**/*.properties</include>
+ </includes>
+ </resource>
+ <resource>
+ <directory>src/main/resources</directory>
+ <filtering>false</filtering>
+ <excludes>
+ <exclude>**/*.xml</exclude>
+ <exclude>**/*.properties</exclude>
+ </excludes>
+ </resource>
+ </resources>
+ </build>
+</project>
Deleted: tags/teiid-parent-7.4.0.CR1/connectors/translator-file/pom.xml
===================================================================
--- trunk/connectors/translator-file/pom.xml 2011-05-03 09:43:58 UTC (rev 3137)
+++ tags/teiid-parent-7.4.0.CR1/connectors/translator-file/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <parent>
- <artifactId>connectors</artifactId>
- <groupId>org.jboss.teiid</groupId>
- <version>7.4.0.CR1-SNAPSHOT</version>
- </parent>
- <modelVersion>4.0.0</modelVersion>
- <artifactId>translator-file</artifactId>
- <groupId>org.jboss.teiid.connectors</groupId>
- <name>File Translator</name>
- <description>This translator provides access to the file system.</description>
-
- <dependencies>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-api</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-common-core</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>javax.resource</groupId>
- <artifactId>connector-api</artifactId>
- <scope>provided</scope>
- </dependency>
- </dependencies>
-
- <build>
- <outputDirectory>target/classes</outputDirectory>
- <resources>
- <resource>
- <directory>src/main/resources</directory>
- <filtering>true</filtering>
- <includes>
- <include>**/*.xml</include>
- <include>**/*.properties</include>
- </includes>
- </resource>
- <resource>
- <directory>src/main/resources</directory>
- <filtering>false</filtering>
- <excludes>
- <exclude>**/*.xml</exclude>
- <exclude>**/*.properties</exclude>
- </excludes>
- </resource>
- </resources>
- </build>
-</project>
Copied: tags/teiid-parent-7.4.0.CR1/connectors/translator-file/pom.xml (from rev 3140, trunk/connectors/translator-file/pom.xml)
===================================================================
--- tags/teiid-parent-7.4.0.CR1/connectors/translator-file/pom.xml (rev 0)
+++ tags/teiid-parent-7.4.0.CR1/connectors/translator-file/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <artifactId>connectors</artifactId>
+ <groupId>org.jboss.teiid</groupId>
+ <version>7.4.0.CR1</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>translator-file</artifactId>
+ <groupId>org.jboss.teiid.connectors</groupId>
+ <name>File Translator</name>
+ <description>This translator provides access to the file system.</description>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-common-core</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.resource</groupId>
+ <artifactId>connector-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <outputDirectory>target/classes</outputDirectory>
+ <resources>
+ <resource>
+ <directory>src/main/resources</directory>
+ <filtering>true</filtering>
+ <includes>
+ <include>**/*.xml</include>
+ <include>**/*.properties</include>
+ </includes>
+ </resource>
+ <resource>
+ <directory>src/main/resources</directory>
+ <filtering>false</filtering>
+ <excludes>
+ <exclude>**/*.xml</exclude>
+ <exclude>**/*.properties</exclude>
+ </excludes>
+ </resource>
+ </resources>
+ </build>
+</project>
Deleted: tags/teiid-parent-7.4.0.CR1/connectors/translator-jdbc/pom.xml
===================================================================
--- trunk/connectors/translator-jdbc/pom.xml 2011-05-03 09:43:58 UTC (rev 3137)
+++ tags/teiid-parent-7.4.0.CR1/connectors/translator-jdbc/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -1,54 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <parent>
- <artifactId>connectors</artifactId>
- <groupId>org.jboss.teiid</groupId>
- <version>7.4.0.CR1-SNAPSHOT</version>
- </parent>
- <modelVersion>4.0.0</modelVersion>
- <artifactId>translator-jdbc</artifactId>
- <groupId>org.jboss.teiid.connectors</groupId>
- <name>JDBC Translator</name>
-
- <description>This project contains translators for a JDBC source. Currently this is an aggregator for all the JDBC translators relational databases.</description>
- <dependencies>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-api</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-common-core</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>javax.resource</groupId>
- <artifactId>connector-api</artifactId>
- <scope>provided</scope>
- </dependency>
- </dependencies>
-
- <build>
- <outputDirectory>target/classes</outputDirectory>
- <resources>
- <resource>
- <directory>src/main/resources</directory>
- <filtering>true</filtering>
- <includes>
- <include>**/*.xml</include>
- <include>**/*.properties</include>
- </includes>
- </resource>
- <resource>
- <directory>src/main/resources</directory>
- <filtering>false</filtering>
- <excludes>
- <exclude>**/*.xml</exclude>
- <exclude>**/*.properties</exclude>
- </excludes>
- </resource>
- </resources>
- </build>
-
-</project>
Copied: tags/teiid-parent-7.4.0.CR1/connectors/translator-jdbc/pom.xml (from rev 3140, trunk/connectors/translator-jdbc/pom.xml)
===================================================================
--- tags/teiid-parent-7.4.0.CR1/connectors/translator-jdbc/pom.xml (rev 0)
+++ tags/teiid-parent-7.4.0.CR1/connectors/translator-jdbc/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <artifactId>connectors</artifactId>
+ <groupId>org.jboss.teiid</groupId>
+ <version>7.4.0.CR1</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>translator-jdbc</artifactId>
+ <groupId>org.jboss.teiid.connectors</groupId>
+ <name>JDBC Translator</name>
+
+ <description>This project contains translators for a JDBC source. Currently this is an aggregator for all the JDBC translators relational databases.</description>
+ <dependencies>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-common-core</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.resource</groupId>
+ <artifactId>connector-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <outputDirectory>target/classes</outputDirectory>
+ <resources>
+ <resource>
+ <directory>src/main/resources</directory>
+ <filtering>true</filtering>
+ <includes>
+ <include>**/*.xml</include>
+ <include>**/*.properties</include>
+ </includes>
+ </resource>
+ <resource>
+ <directory>src/main/resources</directory>
+ <filtering>false</filtering>
+ <excludes>
+ <exclude>**/*.xml</exclude>
+ <exclude>**/*.properties</exclude>
+ </excludes>
+ </resource>
+ </resources>
+ </build>
+
+</project>
Deleted: tags/teiid-parent-7.4.0.CR1/connectors/translator-ldap/pom.xml
===================================================================
--- trunk/connectors/translator-ldap/pom.xml 2011-05-03 09:43:58 UTC (rev 3137)
+++ tags/teiid-parent-7.4.0.CR1/connectors/translator-ldap/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -1,52 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <parent>
- <artifactId>connectors</artifactId>
- <groupId>org.jboss.teiid</groupId>
- <version>7.4.0.CR1-SNAPSHOT</version>
- </parent>
- <modelVersion>4.0.0</modelVersion>
- <artifactId>translator-ldap</artifactId>
- <groupId>org.jboss.teiid.connectors</groupId>
- <name>LDAP Translator</name>
- <description>LDAP Translator</description>
-
- <dependencies>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-api</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-common-core</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>javax.resource</groupId>
- <artifactId>connector-api</artifactId>
- <scope>provided</scope>
- </dependency>
- </dependencies>
-
- <build>
- <outputDirectory>target/classes</outputDirectory>
- <resources>
- <resource>
- <directory>src/main/resources</directory>
- <filtering>true</filtering>
- <includes>
- <include>**/*.xml</include>
- <include>**/*.properties</include>
- </includes>
- </resource>
- <resource>
- <directory>src/main/resources</directory>
- <filtering>false</filtering>
- <excludes>
- <exclude>**/*.xml</exclude>
- <exclude>**/*.properties</exclude>
- </excludes>
- </resource>
- </resources>
- </build>
-</project>
Copied: tags/teiid-parent-7.4.0.CR1/connectors/translator-ldap/pom.xml (from rev 3140, trunk/connectors/translator-ldap/pom.xml)
===================================================================
--- tags/teiid-parent-7.4.0.CR1/connectors/translator-ldap/pom.xml (rev 0)
+++ tags/teiid-parent-7.4.0.CR1/connectors/translator-ldap/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -0,0 +1,52 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <artifactId>connectors</artifactId>
+ <groupId>org.jboss.teiid</groupId>
+ <version>7.4.0.CR1</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>translator-ldap</artifactId>
+ <groupId>org.jboss.teiid.connectors</groupId>
+ <name>LDAP Translator</name>
+ <description>LDAP Translator</description>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-common-core</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.resource</groupId>
+ <artifactId>connector-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <outputDirectory>target/classes</outputDirectory>
+ <resources>
+ <resource>
+ <directory>src/main/resources</directory>
+ <filtering>true</filtering>
+ <includes>
+ <include>**/*.xml</include>
+ <include>**/*.properties</include>
+ </includes>
+ </resource>
+ <resource>
+ <directory>src/main/resources</directory>
+ <filtering>false</filtering>
+ <excludes>
+ <exclude>**/*.xml</exclude>
+ <exclude>**/*.properties</exclude>
+ </excludes>
+ </resource>
+ </resources>
+ </build>
+</project>
Deleted: tags/teiid-parent-7.4.0.CR1/connectors/translator-loopback/pom.xml
===================================================================
--- trunk/connectors/translator-loopback/pom.xml 2011-05-03 09:43:58 UTC (rev 3137)
+++ tags/teiid-parent-7.4.0.CR1/connectors/translator-loopback/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <parent>
- <artifactId>connectors</artifactId>
- <groupId>org.jboss.teiid</groupId>
- <version>7.4.0.CR1-SNAPSHOT</version>
- </parent>
- <modelVersion>4.0.0</modelVersion>
- <artifactId>translator-loopback</artifactId>
- <groupId>org.jboss.teiid.connectors</groupId>
- <name>Loopback Translator</name>
- <description>Loopback Translator</description>
-
- <dependencies>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-api</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-common-core</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>javax.resource</groupId>
- <artifactId>connector-api</artifactId>
- <scope>provided</scope>
- </dependency>
- </dependencies>
-
- <build>
- <outputDirectory>target/classes</outputDirectory>
- <resources>
- <resource>
- <directory>src/main/resources</directory>
- <filtering>true</filtering>
- <includes>
- <include>**/*.xml</include>
- <include>**/*.properties</include>
- </includes>
- </resource>
- <resource>
- <directory>src/main/resources</directory>
- <filtering>false</filtering>
- <excludes>
- <exclude>**/*.xml</exclude>
- <exclude>**/*.properties</exclude>
- </excludes>
- </resource>
- </resources>
- </build>
-</project>
Copied: tags/teiid-parent-7.4.0.CR1/connectors/translator-loopback/pom.xml (from rev 3140, trunk/connectors/translator-loopback/pom.xml)
===================================================================
--- tags/teiid-parent-7.4.0.CR1/connectors/translator-loopback/pom.xml (rev 0)
+++ tags/teiid-parent-7.4.0.CR1/connectors/translator-loopback/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <artifactId>connectors</artifactId>
+ <groupId>org.jboss.teiid</groupId>
+ <version>7.4.0.CR1</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>translator-loopback</artifactId>
+ <groupId>org.jboss.teiid.connectors</groupId>
+ <name>Loopback Translator</name>
+ <description>Loopback Translator</description>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-common-core</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.resource</groupId>
+ <artifactId>connector-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <outputDirectory>target/classes</outputDirectory>
+ <resources>
+ <resource>
+ <directory>src/main/resources</directory>
+ <filtering>true</filtering>
+ <includes>
+ <include>**/*.xml</include>
+ <include>**/*.properties</include>
+ </includes>
+ </resource>
+ <resource>
+ <directory>src/main/resources</directory>
+ <filtering>false</filtering>
+ <excludes>
+ <exclude>**/*.xml</exclude>
+ <exclude>**/*.properties</exclude>
+ </excludes>
+ </resource>
+ </resources>
+ </build>
+</project>
Deleted: tags/teiid-parent-7.4.0.CR1/connectors/translator-olap/pom.xml
===================================================================
--- trunk/connectors/translator-olap/pom.xml 2011-05-03 09:43:58 UTC (rev 3137)
+++ tags/teiid-parent-7.4.0.CR1/connectors/translator-olap/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -1,59 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <parent>
- <artifactId>connectors</artifactId>
- <groupId>org.jboss.teiid</groupId>
- <version>7.4.0.CR1-SNAPSHOT</version>
- </parent>
- <modelVersion>4.0.0</modelVersion>
- <artifactId>translator-olap</artifactId>
- <groupId>org.jboss.teiid.connectors</groupId>
- <name>OLAP Translator</name>
- <description>This translator provides access to Query Analysis Cubes</description>
- <dependencies>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-api</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-common-core</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>javax.resource</groupId>
- <artifactId>connector-api</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.olap4j</groupId>
- <artifactId>olap4j</artifactId>
- <version>0.9.8.343</version>
- <scope>provided</scope>
- </dependency>
- </dependencies>
-
- <build>
- <outputDirectory>target/classes</outputDirectory>
- <resources>
- <resource>
- <directory>src/main/resources</directory>
- <filtering>true</filtering>
- <includes>
- <include>**/*.xml</include>
- <include>**/*.properties</include>
- </includes>
- </resource>
- <resource>
- <directory>src/main/resources</directory>
- <filtering>false</filtering>
- <excludes>
- <exclude>**/*.xml</exclude>
- <exclude>**/*.properties</exclude>
- </excludes>
- </resource>
- </resources>
- </build>
-
-</project>
Copied: tags/teiid-parent-7.4.0.CR1/connectors/translator-olap/pom.xml (from rev 3140, trunk/connectors/translator-olap/pom.xml)
===================================================================
--- tags/teiid-parent-7.4.0.CR1/connectors/translator-olap/pom.xml (rev 0)
+++ tags/teiid-parent-7.4.0.CR1/connectors/translator-olap/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <artifactId>connectors</artifactId>
+ <groupId>org.jboss.teiid</groupId>
+ <version>7.4.0.CR1</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>translator-olap</artifactId>
+ <groupId>org.jboss.teiid.connectors</groupId>
+ <name>OLAP Translator</name>
+ <description>This translator provides access to Query Analysis Cubes</description>
+ <dependencies>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-common-core</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.resource</groupId>
+ <artifactId>connector-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.olap4j</groupId>
+ <artifactId>olap4j</artifactId>
+ <version>0.9.8.343</version>
+ <scope>provided</scope>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <outputDirectory>target/classes</outputDirectory>
+ <resources>
+ <resource>
+ <directory>src/main/resources</directory>
+ <filtering>true</filtering>
+ <includes>
+ <include>**/*.xml</include>
+ <include>**/*.properties</include>
+ </includes>
+ </resource>
+ <resource>
+ <directory>src/main/resources</directory>
+ <filtering>false</filtering>
+ <excludes>
+ <exclude>**/*.xml</exclude>
+ <exclude>**/*.properties</exclude>
+ </excludes>
+ </resource>
+ </resources>
+ </build>
+
+</project>
Deleted: tags/teiid-parent-7.4.0.CR1/connectors/translator-salesforce/pom.xml
===================================================================
--- trunk/connectors/translator-salesforce/pom.xml 2011-05-03 09:43:58 UTC (rev 3137)
+++ tags/teiid-parent-7.4.0.CR1/connectors/translator-salesforce/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -1,57 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <parent>
- <artifactId>connectors</artifactId>
- <groupId>org.jboss.teiid</groupId>
- <version>7.4.0.CR1-SNAPSHOT</version>
- </parent>
- <modelVersion>4.0.0</modelVersion>
- <artifactId>translator-salesforce</artifactId>
- <groupId>org.jboss.teiid.connectors</groupId>
- <name>Salesforce Translator</name>
- <description>Integrates the query engine with Salesforce.com.</description>
- <dependencies>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-api</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-common-core</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.teiid.connectors</groupId>
- <artifactId>salesforce-api</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>javax.resource</groupId>
- <artifactId>connector-api</artifactId>
- <scope>provided</scope>
- </dependency>
- </dependencies>
-
- <build>
- <outputDirectory>target/classes</outputDirectory>
- <resources>
- <resource>
- <directory>src/main/resources</directory>
- <filtering>true</filtering>
- <includes>
- <include>**/*.xml</include>
- <include>**/*.properties</include>
- </includes>
- </resource>
- <resource>
- <directory>src/main/resources</directory>
- <filtering>false</filtering>
- <excludes>
- <exclude>**/*.xml</exclude>
- <exclude>**/*.properties</exclude>
- </excludes>
- </resource>
- </resources>
- </build>
-</project>
Copied: tags/teiid-parent-7.4.0.CR1/connectors/translator-salesforce/pom.xml (from rev 3140, trunk/connectors/translator-salesforce/pom.xml)
===================================================================
--- tags/teiid-parent-7.4.0.CR1/connectors/translator-salesforce/pom.xml (rev 0)
+++ tags/teiid-parent-7.4.0.CR1/connectors/translator-salesforce/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <artifactId>connectors</artifactId>
+ <groupId>org.jboss.teiid</groupId>
+ <version>7.4.0.CR1</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>translator-salesforce</artifactId>
+ <groupId>org.jboss.teiid.connectors</groupId>
+ <name>Salesforce Translator</name>
+ <description>Integrates the query engine with Salesforce.com.</description>
+ <dependencies>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-common-core</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.teiid.connectors</groupId>
+ <artifactId>salesforce-api</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>javax.resource</groupId>
+ <artifactId>connector-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <outputDirectory>target/classes</outputDirectory>
+ <resources>
+ <resource>
+ <directory>src/main/resources</directory>
+ <filtering>true</filtering>
+ <includes>
+ <include>**/*.xml</include>
+ <include>**/*.properties</include>
+ </includes>
+ </resource>
+ <resource>
+ <directory>src/main/resources</directory>
+ <filtering>false</filtering>
+ <excludes>
+ <exclude>**/*.xml</exclude>
+ <exclude>**/*.properties</exclude>
+ </excludes>
+ </resource>
+ </resources>
+ </build>
+</project>
Deleted: tags/teiid-parent-7.4.0.CR1/connectors/translator-ws/pom.xml
===================================================================
--- trunk/connectors/translator-ws/pom.xml 2011-05-03 09:43:58 UTC (rev 3137)
+++ tags/teiid-parent-7.4.0.CR1/connectors/translator-ws/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -1,63 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <parent>
- <artifactId>connectors</artifactId>
- <groupId>org.jboss.teiid</groupId>
- <version>7.4.0.CR1-SNAPSHOT</version>
- </parent>
- <modelVersion>4.0.0</modelVersion>
- <artifactId>translator-ws</artifactId>
- <groupId>org.jboss.teiid.connectors</groupId>
- <name>Web service Translator</name>
- <description>This translator provides access to Web Services.</description>
- <dependencies>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-api</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-common-core</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>log4j</groupId>
- <artifactId>log4j</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>commons-logging</groupId>
- <artifactId>commons-logging</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>javax.resource</groupId>
- <artifactId>connector-api</artifactId>
- <scope>provided</scope>
- </dependency>
- </dependencies>
-
- <build>
- <outputDirectory>target/classes</outputDirectory>
- <resources>
- <resource>
- <directory>src/main/resources</directory>
- <filtering>true</filtering>
- <includes>
- <include>**/*.xml</include>
- <include>**/*.properties</include>
- </includes>
- </resource>
- <resource>
- <directory>src/main/resources</directory>
- <filtering>false</filtering>
- <excludes>
- <exclude>**/*.xml</exclude>
- <exclude>**/*.properties</exclude>
- </excludes>
- </resource>
- </resources>
- </build>
-
-</project>
Copied: tags/teiid-parent-7.4.0.CR1/connectors/translator-ws/pom.xml (from rev 3140, trunk/connectors/translator-ws/pom.xml)
===================================================================
--- tags/teiid-parent-7.4.0.CR1/connectors/translator-ws/pom.xml (rev 0)
+++ tags/teiid-parent-7.4.0.CR1/connectors/translator-ws/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <artifactId>connectors</artifactId>
+ <groupId>org.jboss.teiid</groupId>
+ <version>7.4.0.CR1</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>translator-ws</artifactId>
+ <groupId>org.jboss.teiid.connectors</groupId>
+ <name>Web service Translator</name>
+ <description>This translator provides access to Web Services.</description>
+ <dependencies>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-common-core</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.resource</groupId>
+ <artifactId>connector-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <outputDirectory>target/classes</outputDirectory>
+ <resources>
+ <resource>
+ <directory>src/main/resources</directory>
+ <filtering>true</filtering>
+ <includes>
+ <include>**/*.xml</include>
+ <include>**/*.properties</include>
+ </includes>
+ </resource>
+ <resource>
+ <directory>src/main/resources</directory>
+ <filtering>false</filtering>
+ <excludes>
+ <exclude>**/*.xml</exclude>
+ <exclude>**/*.properties</exclude>
+ </excludes>
+ </resource>
+ </resources>
+ </build>
+
+</project>
Deleted: tags/teiid-parent-7.4.0.CR1/console/pom.xml
===================================================================
--- trunk/console/pom.xml 2011-05-03 09:43:58 UTC (rev 3137)
+++ tags/teiid-parent-7.4.0.CR1/console/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -1,175 +0,0 @@
-<?xml version="1.0"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <parent>
- <artifactId>teiid-parent</artifactId>
- <groupId>org.jboss.teiid</groupId>
- <version>7.4.0.CR1-SNAPSHOT</version>
- </parent>
-
- <modelVersion>4.0.0</modelVersion>
- <artifactId>teiid-console</artifactId>
- <name>Console</name>
- <description>This project is for the RHQ plugin that supports the TEIID Console </description>
-
- <properties>
- <!--
- <org.jboss.jopr.as4.version>1.2.0.GA</org.jboss.jopr.as4.version>
- -->
- <org.jboss.jopr.as5.version>1.2.0.GA</org.jboss.jopr.as5.version>
- <jopr.jboss.as5.plugin.version>1.4.0.B01</jopr.jboss.as5.plugin.version>
- <org.rhq.version>1.3.0.GA</org.rhq.version>
- <apache.ant.version>1.7.0</apache.ant.version>
- <teiid.version>${project.version}</teiid.version>
-
-
- </properties>
-
- <dependencies>
- <!--
- Below are the core modules that are required dependencies of all
- plugins
- -->
- <dependency>
- <groupId>org.rhq</groupId>
- <artifactId>rhq-core-domain</artifactId>
- <version>${org.rhq.version}</version>
- <scope>provided</scope>
- <!--
- provided by the agent/plugin-container
- -->
- </dependency>
-
-
- <dependency>
- <groupId>org.rhq</groupId>
- <artifactId>rhq-core-plugin-api</artifactId>
- <version>${org.rhq.version}</version>
- <scope>provided</scope> <!-- provided by the agent/plugin-container -->
- </dependency>
-
- <dependency>
- <groupId>org.rhq</groupId>
- <artifactId>rhq-core-native-system</artifactId>
- <version>${org.rhq.version}</version>
- <scope>provided</scope> <!-- provided by the agent/plugin-container -->
- </dependency>
-
- <dependency>
- <groupId>org.rhq</groupId>
- <artifactId>rhq-jmx-plugin</artifactId>
- <version>${org.rhq.version}</version>
- </dependency>
-
- <dependency>
- <groupId>org.rhq</groupId>
- <artifactId>rhq-core-util</artifactId>
- <version>${org.rhq.version}</version>
- </dependency>
-
- <dependency>
- <groupId>mc4j</groupId>
- <artifactId>org-mc4j-ems</artifactId>
- <version>1.2.6</version>
- </dependency>
-
- <!--
- TODO: This is a fix for the Javac bug requiring annotations to be
- available when compiling dependent classes. It is fixed in JDK 6.
- -->
- <dependency>
- <groupId>javax.persistence</groupId>
- <artifactId>persistence-api</artifactId>
- <version>1.0</version>
- <scope>provided</scope> <!-- provided by the agent/plugin-container -->
- </dependency>
-
-
- <!--
- TODO: This is a fix for the Javac bug requiring annotations to be
- available when compiling dependent classes; it is fixed in JDK 6.
- -->
- <dependency>
- <groupId>jboss.jboss-embeddable-ejb3</groupId>
- <artifactId>hibernate-all</artifactId>
- <version>1.0.0.Alpha9</version>
- <scope>provided</scope> <!-- provided by the agent/plugin-container -->
- </dependency>
-
- <dependency>
- <groupId>commons-logging</groupId>
- <artifactId>commons-logging</artifactId>
- <version>1.1</version>
- <scope>provided</scope>
- </dependency>
-
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-client</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-client</artifactId>
- <type>test-jar</type>
- </dependency>
-
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-common-core</artifactId>
- </dependency>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-common-core</artifactId>
- <type>test-jar</type>
- </dependency>
- <dependency>
- <groupId>org.jboss.jopr</groupId>
- <artifactId>jopr-embedded-jbas5</artifactId>
- <type>war</type>
- <version>${org.jboss.jopr.as5.version}</version>
- </dependency>
-
- <dependency>
- <groupId>org.jboss.integration</groupId>
- <artifactId>jboss-profileservice-spi</artifactId>
- <version>5.1.0.CR2</version>
- </dependency>
-
- <dependency>
- <groupId>org.jboss.on</groupId>
- <artifactId>jopr-jboss-as-5-plugin</artifactId>
- <version>${jopr.jboss.as5.plugin.version}</version>
- </dependency>
-
- <dependency>
- <groupId>org.apache.ant</groupId>
- <artifactId>ant</artifactId>
- </dependency>
-
- <dependency>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-io</artifactId>
- <version>1.3.2</version>
- </dependency>
-
-
- </dependencies>
-
-
-
- <build>
- <outputDirectory>target/classes</outputDirectory>
- <resources>
- <resource>
- <directory>src/main/resources</directory>
- <filtering>true</filtering>
- <includes>
- <include>**/*.xml</include>
- <include>**/*.properties</include>
- </includes>
- </resource>
- </resources>
- </build>
-
-
-</project>
\ No newline at end of file
Copied: tags/teiid-parent-7.4.0.CR1/console/pom.xml (from rev 3140, trunk/console/pom.xml)
===================================================================
--- tags/teiid-parent-7.4.0.CR1/console/pom.xml (rev 0)
+++ tags/teiid-parent-7.4.0.CR1/console/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -0,0 +1,175 @@
+<?xml version="1.0"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <artifactId>teiid-parent</artifactId>
+ <groupId>org.jboss.teiid</groupId>
+ <version>7.4.0.CR1</version>
+ </parent>
+
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>teiid-console</artifactId>
+ <name>Console</name>
+ <description>This project is for the RHQ plugin that supports the TEIID Console </description>
+
+ <properties>
+ <!--
+ <org.jboss.jopr.as4.version>1.2.0.GA</org.jboss.jopr.as4.version>
+ -->
+ <org.jboss.jopr.as5.version>1.2.0.GA</org.jboss.jopr.as5.version>
+ <jopr.jboss.as5.plugin.version>1.4.0.B01</jopr.jboss.as5.plugin.version>
+ <org.rhq.version>1.3.0.GA</org.rhq.version>
+ <apache.ant.version>1.7.0</apache.ant.version>
+ <teiid.version>${project.version}</teiid.version>
+
+
+ </properties>
+
+ <dependencies>
+ <!--
+ Below are the core modules that are required dependencies of all
+ plugins
+ -->
+ <dependency>
+ <groupId>org.rhq</groupId>
+ <artifactId>rhq-core-domain</artifactId>
+ <version>${org.rhq.version}</version>
+ <scope>provided</scope>
+ <!--
+ provided by the agent/plugin-container
+ -->
+ </dependency>
+
+
+ <dependency>
+ <groupId>org.rhq</groupId>
+ <artifactId>rhq-core-plugin-api</artifactId>
+ <version>${org.rhq.version}</version>
+ <scope>provided</scope> <!-- provided by the agent/plugin-container -->
+ </dependency>
+
+ <dependency>
+ <groupId>org.rhq</groupId>
+ <artifactId>rhq-core-native-system</artifactId>
+ <version>${org.rhq.version}</version>
+ <scope>provided</scope> <!-- provided by the agent/plugin-container -->
+ </dependency>
+
+ <dependency>
+ <groupId>org.rhq</groupId>
+ <artifactId>rhq-jmx-plugin</artifactId>
+ <version>${org.rhq.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.rhq</groupId>
+ <artifactId>rhq-core-util</artifactId>
+ <version>${org.rhq.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>mc4j</groupId>
+ <artifactId>org-mc4j-ems</artifactId>
+ <version>1.2.6</version>
+ </dependency>
+
+ <!--
+ TODO: This is a fix for the Javac bug requiring annotations to be
+ available when compiling dependent classes. It is fixed in JDK 6.
+ -->
+ <dependency>
+ <groupId>javax.persistence</groupId>
+ <artifactId>persistence-api</artifactId>
+ <version>1.0</version>
+ <scope>provided</scope> <!-- provided by the agent/plugin-container -->
+ </dependency>
+
+
+ <!--
+ TODO: This is a fix for the Javac bug requiring annotations to be
+ available when compiling dependent classes; it is fixed in JDK 6.
+ -->
+ <dependency>
+ <groupId>jboss.jboss-embeddable-ejb3</groupId>
+ <artifactId>hibernate-all</artifactId>
+ <version>1.0.0.Alpha9</version>
+ <scope>provided</scope> <!-- provided by the agent/plugin-container -->
+ </dependency>
+
+ <dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ <version>1.1</version>
+ <scope>provided</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-client</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-client</artifactId>
+ <type>test-jar</type>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-common-core</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-common-core</artifactId>
+ <type>test-jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.jopr</groupId>
+ <artifactId>jopr-embedded-jbas5</artifactId>
+ <type>war</type>
+ <version>${org.jboss.jopr.as5.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.integration</groupId>
+ <artifactId>jboss-profileservice-spi</artifactId>
+ <version>5.1.0.CR2</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.on</groupId>
+ <artifactId>jopr-jboss-as-5-plugin</artifactId>
+ <version>${jopr.jboss.as5.plugin.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.ant</groupId>
+ <artifactId>ant</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-io</artifactId>
+ <version>1.3.2</version>
+ </dependency>
+
+
+ </dependencies>
+
+
+
+ <build>
+ <outputDirectory>target/classes</outputDirectory>
+ <resources>
+ <resource>
+ <directory>src/main/resources</directory>
+ <filtering>true</filtering>
+ <includes>
+ <include>**/*.xml</include>
+ <include>**/*.properties</include>
+ </includes>
+ </resource>
+ </resources>
+ </build>
+
+
+</project>
\ No newline at end of file
Deleted: tags/teiid-parent-7.4.0.CR1/documentation/admin-guide/pom.xml
===================================================================
--- trunk/documentation/admin-guide/pom.xml 2011-05-03 09:43:58 UTC (rev 3137)
+++ tags/teiid-parent-7.4.0.CR1/documentation/admin-guide/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -1,77 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <parent>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>documentation</artifactId>
- <version>7.4.0.CR1-SNAPSHOT</version>
- </parent>
- <modelVersion>4.0.0</modelVersion>
- <artifactId>admin-guide</artifactId>
- <groupId>org.jboss.teiid.documentation</groupId>
- <packaging>jdocbook</packaging>
- <name>Admin Guide</name>
- <description>The Teiid Admin manual</description>
- <build>
- <plugins>
- <plugin>
- <groupId>org.jboss.maven.plugins</groupId>
- <artifactId>maven-jdocbook-plugin</artifactId>
- <version>2.1.2</version>
- <extensions>true</extensions>
- <dependencies>
- <dependency>
- <groupId>net.sf.docbook</groupId>
- <artifactId>docbook</artifactId>
- <version>1.74.0</version>
- </dependency>
- <dependency>
- <groupId>org.jboss</groupId>
- <artifactId>jbossorg-docbook-xslt</artifactId>
- <version>1.1.0</version>
- </dependency>
- <dependency>
- <groupId>org.jboss</groupId>
- <artifactId>jbossorg-jdocbook-style</artifactId>
- <version>1.1.0</version>
- <type>jdocbook-style</type>
- </dependency>
- </dependencies>
- <configuration>
- <sourceDocumentName>admin_guide.xml</sourceDocumentName>
- <imageResource>
- <directory>${basedir}/src/main/docbook/en-US</directory>
- <excludes>
- <exclude>*.xml</exclude>
- <exclude>**/*.xml</exclude>
- <exclude>*.zargo</exclude>
- <exclude>**/*.zargo</exclude>
- </excludes>
- </imageResource>
- <formats>
- <format>
- <formatName>pdf</formatName>
- <stylesheetResource>classpath:/xslt/org/jboss/pdf.xsl</stylesheetResource>
- <finalName>teiid_admin_guide.pdf</finalName>
- </format>
- <format>
- <formatName>html_single</formatName>
- <stylesheetResource>classpath:/xslt/org/jboss/xhtml-single.xsl</stylesheetResource>
- <finalName>index.html</finalName>
- </format>
- <format>
- <formatName>html</formatName>
- <stylesheetResource>classpath:/xslt/org/jboss/xhtml.xsl</stylesheetResource>
- <finalName>index.html</finalName>
- </format>
- </formats>
- <options>
- <xincludeSupported>true</xincludeSupported>
- <xmlTransformerType>saxon</xmlTransformerType>
- <docbookVersion>1.72.0</docbookVersion>
- <localeSeparator>-</localeSeparator>
- <useRelativeImageUris>false</useRelativeImageUris>
- </options>
- </configuration>
- </plugin>
- </plugins>
- </build>
-</project>
Copied: tags/teiid-parent-7.4.0.CR1/documentation/admin-guide/pom.xml (from rev 3140, trunk/documentation/admin-guide/pom.xml)
===================================================================
--- tags/teiid-parent-7.4.0.CR1/documentation/admin-guide/pom.xml (rev 0)
+++ tags/teiid-parent-7.4.0.CR1/documentation/admin-guide/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -0,0 +1,77 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <parent>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>documentation</artifactId>
+ <version>7.4.0.CR1</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>admin-guide</artifactId>
+ <groupId>org.jboss.teiid.documentation</groupId>
+ <packaging>jdocbook</packaging>
+ <name>Admin Guide</name>
+ <description>The Teiid Admin manual</description>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.jboss.maven.plugins</groupId>
+ <artifactId>maven-jdocbook-plugin</artifactId>
+ <version>2.1.2</version>
+ <extensions>true</extensions>
+ <dependencies>
+ <dependency>
+ <groupId>net.sf.docbook</groupId>
+ <artifactId>docbook</artifactId>
+ <version>1.74.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss</groupId>
+ <artifactId>jbossorg-docbook-xslt</artifactId>
+ <version>1.1.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss</groupId>
+ <artifactId>jbossorg-jdocbook-style</artifactId>
+ <version>1.1.0</version>
+ <type>jdocbook-style</type>
+ </dependency>
+ </dependencies>
+ <configuration>
+ <sourceDocumentName>admin_guide.xml</sourceDocumentName>
+ <imageResource>
+ <directory>${basedir}/src/main/docbook/en-US</directory>
+ <excludes>
+ <exclude>*.xml</exclude>
+ <exclude>**/*.xml</exclude>
+ <exclude>*.zargo</exclude>
+ <exclude>**/*.zargo</exclude>
+ </excludes>
+ </imageResource>
+ <formats>
+ <format>
+ <formatName>pdf</formatName>
+ <stylesheetResource>classpath:/xslt/org/jboss/pdf.xsl</stylesheetResource>
+ <finalName>teiid_admin_guide.pdf</finalName>
+ </format>
+ <format>
+ <formatName>html_single</formatName>
+ <stylesheetResource>classpath:/xslt/org/jboss/xhtml-single.xsl</stylesheetResource>
+ <finalName>index.html</finalName>
+ </format>
+ <format>
+ <formatName>html</formatName>
+ <stylesheetResource>classpath:/xslt/org/jboss/xhtml.xsl</stylesheetResource>
+ <finalName>index.html</finalName>
+ </format>
+ </formats>
+ <options>
+ <xincludeSupported>true</xincludeSupported>
+ <xmlTransformerType>saxon</xmlTransformerType>
+ <docbookVersion>1.72.0</docbookVersion>
+ <localeSeparator>-</localeSeparator>
+ <useRelativeImageUris>false</useRelativeImageUris>
+ </options>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
Deleted: tags/teiid-parent-7.4.0.CR1/documentation/caching-guide/pom.xml
===================================================================
--- trunk/documentation/caching-guide/pom.xml 2011-05-03 09:43:58 UTC (rev 3137)
+++ tags/teiid-parent-7.4.0.CR1/documentation/caching-guide/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -1,77 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <parent>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>documentation</artifactId>
- <version>7.4.0.CR1-SNAPSHOT</version>
- </parent>
- <modelVersion>4.0.0</modelVersion>
- <artifactId>caching-guide</artifactId>
- <groupId>org.jboss.teiid.documentation</groupId>
- <packaging>jdocbook</packaging>
- <name>Teiid Caching Guide</name>
- <description>The Teiid Caching Guide</description>
- <build>
- <plugins>
- <plugin>
- <groupId>org.jboss.maven.plugins</groupId>
- <artifactId>maven-jdocbook-plugin</artifactId>
- <version>2.1.2</version>
- <extensions>true</extensions>
- <dependencies>
- <dependency>
- <groupId>net.sf.docbook</groupId>
- <artifactId>docbook</artifactId>
- <version>1.74.0</version>
- </dependency>
- <dependency>
- <groupId>org.jboss</groupId>
- <artifactId>jbossorg-docbook-xslt</artifactId>
- <version>1.1.0</version>
- </dependency>
- <dependency>
- <groupId>org.jboss</groupId>
- <artifactId>jbossorg-jdocbook-style</artifactId>
- <version>1.1.0</version>
- <type>jdocbook-style</type>
- </dependency>
- </dependencies>
- <configuration>
- <sourceDocumentName>main.xml</sourceDocumentName>
- <imageResource>
- <directory>${basedir}/src/main/docbook/en-US</directory>
- <excludes>
- <exclude>*.xml</exclude>
- <exclude>**/*.xml</exclude>
- <exclude>*.zargo</exclude>
- <exclude>**/*.zargo</exclude>
- </excludes>
- </imageResource>
- <formats>
- <format>
- <formatName>pdf</formatName>
- <stylesheetResource>classpath:/xslt/org/jboss/pdf.xsl</stylesheetResource>
- <finalName>teiid_caching_guide.pdf</finalName>
- </format>
- <format>
- <formatName>html_single</formatName>
- <stylesheetResource>classpath:/xslt/org/jboss/xhtml-single.xsl</stylesheetResource>
- <finalName>index.html</finalName>
- </format>
- <format>
- <formatName>html</formatName>
- <stylesheetResource>classpath:/xslt/org/jboss/xhtml.xsl</stylesheetResource>
- <finalName>index.html</finalName>
- </format>
- </formats>
- <options>
- <xincludeSupported>true</xincludeSupported>
- <xmlTransformerType>saxon</xmlTransformerType>
- <docbookVersion>1.72.0</docbookVersion>
- <localeSeparator>-</localeSeparator>
- <useRelativeImageUris>false</useRelativeImageUris>
- </options>
- </configuration>
- </plugin>
- </plugins>
- </build>
-</project>
\ No newline at end of file
Copied: tags/teiid-parent-7.4.0.CR1/documentation/caching-guide/pom.xml (from rev 3140, trunk/documentation/caching-guide/pom.xml)
===================================================================
--- tags/teiid-parent-7.4.0.CR1/documentation/caching-guide/pom.xml (rev 0)
+++ tags/teiid-parent-7.4.0.CR1/documentation/caching-guide/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -0,0 +1,77 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <parent>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>documentation</artifactId>
+ <version>7.4.0.CR1</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>caching-guide</artifactId>
+ <groupId>org.jboss.teiid.documentation</groupId>
+ <packaging>jdocbook</packaging>
+ <name>Teiid Caching Guide</name>
+ <description>The Teiid Caching Guide</description>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.jboss.maven.plugins</groupId>
+ <artifactId>maven-jdocbook-plugin</artifactId>
+ <version>2.1.2</version>
+ <extensions>true</extensions>
+ <dependencies>
+ <dependency>
+ <groupId>net.sf.docbook</groupId>
+ <artifactId>docbook</artifactId>
+ <version>1.74.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss</groupId>
+ <artifactId>jbossorg-docbook-xslt</artifactId>
+ <version>1.1.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss</groupId>
+ <artifactId>jbossorg-jdocbook-style</artifactId>
+ <version>1.1.0</version>
+ <type>jdocbook-style</type>
+ </dependency>
+ </dependencies>
+ <configuration>
+ <sourceDocumentName>main.xml</sourceDocumentName>
+ <imageResource>
+ <directory>${basedir}/src/main/docbook/en-US</directory>
+ <excludes>
+ <exclude>*.xml</exclude>
+ <exclude>**/*.xml</exclude>
+ <exclude>*.zargo</exclude>
+ <exclude>**/*.zargo</exclude>
+ </excludes>
+ </imageResource>
+ <formats>
+ <format>
+ <formatName>pdf</formatName>
+ <stylesheetResource>classpath:/xslt/org/jboss/pdf.xsl</stylesheetResource>
+ <finalName>teiid_caching_guide.pdf</finalName>
+ </format>
+ <format>
+ <formatName>html_single</formatName>
+ <stylesheetResource>classpath:/xslt/org/jboss/xhtml-single.xsl</stylesheetResource>
+ <finalName>index.html</finalName>
+ </format>
+ <format>
+ <formatName>html</formatName>
+ <stylesheetResource>classpath:/xslt/org/jboss/xhtml.xsl</stylesheetResource>
+ <finalName>index.html</finalName>
+ </format>
+ </formats>
+ <options>
+ <xincludeSupported>true</xincludeSupported>
+ <xmlTransformerType>saxon</xmlTransformerType>
+ <docbookVersion>1.72.0</docbookVersion>
+ <localeSeparator>-</localeSeparator>
+ <useRelativeImageUris>false</useRelativeImageUris>
+ </options>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
\ No newline at end of file
Deleted: tags/teiid-parent-7.4.0.CR1/documentation/caching-guide/src/main/docbook/en-US/content/results.xml
===================================================================
--- trunk/documentation/caching-guide/src/main/docbook/en-US/content/results.xml 2011-05-03 09:43:58 UTC (rev 3137)
+++ tags/teiid-parent-7.4.0.CR1/documentation/caching-guide/src/main/docbook/en-US/content/results.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -1,135 +0,0 @@
-<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % CustomDTD SYSTEM "../../../../../../docbook/custom.dtd">
-%CustomDTD;
-]>
-<chapter id="results">
- <title>Results Caching</title>
- <para>Teiid provides the capability to cache the results of
- specific user queries and virtual procedure calls. This caching technique
- can yield significant performance gains if users of the system submit
- the same queries or execute the same procedures often.</para>
- <section>
- <title>Support Summary</title>
- <itemizedlist>
- <listitem>
- <para>Caching of user query results including XML document model results.</para>
- </listitem>
- <listitem>
- <para>Caching of virtual procedure results.</para>
- </listitem>
- <listitem>
- <para>Scoping of results is automatically determined to be VDB/user (replicated) or session level.</para>
- </listitem>
- <listitem>
- <para>Configurable number of cache entries and time to live.</para>
- </listitem>
- <listitem>
- <para>Administrative clearing.</para>
- </listitem>
- </itemizedlist>
- </section>
- <section>
- <title>User Interaction</title>
- <section>
- <title>User Query Cache</title>
- <para>User query result set caching will cache result sets based on an exact match
- of the incoming SQL string and PreparedStatement parameter values if present. Caching only applies to SELECT, set query, and stored procedure execution
- statements; it does not apply to SELECT INTO statements, or INSERT,
- UPDATE, or DELETE statements.</para>
- <para>End users or client applications explicitly state whether to use
- result set caching. This can be done by setting the
- JDBC ResultSetCacheMode execution property to true (default false) or by adding a <link linkend="cache-hint">cache hint</link> to the query.
- Note that if either of these mechanisms are used, Teiid must also have result set caching enabled (the default is enabled).</para>
- <para>The most basic form of the cache hint, <code>/*+ cache */</code>, is sufficient to inform the engine that the results of the non-update command should be cached.</para>
- <example>
- <title>PreparedStatement ResultSet Caching</title>
- <programlisting>...
-PreparedStatement ps = connection.prepareStatement("/*+ cache */ select col from t where col2 = ?");
-ps.setInt(1, 5);
-ps.execute();
-...</programlisting>
- <para>The results will be cached with the default ttl and use the SQL string and the parameter value as part of the cache key.</para>
- </example>
- <para>The pref_mem and ttl options of the cache hint may also be used for result set cache queries.
- If a cache hint is not specified, then the default time to live of the result set caching configuration will be used.
- </para>
- <example>
- <title>Advanced ResultSet Caching</title>
- <programlisting>/*+ cache(pref_mem ttl:60000 */ select col from t</programlisting>
- <para>In this example the memory preference has been enabled and the time to live is set to 60000 milliseconds or 1 minute.
- The ttl for an entry is actually treated as it's maximum age and the entry may be purged sooner if the maximum number of cache entries has been reached.</para>
- </example>
- <note><para>Each query is re-checked for authorization using the current user’s permissions,
- regardless of whether or not the results have been cached.</para></note>
- </section>
- <section>
- <title>Procedure Result Cache</title>
- <para>Similar to materialized views, cached virtual procedure results are used automatically when a matching set of parameter values is detected for the same procedure execution.
- Usage of the cached results may be bypassed with an <code>OPTION NOCACHE</code> clause. See the <link linkend="nocache">OPTION NOCACHE</link> section for more on its usage.</para>
- </section>
- </section>
- <section>
- <title>Cached Virtual Procedure Definition</title>
- <para>To indicate that a virtual procedure (only definable by Teiid Designer) should be cached, it's definition should include a <link linkend="cache-hint">cache hint</link>.
- <example>
- <title>Procedure Caching</title>
- <programlisting>/*+ cache */ CREATE VIRTUAL PROCEDURE
-BEGIN
- ...
-END</programlisting>
- <para>Results will be cached with the default ttl.</para>
- </example>
- The pref_mem and ttl options of the cache hint may also be used for procedure caching.
- </para>
- <para>Procedure results cache keys include the input parameter values.
- To prevent one procedure from filling the cache, at most 256 cache keys may be created per procedure per VDB.</para>
- <para>A cached procedure will always produce all of its results prior to allowing those results to be consumed and placed in the cache.
- This differs from normal procedure execution which in some situations allows the returned results to be consumed in a streaming manner.</para>
- </section>
- <section>
- <title>Cache Configuration</title>
- <para>By default result set caching is enabled with 1024 maximum entries with a maximum entry age of 2 hours.
- There are actually 2 caches configured with these settings. One cache holds results that are specific to sessions and is local to each Teiid instance.
- The other cache holds VDB scoped results and can be replicated.
- See the &jboss-beans; config file or the Console's "Runtime Engine Properties" for tuning the configuration.
- The user may also override the default maximum entry age via the <link linkend="cache-hint">cache hint</link>.
- </para>
- <para>Result set caching is not limited to memory. There is no explicit limit on the size of the results that can be cached.
- Cached results are primarily stored in the BufferManager and are subject to it's configuration - including the restriction of maximum buffer space.
- </para>
- <note><para>While the result data is not held in memory, cache keys - including parameter values - may be held in memory.
- Thus the cache should not be given an unlimited maximum size.</para></note>
- </section>
- <section>
- <title>Cache Administration</title>
- <para>The result set cache can be cleared through the AdminAPI using the <code>clearCache</code> method.
- The expected cache key is "QUERY_SERVICE_RESULT_SET_CACHE".</para>
- <example>
- <title>Clearing the ResultSet Cache in AdminShell</title>
- <programlisting>connectAsAdmin()
-clearCache("QUERY_SERVICE_RESULT_SET_CACHE")
-...</programlisting>
- </example>
- <para>See the Admin Guide for more on using the AdminAPI and AdminShell.</para>
- </section>
- <section>
- <title>Limitations</title>
- <itemizedlist>
- <listitem>
- <para>XML, BLOB, CLOB, and OBJECT type cannot be used as part of the cache key for prepared statement of procedure cache keys.</para>
- </listitem>
- <listitem>
- <para>The exact SQL string, including the cache hint if present, must match the cached entry for the results to be reused.
- This allows cache usage to skip parsing and resolving for faster responses.</para>
- </listitem>
- <listitem>
- <para>Result set caching is not transactional. Transactions depend on (and
- enforce) consistency of data, and cached data is not guaranteed
- to be consistent with the data store’s data.</para>
- </listitem>
- <listitem>
- <para>Clearing the results cache clears all cache entries for all VDBs.</para>
- </listitem>
- </itemizedlist>
- </section>
-</chapter>
\ No newline at end of file
Copied: tags/teiid-parent-7.4.0.CR1/documentation/caching-guide/src/main/docbook/en-US/content/results.xml (from rev 3138, trunk/documentation/caching-guide/src/main/docbook/en-US/content/results.xml)
===================================================================
--- tags/teiid-parent-7.4.0.CR1/documentation/caching-guide/src/main/docbook/en-US/content/results.xml (rev 0)
+++ tags/teiid-parent-7.4.0.CR1/documentation/caching-guide/src/main/docbook/en-US/content/results.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -0,0 +1,137 @@
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % CustomDTD SYSTEM "../../../../../../docbook/custom.dtd">
+%CustomDTD;
+]>
+<chapter id="results">
+ <title>Results Caching</title>
+ <para>Teiid provides the capability to cache the results of
+ specific user queries and virtual procedure calls. This caching technique
+ can yield significant performance gains if users of the system submit
+ the same queries or execute the same procedures often.</para>
+ <section>
+ <title>Support Summary</title>
+ <itemizedlist>
+ <listitem>
+ <para>Caching of user query results including XML document model results.</para>
+ </listitem>
+ <listitem>
+ <para>Caching of virtual procedure results.</para>
+ </listitem>
+ <listitem>
+ <para>Scoping of results is automatically determined to be VDB/user (replicated) or session level.</para>
+ </listitem>
+ <listitem>
+ <para>Configurable number of cache entries and time to live.</para>
+ </listitem>
+ <listitem>
+ <para>Administrative clearing.</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>User Interaction</title>
+ <section>
+ <title>User Query Cache</title>
+ <para>User query result set caching will cache result sets based on an exact match
+ of the incoming SQL string and PreparedStatement parameter values if present. Caching only applies to SELECT, set query, and stored procedure execution
+ statements; it does not apply to SELECT INTO statements, or INSERT,
+ UPDATE, or DELETE statements.</para>
+ <para>End users or client applications explicitly state whether to use
+ result set caching. This can be done by setting the
+ JDBC ResultSetCacheMode execution property to true (default false) or by adding a <link linkend="cache-hint">cache hint</link> to the query.
+ Note that if either of these mechanisms are used, Teiid must also have result set caching enabled (the default is enabled).</para>
+ <para>The most basic form of the cache hint, <code>/*+ cache */</code>, is sufficient to inform the engine that the results of the non-update command should be cached.</para>
+ <example>
+ <title>PreparedStatement ResultSet Caching</title>
+ <programlisting>...
+PreparedStatement ps = connection.prepareStatement("/*+ cache */ select col from t where col2 = ?");
+ps.setInt(1, 5);
+ps.execute();
+...</programlisting>
+ <para>The results will be cached with the default ttl and use the SQL string and the parameter value as part of the cache key.</para>
+ </example>
+ <para>The pref_mem and ttl options of the cache hint may also be used for result set cache queries.
+ If a cache hint is not specified, then the default time to live of the result set caching configuration will be used.
+ </para>
+ <example>
+ <title>Advanced ResultSet Caching</title>
+ <programlisting>/*+ cache(pref_mem ttl:60000 */ select col from t</programlisting>
+ <para>In this example the memory preference has been enabled and the time to live is set to 60000 milliseconds or 1 minute.
+ The ttl for an entry is actually treated as it's maximum age and the entry may be purged sooner if the maximum number of cache entries has been reached.</para>
+ </example>
+ <note><para>Each query is re-checked for authorization using the current user’s permissions,
+ regardless of whether or not the results have been cached.</para></note>
+ </section>
+ <section>
+ <title>Procedure Result Cache</title>
+ <para>Similar to materialized views, cached virtual procedure results are used automatically when a matching set of parameter values is detected for the same procedure execution.
+ Usage of the cached results may be bypassed with an <code>OPTION NOCACHE</code> clause. See the <link linkend="nocache">OPTION NOCACHE</link> section for more on its usage.</para>
+ </section>
+ </section>
+ <section>
+ <title>Cached Virtual Procedure Definition</title>
+ <para>To indicate that a virtual procedure (only definable by Teiid Designer) should be cached, it's definition should include a <link linkend="cache-hint">cache hint</link>.
+ <example>
+ <title>Procedure Caching</title>
+ <programlisting>/*+ cache */ CREATE VIRTUAL PROCEDURE
+BEGIN
+ ...
+END</programlisting>
+ <para>Results will be cached with the default ttl.</para>
+ </example>
+ The pref_mem and ttl options of the cache hint may also be used for procedure caching.
+ </para>
+ <para>Procedure results cache keys include the input parameter values.
+ To prevent one procedure from filling the cache, at most 256 cache keys may be created per procedure per VDB.</para>
+ <para>A cached procedure will always produce all of its results prior to allowing those results to be consumed and placed in the cache.
+ This differs from normal procedure execution which in some situations allows the returned results to be consumed in a streaming manner.</para>
+ </section>
+ <section>
+ <title>Cache Configuration</title>
+ <para>By default result set caching is enabled with 1024 maximum entries with a maximum entry age of 2 hours.
+ There are actually 2 caches configured with these settings. One cache holds results that are specific to sessions and is local to each Teiid instance.
+ The other cache holds VDB scoped results and can be replicated.
+ See the &jboss-beans; config file or the Console's "Runtime Engine Properties" for tuning the configuration.
+ The user may also override the default maximum entry age via the <link linkend="cache-hint">cache hint</link>.
+ </para>
+ <para>Result set caching is not limited to memory. There is no explicit limit on the size of the results that can be cached.
+ Cached results are primarily stored in the BufferManager and are subject to it's configuration - including the restriction of maximum buffer space.
+ </para>
+ <note><para>While the result data is not held in memory, cache keys - including parameter values - may be held in memory.
+ Thus the cache should not be given an unlimited maximum size.</para></note>
+ <para>Result set cache entries can be invalidated by data change events. The maxStaleness setting determines how long an entry will remain
+ in the case after one of the tables that contributed to the results has been changed. See the Developers Guide for further customization.</para>
+ </section>
+ <section>
+ <title>Cache Administration</title>
+ <para>The result set cache can be cleared through the AdminAPI using the <code>clearCache</code> method.
+ The expected cache key is "QUERY_SERVICE_RESULT_SET_CACHE".</para>
+ <example>
+ <title>Clearing the ResultSet Cache in AdminShell</title>
+ <programlisting>connectAsAdmin()
+clearCache("QUERY_SERVICE_RESULT_SET_CACHE")
+...</programlisting>
+ </example>
+ <para>See the Admin Guide for more on using the AdminAPI and AdminShell.</para>
+ </section>
+ <section>
+ <title>Limitations</title>
+ <itemizedlist>
+ <listitem>
+ <para>XML, BLOB, CLOB, and OBJECT type cannot be used as part of the cache key for prepared statement of procedure cache keys.</para>
+ </listitem>
+ <listitem>
+ <para>The exact SQL string, including the cache hint if present, must match the cached entry for the results to be reused.
+ This allows cache usage to skip parsing and resolving for faster responses.</para>
+ </listitem>
+ <listitem>
+ <para>Result set caching is not transactional. Transactions depend on (and
+ enforce) consistency of data, and cached data is not guaranteed
+ to be consistent with the data store’s data.</para>
+ </listitem>
+ <listitem>
+ <para>Clearing the results cache clears all cache entries for all VDBs.</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+</chapter>
\ No newline at end of file
Deleted: tags/teiid-parent-7.4.0.CR1/documentation/client-developers-guide/pom.xml
===================================================================
--- trunk/documentation/client-developers-guide/pom.xml 2011-05-03 09:43:58 UTC (rev 3137)
+++ tags/teiid-parent-7.4.0.CR1/documentation/client-developers-guide/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -1,77 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <parent>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>documentation</artifactId>
- <version>7.4.0.CR1-SNAPSHOT</version>
- </parent>
- <modelVersion>4.0.0</modelVersion>
- <artifactId>client-developers-guide</artifactId>
- <groupId>org.jboss.teiid.documentation</groupId>
- <packaging>jdocbook</packaging>
- <name>Teiid Client Developers Guide</name>
- <description>The Client Developers Guide</description>
- <build>
- <plugins>
- <plugin>
- <groupId>org.jboss.maven.plugins</groupId>
- <artifactId>maven-jdocbook-plugin</artifactId>
- <version>2.1.2</version>
- <extensions>true</extensions>
- <dependencies>
- <dependency>
- <groupId>net.sf.docbook</groupId>
- <artifactId>docbook</artifactId>
- <version>1.74.0</version>
- </dependency>
- <dependency>
- <groupId>org.jboss</groupId>
- <artifactId>jbossorg-docbook-xslt</artifactId>
- <version>1.1.0</version>
- </dependency>
- <dependency>
- <groupId>org.jboss</groupId>
- <artifactId>jbossorg-jdocbook-style</artifactId>
- <version>1.1.0</version>
- <type>jdocbook-style</type>
- </dependency>
- </dependencies>
- <configuration>
- <sourceDocumentName>main.xml</sourceDocumentName>
- <imageResource>
- <directory>${basedir}/src/main/docbook/en-US</directory>
- <excludes>
- <exclude>*.xml</exclude>
- <exclude>**/*.xml</exclude>
- <exclude>*.zargo</exclude>
- <exclude>**/*.zargo</exclude>
- </excludes>
- </imageResource>
- <formats>
- <format>
- <formatName>pdf</formatName>
- <stylesheetResource>classpath:/xslt/org/jboss/pdf.xsl</stylesheetResource>
- <finalName>teiid_client_developers_guide.pdf</finalName>
- </format>
- <format>
- <formatName>html_single</formatName>
- <stylesheetResource>classpath:/xslt/org/jboss/xhtml-single.xsl</stylesheetResource>
- <finalName>index.html</finalName>
- </format>
- <format>
- <formatName>html</formatName>
- <stylesheetResource>classpath:/xslt/org/jboss/xhtml.xsl</stylesheetResource>
- <finalName>index.html</finalName>
- </format>
- </formats>
- <options>
- <xincludeSupported>true</xincludeSupported>
- <xmlTransformerType>saxon</xmlTransformerType>
- <docbookVersion>1.72.0</docbookVersion>
- <localeSeparator>-</localeSeparator>
- <useRelativeImageUris>false</useRelativeImageUris>
- </options>
- </configuration>
- </plugin>
- </plugins>
- </build>
-</project>
\ No newline at end of file
Copied: tags/teiid-parent-7.4.0.CR1/documentation/client-developers-guide/pom.xml (from rev 3140, trunk/documentation/client-developers-guide/pom.xml)
===================================================================
--- tags/teiid-parent-7.4.0.CR1/documentation/client-developers-guide/pom.xml (rev 0)
+++ tags/teiid-parent-7.4.0.CR1/documentation/client-developers-guide/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -0,0 +1,77 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <parent>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>documentation</artifactId>
+ <version>7.4.0.CR1</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>client-developers-guide</artifactId>
+ <groupId>org.jboss.teiid.documentation</groupId>
+ <packaging>jdocbook</packaging>
+ <name>Teiid Client Developers Guide</name>
+ <description>The Client Developers Guide</description>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.jboss.maven.plugins</groupId>
+ <artifactId>maven-jdocbook-plugin</artifactId>
+ <version>2.1.2</version>
+ <extensions>true</extensions>
+ <dependencies>
+ <dependency>
+ <groupId>net.sf.docbook</groupId>
+ <artifactId>docbook</artifactId>
+ <version>1.74.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss</groupId>
+ <artifactId>jbossorg-docbook-xslt</artifactId>
+ <version>1.1.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss</groupId>
+ <artifactId>jbossorg-jdocbook-style</artifactId>
+ <version>1.1.0</version>
+ <type>jdocbook-style</type>
+ </dependency>
+ </dependencies>
+ <configuration>
+ <sourceDocumentName>main.xml</sourceDocumentName>
+ <imageResource>
+ <directory>${basedir}/src/main/docbook/en-US</directory>
+ <excludes>
+ <exclude>*.xml</exclude>
+ <exclude>**/*.xml</exclude>
+ <exclude>*.zargo</exclude>
+ <exclude>**/*.zargo</exclude>
+ </excludes>
+ </imageResource>
+ <formats>
+ <format>
+ <formatName>pdf</formatName>
+ <stylesheetResource>classpath:/xslt/org/jboss/pdf.xsl</stylesheetResource>
+ <finalName>teiid_client_developers_guide.pdf</finalName>
+ </format>
+ <format>
+ <formatName>html_single</formatName>
+ <stylesheetResource>classpath:/xslt/org/jboss/xhtml-single.xsl</stylesheetResource>
+ <finalName>index.html</finalName>
+ </format>
+ <format>
+ <formatName>html</formatName>
+ <stylesheetResource>classpath:/xslt/org/jboss/xhtml.xsl</stylesheetResource>
+ <finalName>index.html</finalName>
+ </format>
+ </formats>
+ <options>
+ <xincludeSupported>true</xincludeSupported>
+ <xmlTransformerType>saxon</xmlTransformerType>
+ <docbookVersion>1.72.0</docbookVersion>
+ <localeSeparator>-</localeSeparator>
+ <useRelativeImageUris>false</useRelativeImageUris>
+ </options>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
\ No newline at end of file
Deleted: tags/teiid-parent-7.4.0.CR1/documentation/client-developers-guide/src/main/docbook/en-US/content/prepared-statements.xml
===================================================================
--- trunk/documentation/client-developers-guide/src/main/docbook/en-US/content/prepared-statements.xml 2011-05-03 09:43:58 UTC (rev 3137)
+++ tags/teiid-parent-7.4.0.CR1/documentation/client-developers-guide/src/main/docbook/en-US/content/prepared-statements.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % CustomDTD SYSTEM "../../../../../../docbook/custom.dtd">
-%CustomDTD;
-]>
-<chapter id="prepared-statements">
- <title>Prepared Statements</title>
-
- <para>Teiid provides a standard implementation of <code>java.sql.PreparedStatement</code>. PreparedStatements can be very important in speeding up common statement execution, since they allow the server to skip parsing, resolving, and planning of the statement.
- See the Java documentation for more information on <ulink url="http://download.oracle.com/javase/6/docs/technotes/guides/jdbc/getstart/p...">PreparedStatement usage</ulink>.
- </para>
-
- <itemizedlist>
- <para><code>PreparedStatement</code> Considerations</para>
- <listitem>
- <para>It is not necessary to pool client side Teiid <code>PreparedStatements</code>, since Teiid performs plan caching on the server side.</para>
- </listitem>
- <listitem>
- <para>The number of cached plans is configurable (see the Admin Guide), and are purged by the least recently used (LRU).</para>
- </listitem>
- <listitem>
- <para>Cached plans are not distributed through a cluster. A new plan must be created for each cluster member.</para>
- </listitem>
- <listitem>
- <para>Plans are cached for the entire VDB or for just a particular session. The scope of a plan is detected automatically based upon the functions evaluated during it's planning process.</para>
- </listitem>
- <listitem>
- <para>Runtime updates of costing information do not yet cause replanning. At this time only session scoped temporary table or internally materialized tables update their costing information.</para>
- </listitem>
- <listitem>
- <para>Stored procedures executed through a <code>CallableStatement</code> have their plans cached just as a <code>PreparedStatement</code>.</para>
- </listitem>
- <listitem>
- <para>Bind variable types in function signatures, e.g. "where t.col = abs(?)" can be determined if the function has only one signature or if the function is used in a predicate where the return type can be determined.
- In more complex situations it may be necessary to add a type hint with a cast or convert, e.g. upper(convert(?, string)).</para>
- </listitem>
- </itemizedlist>
-
-</chapter>
\ No newline at end of file
Copied: tags/teiid-parent-7.4.0.CR1/documentation/client-developers-guide/src/main/docbook/en-US/content/prepared-statements.xml (from rev 3138, trunk/documentation/client-developers-guide/src/main/docbook/en-US/content/prepared-statements.xml)
===================================================================
--- tags/teiid-parent-7.4.0.CR1/documentation/client-developers-guide/src/main/docbook/en-US/content/prepared-statements.xml (rev 0)
+++ tags/teiid-parent-7.4.0.CR1/documentation/client-developers-guide/src/main/docbook/en-US/content/prepared-statements.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % CustomDTD SYSTEM "../../../../../../docbook/custom.dtd">
+%CustomDTD;
+]>
+<chapter id="prepared-statements">
+ <title>Prepared Statements</title>
+
+ <para>Teiid provides a standard implementation of <code>java.sql.PreparedStatement</code>. PreparedStatements can be very important in speeding up common statement execution, since they allow the server to skip parsing, resolving, and planning of the statement.
+ See the Java documentation for more information on <ulink url="http://download.oracle.com/javase/6/docs/technotes/guides/jdbc/getstart/p...">PreparedStatement usage</ulink>.
+ </para>
+
+ <itemizedlist>
+ <para><code>PreparedStatement</code> Considerations</para>
+ <listitem>
+ <para>It is not necessary to pool client side Teiid <code>PreparedStatements</code>, since Teiid performs plan caching on the server side.</para>
+ </listitem>
+ <listitem>
+ <para>The number of cached plans is configurable (see the Admin Guide), and are purged by the least recently used (LRU).</para>
+ </listitem>
+ <listitem>
+ <para>Cached plans are not distributed through a cluster. A new plan must be created for each cluster member.</para>
+ </listitem>
+ <listitem>
+ <para>Plans are cached for the entire VDB or for just a particular session. The scope of a plan is detected automatically based upon the functions evaluated during it's planning process.</para>
+ </listitem>
+ <listitem>
+ <para>Stored procedures executed through a <code>CallableStatement</code> have their plans cached just as a <code>PreparedStatement</code>.</para>
+ </listitem>
+ <listitem>
+ <para>Bind variable types in function signatures, e.g. "where t.col = abs(?)" can be determined if the function has only one signature or if the function is used in a predicate where the return type can be determined.
+ In more complex situations it may be necessary to add a type hint with a cast or convert, e.g. upper(convert(?, string)).</para>
+ </listitem>
+ </itemizedlist>
+
+</chapter>
\ No newline at end of file
Deleted: tags/teiid-parent-7.4.0.CR1/documentation/developer-guide/pom.xml
===================================================================
--- trunk/documentation/developer-guide/pom.xml 2011-05-03 09:43:58 UTC (rev 3137)
+++ tags/teiid-parent-7.4.0.CR1/documentation/developer-guide/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -1,77 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <parent>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>documentation</artifactId>
- <version>7.4.0.CR1-SNAPSHOT</version>
- </parent>
- <modelVersion>4.0.0</modelVersion>
- <artifactId>developer-guide</artifactId>
- <groupId>org.jboss.teiid.documentation</groupId>
- <packaging>jdocbook</packaging>
- <name>Developer's Guide</name>
- <description>The Teiid Developer's Guide</description>
- <build>
- <plugins>
- <plugin>
- <groupId>org.jboss.maven.plugins</groupId>
- <artifactId>maven-jdocbook-plugin</artifactId>
- <version>2.1.2</version>
- <extensions>true</extensions>
- <dependencies>
- <dependency>
- <groupId>net.sf.docbook</groupId>
- <artifactId>docbook</artifactId>
- <version>1.74.0</version>
- </dependency>
- <dependency>
- <groupId>org.jboss</groupId>
- <artifactId>jbossorg-docbook-xslt</artifactId>
- <version>1.1.0</version>
- </dependency>
- <dependency>
- <groupId>org.jboss</groupId>
- <artifactId>jbossorg-jdocbook-style</artifactId>
- <version>1.1.0</version>
- <type>jdocbook-style</type>
- </dependency>
- </dependencies>
- <configuration>
- <sourceDocumentName>Developer_Guide.xml</sourceDocumentName>
- <imageResource>
- <directory>${basedir}/src/main/docbook/en-US</directory>
- <excludes>
- <exclude>*.xml</exclude>
- <exclude>**/*.xml</exclude>
- <exclude>*.zargo</exclude>
- <exclude>**/*.zargo</exclude>
- </excludes>
- </imageResource>
- <formats>
- <format>
- <formatName>pdf</formatName>
- <stylesheetResource>classpath:/xslt/org/jboss/pdf.xsl</stylesheetResource>
- <finalName>teiid_developer_guide.pdf</finalName>
- </format>
- <format>
- <formatName>html_single</formatName>
- <stylesheetResource>classpath:/xslt/org/jboss/xhtml-single.xsl</stylesheetResource>
- <finalName>index.html</finalName>
- </format>
- <format>
- <formatName>html</formatName>
- <stylesheetResource>classpath:/xslt/org/jboss/xhtml.xsl</stylesheetResource>
- <finalName>index.html</finalName>
- </format>
- </formats>
- <options>
- <xincludeSupported>true</xincludeSupported>
- <xmlTransformerType>saxon</xmlTransformerType>
- <docbookVersion>1.72.0</docbookVersion>
- <localeSeparator>-</localeSeparator>
- <useRelativeImageUris>false</useRelativeImageUris>
- </options>
- </configuration>
- </plugin>
- </plugins>
- </build>
-</project>
Copied: tags/teiid-parent-7.4.0.CR1/documentation/developer-guide/pom.xml (from rev 3140, trunk/documentation/developer-guide/pom.xml)
===================================================================
--- tags/teiid-parent-7.4.0.CR1/documentation/developer-guide/pom.xml (rev 0)
+++ tags/teiid-parent-7.4.0.CR1/documentation/developer-guide/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -0,0 +1,77 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <parent>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>documentation</artifactId>
+ <version>7.4.0.CR1</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>developer-guide</artifactId>
+ <groupId>org.jboss.teiid.documentation</groupId>
+ <packaging>jdocbook</packaging>
+ <name>Developer's Guide</name>
+ <description>The Teiid Developer's Guide</description>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.jboss.maven.plugins</groupId>
+ <artifactId>maven-jdocbook-plugin</artifactId>
+ <version>2.1.2</version>
+ <extensions>true</extensions>
+ <dependencies>
+ <dependency>
+ <groupId>net.sf.docbook</groupId>
+ <artifactId>docbook</artifactId>
+ <version>1.74.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss</groupId>
+ <artifactId>jbossorg-docbook-xslt</artifactId>
+ <version>1.1.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss</groupId>
+ <artifactId>jbossorg-jdocbook-style</artifactId>
+ <version>1.1.0</version>
+ <type>jdocbook-style</type>
+ </dependency>
+ </dependencies>
+ <configuration>
+ <sourceDocumentName>Developer_Guide.xml</sourceDocumentName>
+ <imageResource>
+ <directory>${basedir}/src/main/docbook/en-US</directory>
+ <excludes>
+ <exclude>*.xml</exclude>
+ <exclude>**/*.xml</exclude>
+ <exclude>*.zargo</exclude>
+ <exclude>**/*.zargo</exclude>
+ </excludes>
+ </imageResource>
+ <formats>
+ <format>
+ <formatName>pdf</formatName>
+ <stylesheetResource>classpath:/xslt/org/jboss/pdf.xsl</stylesheetResource>
+ <finalName>teiid_developer_guide.pdf</finalName>
+ </format>
+ <format>
+ <formatName>html_single</formatName>
+ <stylesheetResource>classpath:/xslt/org/jboss/xhtml-single.xsl</stylesheetResource>
+ <finalName>index.html</finalName>
+ </format>
+ <format>
+ <formatName>html</formatName>
+ <stylesheetResource>classpath:/xslt/org/jboss/xhtml.xsl</stylesheetResource>
+ <finalName>index.html</finalName>
+ </format>
+ </formats>
+ <options>
+ <xincludeSupported>true</xincludeSupported>
+ <xmlTransformerType>saxon</xmlTransformerType>
+ <docbookVersion>1.72.0</docbookVersion>
+ <localeSeparator>-</localeSeparator>
+ <useRelativeImageUris>false</useRelativeImageUris>
+ </options>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
Deleted: tags/teiid-parent-7.4.0.CR1/documentation/developer-guide/src/main/docbook/en-US/Developer_Guide.xml
===================================================================
--- trunk/documentation/developer-guide/src/main/docbook/en-US/Developer_Guide.xml 2011-05-03 09:43:58 UTC (rev 3137)
+++ tags/teiid-parent-7.4.0.CR1/documentation/developer-guide/src/main/docbook/en-US/Developer_Guide.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -1,23 +0,0 @@
-<?xml version='1.0'?>
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % CustomDTD SYSTEM "../../../../../docbook/custom.dtd">
-%CustomDTD;
-]>
-
-<book>
- <xi:include href="Book_Info.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
-
- <xi:include href="content/introduction.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="content/develop-adapter.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="content/translator-api.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="content/extending-jdbc.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="content/udf.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="content/adminapi.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="content/logging.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="content/security.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="content/appendix-a.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="content/appendix-b.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
-
-
-</book>
-
Copied: tags/teiid-parent-7.4.0.CR1/documentation/developer-guide/src/main/docbook/en-US/Developer_Guide.xml (from rev 3138, trunk/documentation/developer-guide/src/main/docbook/en-US/Developer_Guide.xml)
===================================================================
--- tags/teiid-parent-7.4.0.CR1/documentation/developer-guide/src/main/docbook/en-US/Developer_Guide.xml (rev 0)
+++ tags/teiid-parent-7.4.0.CR1/documentation/developer-guide/src/main/docbook/en-US/Developer_Guide.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -0,0 +1,22 @@
+<?xml version='1.0'?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % CustomDTD SYSTEM "../../../../../docbook/custom.dtd">
+%CustomDTD;
+]>
+
+<book>
+ <xi:include href="Book_Info.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+
+ <xi:include href="content/introduction.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="content/develop-adapter.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="content/translator-api.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="content/extending-jdbc.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="content/udf.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="content/adminapi.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="content/logging.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="content/security.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="content/runtime-updates.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="content/appendix-a.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="content/appendix-b.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+</book>
+
Copied: tags/teiid-parent-7.4.0.CR1/documentation/developer-guide/src/main/docbook/en-US/content/runtime-updates.xml (from rev 3139, trunk/documentation/developer-guide/src/main/docbook/en-US/content/runtime-updates.xml)
===================================================================
--- tags/teiid-parent-7.4.0.CR1/documentation/developer-guide/src/main/docbook/en-US/content/runtime-updates.xml (rev 0)
+++ tags/teiid-parent-7.4.0.CR1/documentation/developer-guide/src/main/docbook/en-US/content/runtime-updates.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % CustomDTD SYSTEM "../../../../../../docbook/custom.dtd">
+%CustomDTD;
+]>
+<chapter id="runtime-updates">
+ <title>Runtime Updates</title>
+ <para>Teiid supports several mechanisms for updating the runtime system.</para>
+ <section>
+ <title>Data Updates</title>
+ <para>Data change events are used by Teiid to invalidate result set cache entries. Result set cache entires are tracked by the tables that contributed to their results.
+ By default Teiid will capture internal data events against physical sources and distribute them across the cluster.
+ This approach has several limitations. First updates are scoped only to their originating VDB/version. Second updates made out side of Teiid are not captured.
+ To increase data consistency external change data capture tools can be used to send events to Teiid. From within a Teiid cluster the <code>org.teiid.events.EventDistributorFactory</code>
+ and <code>org.teiid.events.EventDistributor</code> can be used to distribute change events. The <code>EventDistributorFactory</code> is implemented by the
+ <code>RuntimeEngineDeployer</code> bean and should be looked up by its name "teiid/engine-deployer". See the example below.</para>
+ <example>
+ <title>Usage of the <code>EventDistributor</code></title>
+ <programlisting language="java">InitialContext ctx = new InitialContext();
+EventDistributorFactory edf = (EventDistributorFactory)ctx.lookup("teiid/engine-deployer");
+EventDistributor ed = edf.getEventDistributor();
+ed.dataModification(vdbName, vdbVersion, schema, tableName);</programlisting>
+ <para>This will distribute a change event for schema.tableName in vdb vdbName.vdbVersion.</para>
+ </example>
+ <para>When externally capturing all update events, &jboss-beans; RuntimeEngineDeployer.detectingChangeEvents can be set to false, to not duplicate change events.</para>
+ <para>The use of the other <code>EventDistributor</code> methods to manual distribute other events is not recommended.</para>
+ </section>
+ <section>
+ <title>Runtime Metadata Updates</title>
+ <para>Runtime updates via system procedures and DDL statements are by default ephemeral. They are effective across the cluster only for the currently running vdbs.
+ With the next vdb start the values will revert to whatever is stored in the vdb. Updates may be made persistent though by configuring a <code>org.teiid.metadata.MetadataRepository</code>.
+ An instance of a <code>MetadataRepository</code> can be installed via the &teiid-deployer-beans; file in the <code>VDBRepository</code> bean.
+ The <code>MetadataRepository</code> repository instance may fully implement as many of the methods as needed and return null from any unneeded getter.</para>
+ <note><para>It is not recommended to directly manipulate <code>org.teiid.metadata.AbstractMetadataRecord</code> instances.
+ System procedures and DDL statements should be used instead since the effects will be distributed through the cluster and will not introduce inconsistencies.</para></note>
+ <para><code>org.teiid.metadata.AbstractMetadataRecord</code> objects passed to the <code>MetadataRepository</code> have not yet been modified.
+ If the <code>MetadataRepository</code> cannot persist the update, then a <code>RuntimeException</code> should be thrown to prevent the update from being applied by the runtime engine.</para>
+ <section>
+ <title>Costing Updates</title>
+ <para>See the Reference for the system procedures <code>SYSADMIN.setColumnStats</code> and <code>SYSADMIN.setTableStats</code>.
+ To make costing updates persistent <code>MetadataRepository</code> implementations should be provided for:
+ <programlisting language="java">TableStats getTableStats(String vdbName, int vdbVersion, Table table);
+void setTableStats(String vdbName, int vdbVersion, Table table, TableStats tableStats);
+ColumnStats getColumnStats(String vdbName, int vdbVersion, Column column);
+void setColumnStats(String vdbName, int vdbVersion, Column column, ColumnStats columnStats);</programlisting>
+ </para>
+ </section>
+ <section>
+ <title>Schema Updates</title>
+ <para>See the Reference for supported DDL statements. To make schema updates persistent implementations should be provided for:</para>
+ <programlisting>String getViewDefinition(String vdbName, int vdbVersion, Table table);
+void setViewDefinition(String vdbName, int vdbVersion, Table table, String viewDefinition);
+String getInsteadOfTriggerDefinition(String vdbName, int vdbVersion, Table table, Table.TriggerEvent triggerOperation);
+void setInsteadOfTriggerDefinition(String vdbName, int vdbVersion, Table table, Table.TriggerEvent triggerOperation, String triggerDefinition);
+boolean isInsteadOfTriggerEnabled(String vdbName, int vdbVersion, Table table, Table.TriggerEvent triggerOperation);
+void setInsteadOfTriggerEnabled(String vdbName, int vdbVersion, Table table, Table.TriggerEvent triggerOperation, boolean enabled);
+String getProcedureDefinition(String vdbName, int vdbVersion, Procedure procedure);
+void setProcedureDefinition(String vdbName, int vdbVersion, Procedure procedure, String procedureDefinition);
+LinkedHashMap<String, String> getProperties(String vdbName, int vdbVersion, AbstractMetadataRecord record);
+void setProperty(String vdbName, int vdbVersion, AbstractMetadataRecord record, String name, String value);</programlisting>
+ </section>
+ </section>
+</chapter>
\ No newline at end of file
Deleted: tags/teiid-parent-7.4.0.CR1/documentation/docbook/custom.dtd
===================================================================
--- trunk/documentation/docbook/custom.dtd 2011-05-03 09:43:58 UTC (rev 3137)
+++ tags/teiid-parent-7.4.0.CR1/documentation/docbook/custom.dtd 2011-05-03 16:47:11 UTC (rev 3141)
@@ -1,9 +0,0 @@
-<!ENTITY versionNumber "7.4">
-<!ENTITY copyrightYear "2011">
-<!ENTITY copyrightHolder "Red Hat, Inc.">
-<!ENTITY url "http://www.jboss.org/teiid/">
-<!ENTITY docUrl "&url;/docs.html">
-<!ENTITY javaDocUrl "http://docs.jboss.org/teiid/&versionNumber;/apidocs">
-<!ENTITY desDocUrl "http://www.jboss.org/teiiddesigner/docs.html">
-<!ENTITY jboss-beans "<code><jboss-install>/server/<profile>/deploy/teiid/teiid-jboss-beans.xml</code>">
-<!ENTITY metadata-update-note "<note><para>A <code>MetadataRepository</code> must be configured to make a non-temporary metadata update persistent. See the Developers Guide Runtime Updates section for more.</para></note>">
Copied: tags/teiid-parent-7.4.0.CR1/documentation/docbook/custom.dtd (from rev 3138, trunk/documentation/docbook/custom.dtd)
===================================================================
--- tags/teiid-parent-7.4.0.CR1/documentation/docbook/custom.dtd (rev 0)
+++ tags/teiid-parent-7.4.0.CR1/documentation/docbook/custom.dtd 2011-05-03 16:47:11 UTC (rev 3141)
@@ -0,0 +1,10 @@
+<!ENTITY versionNumber "7.4">
+<!ENTITY copyrightYear "2011">
+<!ENTITY copyrightHolder "Red Hat, Inc.">
+<!ENTITY url "http://www.jboss.org/teiid/">
+<!ENTITY docUrl "&url;/docs.html">
+<!ENTITY javaDocUrl "http://docs.jboss.org/teiid/&versionNumber;/apidocs">
+<!ENTITY desDocUrl "http://www.jboss.org/teiiddesigner/docs.html">
+<!ENTITY jboss-beans "<code><jboss-install>/server/<profile>/deploy/teiid/teiid-jboss-beans.xml</code>">
+<!ENTITY teiid-deployer-beans "<code><jboss-install>/server/<profile>/deploy/deployers/teiid.deployer/teiid-deployer-jboss-beans.xml</code>">
+<!ENTITY metadata-update-note "<note><para>A <code>MetadataRepository</code> must be configured to make a non-temporary metadata update persistent. See the Developers Guide Runtime Metadata Updates section for more.</para></note>">
Deleted: tags/teiid-parent-7.4.0.CR1/documentation/pom.xml
===================================================================
--- trunk/documentation/pom.xml 2011-05-03 09:43:58 UTC (rev 3137)
+++ tags/teiid-parent-7.4.0.CR1/documentation/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -1,21 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <parent>
- <artifactId>teiid-parent</artifactId>
- <groupId>org.jboss.teiid</groupId>
- <version>7.4.0.CR1-SNAPSHOT</version>
- </parent>
- <modelVersion>4.0.0</modelVersion>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>documentation</artifactId>
- <packaging>pom</packaging>
- <name>Documents</name>
- <description>Teiid Documentation Aggregator</description>
- <modules>
- <module>admin-guide</module>
- <module>reference</module>
- <module>developer-guide</module>
- <module>quick-start-example</module>
- <module>client-developers-guide</module>
- <module>caching-guide</module>
- </modules>
-</project>
\ No newline at end of file
Copied: tags/teiid-parent-7.4.0.CR1/documentation/pom.xml (from rev 3140, trunk/documentation/pom.xml)
===================================================================
--- tags/teiid-parent-7.4.0.CR1/documentation/pom.xml (rev 0)
+++ tags/teiid-parent-7.4.0.CR1/documentation/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -0,0 +1,21 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <artifactId>teiid-parent</artifactId>
+ <groupId>org.jboss.teiid</groupId>
+ <version>7.4.0.CR1</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>documentation</artifactId>
+ <packaging>pom</packaging>
+ <name>Documents</name>
+ <description>Teiid Documentation Aggregator</description>
+ <modules>
+ <module>admin-guide</module>
+ <module>reference</module>
+ <module>developer-guide</module>
+ <module>quick-start-example</module>
+ <module>client-developers-guide</module>
+ <module>caching-guide</module>
+ </modules>
+</project>
\ No newline at end of file
Deleted: tags/teiid-parent-7.4.0.CR1/documentation/quick-start-example/pom.xml
===================================================================
--- trunk/documentation/quick-start-example/pom.xml 2011-05-03 09:43:58 UTC (rev 3137)
+++ tags/teiid-parent-7.4.0.CR1/documentation/quick-start-example/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -1,77 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <parent>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>documentation</artifactId>
- <version>7.4.0.CR1-SNAPSHOT</version>
- </parent>
- <modelVersion>4.0.0</modelVersion>
- <artifactId>quick-start-example</artifactId>
- <groupId>org.jboss.teiid.documentation</groupId>
- <packaging>jdocbook</packaging>
- <name>Quick Start Guide</name>
- <description>The Teiid Quick Start guide</description>
- <build>
- <plugins>
- <plugin>
- <groupId>org.jboss.maven.plugins</groupId>
- <artifactId>maven-jdocbook-plugin</artifactId>
- <version>2.1.2</version>
- <extensions>true</extensions>
- <dependencies>
- <dependency>
- <groupId>net.sf.docbook</groupId>
- <artifactId>docbook</artifactId>
- <version>1.74.0</version>
- </dependency>
- <dependency>
- <groupId>org.jboss</groupId>
- <artifactId>jbossorg-docbook-xslt</artifactId>
- <version>1.1.0</version>
- </dependency>
- <dependency>
- <groupId>org.jboss</groupId>
- <artifactId>jbossorg-jdocbook-style</artifactId>
- <version>1.1.0</version>
- <type>jdocbook-style</type>
- </dependency>
- </dependencies>
- <configuration>
- <sourceDocumentName>quick_start_example.xml</sourceDocumentName>
- <imageResource>
- <directory>${basedir}/src/main/docbook/en-US</directory>
- <excludes>
- <exclude>*.xml</exclude>
- <exclude>**/*.xml</exclude>
- <exclude>*.zargo</exclude>
- <exclude>**/*.zargo</exclude>
- </excludes>
- </imageResource>
- <formats>
- <format>
- <formatName>pdf</formatName>
- <stylesheetResource>classpath:/xslt/org/jboss/pdf.xsl</stylesheetResource>
- <finalName>teiid_quick_start_example.pdf</finalName>
- </format>
- <format>
- <formatName>html_single</formatName>
- <stylesheetResource>classpath:/xslt/org/jboss/xhtml-single.xsl</stylesheetResource>
- <finalName>index.html</finalName>
- </format>
- <format>
- <formatName>html</formatName>
- <stylesheetResource>classpath:/xslt/org/jboss/xhtml.xsl</stylesheetResource>
- <finalName>index.html</finalName>
- </format>
- </formats>
- <options>
- <xincludeSupported>true</xincludeSupported>
- <xmlTransformerType>saxon</xmlTransformerType>
- <docbookVersion>1.72.0</docbookVersion>
- <localeSeparator>-</localeSeparator>
- <useRelativeImageUris>false</useRelativeImageUris>
- </options>
- </configuration>
- </plugin>
- </plugins>
- </build>
-</project>
Copied: tags/teiid-parent-7.4.0.CR1/documentation/quick-start-example/pom.xml (from rev 3140, trunk/documentation/quick-start-example/pom.xml)
===================================================================
--- tags/teiid-parent-7.4.0.CR1/documentation/quick-start-example/pom.xml (rev 0)
+++ tags/teiid-parent-7.4.0.CR1/documentation/quick-start-example/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -0,0 +1,77 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <parent>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>documentation</artifactId>
+ <version>7.4.0.CR1</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>quick-start-example</artifactId>
+ <groupId>org.jboss.teiid.documentation</groupId>
+ <packaging>jdocbook</packaging>
+ <name>Quick Start Guide</name>
+ <description>The Teiid Quick Start guide</description>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.jboss.maven.plugins</groupId>
+ <artifactId>maven-jdocbook-plugin</artifactId>
+ <version>2.1.2</version>
+ <extensions>true</extensions>
+ <dependencies>
+ <dependency>
+ <groupId>net.sf.docbook</groupId>
+ <artifactId>docbook</artifactId>
+ <version>1.74.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss</groupId>
+ <artifactId>jbossorg-docbook-xslt</artifactId>
+ <version>1.1.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss</groupId>
+ <artifactId>jbossorg-jdocbook-style</artifactId>
+ <version>1.1.0</version>
+ <type>jdocbook-style</type>
+ </dependency>
+ </dependencies>
+ <configuration>
+ <sourceDocumentName>quick_start_example.xml</sourceDocumentName>
+ <imageResource>
+ <directory>${basedir}/src/main/docbook/en-US</directory>
+ <excludes>
+ <exclude>*.xml</exclude>
+ <exclude>**/*.xml</exclude>
+ <exclude>*.zargo</exclude>
+ <exclude>**/*.zargo</exclude>
+ </excludes>
+ </imageResource>
+ <formats>
+ <format>
+ <formatName>pdf</formatName>
+ <stylesheetResource>classpath:/xslt/org/jboss/pdf.xsl</stylesheetResource>
+ <finalName>teiid_quick_start_example.pdf</finalName>
+ </format>
+ <format>
+ <formatName>html_single</formatName>
+ <stylesheetResource>classpath:/xslt/org/jboss/xhtml-single.xsl</stylesheetResource>
+ <finalName>index.html</finalName>
+ </format>
+ <format>
+ <formatName>html</formatName>
+ <stylesheetResource>classpath:/xslt/org/jboss/xhtml.xsl</stylesheetResource>
+ <finalName>index.html</finalName>
+ </format>
+ </formats>
+ <options>
+ <xincludeSupported>true</xincludeSupported>
+ <xmlTransformerType>saxon</xmlTransformerType>
+ <docbookVersion>1.72.0</docbookVersion>
+ <localeSeparator>-</localeSeparator>
+ <useRelativeImageUris>false</useRelativeImageUris>
+ </options>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
Deleted: tags/teiid-parent-7.4.0.CR1/documentation/reference/pom.xml
===================================================================
--- trunk/documentation/reference/pom.xml 2011-05-03 09:43:58 UTC (rev 3137)
+++ tags/teiid-parent-7.4.0.CR1/documentation/reference/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -1,77 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <parent>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>documentation</artifactId>
- <version>7.4.0.CR1-SNAPSHOT</version>
- </parent>
- <modelVersion>4.0.0</modelVersion>
- <artifactId>reference</artifactId>
- <groupId>org.jboss.teiid.documentation</groupId>
- <packaging>jdocbook</packaging>
- <name>Teiid Reference</name>
- <description>The Teiid reference manual</description>
- <build>
- <plugins>
- <plugin>
- <groupId>org.jboss.maven.plugins</groupId>
- <artifactId>maven-jdocbook-plugin</artifactId>
- <version>2.1.2</version>
- <extensions>true</extensions>
- <dependencies>
- <dependency>
- <groupId>net.sf.docbook</groupId>
- <artifactId>docbook</artifactId>
- <version>1.74.0</version>
- </dependency>
- <dependency>
- <groupId>org.jboss</groupId>
- <artifactId>jbossorg-docbook-xslt</artifactId>
- <version>1.1.0</version>
- </dependency>
- <dependency>
- <groupId>org.jboss</groupId>
- <artifactId>jbossorg-jdocbook-style</artifactId>
- <version>1.1.0</version>
- <type>jdocbook-style</type>
- </dependency>
- </dependencies>
- <configuration>
- <sourceDocumentName>Reference.xml</sourceDocumentName>
- <imageResource>
- <directory>${basedir}/src/main/docbook/en-US</directory>
- <excludes>
- <exclude>*.xml</exclude>
- <exclude>**/*.xml</exclude>
- <exclude>*.zargo</exclude>
- <exclude>**/*.zargo</exclude>
- </excludes>
- </imageResource>
- <formats>
- <format>
- <formatName>pdf</formatName>
- <stylesheetResource>classpath:/xslt/org/jboss/pdf.xsl</stylesheetResource>
- <finalName>teiid_reference.pdf</finalName>
- </format>
- <format>
- <formatName>html_single</formatName>
- <stylesheetResource>classpath:/xslt/org/jboss/xhtml-single.xsl</stylesheetResource>
- <finalName>index.html</finalName>
- </format>
- <format>
- <formatName>html</formatName>
- <stylesheetResource>classpath:/xslt/org/jboss/xhtml.xsl</stylesheetResource>
- <finalName>index.html</finalName>
- </format>
- </formats>
- <options>
- <xmlTransformerType>saxon</xmlTransformerType>
- <docbookVersion>1.72.0</docbookVersion>
- <xincludeSupported>true</xincludeSupported>
- <localeSeparator>-</localeSeparator>
- <useRelativeImageUris>false</useRelativeImageUris>
- </options>
- </configuration>
- </plugin>
- </plugins>
- </build>
-</project>
\ No newline at end of file
Copied: tags/teiid-parent-7.4.0.CR1/documentation/reference/pom.xml (from rev 3140, trunk/documentation/reference/pom.xml)
===================================================================
--- tags/teiid-parent-7.4.0.CR1/documentation/reference/pom.xml (rev 0)
+++ tags/teiid-parent-7.4.0.CR1/documentation/reference/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -0,0 +1,77 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <parent>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>documentation</artifactId>
+ <version>7.4.0.CR1</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>reference</artifactId>
+ <groupId>org.jboss.teiid.documentation</groupId>
+ <packaging>jdocbook</packaging>
+ <name>Teiid Reference</name>
+ <description>The Teiid reference manual</description>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.jboss.maven.plugins</groupId>
+ <artifactId>maven-jdocbook-plugin</artifactId>
+ <version>2.1.2</version>
+ <extensions>true</extensions>
+ <dependencies>
+ <dependency>
+ <groupId>net.sf.docbook</groupId>
+ <artifactId>docbook</artifactId>
+ <version>1.74.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss</groupId>
+ <artifactId>jbossorg-docbook-xslt</artifactId>
+ <version>1.1.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss</groupId>
+ <artifactId>jbossorg-jdocbook-style</artifactId>
+ <version>1.1.0</version>
+ <type>jdocbook-style</type>
+ </dependency>
+ </dependencies>
+ <configuration>
+ <sourceDocumentName>Reference.xml</sourceDocumentName>
+ <imageResource>
+ <directory>${basedir}/src/main/docbook/en-US</directory>
+ <excludes>
+ <exclude>*.xml</exclude>
+ <exclude>**/*.xml</exclude>
+ <exclude>*.zargo</exclude>
+ <exclude>**/*.zargo</exclude>
+ </excludes>
+ </imageResource>
+ <formats>
+ <format>
+ <formatName>pdf</formatName>
+ <stylesheetResource>classpath:/xslt/org/jboss/pdf.xsl</stylesheetResource>
+ <finalName>teiid_reference.pdf</finalName>
+ </format>
+ <format>
+ <formatName>html_single</formatName>
+ <stylesheetResource>classpath:/xslt/org/jboss/xhtml-single.xsl</stylesheetResource>
+ <finalName>index.html</finalName>
+ </format>
+ <format>
+ <formatName>html</formatName>
+ <stylesheetResource>classpath:/xslt/org/jboss/xhtml.xsl</stylesheetResource>
+ <finalName>index.html</finalName>
+ </format>
+ </formats>
+ <options>
+ <xmlTransformerType>saxon</xmlTransformerType>
+ <docbookVersion>1.72.0</docbookVersion>
+ <xincludeSupported>true</xincludeSupported>
+ <localeSeparator>-</localeSeparator>
+ <useRelativeImageUris>false</useRelativeImageUris>
+ </options>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
\ No newline at end of file
Deleted: tags/teiid-parent-7.4.0.CR1/documentation/reference/src/main/docbook/en-US/content/grammar.xml
===================================================================
--- trunk/documentation/reference/src/main/docbook/en-US/content/grammar.xml 2011-05-03 09:43:58 UTC (rev 3137)
+++ tags/teiid-parent-7.4.0.CR1/documentation/reference/src/main/docbook/en-US/content/grammar.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -1,896 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<appendix id="grammar">
- <title>BNF for SQL Grammar</title>
-<section>
-<title>TOKENS</title>
-<informaltable frame="none">
-<tgroup cols="1">
-<colspec colname="c1" colwidth="100*"/>
-<tbody>
-<row><entry><para>
-<DEFAULT> SKIP : {
-" "
-| "\t"
-| "\n"
-| "\r"
-}
-
-</para></entry></row>
-<row><entry><para>
-<DEFAULT> MORE : {
-"/*" : IN_MULTI_LINE_COMMENT
-}
-
-</para></entry></row>
-<row><entry><para>
-<IN_MULTI_LINE_COMMENT> SPECIAL : {
-<MULTI_LINE_COMMENT: "*/"> : DEFAULT
-}
-
-</para></entry></row>
-<row><entry><para>
-<IN_MULTI_LINE_COMMENT> MORE : {
-<~[]>
-}
-
-</para></entry></row>
-<row><entry><para>
-<DEFAULT> TOKEN : {
-<STRING: "string">
-| <VARCHAR: "varchar">
-| <BOOLEAN: "boolean">
-| <BYTE: "byte">
-| <TINYINT: "tinyint">
-| <SHORT: "short">
-| <SMALLINT: "smallint">
-| <CHAR: "char">
-| <INTEGER: "integer">
-| <LONG: "long">
-| <BIGINT: "bigint">
-| <BIGINTEGER: "biginteger">
-| <FLOAT: "float">
-| <REAL: "real">
-| <DOUBLE: "double">
-| <BIGDECIMAL: "bigdecimal">
-| <DECIMAL: "decimal">
-| <DATE: "date">
-| <TIME: "time">
-| <TIMESTAMP: "timestamp">
-| <OBJECT: "object">
-| <BLOB: "blob">
-| <CLOB: "clob">
-| <XML: "xml">
-}
-
-</para></entry></row>
-<row><entry><para>
-<DEFAULT> TOKEN : {
-<CAST: "cast">
-| <CONVERT: "convert">
-}
-
-</para></entry></row>
-<row><entry><para>
-<DEFAULT> TOKEN : {
-<ADD: "add">
-| <ALL: "all">
-| <ALTER: "alter">
-| <AND: "and">
-| <ANY: "any">
-| <ARRAY: "array">
-| <ARRAY_AGG: "array_agg">
-| <AS: "as">
-| <ASC: "asc">
-| <ATOMIC: "atomic">
-| <AUTORIZATION: "authorization">
-| <BEGIN: "begin">
-| <BETWEEN: "between">
-| <BINARY: "binary">
-| <BOTH: "both">
-| <BREAK: "break">
-| <BY: "by">
-| <CALL: "call">
-| <CALLED: "called">
-| <CASCADED: "cascaded">
-| <CASE: "case">
-| <CHARACTER: "character">
-| <CHECK: "check">
-| <CLOSE: "close">
-| <COLLATE: "collate">
-| <COLUMN: "column">
-| <COMMIT: "commit">
-| <CONNECT: "connect">
-| <CONSTRAINT: "constraint">
-| <CONTINUE: "continue">
-| <CORRESPONDING: "corresponding">
-| <CURRENT_DATE: "current_date">
-| <CURRENT_TIME: "current_time">
-| <CURRENT_TIMESTAMP: "current_timestamp">
-| <CURRENT_USER: "current_user">
-| <CREATE: "create">
-| <CRITERIA: "criteria">
-| <CROSS: "cross">
-| <CURSOR: "cursor">
-| <DAY: "day">
-| <DEALLOCATE: "deallocate">
-| <DEFAULT_KEYWORD: "default">
-| <DECLARE: "declare">
-| <DELETE: "delete">
-| <DESC: "desc">
-| <DESCRIBE: "describe">
-| <DETERMINISTIC: "deterministic">
-| <DISCONNECT: "disconnect">
-| <DISTINCT: "distinct">
-| <DROP: "drop">
-| <EACH: "each">
-| <ELSE: "else">
-| <END: "end">
-| <ERROR: "error">
-| <ESCAPE: "escape">
-| <EXCEPT: "except">
-| <EXEC: "exec">
-| <EXECUTE: "execute">
-| <EXTERNAL: "external">
-| <EXISTS: "exists">
-| <FALSE: "false">
-| <FETCH: "fetch">
-| <FILTER: "filter">
-| <FOR: "for">
-| <FORIEGN: "foriegn">
-| <FROM: "from">
-| <FULL: "full">
-| <FUNCTION: "function">
-| <GET: "get">
-| <GLOBAL: "global">
-| <GRANT: "grant">
-| <GROUP: "group">
-| <HAS: "has">
-| <HAVING: "having">
-| <HOLD: "hold">
-| <HOUR: "hour">
-| <IF: "if">
-| <IDENTITY: "identity">
-| <IMMEDIATE: "immediate">
-| <IN: "in">
-| <INDICATOR: "indicator">
-| <INNER: "inner">
-| <INPUT: "input">
-| <INOUT: "inout">
-| <INSENSITIVE: "insensitive">
-| <INSERT: "insert">
-| <INTERSECT: "intersect">
-| <INTERVAL: "interval">
-| <INTO: "into">
-| <IS: "is">
-| <ISOLATION: "isolation">
-| <JOIN: "join">
-| <LEFT: "left">
-| <LANGUAGE: "language">
-| <LARGE: "large">
-| <LEADING: "leading">
-| <LIKE: "like">
-| <LIMIT: "limit">
-| <LOCAL: "local">
-| <LOOP: "loop">
-| <MAKEDEP: "makedep">
-| <MAKENOTDEP: "makenotdep">
-| <MATCH: "match">
-| <MERGE: "merge">
-| <METHOD: "method">
-| <MINUTE: "minute">
-| <MODIFIES: "modifies">
-| <MODULE: "module">
-| <MONTH: "month">
-| <NATURAL: "natural">
-| <NEW: "new">
-| <NOCACHE: "nocache">
-| <NO: "no">
-| <NONE: "none">
-| <NOT: "not">
-| <NULL: "null">
-| <OF: "of">
-| <OLD: "old">
-| <ON: "on">
-| <ONLY: "only">
-| <OPEN: "open">
-| <OPTION: "option">
-| <OR: "or">
-| <ORDER: "order">
-| <OUTER: "outer">
-| <OUTPUT: "output">
-| <OVER: "over">
-| <OVERLAPS: "OVERLAPS">
-| <PARAMETER: "parameter">
-| <PARTITION: "partition">
-| <PRECISION: "precision">
-| <PREPARE: "prepare">
-| <PRIMARY: "primary">
-| <PROCEDURE: "procedure">
-| <RANGE: "range">
-| <READS: "reads">
-| <RECURSIVE: "recursive">
-| <REFERENCES: "REFERENCES">
-| <REFERENCING: "REFERENCING">
-| <RETURN: "return">
-| <RETURNS: "returns">
-| <REVOKE: "REVOKE">
-| <RIGHT: "right">
-| <ROLLBACK: "ROLLBACK">
-| <ROLLUP: "ROLLUP">
-| <ROW: "row">
-| <ROWS: "rows">
-| <SAVEPOINT: "savepoint">
-| <SCROLL: "scroll">
-| <SEARCH: "search">
-| <SECOND: "second">
-| <SELECT: "select">
-| <SENSITIVE: "sensitive">
-| <SESSION_USER: "session_user">
-| <SET: "set">
-| <SIMILAR: "similar">
-| <SPECIFIC: "specific">
-| <SOME: "some">
-| <SQL: "sql">
-| <SQLEXCEPTION: "sqlexception">
-| <SQLSTATE: "sqlstate">
-| <SQLWARNING: "sqlwarning">
-| <START: "start">
-| <STATIC: "static">
-| <SYSTEM: "system">
-| <SYSTEM_USER: "system_user">
-| <TABLE: "table">
-| <TEMPORARY: "temporary">
-| <THEN: "then">
-| <TIMEZONE_HOUR: "timezone_hour">
-| <TIMEZONE_MINUTE: "timezone_minute">
-| <TO: "to">
-| <TRAILING: "trailing">
-| <TRANSLATE: "translate">
-| <TRIGGER: "trigger">
-| <TRUE: "true">
-| <UNION: "union">
-| <UNIQUE: "unique">
-| <UNKNOWN: "unknown">
-| <USER: "user">
-| <UPDATE: "update">
-| <USING: "using">
-| <VALUE: "value">
-| <VALUES: "values">
-| <VIRTUAL: "virtual">
-| <WHEN: "when">
-| <WHENEVER: "whenever">
-| <WHERE: "where">
-| <WITH: "with">
-| <WHILE: "while">
-| <WINDOW: "window">
-| <WITHIN: "within">
-| <WITHOUT: "without">
-| <YEAR: "year">
-| <ALLOCATE: "allocate">
-| <ARE: "are">
-| <ASENSITIVE: "asensitive">
-| <ASYMETRIC: "asymetric">
-| <CYCLE: "cycle">
-| <DEC: "dec">
-| <DEREF: "deref">
-| <DYNAMIC: "dynamic">
-| <ELEMENT: "element">
-| <FREE: "free">
-| <INT: "int">
-| <LATERAL: "lateral">
-| <LOCALTIME: "localtime">
-| <LOCALTIMESTAMP: "localtimestamp">
-| <MEMBER: "member">
-| <MULTISET: "multiset">
-| <NATIONAL: "national">
-| <NCHAR: "nchar">
-| <NCLOB: "nclob">
-| <NUMERIC: "numeric">
-| <RELEASE: "release">
-| <SPECIFICTYPE: "specifictype">
-| <SYMETRIC: "symetric">
-| <SUBMULTILIST: "submultilist">
-| <TRANSLATION: "translation">
-| <TREAT: "treat">
-| <VARYING: "varying">
-}
-
-</para></entry></row>
-<row><entry><para>
-<DEFAULT> TOKEN : {
-<XMLAGG: "xmlagg">
-| <XMLATTRIBUTES: "xmlattributes">
-| <XMLBINARY: "xmlbinary">
-| <XMLCAST: "xmlcast">
-| <XMLCONCAT: "xmlconcat">
-| <XMLCOMMENT: "xmlcomment">
-| <XMLDOCUMENT: "xmldocument">
-| <XMLELEMENT: "xmlelement">
-| <XMLEXISTS: "xmlexists">
-| <XMLFOREST: "xmlforest">
-| <XMLITERATE: "xmliterate">
-| <XMLNAMESPACES: "xmlnamespaces">
-| <XMLPARSE: "xmlparse">
-| <XMLPI: "xmlpi">
-| <XMLQUERY: "xmlquery">
-| <XMLSERIALIZE: "xmlserialize">
-| <XMLTABLE: "xmltable">
-| <XMLTEXT: "xmltext">
-| <XMLVALIDATE: "xmlvalidate">
-}
-
-</para></entry></row>
-<row><entry><para>
-<DEFAULT> TOKEN : {
-<DATALINK: "datalink">
-| <DLNEWCOPY: "dlnewcopy">
-| <DLPREVIOUSCOPY: "dlpreviouscopy">
-| <DLURLCOMPLETE: "dlurlcomplete">
-| <DLURLCOMPLETEWRITE: "dlurlcompletewrite">
-| <DLURLCOMPLETEONLY: "dlurlcompleteonly">
-| <DLURLPATH: "dlurlpath">
-| <DLURLPATHWRITE: "dlurlpathwrite">
-| <DLURLPATHONLY: "dlurlpathonly">
-| <DLURLSCHEME: "dlurlscheme">
-| <DLURLSERVER: "dlurlserver">
-| <DLVALUE: "dlvalue">
-| <IMPORT: "import">
-}
-
-</para></entry></row>
-<row><entry><para>
-<DEFAULT> TOKEN : {
-<ALL_IN_GROUP: <ID> <PERIOD> <STAR>>
-| <ID: <QUOTED_ID> (<PERIOD> <QUOTED_ID>)*>
-| <#QUOTED_ID: <ID_PART> | "\"" ("\"\"" | ~["\""])+ "\"">
-| <#ID_PART: ("@" | "#" | <LETTER>) (<LETTER> | "_" | <DIGIT>)*>
-| <DATETYPE: "{" "d">
-| <TIMETYPE: "{" "t">
-| <TIMESTAMPTYPE: "{" "ts">
-| <BOOLEANTYPE: "{" "b">
-| <POS_REF: ["$"] (<DIGIT>)+>
-| <INTEGERVAL: (<MINUS>)? (<DIGIT>)+>
-| <FLOATVAL: (<MINUS>)? (<DIGIT>)* <PERIOD> (<DIGIT>)+ (["e","E"] (["+","-"])? (<DIGIT>)+)?>
-| <STRINGVAL: ("N" | "E")? "\'" ("\'\'" | ~["\'"])* "\'">
-| <#LETTER: ["a"-"z","A"-"Z"] | ["\u0153"-"\ufffd"]>
-| <#DIGIT: ["0"-"9"]>
-}
-
-</para></entry></row>
-<row><entry><para>
-<DEFAULT> TOKEN : {
-<COMMA: ",">
-| <PERIOD: ".">
-| <LPAREN: "(">
-| <RPAREN: ")">
-| <LBRACE: "{">
-| <RBRACE: "}">
-| <LSBRACE: "[">
-| <RSBRACE: "]">
-| <EQ: "=">
-| <NE: "<>">
-| <NE2: "!=">
-| <LT: "<">
-| <LE: "<=">
-| <GT: ">">
-| <GE: ">=">
-| <STAR: "*">
-| <SLASH: "/">
-| <PLUS: "+">
-| <MINUS: "-">
-| <QMARK: "?">
-| <DOLLAR: "$">
-| <SEMICOLON: ";">
-| <CONCAT_OP: "||">
-}
-
-</para></entry></row>
-</tbody>
-</tgroup>
-</informaltable>
-</section>
-<section>
-<title>NON-TERMINALS</title>
-<informaltable frame="none">
-<tgroup cols="2">
-<colspec colname="c1" colwidth=".33*"/>
-<colspec colname="c2" colwidth="*"/>
-<tbody>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod1" xreflabel="stringVal"/>stringVal</para></entry>
-<entry align="left" valign="top"><para>::=
-( <STRINGVAL> )</para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod2" xreflabel="id"/>id</para></entry>
-<entry align="left" valign="top"><para>::=
-( <ID> )</para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod3" xreflabel="command"/>command</para></entry>
-<entry align="left" valign="top"><para>::=
-( <link linkend="prod4">createUpdateProcedure</link> | <link linkend="prod5">userCommand</link> | <link linkend="prod6">callableStatement</link> ) ( <SEMICOLON> )? <EOF></para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod7" xreflabel="designerCommand"/>designerCommand</para></entry>
-<entry align="left" valign="top"><para>::=
-( <link linkend="prod8">updateProcedure</link> | <link linkend="prod5">userCommand</link> ) ( <SEMICOLON> )? <EOF></para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod8" xreflabel="updateProcedure"/>updateProcedure</para></entry>
-<entry align="left" valign="top"><para>::=
-( <link linkend="prod4">createUpdateProcedure</link> | <link linkend="prod9">triggerAction</link> ) <EOF></para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod10" xreflabel="alter"/>alter</para></entry>
-<entry align="left" valign="top"><para>::=
-<ALTER> ( ( <link linkend="prod11">nonReserved</link> <link linkend="prod2">id</link> <AS> <link linkend="prod12">queryExpression</link> ) | ( <PROCEDURE> <link linkend="prod2">id</link> <AS> <link linkend="prod13">block</link> ) | ( <TRIGGER> <ON> <link linkend="prod2">id</link> <link linkend="prod11">nonReserved</link> <OF> ( <INSERT> | <UPDATE> | <DELETE> ) <AS> <link linkend="prod9">triggerAction</link> ) )</para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod9" xreflabel="triggerAction"/>triggerAction</para></entry>
-<entry align="left" valign="top"><para>::=
-<FOR> <EACH> <ROW> <link linkend="prod13">block</link></para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod5" xreflabel="userCommand"/>userCommand</para></entry>
-<entry align="left" valign="top"><para>::=
-( <link linkend="prod12">queryExpression</link> | <link linkend="prod14">storedProcedure</link> | <link linkend="prod15">insert</link> | <link linkend="prod16">update</link> | <link linkend="prod17">delete</link> | <link linkend="prod18">dropTable</link> | <link linkend="prod19">createTempTable</link> | <link linkend="prod10">alter</link> )</para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod18" xreflabel="dropTable"/>dropTable</para></entry>
-<entry align="left" valign="top"><para>::=
-<DROP> <TABLE> <link linkend="prod2">id</link></para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod19" xreflabel="createTempTable"/>createTempTable</para></entry>
-<entry align="left" valign="top"><para>::=
-<CREATE> <LOCAL> <TEMPORARY> <TABLE> <link linkend="prod2">id</link> <LPAREN> <link linkend="prod20">tableElement</link> ( <COMMA> <link linkend="prod20">tableElement</link> )* ( <COMMA> <PRIMARY> <link linkend="prod11">nonReserved</link> <LPAREN> <link linkend="prod2">id</link> ( <COMMA> <link linkend="prod2">id</link> )* <RPAREN> )? <RPAREN></para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod20" xreflabel="tableElement"/>tableElement</para></entry>
-<entry align="left" valign="top"><para>::=
-<link linkend="prod2">id</link> ( <link linkend="prod21">dataTypeString</link> | <link linkend="prod11">nonReserved</link> ) ( <NOT> <NULL> )?</para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod22" xreflabel="errorStatement"/>errorStatement</para></entry>
-<entry align="left" valign="top"><para>::=
-<ERROR> <link linkend="prod23">expression</link></para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod24" xreflabel="statement"/>statement</para></entry>
-<entry align="left" valign="top"><para>::=
-( <link linkend="prod25">ifStatement</link> | <link linkend="prod26">loopStatement</link> | <link linkend="prod27">whileStatement</link> | <link linkend="prod28">delimitedStatement</link> )</para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod28" xreflabel="delimitedStatement"/>delimitedStatement</para></entry>
-<entry align="left" valign="top"><para>::=
-( <link linkend="prod29">assignStatement</link> | <link linkend="prod30">sqlStatement</link> | <link linkend="prod22">errorStatement</link> | <link linkend="prod31">declareStatement</link> | <link linkend="prod32">continueStatement</link> | <link linkend="prod33">breakStatement</link> ) <SEMICOLON></para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod13" xreflabel="block"/>block</para></entry>
-<entry align="left" valign="top"><para>::=
-( <link linkend="prod24">statement</link> | ( <BEGIN> ( <link linkend="prod24">statement</link> )* <END> ) )</para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod33" xreflabel="breakStatement"/>breakStatement</para></entry>
-<entry align="left" valign="top"><para>::=
-<BREAK></para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod32" xreflabel="continueStatement"/>continueStatement</para></entry>
-<entry align="left" valign="top"><para>::=
-<CONTINUE></para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod27" xreflabel="whileStatement"/>whileStatement</para></entry>
-<entry align="left" valign="top"><para>::=
-<WHILE> <LPAREN> <link linkend="prod34">criteria</link> <RPAREN> <link linkend="prod13">block</link></para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod26" xreflabel="loopStatement"/>loopStatement</para></entry>
-<entry align="left" valign="top"><para>::=
-<LOOP> <ON> <LPAREN> <link linkend="prod12">queryExpression</link> <RPAREN> <AS> <link linkend="prod2">id</link> <link linkend="prod13">block</link></para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod25" xreflabel="ifStatement"/>ifStatement</para></entry>
-<entry align="left" valign="top"><para>::=
-<IF> <LPAREN> <link linkend="prod34">criteria</link> <RPAREN> <link linkend="prod13">block</link> ( <ELSE> <link linkend="prod13">block</link> )?</para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod35" xreflabel="criteriaSelector"/>criteriaSelector</para></entry>
-<entry align="left" valign="top"><para>::=
-( ( <EQ> | <NE> | <NE2> | <LE> | <GE> | <LT> | <GT> | <IN> | <LIKE> | ( <IS> <NULL> ) | <BETWEEN> ) )? <CRITERIA> ( <ON> <LPAREN> <link linkend="prod2">id</link> ( <COMMA> <link linkend="prod2">id</link> )* <RPAREN> )?</para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod36" xreflabel="hasCriteria"/>hasCriteria</para></entry>
-<entry align="left" valign="top"><para>::=
-<HAS> <link linkend="prod35">criteriaSelector</link></para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod31" xreflabel="declareStatement"/>declareStatement</para></entry>
-<entry align="left" valign="top"><para>::=
-<DECLARE> <link linkend="prod37">dataType</link> <link linkend="prod2">id</link> ( ( <link linkend="prod11">nonReserved</link> | <EQ> ) <link linkend="prod38">assignStatementOperand</link> )?</para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod29" xreflabel="assignStatement"/>assignStatement</para></entry>
-<entry align="left" valign="top"><para>::=
-<link linkend="prod2">id</link> ( <link linkend="prod11">nonReserved</link> | <EQ> ) <link linkend="prod38">assignStatementOperand</link></para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod38" xreflabel="assignStatementOperand"/>assignStatementOperand</para></entry>
-<entry align="left" valign="top"><para>::=
-( ( <link linkend="prod15">insert</link> ) | <link linkend="prod16">update</link> | <link linkend="prod17">delete</link> | ( <link linkend="prod23">expression</link> ) | <link linkend="prod12">queryExpression</link> )</para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod30" xreflabel="sqlStatement"/>sqlStatement</para></entry>
-<entry align="left" valign="top"><para>::=
-( ( <link linkend="prod5">userCommand</link> ) | <link linkend="prod39">dynamicCommand</link> | ( <link linkend="prod2">id</link> ( <link linkend="prod11">nonReserved</link> | <EQ> ) <link linkend="prod14">storedProcedure</link> ) )</para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod40" xreflabel="translateCriteria"/>translateCriteria</para></entry>
-<entry align="left" valign="top"><para>::=
-<TRANSLATE> <link linkend="prod35">criteriaSelector</link> ( <WITH> <LPAREN> <link linkend="prod2">id</link> <EQ> <link linkend="prod23">expression</link> ( <COMMA> <link linkend="prod2">id</link> <EQ> <link linkend="prod23">expression</link> )* <RPAREN> )?</para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod4" xreflabel="createUpdateProcedure"/>createUpdateProcedure</para></entry>
-<entry align="left" valign="top"><para>::=
-<CREATE> ( <VIRTUAL> )? ( <UPDATE> )? <PROCEDURE> <link linkend="prod13">block</link></para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod39" xreflabel="dynamicCommand"/>dynamicCommand</para></entry>
-<entry align="left" valign="top"><para>::=
-( <EXECUTE> | <EXEC> ) ( ( <STRING> | <IMMEDIATE> ) )? <link linkend="prod23">expression</link> ( <AS> <link linkend="prod41">createElementsWithTypes</link> ( <INTO> <link linkend="prod2">id</link> )? )? ( <USING> <link linkend="prod42">setClauseList</link> )? ( <UPDATE> ( ( <INTEGERVAL> ) | ( <STAR> ) ) )?</para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod42" xreflabel="setClauseList"/>setClauseList</para></entry>
-<entry align="left" valign="top"><para>::=
-<link linkend="prod2">id</link> <EQ> ( <COMMA> <link linkend="prod2">id</link> <EQ> )*</para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod41" xreflabel="createElementsWithTypes"/>createElementsWithTypes</para></entry>
-<entry align="left" valign="top"><para>::=
-<link linkend="prod2">id</link> <link linkend="prod21">dataTypeString</link> ( <COMMA> <link linkend="prod2">id</link> <link linkend="prod21">dataTypeString</link> )*</para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod6" xreflabel="callableStatement"/>callableStatement</para></entry>
-<entry align="left" valign="top"><para>::=
-<LBRACE> ( <QMARK> <EQ> )? <CALL> <link linkend="prod2">id</link> ( <LPAREN> ( <link linkend="prod43">executeUnnamedParams</link> ) <RPAREN> )? <RBRACE> ( <link linkend="prod44">option</link> )?</para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod14" xreflabel="storedProcedure"/>storedProcedure</para></entry>
-<entry align="left" valign="top"><para>::=
-( ( <EXEC> | <EXECUTE> | <CALL> ) <link linkend="prod2">id</link> <LPAREN> ( <link linkend="prod45">executeNamedParams</link> | <link linkend="prod43">executeUnnamedParams</link> ) <RPAREN> ) ( <link linkend="prod44">option</link> )?</para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod43" xreflabel="executeUnnamedParams"/>executeUnnamedParams</para></entry>
-<entry align="left" valign="top"><para>::=
-( <link linkend="prod23">expression</link> ( <COMMA> <link linkend="prod23">expression</link> )* )?</para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod45" xreflabel="executeNamedParams"/>executeNamedParams</para></entry>
-<entry align="left" valign="top"><para>::=
-( <link linkend="prod2">id</link> <EQ> ( <GT> )? <link linkend="prod23">expression</link> ( <COMMA> <link linkend="prod2">id</link> <EQ> ( <GT> )? <link linkend="prod23">expression</link> )* )</para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod15" xreflabel="insert"/>insert</para></entry>
-<entry align="left" valign="top"><para>::=
-<INSERT> <INTO> <link linkend="prod2">id</link> ( <link linkend="prod46">columnList</link> )? ( ( <VALUES> <link linkend="prod47">rowValues</link> ) | ( <link linkend="prod12">queryExpression</link> ) ) ( <link linkend="prod44">option</link> )?</para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod46" xreflabel="columnList"/>columnList</para></entry>
-<entry align="left" valign="top"><para>::=
-<LPAREN> <link linkend="prod2">id</link> ( <COMMA> <link linkend="prod2">id</link> )* <RPAREN></para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod47" xreflabel="rowValues"/>rowValues</para></entry>
-<entry align="left" valign="top"><para>::=
-<LPAREN> <link linkend="prod23">expression</link> ( <COMMA> <link linkend="prod23">expression</link> )* <RPAREN></para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod16" xreflabel="update"/>update</para></entry>
-<entry align="left" valign="top"><para>::=
-<UPDATE> <link linkend="prod2">id</link> <SET> <link linkend="prod42">setClauseList</link> ( <link linkend="prod48">where</link> )? ( <link linkend="prod44">option</link> )?</para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod17" xreflabel="delete"/>delete</para></entry>
-<entry align="left" valign="top"><para>::=
-<DELETE> <FROM> <link linkend="prod2">id</link> ( <link linkend="prod48">where</link> )? ( <link linkend="prod44">option</link> )?</para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod12" xreflabel="queryExpression"/>queryExpression</para></entry>
-<entry align="left" valign="top"><para>::=
-( <WITH> <link linkend="prod49">withListElement</link> ( <COMMA> <link linkend="prod49">withListElement</link> )* )? <link linkend="prod50">queryExpressionBody</link></para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod49" xreflabel="withListElement"/>withListElement</para></entry>
-<entry align="left" valign="top"><para>::=
-<link linkend="prod2">id</link> ( <link linkend="prod46">columnList</link> )? <AS> <LPAREN> <link linkend="prod12">queryExpression</link> <RPAREN></para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod50" xreflabel="queryExpressionBody"/>queryExpressionBody</para></entry>
-<entry align="left" valign="top"><para>::=
-<link linkend="prod51">queryTerm</link> ( ( <UNION> | <EXCEPT> ) ( <ALL> | <DISTINCT> )? <link linkend="prod51">queryTerm</link> )* ( <link linkend="prod52">orderby</link> )? ( <link linkend="prod53">limit</link> )? ( <link linkend="prod44">option</link> )?</para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod51" xreflabel="queryTerm"/>queryTerm</para></entry>
-<entry align="left" valign="top"><para>::=
-<link linkend="prod54">queryPrimary</link> ( <INTERSECT> ( <ALL> | <DISTINCT> )? <link linkend="prod54">queryPrimary</link> )*</para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod54" xreflabel="queryPrimary"/>queryPrimary</para></entry>
-<entry align="left" valign="top"><para>::=
-( <link linkend="prod55">query</link> | ( <TABLE> <link linkend="prod2">id</link> ) | ( <LPAREN> <link linkend="prod50">queryExpressionBody</link> <RPAREN> ) )</para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod55" xreflabel="query"/>query</para></entry>
-<entry align="left" valign="top"><para>::=
-<link linkend="prod56">select</link> ( <link linkend="prod57">into</link> )? ( <link linkend="prod58">from</link> ( <link linkend="prod48">where</link> )? ( <link linkend="prod59">groupBy</link> )? ( <link linkend="prod60">having</link> )? )?</para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod57" xreflabel="into"/>into</para></entry>
-<entry align="left" valign="top"><para>::=
-<INTO> ( <link linkend="prod2">id</link> )</para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod56" xreflabel="select"/>select</para></entry>
-<entry align="left" valign="top"><para>::=
-<SELECT> ( <ALL> | ( <DISTINCT> ) )? ( <STAR> | ( <link linkend="prod61">selectSymbol</link> ( <COMMA> <link linkend="prod61">selectSymbol</link> )* ) )</para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod61" xreflabel="selectSymbol"/>selectSymbol</para></entry>
-<entry align="left" valign="top"><para>::=
-( <link linkend="prod62">selectExpression</link> | <link linkend="prod63">allInGroupSymbol</link> )</para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod62" xreflabel="selectExpression"/>selectExpression</para></entry>
-<entry align="left" valign="top"><para>::=
-( <link linkend="prod23">expression</link> ( ( <AS> )? <link linkend="prod2">id</link> )? )</para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod64" xreflabel="derivedColumn"/>derivedColumn</para></entry>
-<entry align="left" valign="top"><para>::=
-( <link linkend="prod23">expression</link> ( <AS> <link linkend="prod2">id</link> )? )</para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod63" xreflabel="allInGroupSymbol"/>allInGroupSymbol</para></entry>
-<entry align="left" valign="top"><para>::=
-<ALL_IN_GROUP></para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod65" xreflabel="xmlAgg"/>xmlAgg</para></entry>
-<entry align="left" valign="top"><para>::=
-<XMLAGG> <LPAREN> <link linkend="prod23">expression</link> ( <link linkend="prod52">orderby</link> )? <RPAREN></para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod66" xreflabel="arrayAgg"/>arrayAgg</para></entry>
-<entry align="left" valign="top"><para>::=
-<ARRAY_AGG> <LPAREN> <link linkend="prod23">expression</link> ( <link linkend="prod52">orderby</link> )? <RPAREN></para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod67" xreflabel="textAgg"/>textAgg</para></entry>
-<entry align="left" valign="top"><para>::=
-<link linkend="prod11">nonReserved</link> <LPAREN> <FOR> <link linkend="prod64">derivedColumn</link> ( <COMMA> <link linkend="prod64">derivedColumn</link> )* ( <ID> <link linkend="prod68">charVal</link> )? ( ( <ID> <link linkend="prod68">charVal</link> ) )? ( <ID> )? ( ( <ID> <link linkend="prod2">id</link> ) )? ( <link linkend="prod52">orderby</link> )? <RPAREN></para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod69" xreflabel="aggregateSymbol"/>aggregateSymbol</para></entry>
-<entry align="left" valign="top"><para>::=
-( ( <link linkend="prod11">nonReserved</link> <LPAREN> <STAR> <RPAREN> ) | ( ( <link linkend="prod11">nonReserved</link> | <ANY> | <SOME> ) <LPAREN> ( <DISTINCT> | <ALL> )? <link linkend="prod23">expression</link> <RPAREN> ) )</para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod58" xreflabel="from"/>from</para></entry>
-<entry align="left" valign="top"><para>::=
-<FROM> ( <link linkend="prod70">tableReference</link> ( <COMMA> <link linkend="prod70">tableReference</link> )* )</para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod70" xreflabel="tableReference"/>tableReference</para></entry>
-<entry align="left" valign="top"><para>::=
-( ( <LBRACE> <link linkend="prod11">nonReserved</link> <link linkend="prod71">joinedTable</link> <RBRACE> ) | <link linkend="prod71">joinedTable</link> )</para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod71" xreflabel="joinedTable"/>joinedTable</para></entry>
-<entry align="left" valign="top"><para>::=
-<link linkend="prod72">tablePrimary</link> ( ( <link linkend="prod73">crossJoin</link> | <link linkend="prod74">qualifiedJoin</link> ) )*</para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod73" xreflabel="crossJoin"/>crossJoin</para></entry>
-<entry align="left" valign="top"><para>::=
-( ( <CROSS> | <UNION> ) <JOIN> <link linkend="prod72">tablePrimary</link> )</para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod74" xreflabel="qualifiedJoin"/>qualifiedJoin</para></entry>
-<entry align="left" valign="top"><para>::=
-( ( ( <RIGHT> ( <OUTER> )? ) | ( <LEFT> ( <OUTER> )? ) | ( <FULL> ( <OUTER> )? ) | <INNER> )? <JOIN> <link linkend="prod70">tableReference</link> <ON> <link linkend="prod34">criteria</link> )</para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod72" xreflabel="tablePrimary"/>tablePrimary</para></entry>
-<entry align="left" valign="top"><para>::=
-( <link linkend="prod75">textTable</link> | <link linkend="prod76">arrayTable</link> | <link linkend="prod77">xmlTable</link> | <link linkend="prod78">unaryFromClause</link> | <link linkend="prod79">subqueryFromClause</link> | ( <LPAREN> <link linkend="prod71">joinedTable</link> <RPAREN> ) ) ( ( <MAKEDEP> ) | ( <MAKENOTDEP> ) )?</para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod80" xreflabel="xmlSerialize"/>xmlSerialize</para></entry>
-<entry align="left" valign="top"><para>::=
-<XMLSERIALIZE> <LPAREN> ( <link linkend="prod11">nonReserved</link> )? <link linkend="prod23">expression</link> ( <AS> ( <STRING> | <VARCHAR> | <CLOB> ) )? <RPAREN></para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod11" xreflabel="nonReserved"/>nonReserved</para></entry>
-<entry align="left" valign="top"><para>::=
-<ID></para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod76" xreflabel="arrayTable"/>arrayTable</para></entry>
-<entry align="left" valign="top"><para>::=
-<ID> <LPAREN> <link linkend="prod23">expression</link> <link linkend="prod11">nonReserved</link> <link linkend="prod41">createElementsWithTypes</link> <RPAREN> ( <AS> )? <link linkend="prod2">id</link></para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod75" xreflabel="textTable"/>textTable</para></entry>
-<entry align="left" valign="top"><para>::=
-<ID> <LPAREN> <link linkend="prod23">expression</link> <link linkend="prod11">nonReserved</link> <link linkend="prod81">textColumn</link> ( <COMMA> <link linkend="prod81">textColumn</link> )* ( <ID> <link linkend="prod68">charVal</link> )? ( ( <ESCAPE> <link linkend="prod68">charVal</link> ) | ( <ID> <link linkend="prod68">charVal</link> ) )? ( <ID> ( <link linkend="prod82">intVal</link> )? )? ( <ID> <link linkend="prod82">intVal</link> )? <RPAREN> ( <AS> )? <link linkend="prod2">id</link></para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod81" xreflabel="textColumn"/>textColumn</para></entry>
-<entry align="left" valign="top"><para>::=
-<link linkend="prod2">id</link> <link linkend="prod37">dataType</link> ( <ID> <link linkend="prod82">intVal</link> )?</para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod83" xreflabel="xmlQuery"/>xmlQuery</para></entry>
-<entry align="left" valign="top"><para>::=
-<XMLQUERY> <LPAREN> ( <link linkend="prod84">xmlNamespaces</link> <COMMA> )? <link linkend="prod1">stringVal</link> ( <ID> <link linkend="prod64">derivedColumn</link> ( <COMMA> <link linkend="prod64">derivedColumn</link> )* )? ( ( <NULL> | <link linkend="prod11">nonReserved</link> ) <ON> <link linkend="prod11">nonReserved</link> )? <RPAREN></para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod77" xreflabel="xmlTable"/>xmlTable</para></entry>
-<entry align="left" valign="top"><para>::=
-<XMLTABLE> <LPAREN> ( <link linkend="prod84">xmlNamespaces</link> <COMMA> )? <link linkend="prod1">stringVal</link> ( <ID> <link linkend="prod64">derivedColumn</link> ( <COMMA> <link linkend="prod64">derivedColumn</link> )* )? ( <ID> <link linkend="prod85">xmlColumn</link> ( <COMMA> <link linkend="prod85">xmlColumn</link> )* )? <RPAREN> ( <AS> )? <link linkend="prod2">id</link></para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod85" xreflabel="xmlColumn"/>xmlColumn</para></entry>
-<entry align="left" valign="top"><para>::=
-<link linkend="prod2">id</link> ( ( <FOR> <link linkend="prod11">nonReserved</link> ) | ( <link linkend="prod37">dataType</link> ( <DEFAULT_KEYWORD> <link linkend="prod23">expression</link> )? ( <link linkend="prod11">nonReserved</link> <link linkend="prod1">stringVal</link> )? ) )</para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod82" xreflabel="intVal"/>intVal</para></entry>
-<entry align="left" valign="top"><para>::=
-<INTEGERVAL></para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod79" xreflabel="subqueryFromClause"/>subqueryFromClause</para></entry>
-<entry align="left" valign="top"><para>::=
-( <TABLE> )? <LPAREN> ( <link linkend="prod12">queryExpression</link> | <link linkend="prod14">storedProcedure</link> ) <RPAREN> ( <AS> )? <link linkend="prod2">id</link></para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod78" xreflabel="unaryFromClause"/>unaryFromClause</para></entry>
-<entry align="left" valign="top"><para>::=
-( <ID> ( ( <AS> )? <link linkend="prod2">id</link> )? )</para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod48" xreflabel="where"/>where</para></entry>
-<entry align="left" valign="top"><para>::=
-<WHERE> <link linkend="prod34">criteria</link></para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod34" xreflabel="criteria"/>criteria</para></entry>
-<entry align="left" valign="top"><para>::=
-<link linkend="prod86">compoundCritOr</link></para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod86" xreflabel="compoundCritOr"/>compoundCritOr</para></entry>
-<entry align="left" valign="top"><para>::=
-<link linkend="prod87">compoundCritAnd</link> ( <OR> <link linkend="prod87">compoundCritAnd</link> )*</para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod87" xreflabel="compoundCritAnd"/>compoundCritAnd</para></entry>
-<entry align="left" valign="top"><para>::=
-<link linkend="prod88">notCrit</link> ( <AND> <link linkend="prod88">notCrit</link> )*</para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod88" xreflabel="notCrit"/>notCrit</para></entry>
-<entry align="left" valign="top"><para>::=
-( <NOT> )? <link linkend="prod89">booleanPrimary</link></para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod89" xreflabel="booleanPrimary"/>booleanPrimary</para></entry>
-<entry align="left" valign="top"><para>::=
-( <link linkend="prod40">translateCriteria</link> | ( <link linkend="prod90">commonValueExpression</link> ( ( <link linkend="prod91">betweenCrit</link> | <link linkend="prod92">matchCrit</link> | <link linkend="prod93">setCrit</link> | <link linkend="prod94">isNullCrit</link> | <link linkend="prod95">subqueryCompareCriteria</link> | <link linkend="prod96">compareCrit</link> ) )? ) | <link linkend="prod97">existsCriteria</link> | <link linkend="prod36">hasCriteria</link> )</para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod98" xreflabel="operator"/>operator</para></entry>
-<entry align="left" valign="top"><para>::=
-( <EQ> | <NE> | <NE2> | <LT> | <LE> | <GT> | <GE> )</para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod96" xreflabel="compareCrit"/>compareCrit</para></entry>
-<entry align="left" valign="top"><para>::=
-<link linkend="prod98">operator</link> <link linkend="prod90">commonValueExpression</link></para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod99" xreflabel="subquery"/>subquery</para></entry>
-<entry align="left" valign="top"><para>::=
-<link linkend="prod100">subqueryAndHint</link></para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod100" xreflabel="subqueryAndHint"/>subqueryAndHint</para></entry>
-<entry align="left" valign="top"><para>::=
-<LPAREN> ( <link linkend="prod12">queryExpression</link> | ( <link linkend="prod14">storedProcedure</link> ) ) <RPAREN></para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod95" xreflabel="subqueryCompareCriteria"/>subqueryCompareCriteria</para></entry>
-<entry align="left" valign="top"><para>::=
-<link linkend="prod98">operator</link> ( <ANY> | <SOME> | <ALL> ) <link linkend="prod99">subquery</link></para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod92" xreflabel="matchCrit"/>matchCrit</para></entry>
-<entry align="left" valign="top"><para>::=
-( <NOT> )? <LIKE> <link linkend="prod90">commonValueExpression</link> ( <ESCAPE> <link linkend="prod68">charVal</link> | ( <LBRACE> <ESCAPE> <link linkend="prod68">charVal</link> <RBRACE> ) )?</para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod68" xreflabel="charVal"/>charVal</para></entry>
-<entry align="left" valign="top"><para>::=
-<link linkend="prod1">stringVal</link></para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod91" xreflabel="betweenCrit"/>betweenCrit</para></entry>
-<entry align="left" valign="top"><para>::=
-( <NOT> )? <BETWEEN> <link linkend="prod90">commonValueExpression</link> <AND> <link linkend="prod90">commonValueExpression</link></para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod94" xreflabel="isNullCrit"/>isNullCrit</para></entry>
-<entry align="left" valign="top"><para>::=
-<IS> ( <NOT> )? <NULL></para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod93" xreflabel="setCrit"/>setCrit</para></entry>
-<entry align="left" valign="top"><para>::=
-( <NOT> )? <IN> ( ( <link linkend="prod100">subqueryAndHint</link> ) | ( <LPAREN> <link linkend="prod90">commonValueExpression</link> ( <COMMA> <link linkend="prod90">commonValueExpression</link> )* <RPAREN> ) )</para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod97" xreflabel="existsCriteria"/>existsCriteria</para></entry>
-<entry align="left" valign="top"><para>::=
-<EXISTS> <link linkend="prod100">subqueryAndHint</link></para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod59" xreflabel="groupBy"/>groupBy</para></entry>
-<entry align="left" valign="top"><para>::=
-<GROUP> <BY> ( <link linkend="prod101">groupByItem</link> ( <COMMA> <link linkend="prod101">groupByItem</link> )* )</para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod101" xreflabel="groupByItem"/>groupByItem</para></entry>
-<entry align="left" valign="top"><para>::=
-<link linkend="prod23">expression</link></para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod60" xreflabel="having"/>having</para></entry>
-<entry align="left" valign="top"><para>::=
-<HAVING> <link linkend="prod34">criteria</link></para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod52" xreflabel="orderby"/>orderby</para></entry>
-<entry align="left" valign="top"><para>::=
-<ORDER> <BY> <link linkend="prod102">sortSpecification</link> ( <COMMA> <link linkend="prod102">sortSpecification</link> )*</para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod102" xreflabel="sortSpecification"/>sortSpecification</para></entry>
-<entry align="left" valign="top"><para>::=
-<link linkend="prod103">sortKey</link> ( <ASC> | <DESC> )? ( <link linkend="prod11">nonReserved</link> <link linkend="prod11">nonReserved</link> )?</para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod103" xreflabel="sortKey"/>sortKey</para></entry>
-<entry align="left" valign="top"><para>::=
-<link linkend="prod23">expression</link></para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod53" xreflabel="limit"/>limit</para></entry>
-<entry align="left" valign="top"><para>::=
-<LIMIT> ( <INTEGERVAL> | <QMARK> ) ( <COMMA> ( <INTEGERVAL> | <QMARK> ) )?</para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod44" xreflabel="option"/>option</para></entry>
-<entry align="left" valign="top"><para>::=
-<OPTION> ( <MAKEDEP> <link linkend="prod2">id</link> ( <COMMA> <link linkend="prod2">id</link> )* | <MAKENOTDEP> <link linkend="prod2">id</link> ( <COMMA> <link linkend="prod2">id</link> )* | <NOCACHE> ( <link linkend="prod2">id</link> ( <COMMA> <link linkend="prod2">id</link> )* )? )*</para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod23" xreflabel="expression"/>expression</para></entry>
-<entry align="left" valign="top"><para>::=
-<link linkend="prod34">criteria</link></para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod90" xreflabel="commonValueExpression"/>commonValueExpression</para></entry>
-<entry align="left" valign="top"><para>::=
-( <link linkend="prod104">plusExpression</link> ( <CONCAT_OP> <link linkend="prod104">plusExpression</link> )* )</para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod104" xreflabel="plusExpression"/>plusExpression</para></entry>
-<entry align="left" valign="top"><para>::=
-( <link linkend="prod105">timesExpression</link> ( <link linkend="prod106">plusOperator</link> <link linkend="prod105">timesExpression</link> )* )</para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod106" xreflabel="plusOperator"/>plusOperator</para></entry>
-<entry align="left" valign="top"><para>::=
-( <PLUS> | <MINUS> )</para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod105" xreflabel="timesExpression"/>timesExpression</para></entry>
-<entry align="left" valign="top"><para>::=
-( <link linkend="prod107">valueExpressionPrimary</link> ( <link linkend="prod108">timesOperator</link> <link linkend="prod107">valueExpressionPrimary</link> )* )</para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod108" xreflabel="timesOperator"/>timesOperator</para></entry>
-<entry align="left" valign="top"><para>::=
-( <STAR> | <SLASH> )</para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod107" xreflabel="valueExpressionPrimary"/>valueExpressionPrimary</para></entry>
-<entry align="left" valign="top"><para>::=
-( <QMARK> | <POS_REF> | <link linkend="prod109">literal</link> | ( <LBRACE> <link linkend="prod11">nonReserved</link> <link linkend="prod110">function</link> <RBRACE> ) | ( <link linkend="prod67">textAgg</link> ) | ( <link linkend="prod69">aggregateSymbol</link> ) | ( <link linkend="prod69">aggregateSymbol</link> ) | ( <link linkend="prod69">aggregateSymbol</link> ) | ( <link linkend="prod65">xmlAgg</link> ) | ( <link linkend="prod66">arrayAgg</link> ) | ( <link linkend="prod110">function</link> ) | ( <ID> ( <LSBRACE> <link linkend="prod82">intVal</link> <RSBRACE> )? ) | <link linkend="prod99">subquery</link> | ( <LPAREN> <link linkend="prod23">expression</link> <RPAREN> ( <LSBRACE> <link linkend="prod82">intVal</link> <RSBRACE> )? ) | <link linkend="prod111">searchedCaseExpression</link> | <link linkend="prod112">caseExpression</link> )</para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod112" xreflabel="caseExpression"/>caseExpression</para></entry>
-<entry align="left" valign="top"><para>::=
-<CASE> <link linkend="prod23">expression</link> ( <WHEN> <link linkend="prod23">expression</link> <THEN> <link linkend="prod23">expression</link> )+ ( <ELSE> <link linkend="prod23">expression</link> )? <END></para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod111" xreflabel="searchedCaseExpression"/>searchedCaseExpression</para></entry>
-<entry align="left" valign="top"><para>::=
-<CASE> ( <WHEN> <link linkend="prod34">criteria</link> <THEN> <link linkend="prod23">expression</link> )+ ( <ELSE> <link linkend="prod23">expression</link> )? <END></para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod110" xreflabel="function"/>function</para></entry>
-<entry align="left" valign="top"><para>::=
-( ( <CONVERT> <LPAREN> <link linkend="prod23">expression</link> <COMMA> <link linkend="prod37">dataType</link> <RPAREN> ) | ( <CAST> <LPAREN> <link linkend="prod23">expression</link> <AS> <link linkend="prod37">dataType</link> <RPAREN> ) | ( <link linkend="prod11">nonReserved</link> <LPAREN> <link linkend="prod23">expression</link> <COMMA> <link linkend="prod113">stringConstant</link> <RPAREN> ) | ( <link linkend="prod11">nonReserved</link> <LPAREN> <link linkend="prod114">intervalType</link> <COMMA> <link linkend="prod23">expression</link> <COMMA> <link linkend="prod23">expression</link> <RPAREN> ) | <link linkend="prod115">queryString</link> | ( ( <LEFT> | <RIGHT> | <CHAR> | <USER> | <YEAR> | <MONTH> | <HOUR> | <MINUTE> | <SECOND> | <XMLCONCAT> | <XMLCOMMENT> ) <LPAREN> ( <link linkend="prod23">expression</link> !
( <COMMA> <link linkend="prod23">expression</link> )* )? <RPAREN> ) | ( ( <INSERT> ) <LPAREN> ( <link linkend="prod23">expression</link> ( <COMMA> <link linkend="prod23">expression</link> )* )? <RPAREN> ) | ( ( <TRANSLATE> ) <LPAREN> ( <link linkend="prod23">expression</link> ( <COMMA> <link linkend="prod23">expression</link> )* )? <RPAREN> ) | <link linkend="prod116">xmlParse</link> | <link linkend="prod117">xmlElement</link> | ( <XMLPI> <LPAREN> ( <ID> <link linkend="prod118">idExpression</link> | <link linkend="prod118">idExpression</link> ) ( <COMMA> <link linkend="prod23">expression</link> )? <RPAREN> ) | <link linkend="prod119">xmlForest</link> | <link linkend="prod80">xmlSerialize</link> | <link linkend="prod83">xmlQuery</link> | ( <link linkend="prod2">id</link> <LPAREN> ( <link linkend="prod23">expression</link> ( <COMMA> <link linkend="prod23">expression</link> )*!
)? <RPAREN> ) )</para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod113" xreflabel="stringConstant"/>stringConstant</para></entry>
-<entry align="left" valign="top"><para>::=
-<link linkend="prod1">stringVal</link></para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod116" xreflabel="xmlParse"/>xmlParse</para></entry>
-<entry align="left" valign="top"><para>::=
-<XMLPARSE> <LPAREN> <link linkend="prod11">nonReserved</link> <link linkend="prod23">expression</link> ( <link linkend="prod11">nonReserved</link> )? <RPAREN></para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod115" xreflabel="queryString"/>queryString</para></entry>
-<entry align="left" valign="top"><para>::=
-<link linkend="prod11">nonReserved</link> <LPAREN> <link linkend="prod23">expression</link> ( <COMMA> <link linkend="prod64">derivedColumn</link> )* <RPAREN></para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod117" xreflabel="xmlElement"/>xmlElement</para></entry>
-<entry align="left" valign="top"><para>::=
-<XMLELEMENT> <LPAREN> ( <ID> <link linkend="prod2">id</link> | <link linkend="prod2">id</link> ) ( <COMMA> <link linkend="prod84">xmlNamespaces</link> )? ( <COMMA> <link linkend="prod120">xmlAttributes</link> )? ( <COMMA> <link linkend="prod23">expression</link> )* <RPAREN></para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod120" xreflabel="xmlAttributes"/>xmlAttributes</para></entry>
-<entry align="left" valign="top"><para>::=
-<XMLATTRIBUTES> <LPAREN> <link linkend="prod64">derivedColumn</link> ( <COMMA> <link linkend="prod64">derivedColumn</link> )* <RPAREN></para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod119" xreflabel="xmlForest"/>xmlForest</para></entry>
-<entry align="left" valign="top"><para>::=
-<XMLFOREST> <LPAREN> ( <link linkend="prod84">xmlNamespaces</link> <COMMA> )? <link linkend="prod64">derivedColumn</link> ( <COMMA> <link linkend="prod64">derivedColumn</link> )* <RPAREN></para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod84" xreflabel="xmlNamespaces"/>xmlNamespaces</para></entry>
-<entry align="left" valign="top"><para>::=
-<XMLNAMESPACES> <LPAREN> <link linkend="prod121">namespaceItem</link> ( <COMMA> <link linkend="prod121">namespaceItem</link> )* <RPAREN></para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod121" xreflabel="namespaceItem"/>namespaceItem</para></entry>
-<entry align="left" valign="top"><para>::=
-( <link linkend="prod1">stringVal</link> <AS> <link linkend="prod2">id</link> )</para></entry></row>
-<row>
-<entry align="right" valign="top"><para></para></entry>
-<entry align="left" valign="top"><para>::=
-( <NO> <DEFAULT_KEYWORD> )</para></entry></row>
-<row>
-<entry align="right" valign="top"><para></para></entry>
-<entry align="left" valign="top"><para>::=
-( <DEFAULT_KEYWORD> <link linkend="prod1">stringVal</link> )</para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod118" xreflabel="idExpression"/>idExpression</para></entry>
-<entry align="left" valign="top"><para>::=
-<link linkend="prod2">id</link></para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod21" xreflabel="dataTypeString"/>dataTypeString</para></entry>
-<entry align="left" valign="top"><para>::=
-( <STRING> | <VARCHAR> | <BOOLEAN> | <BYTE> | <TINYINT> | <SHORT> | <SMALLINT> | <CHAR> | <INTEGER> | <LONG> | <BIGINT> | <BIGINTEGER> | <FLOAT> | <REAL> | <DOUBLE> | <BIGDECIMAL> | <DECIMAL> | <DATE> | <TIME> | <TIMESTAMP> | <OBJECT> | <BLOB> | <CLOB> | <XML> )</para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod37" xreflabel="dataType"/>dataType</para></entry>
-<entry align="left" valign="top"><para>::=
-<link linkend="prod21">dataTypeString</link></para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod114" xreflabel="intervalType"/>intervalType</para></entry>
-<entry align="left" valign="top"><para>::=
-( <link linkend="prod11">nonReserved</link> )</para></entry></row>
-<row>
-<entry align="right" valign="top"><para><anchor id="prod109" xreflabel="literal"/>literal</para></entry>
-<entry align="left" valign="top"><para>::=
-( <link linkend="prod1">stringVal</link> | <INTEGERVAL> | <FLOATVAL> | <FALSE> | <TRUE> | <UNKNOWN> | <NULL> | ( ( <BOOLEANTYPE> | <TIMESTAMPTYPE> | <DATETYPE> | <TIMETYPE> ) <link linkend="prod1">stringVal</link> <RBRACE> ) )</para></entry></row>
-</tbody>
-</tgroup>
-</informaltable>
-</section>
-</appendix>
Copied: tags/teiid-parent-7.4.0.CR1/documentation/reference/src/main/docbook/en-US/content/grammar.xml (from rev 3138, trunk/documentation/reference/src/main/docbook/en-US/content/grammar.xml)
===================================================================
--- tags/teiid-parent-7.4.0.CR1/documentation/reference/src/main/docbook/en-US/content/grammar.xml (rev 0)
+++ tags/teiid-parent-7.4.0.CR1/documentation/reference/src/main/docbook/en-US/content/grammar.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -0,0 +1,899 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<appendix id="grammar">
+ <title>BNF for SQL Grammar</title><section>
+<title>TOKENS</title>
+<informaltable frame="none">
+<tgroup cols="1">
+<colspec colname="c1" colwidth="100*"/>
+<tbody>
+<row><entry><para>
+<DEFAULT> SKIP : {
+" "
+| "\t"
+| "\n"
+| "\r"
+}
+
+</para></entry></row>
+<row><entry><para>
+<DEFAULT> MORE : {
+"/*" : IN_MULTI_LINE_COMMENT
+}
+
+</para></entry></row>
+<row><entry><para>
+<IN_MULTI_LINE_COMMENT> SPECIAL : {
+<MULTI_LINE_COMMENT: "*/"> : DEFAULT
+}
+
+</para></entry></row>
+<row><entry><para>
+<IN_MULTI_LINE_COMMENT> MORE : {
+<~[]>
+}
+
+</para></entry></row>
+<row><entry><para>
+<DEFAULT> TOKEN : {
+<STRING: "string">
+| <VARCHAR: "varchar">
+| <BOOLEAN: "boolean">
+| <BYTE: "byte">
+| <TINYINT: "tinyint">
+| <SHORT: "short">
+| <SMALLINT: "smallint">
+| <CHAR: "char">
+| <INTEGER: "integer">
+| <LONG: "long">
+| <BIGINT: "bigint">
+| <BIGINTEGER: "biginteger">
+| <FLOAT: "float">
+| <REAL: "real">
+| <DOUBLE: "double">
+| <BIGDECIMAL: "bigdecimal">
+| <DECIMAL: "decimal">
+| <DATE: "date">
+| <TIME: "time">
+| <TIMESTAMP: "timestamp">
+| <OBJECT: "object">
+| <BLOB: "blob">
+| <CLOB: "clob">
+| <XML: "xml">
+}
+
+</para></entry></row>
+<row><entry><para>
+<DEFAULT> TOKEN : {
+<CAST: "cast">
+| <CONVERT: "convert">
+}
+
+</para></entry></row>
+<row><entry><para>
+<DEFAULT> TOKEN : {
+<ADD: "add">
+| <ALL: "all">
+| <ALTER: "alter">
+| <AND: "and">
+| <ANY: "any">
+| <ARRAY: "array">
+| <ARRAY_AGG: "array_agg">
+| <AS: "as">
+| <ASC: "asc">
+| <ATOMIC: "atomic">
+| <AUTORIZATION: "authorization">
+| <BEGIN: "begin">
+| <BETWEEN: "between">
+| <BINARY: "binary">
+| <BOTH: "both">
+| <BREAK: "break">
+| <BY: "by">
+| <CALL: "call">
+| <CALLED: "called">
+| <CASCADED: "cascaded">
+| <CASE: "case">
+| <CHARACTER: "character">
+| <CHECK: "check">
+| <CLOSE: "close">
+| <COLLATE: "collate">
+| <COLUMN: "column">
+| <COMMIT: "commit">
+| <CONNECT: "connect">
+| <CONSTRAINT: "constraint">
+| <CONTINUE: "continue">
+| <CORRESPONDING: "corresponding">
+| <CURRENT_DATE: "current_date">
+| <CURRENT_TIME: "current_time">
+| <CURRENT_TIMESTAMP: "current_timestamp">
+| <CURRENT_USER: "current_user">
+| <CREATE: "create">
+| <CRITERIA: "criteria">
+| <CROSS: "cross">
+| <CURSOR: "cursor">
+| <DAY: "day">
+| <DEALLOCATE: "deallocate">
+| <DEFAULT_KEYWORD: "default">
+| <DECLARE: "declare">
+| <DELETE: "delete">
+| <DESC: "desc">
+| <DESCRIBE: "describe">
+| <DETERMINISTIC: "deterministic">
+| <DISCONNECT: "disconnect">
+| <DISTINCT: "distinct">
+| <DROP: "drop">
+| <EACH: "each">
+| <ELSE: "else">
+| <END: "end">
+| <ERROR: "error">
+| <ESCAPE: "escape">
+| <EXCEPT: "except">
+| <EXEC: "exec">
+| <EXECUTE: "execute">
+| <EXTERNAL: "external">
+| <EXISTS: "exists">
+| <FALSE: "false">
+| <FETCH: "fetch">
+| <FILTER: "filter">
+| <FOR: "for">
+| <FORIEGN: "foriegn">
+| <FROM: "from">
+| <FULL: "full">
+| <FUNCTION: "function">
+| <GET: "get">
+| <GLOBAL: "global">
+| <GRANT: "grant">
+| <GROUP: "group">
+| <HAS: "has">
+| <HAVING: "having">
+| <HOLD: "hold">
+| <HOUR: "hour">
+| <IF: "if">
+| <IDENTITY: "identity">
+| <IMMEDIATE: "immediate">
+| <IN: "in">
+| <INDICATOR: "indicator">
+| <INNER: "inner">
+| <INPUT: "input">
+| <INOUT: "inout">
+| <INSENSITIVE: "insensitive">
+| <INSERT: "insert">
+| <INTERSECT: "intersect">
+| <INTERVAL: "interval">
+| <INTO: "into">
+| <IS: "is">
+| <ISOLATION: "isolation">
+| <JOIN: "join">
+| <LEFT: "left">
+| <LANGUAGE: "language">
+| <LARGE: "large">
+| <LEADING: "leading">
+| <LIKE: "like">
+| <LIMIT: "limit">
+| <LOCAL: "local">
+| <LOOP: "loop">
+| <MAKEDEP: "makedep">
+| <MAKENOTDEP: "makenotdep">
+| <MATCH: "match">
+| <MERGE: "merge">
+| <METHOD: "method">
+| <MINUTE: "minute">
+| <MODIFIES: "modifies">
+| <MODULE: "module">
+| <MONTH: "month">
+| <NATURAL: "natural">
+| <NEW: "new">
+| <NOCACHE: "nocache">
+| <NO: "no">
+| <NONE: "none">
+| <NOT: "not">
+| <NULL: "null">
+| <OF: "of">
+| <OLD: "old">
+| <ON: "on">
+| <ONLY: "only">
+| <OPEN: "open">
+| <OPTION: "option">
+| <OR: "or">
+| <ORDER: "order">
+| <OUTER: "outer">
+| <OUTPUT: "output">
+| <OVER: "over">
+| <OVERLAPS: "OVERLAPS">
+| <PARAMETER: "parameter">
+| <PARTITION: "partition">
+| <PRECISION: "precision">
+| <PREPARE: "prepare">
+| <PRIMARY: "primary">
+| <PROCEDURE: "procedure">
+| <RANGE: "range">
+| <READS: "reads">
+| <RECURSIVE: "recursive">
+| <REFERENCES: "REFERENCES">
+| <REFERENCING: "REFERENCING">
+| <RETURN: "return">
+| <RETURNS: "returns">
+| <REVOKE: "REVOKE">
+| <RIGHT: "right">
+| <ROLLBACK: "ROLLBACK">
+| <ROLLUP: "ROLLUP">
+| <ROW: "row">
+| <ROWS: "rows">
+| <SAVEPOINT: "savepoint">
+| <SCROLL: "scroll">
+| <SEARCH: "search">
+| <SECOND: "second">
+| <SELECT: "select">
+| <SENSITIVE: "sensitive">
+| <SESSION_USER: "session_user">
+| <SET: "set">
+| <SIMILAR: "similar">
+| <SPECIFIC: "specific">
+| <SOME: "some">
+| <SQL: "sql">
+| <SQLEXCEPTION: "sqlexception">
+| <SQLSTATE: "sqlstate">
+| <SQLWARNING: "sqlwarning">
+| <START: "start">
+| <STATIC: "static">
+| <SYSTEM: "system">
+| <SYSTEM_USER: "system_user">
+| <TABLE: "table">
+| <TEMPORARY: "temporary">
+| <THEN: "then">
+| <TIMEZONE_HOUR: "timezone_hour">
+| <TIMEZONE_MINUTE: "timezone_minute">
+| <TO: "to">
+| <TRAILING: "trailing">
+| <TRANSLATE: "translate">
+| <TRIGGER: "trigger">
+| <TRUE: "true">
+| <UNION: "union">
+| <UNIQUE: "unique">
+| <UNKNOWN: "unknown">
+| <USER: "user">
+| <UPDATE: "update">
+| <USING: "using">
+| <VALUE: "value">
+| <VALUES: "values">
+| <VIRTUAL: "virtual">
+| <WHEN: "when">
+| <WHENEVER: "whenever">
+| <WHERE: "where">
+| <WITH: "with">
+| <WHILE: "while">
+| <WINDOW: "window">
+| <WITHIN: "within">
+| <WITHOUT: "without">
+| <YEAR: "year">
+| <ALLOCATE: "allocate">
+| <ARE: "are">
+| <ASENSITIVE: "asensitive">
+| <ASYMETRIC: "asymetric">
+| <CYCLE: "cycle">
+| <DEC: "dec">
+| <DEREF: "deref">
+| <DYNAMIC: "dynamic">
+| <ELEMENT: "element">
+| <FREE: "free">
+| <INT: "int">
+| <LATERAL: "lateral">
+| <LOCALTIME: "localtime">
+| <LOCALTIMESTAMP: "localtimestamp">
+| <MEMBER: "member">
+| <MULTISET: "multiset">
+| <NATIONAL: "national">
+| <NCHAR: "nchar">
+| <NCLOB: "nclob">
+| <NUMERIC: "numeric">
+| <RELEASE: "release">
+| <SPECIFICTYPE: "specifictype">
+| <SYMETRIC: "symetric">
+| <SUBMULTILIST: "submultilist">
+| <TRANSLATION: "translation">
+| <TREAT: "treat">
+| <VARYING: "varying">
+}
+
+</para></entry></row>
+<row><entry><para>
+<DEFAULT> TOKEN : {
+<XMLAGG: "xmlagg">
+| <XMLATTRIBUTES: "xmlattributes">
+| <XMLBINARY: "xmlbinary">
+| <XMLCAST: "xmlcast">
+| <XMLCONCAT: "xmlconcat">
+| <XMLCOMMENT: "xmlcomment">
+| <XMLDOCUMENT: "xmldocument">
+| <XMLELEMENT: "xmlelement">
+| <XMLEXISTS: "xmlexists">
+| <XMLFOREST: "xmlforest">
+| <XMLITERATE: "xmliterate">
+| <XMLNAMESPACES: "xmlnamespaces">
+| <XMLPARSE: "xmlparse">
+| <XMLPI: "xmlpi">
+| <XMLQUERY: "xmlquery">
+| <XMLSERIALIZE: "xmlserialize">
+| <XMLTABLE: "xmltable">
+| <XMLTEXT: "xmltext">
+| <XMLVALIDATE: "xmlvalidate">
+}
+
+</para></entry></row>
+<row><entry><para>
+<DEFAULT> TOKEN : {
+<DATALINK: "datalink">
+| <DLNEWCOPY: "dlnewcopy">
+| <DLPREVIOUSCOPY: "dlpreviouscopy">
+| <DLURLCOMPLETE: "dlurlcomplete">
+| <DLURLCOMPLETEWRITE: "dlurlcompletewrite">
+| <DLURLCOMPLETEONLY: "dlurlcompleteonly">
+| <DLURLPATH: "dlurlpath">
+| <DLURLPATHWRITE: "dlurlpathwrite">
+| <DLURLPATHONLY: "dlurlpathonly">
+| <DLURLSCHEME: "dlurlscheme">
+| <DLURLSERVER: "dlurlserver">
+| <DLVALUE: "dlvalue">
+| <IMPORT: "import">
+}
+
+</para></entry></row>
+<row><entry><para>
+<DEFAULT> TOKEN : {
+<ALL_IN_GROUP: <ID> <PERIOD> <STAR>>
+| <ID: <QUOTED_ID> (<PERIOD> <QUOTED_ID>)*>
+| <#QUOTED_ID: <ID_PART> | "\"" ("\"\"" | ~["\""])+ "\"">
+| <#ID_PART: ("@" | "#" | <LETTER>) (<LETTER> | "_" | <DIGIT>)*>
+| <DATETYPE: "{" "d">
+| <TIMETYPE: "{" "t">
+| <TIMESTAMPTYPE: "{" "ts">
+| <BOOLEANTYPE: "{" "b">
+| <POS_REF: ["$"] (<DIGIT>)+>
+| <INTEGERVAL: (<MINUS>)? (<DIGIT>)+>
+| <FLOATVAL: (<MINUS>)? (<DIGIT>)* <PERIOD> (<DIGIT>)+ (["e","E"] (["+","-"])? (<DIGIT>)+)?>
+| <STRINGVAL: ("N" | "E")? "\'" ("\'\'" | ~["\'"])* "\'">
+| <#LETTER: ["a"-"z","A"-"Z"] | ["\u0153"-"\ufffd"]>
+| <#DIGIT: ["0"-"9"]>
+}
+
+</para></entry></row>
+<row><entry><para>
+<DEFAULT> TOKEN : {
+<COMMA: ",">
+| <PERIOD: ".">
+| <LPAREN: "(">
+| <RPAREN: ")">
+| <LBRACE: "{">
+| <RBRACE: "}">
+| <LSBRACE: "[">
+| <RSBRACE: "]">
+| <EQ: "=">
+| <NE: "<>">
+| <NE2: "!=">
+| <LT: "<">
+| <LE: "<=">
+| <GT: ">">
+| <GE: ">=">
+| <STAR: "*">
+| <SLASH: "/">
+| <PLUS: "+">
+| <MINUS: "-">
+| <QMARK: "?">
+| <DOLLAR: "$">
+| <SEMICOLON: ";">
+| <CONCAT_OP: "||">
+}
+
+</para></entry></row>
+</tbody>
+</tgroup>
+</informaltable>
+</section>
+<section>
+<title>NON-TERMINALS</title>
+<informaltable frame="none">
+<tgroup cols="2">
+<colspec colname="c1" colwidth=".33*"/>
+<colspec colname="c2" colwidth="*"/>
+<tbody>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod1" xreflabel="stringVal"/>stringVal</para></entry>
+<entry align="left" valign="top"><para>::=
+( <STRINGVAL> )</para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod2" xreflabel="id"/>id</para></entry>
+<entry align="left" valign="top"><para>::=
+( <ID> )</para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod3" xreflabel="command"/>command</para></entry>
+<entry align="left" valign="top"><para>::=
+( <link linkend="prod4">createUpdateProcedure</link> | <link linkend="prod5">userCommand</link> | <link linkend="prod6">callableStatement</link> ) ( <SEMICOLON> )? <EOF></para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod7" xreflabel="designerCommand"/>designerCommand</para></entry>
+<entry align="left" valign="top"><para>::=
+( <link linkend="prod8">updateProcedure</link> | <link linkend="prod5">userCommand</link> ) ( <SEMICOLON> )? <EOF></para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod8" xreflabel="updateProcedure"/>updateProcedure</para></entry>
+<entry align="left" valign="top"><para>::=
+( <link linkend="prod4">createUpdateProcedure</link> | <link linkend="prod9">forEachRowTriggerAction</link> ) <EOF></para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod10" xreflabel="createTrigger"/>createTrigger</para></entry>
+<entry align="left" valign="top"><para>::=
+<CREATE> <TRIGGER> <ON> <link linkend="prod2">id</link> <link linkend="prod11">nonReserved</link> <OF> ( <INSERT> | <UPDATE> | <DELETE> ) <AS> <link linkend="prod9">forEachRowTriggerAction</link></para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod12" xreflabel="alter"/>alter</para></entry>
+<entry align="left" valign="top"><para>::=
+<ALTER> ( ( <link linkend="prod11">nonReserved</link> <link linkend="prod2">id</link> <AS> <link linkend="prod13">queryExpression</link> ) | ( <PROCEDURE> <link linkend="prod2">id</link> <AS> <link linkend="prod14">block</link> ) | ( <TRIGGER> <ON> <link linkend="prod2">id</link> <link linkend="prod11">nonReserved</link> <OF> ( <INSERT> | <UPDATE> | <DELETE> ) ( ( <AS> <link linkend="prod9">forEachRowTriggerAction</link> ) | <link linkend="prod11">nonReserved</link> ) ) )</para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod9" xreflabel="forEachRowTriggerAction"/>forEachRowTriggerAction</para></entry>
+<entry align="left" valign="top"><para>::=
+<FOR> <EACH> <ROW> <link linkend="prod14">block</link></para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod5" xreflabel="userCommand"/>userCommand</para></entry>
+<entry align="left" valign="top"><para>::=
+( <link linkend="prod13">queryExpression</link> | <link linkend="prod15">storedProcedure</link> | <link linkend="prod16">insert</link> | <link linkend="prod17">update</link> | <link linkend="prod18">delete</link> | <link linkend="prod19">dropTable</link> | <link linkend="prod20">createTempTable</link> | <link linkend="prod12">alter</link> | <link linkend="prod10">createTrigger</link> )</para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod19" xreflabel="dropTable"/>dropTable</para></entry>
+<entry align="left" valign="top"><para>::=
+<DROP> <TABLE> <link linkend="prod2">id</link></para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod20" xreflabel="createTempTable"/>createTempTable</para></entry>
+<entry align="left" valign="top"><para>::=
+<CREATE> <LOCAL> <TEMPORARY> <TABLE> <link linkend="prod2">id</link> <LPAREN> <link linkend="prod21">tableElement</link> ( <COMMA> <link linkend="prod21">tableElement</link> )* ( <COMMA> <PRIMARY> <link linkend="prod11">nonReserved</link> <LPAREN> <link linkend="prod2">id</link> ( <COMMA> <link linkend="prod2">id</link> )* <RPAREN> )? <RPAREN></para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod21" xreflabel="tableElement"/>tableElement</para></entry>
+<entry align="left" valign="top"><para>::=
+<link linkend="prod2">id</link> ( <link linkend="prod22">dataTypeString</link> | <link linkend="prod11">nonReserved</link> ) ( <NOT> <NULL> )?</para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod23" xreflabel="errorStatement"/>errorStatement</para></entry>
+<entry align="left" valign="top"><para>::=
+<ERROR> <link linkend="prod24">expression</link></para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod25" xreflabel="statement"/>statement</para></entry>
+<entry align="left" valign="top"><para>::=
+( <link linkend="prod26">ifStatement</link> | <link linkend="prod27">loopStatement</link> | <link linkend="prod28">whileStatement</link> | <link linkend="prod29">delimitedStatement</link> )</para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod29" xreflabel="delimitedStatement"/>delimitedStatement</para></entry>
+<entry align="left" valign="top"><para>::=
+( <link linkend="prod30">assignStatement</link> | <link linkend="prod31">sqlStatement</link> | <link linkend="prod23">errorStatement</link> | <link linkend="prod32">declareStatement</link> | <link linkend="prod33">continueStatement</link> | <link linkend="prod34">breakStatement</link> ) <SEMICOLON></para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod14" xreflabel="block"/>block</para></entry>
+<entry align="left" valign="top"><para>::=
+( <link linkend="prod25">statement</link> | ( <BEGIN> ( <link linkend="prod25">statement</link> )* <END> ) )</para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod34" xreflabel="breakStatement"/>breakStatement</para></entry>
+<entry align="left" valign="top"><para>::=
+<BREAK></para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod33" xreflabel="continueStatement"/>continueStatement</para></entry>
+<entry align="left" valign="top"><para>::=
+<CONTINUE></para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod28" xreflabel="whileStatement"/>whileStatement</para></entry>
+<entry align="left" valign="top"><para>::=
+<WHILE> <LPAREN> <link linkend="prod35">criteria</link> <RPAREN> <link linkend="prod14">block</link></para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod27" xreflabel="loopStatement"/>loopStatement</para></entry>
+<entry align="left" valign="top"><para>::=
+<LOOP> <ON> <LPAREN> <link linkend="prod13">queryExpression</link> <RPAREN> <AS> <link linkend="prod2">id</link> <link linkend="prod14">block</link></para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod26" xreflabel="ifStatement"/>ifStatement</para></entry>
+<entry align="left" valign="top"><para>::=
+<IF> <LPAREN> <link linkend="prod35">criteria</link> <RPAREN> <link linkend="prod14">block</link> ( <ELSE> <link linkend="prod14">block</link> )?</para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod36" xreflabel="criteriaSelector"/>criteriaSelector</para></entry>
+<entry align="left" valign="top"><para>::=
+( ( <EQ> | <NE> | <NE2> | <LE> | <GE> | <LT> | <GT> | <IN> | <LIKE> | ( <IS> <NULL> ) | <BETWEEN> ) )? <CRITERIA> ( <ON> <LPAREN> <link linkend="prod2">id</link> ( <COMMA> <link linkend="prod2">id</link> )* <RPAREN> )?</para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod37" xreflabel="hasCriteria"/>hasCriteria</para></entry>
+<entry align="left" valign="top"><para>::=
+<HAS> <link linkend="prod36">criteriaSelector</link></para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod32" xreflabel="declareStatement"/>declareStatement</para></entry>
+<entry align="left" valign="top"><para>::=
+<DECLARE> <link linkend="prod38">dataType</link> <link linkend="prod2">id</link> ( ( <link linkend="prod11">nonReserved</link> | <EQ> ) <link linkend="prod39">assignStatementOperand</link> )?</para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod30" xreflabel="assignStatement"/>assignStatement</para></entry>
+<entry align="left" valign="top"><para>::=
+<link linkend="prod2">id</link> ( <link linkend="prod11">nonReserved</link> | <EQ> ) <link linkend="prod39">assignStatementOperand</link></para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod39" xreflabel="assignStatementOperand"/>assignStatementOperand</para></entry>
+<entry align="left" valign="top"><para>::=
+( ( <link linkend="prod16">insert</link> ) | <link linkend="prod17">update</link> | <link linkend="prod18">delete</link> | ( <link linkend="prod24">expression</link> ) | <link linkend="prod13">queryExpression</link> )</para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod31" xreflabel="sqlStatement"/>sqlStatement</para></entry>
+<entry align="left" valign="top"><para>::=
+( ( <link linkend="prod5">userCommand</link> ) | <link linkend="prod40">dynamicCommand</link> | ( <link linkend="prod2">id</link> ( <link linkend="prod11">nonReserved</link> | <EQ> ) <link linkend="prod15">storedProcedure</link> ) )</para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod41" xreflabel="translateCriteria"/>translateCriteria</para></entry>
+<entry align="left" valign="top"><para>::=
+<TRANSLATE> <link linkend="prod36">criteriaSelector</link> ( <WITH> <LPAREN> <link linkend="prod2">id</link> <EQ> <link linkend="prod24">expression</link> ( <COMMA> <link linkend="prod2">id</link> <EQ> <link linkend="prod24">expression</link> )* <RPAREN> )?</para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod4" xreflabel="createUpdateProcedure"/>createUpdateProcedure</para></entry>
+<entry align="left" valign="top"><para>::=
+<CREATE> ( <VIRTUAL> )? ( <UPDATE> )? <PROCEDURE> <link linkend="prod14">block</link></para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod40" xreflabel="dynamicCommand"/>dynamicCommand</para></entry>
+<entry align="left" valign="top"><para>::=
+( <EXECUTE> | <EXEC> ) ( ( <STRING> | <IMMEDIATE> ) )? <link linkend="prod24">expression</link> ( <AS> <link linkend="prod42">createElementsWithTypes</link> ( <INTO> <link linkend="prod2">id</link> )? )? ( <USING> <link linkend="prod43">setClauseList</link> )? ( <UPDATE> ( ( <INTEGERVAL> ) | ( <STAR> ) ) )?</para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod43" xreflabel="setClauseList"/>setClauseList</para></entry>
+<entry align="left" valign="top"><para>::=
+<link linkend="prod2">id</link> <EQ> ( <COMMA> <link linkend="prod2">id</link> <EQ> )*</para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod42" xreflabel="createElementsWithTypes"/>createElementsWithTypes</para></entry>
+<entry align="left" valign="top"><para>::=
+<link linkend="prod2">id</link> <link linkend="prod22">dataTypeString</link> ( <COMMA> <link linkend="prod2">id</link> <link linkend="prod22">dataTypeString</link> )*</para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod6" xreflabel="callableStatement"/>callableStatement</para></entry>
+<entry align="left" valign="top"><para>::=
+<LBRACE> ( <QMARK> <EQ> )? <CALL> <link linkend="prod2">id</link> ( <LPAREN> ( <link linkend="prod44">executeUnnamedParams</link> ) <RPAREN> )? <RBRACE> ( <link linkend="prod45">option</link> )?</para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod15" xreflabel="storedProcedure"/>storedProcedure</para></entry>
+<entry align="left" valign="top"><para>::=
+( ( <EXEC> | <EXECUTE> | <CALL> ) <link linkend="prod2">id</link> <LPAREN> ( <link linkend="prod46">executeNamedParams</link> | <link linkend="prod44">executeUnnamedParams</link> ) <RPAREN> ) ( <link linkend="prod45">option</link> )?</para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod44" xreflabel="executeUnnamedParams"/>executeUnnamedParams</para></entry>
+<entry align="left" valign="top"><para>::=
+( <link linkend="prod24">expression</link> ( <COMMA> <link linkend="prod24">expression</link> )* )?</para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod46" xreflabel="executeNamedParams"/>executeNamedParams</para></entry>
+<entry align="left" valign="top"><para>::=
+( <link linkend="prod2">id</link> <EQ> ( <GT> )? <link linkend="prod24">expression</link> ( <COMMA> <link linkend="prod2">id</link> <EQ> ( <GT> )? <link linkend="prod24">expression</link> )* )</para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod16" xreflabel="insert"/>insert</para></entry>
+<entry align="left" valign="top"><para>::=
+<INSERT> <INTO> <link linkend="prod2">id</link> ( <link linkend="prod47">columnList</link> )? ( ( <VALUES> <link linkend="prod48">rowValues</link> ) | ( <link linkend="prod13">queryExpression</link> ) ) ( <link linkend="prod45">option</link> )?</para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod47" xreflabel="columnList"/>columnList</para></entry>
+<entry align="left" valign="top"><para>::=
+<LPAREN> <link linkend="prod2">id</link> ( <COMMA> <link linkend="prod2">id</link> )* <RPAREN></para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod48" xreflabel="rowValues"/>rowValues</para></entry>
+<entry align="left" valign="top"><para>::=
+<LPAREN> <link linkend="prod24">expression</link> ( <COMMA> <link linkend="prod24">expression</link> )* <RPAREN></para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod17" xreflabel="update"/>update</para></entry>
+<entry align="left" valign="top"><para>::=
+<UPDATE> <link linkend="prod2">id</link> <SET> <link linkend="prod43">setClauseList</link> ( <link linkend="prod49">where</link> )? ( <link linkend="prod45">option</link> )?</para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod18" xreflabel="delete"/>delete</para></entry>
+<entry align="left" valign="top"><para>::=
+<DELETE> <FROM> <link linkend="prod2">id</link> ( <link linkend="prod49">where</link> )? ( <link linkend="prod45">option</link> )?</para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod13" xreflabel="queryExpression"/>queryExpression</para></entry>
+<entry align="left" valign="top"><para>::=
+( <WITH> <link linkend="prod50">withListElement</link> ( <COMMA> <link linkend="prod50">withListElement</link> )* )? <link linkend="prod51">queryExpressionBody</link></para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod50" xreflabel="withListElement"/>withListElement</para></entry>
+<entry align="left" valign="top"><para>::=
+<link linkend="prod2">id</link> ( <link linkend="prod47">columnList</link> )? <AS> <LPAREN> <link linkend="prod13">queryExpression</link> <RPAREN></para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod51" xreflabel="queryExpressionBody"/>queryExpressionBody</para></entry>
+<entry align="left" valign="top"><para>::=
+<link linkend="prod52">queryTerm</link> ( ( <UNION> | <EXCEPT> ) ( <ALL> | <DISTINCT> )? <link linkend="prod52">queryTerm</link> )* ( <link linkend="prod53">orderby</link> )? ( <link linkend="prod54">limit</link> )? ( <link linkend="prod45">option</link> )?</para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod52" xreflabel="queryTerm"/>queryTerm</para></entry>
+<entry align="left" valign="top"><para>::=
+<link linkend="prod55">queryPrimary</link> ( <INTERSECT> ( <ALL> | <DISTINCT> )? <link linkend="prod55">queryPrimary</link> )*</para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod55" xreflabel="queryPrimary"/>queryPrimary</para></entry>
+<entry align="left" valign="top"><para>::=
+( <link linkend="prod56">query</link> | ( <TABLE> <link linkend="prod2">id</link> ) | ( <LPAREN> <link linkend="prod51">queryExpressionBody</link> <RPAREN> ) )</para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod56" xreflabel="query"/>query</para></entry>
+<entry align="left" valign="top"><para>::=
+<link linkend="prod57">select</link> ( <link linkend="prod58">into</link> )? ( <link linkend="prod59">from</link> ( <link linkend="prod49">where</link> )? ( <link linkend="prod60">groupBy</link> )? ( <link linkend="prod61">having</link> )? )?</para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod58" xreflabel="into"/>into</para></entry>
+<entry align="left" valign="top"><para>::=
+<INTO> ( <link linkend="prod2">id</link> )</para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod57" xreflabel="select"/>select</para></entry>
+<entry align="left" valign="top"><para>::=
+<SELECT> ( <ALL> | ( <DISTINCT> ) )? ( <STAR> | ( <link linkend="prod62">selectSymbol</link> ( <COMMA> <link linkend="prod62">selectSymbol</link> )* ) )</para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod62" xreflabel="selectSymbol"/>selectSymbol</para></entry>
+<entry align="left" valign="top"><para>::=
+( <link linkend="prod63">selectExpression</link> | <link linkend="prod64">allInGroupSymbol</link> )</para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod63" xreflabel="selectExpression"/>selectExpression</para></entry>
+<entry align="left" valign="top"><para>::=
+( <link linkend="prod24">expression</link> ( ( <AS> )? <link linkend="prod2">id</link> )? )</para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod65" xreflabel="derivedColumn"/>derivedColumn</para></entry>
+<entry align="left" valign="top"><para>::=
+( <link linkend="prod24">expression</link> ( <AS> <link linkend="prod2">id</link> )? )</para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod64" xreflabel="allInGroupSymbol"/>allInGroupSymbol</para></entry>
+<entry align="left" valign="top"><para>::=
+<ALL_IN_GROUP></para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod66" xreflabel="xmlAgg"/>xmlAgg</para></entry>
+<entry align="left" valign="top"><para>::=
+<XMLAGG> <LPAREN> <link linkend="prod24">expression</link> ( <link linkend="prod53">orderby</link> )? <RPAREN></para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod67" xreflabel="arrayAgg"/>arrayAgg</para></entry>
+<entry align="left" valign="top"><para>::=
+<ARRAY_AGG> <LPAREN> <link linkend="prod24">expression</link> ( <link linkend="prod53">orderby</link> )? <RPAREN></para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod68" xreflabel="textAgg"/>textAgg</para></entry>
+<entry align="left" valign="top"><para>::=
+<link linkend="prod11">nonReserved</link> <LPAREN> <FOR> <link linkend="prod65">derivedColumn</link> ( <COMMA> <link linkend="prod65">derivedColumn</link> )* ( <ID> <link linkend="prod69">charVal</link> )? ( ( <ID> <link linkend="prod69">charVal</link> ) )? ( <ID> )? ( ( <ID> <link linkend="prod2">id</link> ) )? ( <link linkend="prod53">orderby</link> )? <RPAREN></para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod70" xreflabel="aggregateSymbol"/>aggregateSymbol</para></entry>
+<entry align="left" valign="top"><para>::=
+( ( <link linkend="prod11">nonReserved</link> <LPAREN> <STAR> <RPAREN> ) | ( ( <link linkend="prod11">nonReserved</link> | <ANY> | <SOME> ) <LPAREN> ( <DISTINCT> | <ALL> )? <link linkend="prod24">expression</link> <RPAREN> ) )</para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod59" xreflabel="from"/>from</para></entry>
+<entry align="left" valign="top"><para>::=
+<FROM> ( <link linkend="prod71">tableReference</link> ( <COMMA> <link linkend="prod71">tableReference</link> )* )</para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod71" xreflabel="tableReference"/>tableReference</para></entry>
+<entry align="left" valign="top"><para>::=
+( ( <LBRACE> <link linkend="prod11">nonReserved</link> <link linkend="prod72">joinedTable</link> <RBRACE> ) | <link linkend="prod72">joinedTable</link> )</para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod72" xreflabel="joinedTable"/>joinedTable</para></entry>
+<entry align="left" valign="top"><para>::=
+<link linkend="prod73">tablePrimary</link> ( ( <link linkend="prod74">crossJoin</link> | <link linkend="prod75">qualifiedJoin</link> ) )*</para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod74" xreflabel="crossJoin"/>crossJoin</para></entry>
+<entry align="left" valign="top"><para>::=
+( ( <CROSS> | <UNION> ) <JOIN> <link linkend="prod73">tablePrimary</link> )</para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod75" xreflabel="qualifiedJoin"/>qualifiedJoin</para></entry>
+<entry align="left" valign="top"><para>::=
+( ( ( <RIGHT> ( <OUTER> )? ) | ( <LEFT> ( <OUTER> )? ) | ( <FULL> ( <OUTER> )? ) | <INNER> )? <JOIN> <link linkend="prod71">tableReference</link> <ON> <link linkend="prod35">criteria</link> )</para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod73" xreflabel="tablePrimary"/>tablePrimary</para></entry>
+<entry align="left" valign="top"><para>::=
+( <link linkend="prod76">textTable</link> | <link linkend="prod77">arrayTable</link> | <link linkend="prod78">xmlTable</link> | <link linkend="prod79">unaryFromClause</link> | <link linkend="prod80">subqueryFromClause</link> | ( <LPAREN> <link linkend="prod72">joinedTable</link> <RPAREN> ) ) ( ( <MAKEDEP> ) | ( <MAKENOTDEP> ) )?</para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod81" xreflabel="xmlSerialize"/>xmlSerialize</para></entry>
+<entry align="left" valign="top"><para>::=
+<XMLSERIALIZE> <LPAREN> ( <link linkend="prod11">nonReserved</link> )? <link linkend="prod24">expression</link> ( <AS> ( <STRING> | <VARCHAR> | <CLOB> ) )? <RPAREN></para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod11" xreflabel="nonReserved"/>nonReserved</para></entry>
+<entry align="left" valign="top"><para>::=
+<ID></para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod77" xreflabel="arrayTable"/>arrayTable</para></entry>
+<entry align="left" valign="top"><para>::=
+<ID> <LPAREN> <link linkend="prod24">expression</link> <link linkend="prod11">nonReserved</link> <link linkend="prod42">createElementsWithTypes</link> <RPAREN> ( <AS> )? <link linkend="prod2">id</link></para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod76" xreflabel="textTable"/>textTable</para></entry>
+<entry align="left" valign="top"><para>::=
+<ID> <LPAREN> <link linkend="prod24">expression</link> <link linkend="prod11">nonReserved</link> <link linkend="prod82">textColumn</link> ( <COMMA> <link linkend="prod82">textColumn</link> )* ( <ID> <link linkend="prod69">charVal</link> )? ( ( <ESCAPE> <link linkend="prod69">charVal</link> ) | ( <ID> <link linkend="prod69">charVal</link> ) )? ( <ID> ( <link linkend="prod83">intVal</link> )? )? ( <ID> <link linkend="prod83">intVal</link> )? <RPAREN> ( <AS> )? <link linkend="prod2">id</link></para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod82" xreflabel="textColumn"/>textColumn</para></entry>
+<entry align="left" valign="top"><para>::=
+<link linkend="prod2">id</link> <link linkend="prod38">dataType</link> ( <ID> <link linkend="prod83">intVal</link> )?</para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod84" xreflabel="xmlQuery"/>xmlQuery</para></entry>
+<entry align="left" valign="top"><para>::=
+<XMLQUERY> <LPAREN> ( <link linkend="prod85">xmlNamespaces</link> <COMMA> )? <link linkend="prod1">stringVal</link> ( <ID> <link linkend="prod65">derivedColumn</link> ( <COMMA> <link linkend="prod65">derivedColumn</link> )* )? ( ( <NULL> | <link linkend="prod11">nonReserved</link> ) <ON> <link linkend="prod11">nonReserved</link> )? <RPAREN></para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod78" xreflabel="xmlTable"/>xmlTable</para></entry>
+<entry align="left" valign="top"><para>::=
+<XMLTABLE> <LPAREN> ( <link linkend="prod85">xmlNamespaces</link> <COMMA> )? <link linkend="prod1">stringVal</link> ( <ID> <link linkend="prod65">derivedColumn</link> ( <COMMA> <link linkend="prod65">derivedColumn</link> )* )? ( <ID> <link linkend="prod86">xmlColumn</link> ( <COMMA> <link linkend="prod86">xmlColumn</link> )* )? <RPAREN> ( <AS> )? <link linkend="prod2">id</link></para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod86" xreflabel="xmlColumn"/>xmlColumn</para></entry>
+<entry align="left" valign="top"><para>::=
+<link linkend="prod2">id</link> ( ( <FOR> <link linkend="prod11">nonReserved</link> ) | ( <link linkend="prod38">dataType</link> ( <DEFAULT_KEYWORD> <link linkend="prod24">expression</link> )? ( <link linkend="prod11">nonReserved</link> <link linkend="prod1">stringVal</link> )? ) )</para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod83" xreflabel="intVal"/>intVal</para></entry>
+<entry align="left" valign="top"><para>::=
+<INTEGERVAL></para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod80" xreflabel="subqueryFromClause"/>subqueryFromClause</para></entry>
+<entry align="left" valign="top"><para>::=
+( <TABLE> )? <LPAREN> ( <link linkend="prod13">queryExpression</link> | <link linkend="prod15">storedProcedure</link> ) <RPAREN> ( <AS> )? <link linkend="prod2">id</link></para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod79" xreflabel="unaryFromClause"/>unaryFromClause</para></entry>
+<entry align="left" valign="top"><para>::=
+( <ID> ( ( <AS> )? <link linkend="prod2">id</link> )? )</para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod49" xreflabel="where"/>where</para></entry>
+<entry align="left" valign="top"><para>::=
+<WHERE> <link linkend="prod35">criteria</link></para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod35" xreflabel="criteria"/>criteria</para></entry>
+<entry align="left" valign="top"><para>::=
+<link linkend="prod87">compoundCritOr</link></para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod87" xreflabel="compoundCritOr"/>compoundCritOr</para></entry>
+<entry align="left" valign="top"><para>::=
+<link linkend="prod88">compoundCritAnd</link> ( <OR> <link linkend="prod88">compoundCritAnd</link> )*</para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod88" xreflabel="compoundCritAnd"/>compoundCritAnd</para></entry>
+<entry align="left" valign="top"><para>::=
+<link linkend="prod89">notCrit</link> ( <AND> <link linkend="prod89">notCrit</link> )*</para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod89" xreflabel="notCrit"/>notCrit</para></entry>
+<entry align="left" valign="top"><para>::=
+( <NOT> )? <link linkend="prod90">booleanPrimary</link></para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod90" xreflabel="booleanPrimary"/>booleanPrimary</para></entry>
+<entry align="left" valign="top"><para>::=
+( <link linkend="prod41">translateCriteria</link> | ( <link linkend="prod91">commonValueExpression</link> ( ( <link linkend="prod92">betweenCrit</link> | <link linkend="prod93">matchCrit</link> | <link linkend="prod94">setCrit</link> | <link linkend="prod95">isNullCrit</link> | <link linkend="prod96">subqueryCompareCriteria</link> | <link linkend="prod97">compareCrit</link> ) )? ) | <link linkend="prod98">existsCriteria</link> | <link linkend="prod37">hasCriteria</link> )</para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod99" xreflabel="operator"/>operator</para></entry>
+<entry align="left" valign="top"><para>::=
+( <EQ> | <NE> | <NE2> | <LT> | <LE> | <GT> | <GE> )</para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod97" xreflabel="compareCrit"/>compareCrit</para></entry>
+<entry align="left" valign="top"><para>::=
+<link linkend="prod99">operator</link> <link linkend="prod91">commonValueExpression</link></para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod100" xreflabel="subquery"/>subquery</para></entry>
+<entry align="left" valign="top"><para>::=
+<LPAREN> ( <link linkend="prod13">queryExpression</link> | ( <link linkend="prod15">storedProcedure</link> ) ) <RPAREN></para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod101" xreflabel="subqueryAndHint"/>subqueryAndHint</para></entry>
+<entry align="left" valign="top"><para>::=
+<link linkend="prod100">subquery</link></para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod96" xreflabel="subqueryCompareCriteria"/>subqueryCompareCriteria</para></entry>
+<entry align="left" valign="top"><para>::=
+<link linkend="prod99">operator</link> ( <ANY> | <SOME> | <ALL> ) <link linkend="prod100">subquery</link></para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod93" xreflabel="matchCrit"/>matchCrit</para></entry>
+<entry align="left" valign="top"><para>::=
+( <NOT> )? <LIKE> <link linkend="prod91">commonValueExpression</link> ( <ESCAPE> <link linkend="prod69">charVal</link> | ( <LBRACE> <ESCAPE> <link linkend="prod69">charVal</link> <RBRACE> ) )?</para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod69" xreflabel="charVal"/>charVal</para></entry>
+<entry align="left" valign="top"><para>::=
+<link linkend="prod1">stringVal</link></para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod92" xreflabel="betweenCrit"/>betweenCrit</para></entry>
+<entry align="left" valign="top"><para>::=
+( <NOT> )? <BETWEEN> <link linkend="prod91">commonValueExpression</link> <AND> <link linkend="prod91">commonValueExpression</link></para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod95" xreflabel="isNullCrit"/>isNullCrit</para></entry>
+<entry align="left" valign="top"><para>::=
+<IS> ( <NOT> )? <NULL></para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod94" xreflabel="setCrit"/>setCrit</para></entry>
+<entry align="left" valign="top"><para>::=
+( <NOT> )? <IN> ( ( <link linkend="prod101">subqueryAndHint</link> ) | ( <LPAREN> <link linkend="prod91">commonValueExpression</link> ( <COMMA> <link linkend="prod91">commonValueExpression</link> )* <RPAREN> ) )</para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod98" xreflabel="existsCriteria"/>existsCriteria</para></entry>
+<entry align="left" valign="top"><para>::=
+<EXISTS> <link linkend="prod101">subqueryAndHint</link></para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod60" xreflabel="groupBy"/>groupBy</para></entry>
+<entry align="left" valign="top"><para>::=
+<GROUP> <BY> ( <link linkend="prod102">groupByItem</link> ( <COMMA> <link linkend="prod102">groupByItem</link> )* )</para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod102" xreflabel="groupByItem"/>groupByItem</para></entry>
+<entry align="left" valign="top"><para>::=
+<link linkend="prod24">expression</link></para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod61" xreflabel="having"/>having</para></entry>
+<entry align="left" valign="top"><para>::=
+<HAVING> <link linkend="prod35">criteria</link></para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod53" xreflabel="orderby"/>orderby</para></entry>
+<entry align="left" valign="top"><para>::=
+<ORDER> <BY> <link linkend="prod103">sortSpecification</link> ( <COMMA> <link linkend="prod103">sortSpecification</link> )*</para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod103" xreflabel="sortSpecification"/>sortSpecification</para></entry>
+<entry align="left" valign="top"><para>::=
+<link linkend="prod104">sortKey</link> ( <ASC> | <DESC> )? ( <link linkend="prod11">nonReserved</link> <link linkend="prod11">nonReserved</link> )?</para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod104" xreflabel="sortKey"/>sortKey</para></entry>
+<entry align="left" valign="top"><para>::=
+<link linkend="prod24">expression</link></para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod54" xreflabel="limit"/>limit</para></entry>
+<entry align="left" valign="top"><para>::=
+<LIMIT> ( <INTEGERVAL> | <QMARK> ) ( <COMMA> ( <INTEGERVAL> | <QMARK> ) )?</para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod45" xreflabel="option"/>option</para></entry>
+<entry align="left" valign="top"><para>::=
+<OPTION> ( <MAKEDEP> <link linkend="prod2">id</link> ( <COMMA> <link linkend="prod2">id</link> )* | <MAKENOTDEP> <link linkend="prod2">id</link> ( <COMMA> <link linkend="prod2">id</link> )* | <NOCACHE> ( <link linkend="prod2">id</link> ( <COMMA> <link linkend="prod2">id</link> )* )? )*</para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod24" xreflabel="expression"/>expression</para></entry>
+<entry align="left" valign="top"><para>::=
+<link linkend="prod35">criteria</link></para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod91" xreflabel="commonValueExpression"/>commonValueExpression</para></entry>
+<entry align="left" valign="top"><para>::=
+( <link linkend="prod105">plusExpression</link> ( <CONCAT_OP> <link linkend="prod105">plusExpression</link> )* )</para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod105" xreflabel="plusExpression"/>plusExpression</para></entry>
+<entry align="left" valign="top"><para>::=
+( <link linkend="prod106">timesExpression</link> ( <link linkend="prod107">plusOperator</link> <link linkend="prod106">timesExpression</link> )* )</para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod107" xreflabel="plusOperator"/>plusOperator</para></entry>
+<entry align="left" valign="top"><para>::=
+( <PLUS> | <MINUS> )</para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod106" xreflabel="timesExpression"/>timesExpression</para></entry>
+<entry align="left" valign="top"><para>::=
+( <link linkend="prod108">valueExpressionPrimary</link> ( <link linkend="prod109">timesOperator</link> <link linkend="prod108">valueExpressionPrimary</link> )* )</para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod109" xreflabel="timesOperator"/>timesOperator</para></entry>
+<entry align="left" valign="top"><para>::=
+( <STAR> | <SLASH> )</para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod108" xreflabel="valueExpressionPrimary"/>valueExpressionPrimary</para></entry>
+<entry align="left" valign="top"><para>::=
+( <QMARK> | <POS_REF> | <link linkend="prod110">literal</link> | ( <LBRACE> <link linkend="prod11">nonReserved</link> <link linkend="prod111">function</link> <RBRACE> ) | ( <link linkend="prod68">textAgg</link> ) | ( <link linkend="prod70">aggregateSymbol</link> ) | ( <link linkend="prod70">aggregateSymbol</link> ) | ( <link linkend="prod70">aggregateSymbol</link> ) | ( <link linkend="prod66">xmlAgg</link> ) | ( <link linkend="prod67">arrayAgg</link> ) | ( <link linkend="prod111">function</link> ) | ( <ID> ( <LSBRACE> <link linkend="prod83">intVal</link> <RSBRACE> )? ) | <link linkend="prod100">subquery</link> | ( <LPAREN> <link linkend="prod24">expression</link> <RPAREN> ( <LSBRACE> <link linkend="prod83">intVal</link> <RSBRACE> )? ) | <link linkend="prod112">searchedCaseExpression</link> | <link linkend="prod113">caseExpression</link> )</para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod113" xreflabel="caseExpression"/>caseExpression</para></entry>
+<entry align="left" valign="top"><para>::=
+<CASE> <link linkend="prod24">expression</link> ( <WHEN> <link linkend="prod24">expression</link> <THEN> <link linkend="prod24">expression</link> )+ ( <ELSE> <link linkend="prod24">expression</link> )? <END></para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod112" xreflabel="searchedCaseExpression"/>searchedCaseExpression</para></entry>
+<entry align="left" valign="top"><para>::=
+<CASE> ( <WHEN> <link linkend="prod35">criteria</link> <THEN> <link linkend="prod24">expression</link> )+ ( <ELSE> <link linkend="prod24">expression</link> )? <END></para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod111" xreflabel="function"/>function</para></entry>
+<entry align="left" valign="top"><para>::=
+( ( <CONVERT> <LPAREN> <link linkend="prod24">expression</link> <COMMA> <link linkend="prod38">dataType</link> <RPAREN> ) | ( <CAST> <LPAREN> <link linkend="prod24">expression</link> <AS> <link linkend="prod38">dataType</link> <RPAREN> ) | ( <link linkend="prod11">nonReserved</link> <LPAREN> <link linkend="prod24">expression</link> <COMMA> <link linkend="prod114">stringConstant</link> <RPAREN> ) | ( <link linkend="prod11">nonReserved</link> <LPAREN> <link linkend="prod115">intervalType</link> <COMMA> <link linkend="prod24">expression</link> <COMMA> <link linkend="prod24">expression</link> <RPAREN> ) | <link linkend="prod116">queryString</link> | ( ( <LEFT> | <RIGHT> | <CHAR> | <USER> | <YEAR> | <MONTH> | <HOUR> | <MINUTE> | <SECOND> | <XMLCONCAT> | <XMLCOMMENT> ) <LPAREN> ( <link linkend="prod24">expression</link> !
( <COMMA> <link linkend="prod24">expression</link> )* )? <RPAREN> ) | ( ( <INSERT> ) <LPAREN> ( <link linkend="prod24">expression</link> ( <COMMA> <link linkend="prod24">expression</link> )* )? <RPAREN> ) | ( ( <TRANSLATE> ) <LPAREN> ( <link linkend="prod24">expression</link> ( <COMMA> <link linkend="prod24">expression</link> )* )? <RPAREN> ) | <link linkend="prod117">xmlParse</link> | <link linkend="prod118">xmlElement</link> | ( <XMLPI> <LPAREN> ( <ID> <link linkend="prod119">idExpression</link> | <link linkend="prod119">idExpression</link> ) ( <COMMA> <link linkend="prod24">expression</link> )? <RPAREN> ) | <link linkend="prod120">xmlForest</link> | <link linkend="prod81">xmlSerialize</link> | <link linkend="prod84">xmlQuery</link> | ( <link linkend="prod2">id</link> <LPAREN> ( <link linkend="prod24">expression</link> ( <COMMA> <link linkend="prod24">expression</link> )*!
)? <RPAREN> ) )</para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod114" xreflabel="stringConstant"/>stringConstant</para></entry>
+<entry align="left" valign="top"><para>::=
+<link linkend="prod1">stringVal</link></para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod117" xreflabel="xmlParse"/>xmlParse</para></entry>
+<entry align="left" valign="top"><para>::=
+<XMLPARSE> <LPAREN> <link linkend="prod11">nonReserved</link> <link linkend="prod24">expression</link> ( <link linkend="prod11">nonReserved</link> )? <RPAREN></para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod116" xreflabel="queryString"/>queryString</para></entry>
+<entry align="left" valign="top"><para>::=
+<link linkend="prod11">nonReserved</link> <LPAREN> <link linkend="prod24">expression</link> ( <COMMA> <link linkend="prod65">derivedColumn</link> )* <RPAREN></para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod118" xreflabel="xmlElement"/>xmlElement</para></entry>
+<entry align="left" valign="top"><para>::=
+<XMLELEMENT> <LPAREN> ( <ID> <link linkend="prod2">id</link> | <link linkend="prod2">id</link> ) ( <COMMA> <link linkend="prod85">xmlNamespaces</link> )? ( <COMMA> <link linkend="prod121">xmlAttributes</link> )? ( <COMMA> <link linkend="prod24">expression</link> )* <RPAREN></para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod121" xreflabel="xmlAttributes"/>xmlAttributes</para></entry>
+<entry align="left" valign="top"><para>::=
+<XMLATTRIBUTES> <LPAREN> <link linkend="prod65">derivedColumn</link> ( <COMMA> <link linkend="prod65">derivedColumn</link> )* <RPAREN></para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod120" xreflabel="xmlForest"/>xmlForest</para></entry>
+<entry align="left" valign="top"><para>::=
+<XMLFOREST> <LPAREN> ( <link linkend="prod85">xmlNamespaces</link> <COMMA> )? <link linkend="prod65">derivedColumn</link> ( <COMMA> <link linkend="prod65">derivedColumn</link> )* <RPAREN></para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod85" xreflabel="xmlNamespaces"/>xmlNamespaces</para></entry>
+<entry align="left" valign="top"><para>::=
+<XMLNAMESPACES> <LPAREN> <link linkend="prod122">namespaceItem</link> ( <COMMA> <link linkend="prod122">namespaceItem</link> )* <RPAREN></para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod122" xreflabel="namespaceItem"/>namespaceItem</para></entry>
+<entry align="left" valign="top"><para>::=
+( <link linkend="prod1">stringVal</link> <AS> <link linkend="prod2">id</link> )</para></entry></row>
+<row>
+<entry align="right" valign="top"><para></para></entry>
+<entry align="left" valign="top"><para>::=
+( <NO> <DEFAULT_KEYWORD> )</para></entry></row>
+<row>
+<entry align="right" valign="top"><para></para></entry>
+<entry align="left" valign="top"><para>::=
+( <DEFAULT_KEYWORD> <link linkend="prod1">stringVal</link> )</para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod119" xreflabel="idExpression"/>idExpression</para></entry>
+<entry align="left" valign="top"><para>::=
+<link linkend="prod2">id</link></para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod22" xreflabel="dataTypeString"/>dataTypeString</para></entry>
+<entry align="left" valign="top"><para>::=
+( <STRING> | <VARCHAR> | <BOOLEAN> | <BYTE> | <TINYINT> | <SHORT> | <SMALLINT> | <CHAR> | <INTEGER> | <LONG> | <BIGINT> | <BIGINTEGER> | <FLOAT> | <REAL> | <DOUBLE> | <BIGDECIMAL> | <DECIMAL> | <DATE> | <TIME> | <TIMESTAMP> | <OBJECT> | <BLOB> | <CLOB> | <XML> )</para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod38" xreflabel="dataType"/>dataType</para></entry>
+<entry align="left" valign="top"><para>::=
+<link linkend="prod22">dataTypeString</link></para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod115" xreflabel="intervalType"/>intervalType</para></entry>
+<entry align="left" valign="top"><para>::=
+( <link linkend="prod11">nonReserved</link> )</para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod110" xreflabel="literal"/>literal</para></entry>
+<entry align="left" valign="top"><para>::=
+( <link linkend="prod1">stringVal</link> | <INTEGERVAL> | <FLOATVAL> | <FALSE> | <TRUE> | <UNKNOWN> | <NULL> | ( ( <BOOLEANTYPE> | <TIMESTAMPTYPE> | <DATETYPE> | <TIMETYPE> ) <link linkend="prod1">stringVal</link> <RBRACE> ) )</para></entry></row>
+</tbody>
+</tgroup>
+</informaltable>
+</section>
+</appendix>
Deleted: tags/teiid-parent-7.4.0.CR1/documentation/reference/src/main/docbook/en-US/content/system_schema.xml
===================================================================
--- trunk/documentation/reference/src/main/docbook/en-US/content/system_schema.xml 2011-05-03 09:43:58 UTC (rev 3137)
+++ tags/teiid-parent-7.4.0.CR1/documentation/reference/src/main/docbook/en-US/content/system_schema.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -1,1846 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % CustomDTD SYSTEM "../../../../../../docbook/custom.dtd">
-%CustomDTD;
-]>
-<chapter id="system_schema">
- <title>System Schema</title>
- <para>The built-in SYS and SYSADMIN schemas provide metadata tables and procedures against the current VDB.</para>
- <section id="system_tables">
- <title>System Tables</title>
- <section>
- <title>VDB, Schema, and Properties</title>
- <section>
- <title>SYSADMIN.VDBResources</title>
- <para>This table provides the current VDB contents.</para>
- <informaltable frame="all">
- <tgroup cols="3">
- <colspec colwidth=".6*" />
- <colspec colwidth=".4*" />
- <thead>
- <row>
- <entry>
- <para>Column Name</para>
- </entry>
- <entry>
- <para>Type</para>
- </entry>
- <entry>
- <para>Description</para>
- </entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>
- <para>resourcePath</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>The path to the contents.</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>contents</para>
- </entry>
- <entry>
- <para>blob</para>
- </entry>
- <entry>
- <para>The contents as a blob.</para>
- </entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </section>
- <section>
- <title>SYS.VirtualDatabases</title>
- <para>This table supplies information about the currently
- connected
- virtual database, of which there is always exactly one
- (in the
- context of a connection).</para>
- <informaltable frame="all">
- <tgroup cols="3">
- <colspec colwidth=".6*" />
- <colspec colwidth=".4*" />
- <thead>
- <row>
- <entry>
- <para>Column Name</para>
- </entry>
- <entry>
- <para>Type</para>
- </entry>
- <entry>
- <para>Description</para>
- </entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>
- <para>Name</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>The name of the VDB</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>Version</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>The version of the VDB</para>
- </entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </section>
- <section>
- <title>SYS.Schemas</title>
- <para>This table supplies information about all the schemas in
- the
- virtual database, including the system schema itself
- (System).
- </para>
- <informaltable frame="all">
- <tgroup cols="3">
- <colspec colwidth=".6*" />
- <colspec colwidth=".4*" />
- <thead>
- <row>
- <entry>
- <para>Column Name</para>
- </entry>
- <entry>
- <para>Type</para>
- </entry>
- <entry>
- <para>Description</para>
- </entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>
- <para>VDBName</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>VDB name</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>Name</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>Schema name</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>IsPhysical</para>
- </entry>
- <entry>
- <para>boolean</para>
- </entry>
- <entry>
- <para>True if this represents a source</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>UID</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>Unique ID</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>OID</para>
- </entry>
- <entry>
- <para>integer</para>
- </entry>
- <entry>
- <para>Unique ID (see note below)</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>Description</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>Description</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>PrimaryMetamodelURI</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>URI for the primary metamodel describing the model used
- for this schema</para>
- </entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </section>
- <section>
- <title>SYS.Properties</title>
- <para>This table supplies user-defined properties on all objects
- based on metamodel extensions. Normally, this table is empty if
- no
- metamodel extensions are being used.</para>
- <informaltable frame="all">
- <tgroup cols="3">
- <colspec colwidth=".6*" />
- <colspec colwidth=".4*" />
- <thead>
- <row>
- <entry>
- <para>Column Name</para>
- </entry>
- <entry>
- <para>Type</para>
- </entry>
- <entry>
- <para>Description</para>
- </entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>
- <para>Name</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>Extension property name</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>Value</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>Extension property value</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>UID</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>Key unique ID</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>OID</para>
- </entry>
- <entry>
- <para>integer</para>
- </entry>
- <entry>
- <para>Unique ID (see note below)</para>
- </entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </section>
- </section>
- <section>
- <title>Table Metadata</title>
- <section>
- <title>SYS.Tables</title>
- <para>This table supplies information about all the groups
- (tables,
- views, documents, etc) in the virtual database.</para>
- <informaltable frame="all">
- <tgroup cols="3">
- <colspec colwidth=".6*" />
- <colspec colwidth=".4*" />
- <thead>
- <row>
- <entry>
- <para>Column Name</para>
- </entry>
- <entry>
- <para>Type</para>
- </entry>
- <entry>
- <para>Description</para>
- </entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>
- <para>VDBName</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>VDB name</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>SchemaName</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>Schema Name</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>Name</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>Short group name</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>Type</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>Table type (Table, View, Document, ...)
- </para>
- </entry>
- </row>
- <row>
- <entry>
- <para>NameInSource</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>Name of this group in the source</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>IsPhysical</para>
- </entry>
- <entry>
- <para>boolean</para>
- </entry>
- <entry>
- <para>True if this is a source table</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>SupportsUpdates</para>
- </entry>
- <entry>
- <para>boolean</para>
- </entry>
- <entry>
- <para>True if group can be updated</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>UID</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>Group unique ID</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>OID</para>
- </entry>
- <entry>
- <para>integer</para>
- </entry>
- <entry>
- <para>Unique ID (see note below)</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>Cardinality</para>
- </entry>
- <entry>
- <para>integer</para>
- </entry>
- <entry>
- <para>Approximate number of rows in the group
- </para>
- </entry>
- </row>
- <row>
- <entry>
- <para>Description</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>Description</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>IsSystem</para>
- </entry>
- <entry>
- <para>boolean</para>
- </entry>
- <entry>
- <para>True if in system table</para>
- </entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </section>
- <section>
- <title>SYSADMIN.MatViews</title>
- <para>This table supplies information about all the materailized views in the virtual database.</para>
- <informaltable frame="all">
- <tgroup cols="3">
- <colspec colwidth=".6*" />
- <colspec colwidth=".4*" />
- <thead>
- <row>
- <entry>
- <para>Column Name</para>
- </entry>
- <entry>
- <para>Type</para>
- </entry>
- <entry>
- <para>Description</para>
- </entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>
- <para>VDBName</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>VDB name</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>SchemaName</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>Schema Name</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>Name</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>Short group name</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>TargetSchemaName</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>Name of the materialized table schema</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>TargetName</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>Name of the materialized table</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>Valid</para>
- </entry>
- <entry>
- <para>boolean</para>
- </entry>
- <entry>
- <para>True if materialized table is currently valid.</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>LoadState</para>
- </entry>
- <entry>
- <para>boolean</para>
- </entry>
- <entry>
- <para>The load state, can be one of NEEDS_LOADING, LOADING, LOADED, FAILED_LOAD</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>Updated</para>
- </entry>
- <entry>
- <para>timestamp</para>
- </entry>
- <entry>
- <para>The timestamp of the last full refresh.</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>Cardinality</para>
- </entry>
- <entry>
- <para>integer</para>
- </entry>
- <entry>
- <para>The number of rows in the materialized view table.</para>
- </entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </section>
- <section>
- <title>SYS.Columns</title>
- <para>This table supplies information about all the elements
- (columns, tags, attributes, etc) in the virtual database.</para>
- <informaltable frame="all">
- <tgroup cols="3">
- <colspec colwidth=".6*" />
- <colspec colwidth=".4*" />
- <thead>
- <row>
- <entry>
- <para>Column Name</para>
- </entry>
- <entry>
- <para>Type</para>
- </entry>
- <entry>
- <para>Description</para>
- </entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>
- <para>VDBName</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>VDB name</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>SchemaName</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>Schema Name</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>TableName</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>Table name</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>Name</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>Element name (not qualified)</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>Position</para>
- </entry>
- <entry>
- <para>integer</para>
- </entry>
- <entry>
- <para>Position in group (1-based)</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>NameInSource</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>Name of element in source</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>DataType</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>Teiid runtime data type name</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>Scale</para>
- </entry>
- <entry>
- <para>integer</para>
- </entry>
- <entry>
- <para>Number of digits after the decimal point
- </para>
- </entry>
- </row>
- <row>
- <entry>
- <para>ElementLength</para>
- </entry>
- <entry>
- <para>integer</para>
- </entry>
- <entry>
- <para>Element length (mostly used for strings)
- </para>
- </entry>
- </row>
- <row>
- <entry>
- <para>sLengthFixed</para>
- </entry>
- <entry>
- <para>boolean</para>
- </entry>
- <entry>
- <para>Whether the length is fixed or variable
- </para>
- </entry>
- </row>
- <row>
- <entry>
- <para>SupportsSelect</para>
- </entry>
- <entry>
- <para>boolean</para>
- </entry>
- <entry>
- <para>Element can be used in SELECT</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>SupportsUpdates</para>
- </entry>
- <entry>
- <para>boolean</para>
- </entry>
- <entry>
- <para>Values can be inserted or updated in the
- element</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>IsCaseSensitive</para>
- </entry>
- <entry>
- <para>boolean</para>
- </entry>
- <entry>
- <para>Element is case-sensitive</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>IsSigned</para>
- </entry>
- <entry>
- <para>boolean</para>
- </entry>
- <entry>
- <para>Element is signed numeric value</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>IsCurrency</para>
- </entry>
- <entry>
- <para>boolean</para>
- </entry>
- <entry>
- <para>Element represents monetary value</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>IsAutoIncremented</para>
- </entry>
- <entry>
- <para>boolean</para>
- </entry>
- <entry>
- <para>Element is auto-incremented in the source
- </para>
- </entry>
- </row>
- <row>
- <entry>
- <para>NullType</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>Nullability: "Nullable", "No Nulls",
- "Unknown"</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>MinRange</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>Minimum value</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>MaxRange</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>Maximum value</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>DistinctCount</para>
- </entry>
- <entry>
- <para>integer</para>
- </entry>
- <entry>
- <para>Distinct value count, -1 can indicate unknown</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>NullCount</para>
- </entry>
- <entry>
- <para>integer</para>
- </entry>
- <entry>
- <para>Null value count, -1 can indicate unknown</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>SearchType</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>Searchability: "Searchable", "All
- Except Like", "Like
- Only", "Unsearchable"</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>Format</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>Format of string value</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>DefaultValue</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>Default value</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>JavaClass</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>Java class that will be returned</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>Precision</para>
- </entry>
- <entry>
- <para>integer</para>
- </entry>
- <entry>
- <para>Number of digits in numeric value</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>CharOctetLength</para>
- </entry>
- <entry>
- <para>integer</para>
- </entry>
- <entry>
- <para>Measure of return value size</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>Radix</para>
- </entry>
- <entry>
- <para>integer</para>
- </entry>
- <entry>
- <para>Radix for numeric values</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>GroupUpperName</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>Upper-case full group name</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>UpperName</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>Upper-case element name</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>UID</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>Element unique ID</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>OID</para>
- </entry>
- <entry>
- <para>integer</para>
- </entry>
- <entry>
- <para>Unique ID (see note below)</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>Description</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>Description</para>
- </entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </section>
- <section>
- <title>SYS.Keys</title>
- <para>This table supplies information about primary, foreign,
- and unique keys.</para>
- <informaltable frame="all">
- <tgroup cols="3">
- <colspec colwidth=".6*" />
- <colspec colwidth=".4*" />
- <thead>
- <row>
- <entry>
- <para>Column Name</para>
- </entry>
- <entry>
- <para>Type</para>
- </entry>
- <entry>
- <para>Description</para>
- </entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>
- <para>VDBName</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>VDB name</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>SchemaName</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>Schema Name</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>Table Name</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>Table name</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>Name</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>Key name</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>Description</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>Description</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>NameInSource</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>Name of key in source system</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>Type</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>Type of key: "Primary", "Foreign", "Unique",
- etc</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>IsIndexed</para>
- </entry>
- <entry>
- <para>boolean</para>
- </entry>
- <entry>
- <para>True if key is indexed</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>RefKeyUID</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>Referenced key UID (if foreign key)
- </para>
- </entry>
- </row>
- <row>
- <entry>
- <para>UID</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>Key unique ID</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>OID</para>
- </entry>
- <entry>
- <para>integer</para>
- </entry>
- <entry>
- <para>Unique ID (see note below)</para>
- </entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </section>
- <section>
- <title>SYS.KeyColumns</title>
- <para>This table supplies information about the columns
- referenced by a key.</para>
- <informaltable frame="all">
- <tgroup cols="3">
- <colspec colwidth=".6*" />
- <colspec colwidth=".4*" />
- <thead>
- <row>
- <entry>
- <para>Column Name</para>
- </entry>
- <entry>
- <para>Type</para>
- </entry>
- <entry>
- <para>Description</para>
- </entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>
- <para>VDBName</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>VDB name</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>SchemaName</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>Schema Name</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>TableName</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>Table name</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>Name</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>Element name</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>KeyName</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>Key name</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>KeyType</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>Key type: "Primary", "Foreign", "Unique", etc
- </para>
- </entry>
- </row>
- <row>
- <entry>
- <para>RefKeyUID</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>Referenced key UID</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>UID</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>Key UID</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>OID</para>
- </entry>
- <entry>
- <para>integer</para>
- </entry>
- <entry>
- <para>Unique ID (see note below)</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>Position</para>
- </entry>
- <entry>
- <para>integer</para>
- </entry>
- <entry>
- <para>Position in key</para>
- </entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </section>
- </section>
- <section>
- <title>Procedure Metadata</title>
- <section>
- <title>SYS.Procedures</title>
- <para>This table supplies information about the procedures in
- the virtual database.</para>
- <informaltable frame="all">
- <tgroup cols="3">
- <colspec colwidth=".6*" />
- <colspec colwidth=".4*" />
- <thead>
- <row>
- <entry>
- <para>Column Name</para>
- </entry>
- <entry>
- <para>Type</para>
- </entry>
- <entry>
- <para>Description</para>
- </entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>
- <para>VDBName</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>VDB name</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>SchemaName</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>Schema Name</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>Name</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>Procedure name</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>NameInSource</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>Procedure name in source system</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>ReturnsResults</para>
- </entry>
- <entry>
- <para>boolean</para>
- </entry>
- <entry>
- <para>Returns a result set</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>UID</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>Procedure UID</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>OID</para>
- </entry>
- <entry>
- <para>integer</para>
- </entry>
- <entry>
- <para>Unique ID (see note below)</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>Description</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>Description</para>
- </entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </section>
- <section>
- <title>SYS.ProcedureParams</title>
- <para>This supplies information on procedure parameters.
- </para>
- <informaltable frame="all">
- <tgroup cols="3">
- <colspec colwidth=".6*" />
- <colspec colwidth=".4*" />
- <thead>
- <row>
- <entry>
- <para>Column Name</para>
- </entry>
- <entry>
- <para>Type</para>
- </entry>
- <entry>
- <para>Description</para>
- </entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>
- <para>VDBName</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>VDB name</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>SchemaName</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>Schema Name</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>ProcedureName</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>Procedure name</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>Name</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>Parameter name</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>DataType</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>Teiid runtime data type name</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>Position</para>
- </entry>
- <entry>
- <para>integer</para>
- </entry>
- <entry>
- <para>Position in procedure args</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>Type</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>Parameter direction: "In", "Out",
- "InOut", "ResultSet",
- "ReturnValue"</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>Optional</para>
- </entry>
- <entry>
- <para>boolean</para>
- </entry>
- <entry>
- <para>Parameter is optional</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>Precision</para>
- </entry>
- <entry>
- <para>integer</para>
- </entry>
- <entry>
- <para>Precision of parameter</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>TypeLength</para>
- </entry>
- <entry>
- <para>integer</para>
- </entry>
- <entry>
- <para>Length of parameter value</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>Scale</para>
- </entry>
- <entry>
- <para>integer</para>
- </entry>
- <entry>
- <para>Scale of parameter</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>Radix</para>
- </entry>
- <entry>
- <para>integer</para>
- </entry>
- <entry>
- <para>Radix of parameter</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>NullType</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>Nullability: "Nullable", "No Nulls",
- "Unknown"</para>
- </entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </section>
- </section>
- <section>
- <title>
- Datatype Metadata
- </title>
- <section>
- <title>SYS.DataTypes</title>
- <para>
- This table supplies information on
- <link linkend="datatypes">datatypes</link>.
- </para>
- <informaltable frame="all">
- <tgroup cols="3">
- <colspec colwidth=".6*" />
- <colspec colwidth=".4*" />
- <thead>
- <row>
- <entry>
- <para>Column Name</para>
- </entry>
- <entry>
- <para>Type</para>
- </entry>
- <entry>
- <para>Description</para>
- </entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>
- <para>Name</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>Teiid design-time type name</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>IsStandard</para>
- </entry>
- <entry>
- <para>boolean</para>
- </entry>
- <entry>
- <para>Always false</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>IsPhysical</para>
- </entry>
- <entry>
- <para>boolean</para>
- </entry>
- <entry>
- <para>Always false</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>TypeName</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>Design-time type name (same as Name)
- </para>
- </entry>
- </row>
- <row>
- <entry>
- <para>JavaClass</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>Java class returned for this type</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>Scale</para>
- </entry>
- <entry>
- <para>integer</para>
- </entry>
- <entry>
- <para>Max scale of this type</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>TypeLength</para>
- </entry>
- <entry>
- <para>integer</para>
- </entry>
- <entry>
- <para>Max length of this type</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>NullType</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>Nullability: "Nullable", "No Nulls",
- "Unknown"</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>IsSigned</para>
- </entry>
- <entry>
- <para>boolean</para>
- </entry>
- <entry>
- <para>Is signed numeric?</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>IsAutoIncremented</para>
- </entry>
- <entry>
- <para>boolean</para>
- </entry>
- <entry>
- <para>Is auto-incremented?</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>IsCaseSensitive</para>
- </entry>
- <entry>
- <para>boolean</para>
- </entry>
- <entry>
- <para>Is case-sensitive?</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>Precision</para>
- </entry>
- <entry>
- <para>integer</para>
- </entry>
- <entry>
- <para>Max precision of this type</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>Radix</para>
- </entry>
- <entry>
- <para>integer</para>
- </entry>
- <entry>
- <para>Radix of this type</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>SearchType</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>Searchability: "Searchable", "All
- Except Like", "Like
- Only", "Unsearchable"</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>UID</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>Data type unique ID</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>OID</para>
- </entry>
- <entry>
- <para>integer</para>
- </entry>
- <entry>
- <para>Unique ID (see note below)</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>RuntimeType</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>Teiid runtime data type name</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>BaseType</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>Base type</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>Description</para>
- </entry>
- <entry>
- <para>string</para>
- </entry>
- <entry>
- <para>Description of type</para>
- </entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </section>
- </section>
- <warning>
- <para>The OID column is is guranteed to be unique/consistent only for given version running instance of a VDB. If a different version of
- the VDB is deployed, these IDs are not guranteed to be the same or unique across both versions of the VDB. Dynamic VDB OIDs are not cluster safe.</para>
- </warning>
- </section>
- <section id="system_procedures">
- <title>System Procedures</title>
- <section>
- <title>SYS.getXMLSchemas</title>
- <para>Returns a resultset with a single column, schema, containing the schemas as clobs.</para>
- <para><synopsis>SYS.getXMLSchemas(in string document)</synopsis></para>
- </section>
- <section>
- <title>SYSADMIN.refreshMatView</title>
- <para>Returns integer RowsUpdated. -1 indicates a load is in progress, otherwise the cardinality of the table is returned. See the Caching Guide for more.</para>
- <para><synopsis>SYSADMIN.refreshMatView(return integer RowsUpdated, in string ViewName, in boolean Invalidate)</synopsis></para>
- </section>
- <section>
- <title>SYSADMIN.refreshMatViewRow</title>
- <para>Returns integer RowsUpdated. -1 indicates the materialized table is currently invalid. 0 indicates that the specified row did not exist in the live data query or in the materialized table. See the Caching Guide for more.</para>
- <para><synopsis>SYSADMIN.refreshMatViewRow(return integer RowsUpdated, in string ViewName, in object Key)</synopsis></para>
- </section>
- <section>
- <title>Metadata Procedures</title>
- &metadata-update-note;
- <section>
- <title>SYSADMIN.setTableStats</title>
- <para>Set statistics for the given table.</para>
- <para><synopsis>SYSADMIN.setTableStats(in string TableName, in integer Cardinality)</synopsis></para>
- </section>
- <section>
- <title>SYSADMIN.setColumnStats</title>
- <para>Set statistics for the given column.</para>
- <para><synopsis>SYSADMIN.setColumnStats(in string TableName, in string ColumnName, in integer DistinctCount, in integer NullCount, in string Max, in string Min)</synopsis></para>
- <para>Passing a null stat value will leave corresponding metadata value unchanged.</para>
- </section>
- <section>
- <title>SYSADMIN.setProperty</title>
- <para>Set an extension metadata property for the given record. Extension metadata is typically used by <xref linkend="translators"/>.</para>
- <para><synopsis>SYSADMIN.setProperty(return clob OldValue, in string Uid, in string Name, in clob Value)</synopsis></para>
- <para>Setting a value to null will remove the property.</para>
- <example lang="sql">
- <title>Example Property Set</title>
- <programlisting>CALL SYSADMIN.setProperty(uid=>(SELECT uid FROM TABLES WHERE name='tab'), name=>'some name', value=>'some value')</programlisting>
- <para>This will set the property 'some name'='some value' on table tab.</para>
- </example>
- </section>
- </section>
- </section>
-</chapter>
\ No newline at end of file
Copied: tags/teiid-parent-7.4.0.CR1/documentation/reference/src/main/docbook/en-US/content/system_schema.xml (from rev 3138, trunk/documentation/reference/src/main/docbook/en-US/content/system_schema.xml)
===================================================================
--- tags/teiid-parent-7.4.0.CR1/documentation/reference/src/main/docbook/en-US/content/system_schema.xml (rev 0)
+++ tags/teiid-parent-7.4.0.CR1/documentation/reference/src/main/docbook/en-US/content/system_schema.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -0,0 +1,1847 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % CustomDTD SYSTEM "../../../../../../docbook/custom.dtd">
+%CustomDTD;
+]>
+<chapter id="system_schema">
+ <title>System Schema</title>
+ <para>The built-in SYS and SYSADMIN schemas provide metadata tables and procedures against the current VDB.</para>
+ <section id="system_tables">
+ <title>System Tables</title>
+ <section>
+ <title>VDB, Schema, and Properties</title>
+ <section>
+ <title>SYSADMIN.VDBResources</title>
+ <para>This table provides the current VDB contents.</para>
+ <informaltable frame="all">
+ <tgroup cols="3">
+ <colspec colwidth=".6*" />
+ <colspec colwidth=".4*" />
+ <thead>
+ <row>
+ <entry>
+ <para>Column Name</para>
+ </entry>
+ <entry>
+ <para>Type</para>
+ </entry>
+ <entry>
+ <para>Description</para>
+ </entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>
+ <para>resourcePath</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>The path to the contents.</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>contents</para>
+ </entry>
+ <entry>
+ <para>blob</para>
+ </entry>
+ <entry>
+ <para>The contents as a blob.</para>
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </section>
+ <section>
+ <title>SYS.VirtualDatabases</title>
+ <para>This table supplies information about the currently
+ connected
+ virtual database, of which there is always exactly one
+ (in the
+ context of a connection).</para>
+ <informaltable frame="all">
+ <tgroup cols="3">
+ <colspec colwidth=".6*" />
+ <colspec colwidth=".4*" />
+ <thead>
+ <row>
+ <entry>
+ <para>Column Name</para>
+ </entry>
+ <entry>
+ <para>Type</para>
+ </entry>
+ <entry>
+ <para>Description</para>
+ </entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>
+ <para>Name</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>The name of the VDB</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>Version</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>The version of the VDB</para>
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </section>
+ <section>
+ <title>SYS.Schemas</title>
+ <para>This table supplies information about all the schemas in
+ the
+ virtual database, including the system schema itself
+ (System).
+ </para>
+ <informaltable frame="all">
+ <tgroup cols="3">
+ <colspec colwidth=".6*" />
+ <colspec colwidth=".4*" />
+ <thead>
+ <row>
+ <entry>
+ <para>Column Name</para>
+ </entry>
+ <entry>
+ <para>Type</para>
+ </entry>
+ <entry>
+ <para>Description</para>
+ </entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>
+ <para>VDBName</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>VDB name</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>Name</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>Schema name</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>IsPhysical</para>
+ </entry>
+ <entry>
+ <para>boolean</para>
+ </entry>
+ <entry>
+ <para>True if this represents a source</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>UID</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>Unique ID</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>OID</para>
+ </entry>
+ <entry>
+ <para>integer</para>
+ </entry>
+ <entry>
+ <para>Unique ID (see note below)</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>Description</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>Description</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>PrimaryMetamodelURI</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>URI for the primary metamodel describing the model used
+ for this schema</para>
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </section>
+ <section>
+ <title>SYS.Properties</title>
+ <para>This table supplies user-defined properties on all objects
+ based on metamodel extensions. Normally, this table is empty if
+ no
+ metamodel extensions are being used.</para>
+ <informaltable frame="all">
+ <tgroup cols="3">
+ <colspec colwidth=".6*" />
+ <colspec colwidth=".4*" />
+ <thead>
+ <row>
+ <entry>
+ <para>Column Name</para>
+ </entry>
+ <entry>
+ <para>Type</para>
+ </entry>
+ <entry>
+ <para>Description</para>
+ </entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>
+ <para>Name</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>Extension property name</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>Value</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>Extension property value</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>UID</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>Key unique ID</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>OID</para>
+ </entry>
+ <entry>
+ <para>integer</para>
+ </entry>
+ <entry>
+ <para>Unique ID (see note below)</para>
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </section>
+ </section>
+ <section>
+ <title>Table Metadata</title>
+ <section>
+ <title>SYS.Tables</title>
+ <para>This table supplies information about all the groups
+ (tables,
+ views, documents, etc) in the virtual database.</para>
+ <informaltable frame="all">
+ <tgroup cols="3">
+ <colspec colwidth=".6*" />
+ <colspec colwidth=".4*" />
+ <thead>
+ <row>
+ <entry>
+ <para>Column Name</para>
+ </entry>
+ <entry>
+ <para>Type</para>
+ </entry>
+ <entry>
+ <para>Description</para>
+ </entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>
+ <para>VDBName</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>VDB name</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>SchemaName</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>Schema Name</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>Name</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>Short group name</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>Type</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>Table type (Table, View, Document, ...)
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>NameInSource</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>Name of this group in the source</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>IsPhysical</para>
+ </entry>
+ <entry>
+ <para>boolean</para>
+ </entry>
+ <entry>
+ <para>True if this is a source table</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>SupportsUpdates</para>
+ </entry>
+ <entry>
+ <para>boolean</para>
+ </entry>
+ <entry>
+ <para>True if group can be updated</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>UID</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>Group unique ID</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>OID</para>
+ </entry>
+ <entry>
+ <para>integer</para>
+ </entry>
+ <entry>
+ <para>Unique ID (see note below)</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>Cardinality</para>
+ </entry>
+ <entry>
+ <para>integer</para>
+ </entry>
+ <entry>
+ <para>Approximate number of rows in the group
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>Description</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>Description</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>IsSystem</para>
+ </entry>
+ <entry>
+ <para>boolean</para>
+ </entry>
+ <entry>
+ <para>True if in system table</para>
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </section>
+ <section>
+ <title>SYSADMIN.MatViews</title>
+ <para>This table supplies information about all the materailized views in the virtual database.</para>
+ <informaltable frame="all">
+ <tgroup cols="3">
+ <colspec colwidth=".6*" />
+ <colspec colwidth=".4*" />
+ <thead>
+ <row>
+ <entry>
+ <para>Column Name</para>
+ </entry>
+ <entry>
+ <para>Type</para>
+ </entry>
+ <entry>
+ <para>Description</para>
+ </entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>
+ <para>VDBName</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>VDB name</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>SchemaName</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>Schema Name</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>Name</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>Short group name</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>TargetSchemaName</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>Name of the materialized table schema</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>TargetName</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>Name of the materialized table</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>Valid</para>
+ </entry>
+ <entry>
+ <para>boolean</para>
+ </entry>
+ <entry>
+ <para>True if materialized table is currently valid.</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>LoadState</para>
+ </entry>
+ <entry>
+ <para>boolean</para>
+ </entry>
+ <entry>
+ <para>The load state, can be one of NEEDS_LOADING, LOADING, LOADED, FAILED_LOAD</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>Updated</para>
+ </entry>
+ <entry>
+ <para>timestamp</para>
+ </entry>
+ <entry>
+ <para>The timestamp of the last full refresh.</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>Cardinality</para>
+ </entry>
+ <entry>
+ <para>integer</para>
+ </entry>
+ <entry>
+ <para>The number of rows in the materialized view table.</para>
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </section>
+ <section>
+ <title>SYS.Columns</title>
+ <para>This table supplies information about all the elements
+ (columns, tags, attributes, etc) in the virtual database.</para>
+ <informaltable frame="all">
+ <tgroup cols="3">
+ <colspec colwidth=".6*" />
+ <colspec colwidth=".4*" />
+ <thead>
+ <row>
+ <entry>
+ <para>Column Name</para>
+ </entry>
+ <entry>
+ <para>Type</para>
+ </entry>
+ <entry>
+ <para>Description</para>
+ </entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>
+ <para>VDBName</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>VDB name</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>SchemaName</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>Schema Name</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>TableName</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>Table name</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>Name</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>Element name (not qualified)</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>Position</para>
+ </entry>
+ <entry>
+ <para>integer</para>
+ </entry>
+ <entry>
+ <para>Position in group (1-based)</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>NameInSource</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>Name of element in source</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>DataType</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>Teiid runtime data type name</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>Scale</para>
+ </entry>
+ <entry>
+ <para>integer</para>
+ </entry>
+ <entry>
+ <para>Number of digits after the decimal point
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>ElementLength</para>
+ </entry>
+ <entry>
+ <para>integer</para>
+ </entry>
+ <entry>
+ <para>Element length (mostly used for strings)
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>sLengthFixed</para>
+ </entry>
+ <entry>
+ <para>boolean</para>
+ </entry>
+ <entry>
+ <para>Whether the length is fixed or variable
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>SupportsSelect</para>
+ </entry>
+ <entry>
+ <para>boolean</para>
+ </entry>
+ <entry>
+ <para>Element can be used in SELECT</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>SupportsUpdates</para>
+ </entry>
+ <entry>
+ <para>boolean</para>
+ </entry>
+ <entry>
+ <para>Values can be inserted or updated in the
+ element</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>IsCaseSensitive</para>
+ </entry>
+ <entry>
+ <para>boolean</para>
+ </entry>
+ <entry>
+ <para>Element is case-sensitive</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>IsSigned</para>
+ </entry>
+ <entry>
+ <para>boolean</para>
+ </entry>
+ <entry>
+ <para>Element is signed numeric value</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>IsCurrency</para>
+ </entry>
+ <entry>
+ <para>boolean</para>
+ </entry>
+ <entry>
+ <para>Element represents monetary value</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>IsAutoIncremented</para>
+ </entry>
+ <entry>
+ <para>boolean</para>
+ </entry>
+ <entry>
+ <para>Element is auto-incremented in the source
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>NullType</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>Nullability: "Nullable", "No Nulls",
+ "Unknown"</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>MinRange</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>Minimum value</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>MaxRange</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>Maximum value</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>DistinctCount</para>
+ </entry>
+ <entry>
+ <para>integer</para>
+ </entry>
+ <entry>
+ <para>Distinct value count, -1 can indicate unknown</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>NullCount</para>
+ </entry>
+ <entry>
+ <para>integer</para>
+ </entry>
+ <entry>
+ <para>Null value count, -1 can indicate unknown</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>SearchType</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>Searchability: "Searchable", "All
+ Except Like", "Like
+ Only", "Unsearchable"</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>Format</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>Format of string value</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>DefaultValue</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>Default value</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>JavaClass</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>Java class that will be returned</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>Precision</para>
+ </entry>
+ <entry>
+ <para>integer</para>
+ </entry>
+ <entry>
+ <para>Number of digits in numeric value</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>CharOctetLength</para>
+ </entry>
+ <entry>
+ <para>integer</para>
+ </entry>
+ <entry>
+ <para>Measure of return value size</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>Radix</para>
+ </entry>
+ <entry>
+ <para>integer</para>
+ </entry>
+ <entry>
+ <para>Radix for numeric values</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>GroupUpperName</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>Upper-case full group name</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>UpperName</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>Upper-case element name</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>UID</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>Element unique ID</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>OID</para>
+ </entry>
+ <entry>
+ <para>integer</para>
+ </entry>
+ <entry>
+ <para>Unique ID (see note below)</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>Description</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>Description</para>
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </section>
+ <section>
+ <title>SYS.Keys</title>
+ <para>This table supplies information about primary, foreign,
+ and unique keys.</para>
+ <informaltable frame="all">
+ <tgroup cols="3">
+ <colspec colwidth=".6*" />
+ <colspec colwidth=".4*" />
+ <thead>
+ <row>
+ <entry>
+ <para>Column Name</para>
+ </entry>
+ <entry>
+ <para>Type</para>
+ </entry>
+ <entry>
+ <para>Description</para>
+ </entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>
+ <para>VDBName</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>VDB name</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>SchemaName</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>Schema Name</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>Table Name</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>Table name</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>Name</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>Key name</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>Description</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>Description</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>NameInSource</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>Name of key in source system</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>Type</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>Type of key: "Primary", "Foreign", "Unique",
+ etc</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>IsIndexed</para>
+ </entry>
+ <entry>
+ <para>boolean</para>
+ </entry>
+ <entry>
+ <para>True if key is indexed</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>RefKeyUID</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>Referenced key UID (if foreign key)
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>UID</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>Key unique ID</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>OID</para>
+ </entry>
+ <entry>
+ <para>integer</para>
+ </entry>
+ <entry>
+ <para>Unique ID (see note below)</para>
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </section>
+ <section>
+ <title>SYS.KeyColumns</title>
+ <para>This table supplies information about the columns
+ referenced by a key.</para>
+ <informaltable frame="all">
+ <tgroup cols="3">
+ <colspec colwidth=".6*" />
+ <colspec colwidth=".4*" />
+ <thead>
+ <row>
+ <entry>
+ <para>Column Name</para>
+ </entry>
+ <entry>
+ <para>Type</para>
+ </entry>
+ <entry>
+ <para>Description</para>
+ </entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>
+ <para>VDBName</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>VDB name</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>SchemaName</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>Schema Name</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>TableName</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>Table name</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>Name</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>Element name</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>KeyName</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>Key name</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>KeyType</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>Key type: "Primary", "Foreign", "Unique", etc
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>RefKeyUID</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>Referenced key UID</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>UID</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>Key UID</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>OID</para>
+ </entry>
+ <entry>
+ <para>integer</para>
+ </entry>
+ <entry>
+ <para>Unique ID (see note below)</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>Position</para>
+ </entry>
+ <entry>
+ <para>integer</para>
+ </entry>
+ <entry>
+ <para>Position in key</para>
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </section>
+ </section>
+ <section>
+ <title>Procedure Metadata</title>
+ <section>
+ <title>SYS.Procedures</title>
+ <para>This table supplies information about the procedures in
+ the virtual database.</para>
+ <informaltable frame="all">
+ <tgroup cols="3">
+ <colspec colwidth=".6*" />
+ <colspec colwidth=".4*" />
+ <thead>
+ <row>
+ <entry>
+ <para>Column Name</para>
+ </entry>
+ <entry>
+ <para>Type</para>
+ </entry>
+ <entry>
+ <para>Description</para>
+ </entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>
+ <para>VDBName</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>VDB name</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>SchemaName</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>Schema Name</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>Name</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>Procedure name</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>NameInSource</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>Procedure name in source system</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>ReturnsResults</para>
+ </entry>
+ <entry>
+ <para>boolean</para>
+ </entry>
+ <entry>
+ <para>Returns a result set</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>UID</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>Procedure UID</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>OID</para>
+ </entry>
+ <entry>
+ <para>integer</para>
+ </entry>
+ <entry>
+ <para>Unique ID (see note below)</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>Description</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>Description</para>
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </section>
+ <section>
+ <title>SYS.ProcedureParams</title>
+ <para>This supplies information on procedure parameters.
+ </para>
+ <informaltable frame="all">
+ <tgroup cols="3">
+ <colspec colwidth=".6*" />
+ <colspec colwidth=".4*" />
+ <thead>
+ <row>
+ <entry>
+ <para>Column Name</para>
+ </entry>
+ <entry>
+ <para>Type</para>
+ </entry>
+ <entry>
+ <para>Description</para>
+ </entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>
+ <para>VDBName</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>VDB name</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>SchemaName</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>Schema Name</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>ProcedureName</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>Procedure name</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>Name</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>Parameter name</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>DataType</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>Teiid runtime data type name</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>Position</para>
+ </entry>
+ <entry>
+ <para>integer</para>
+ </entry>
+ <entry>
+ <para>Position in procedure args</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>Type</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>Parameter direction: "In", "Out",
+ "InOut", "ResultSet",
+ "ReturnValue"</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>Optional</para>
+ </entry>
+ <entry>
+ <para>boolean</para>
+ </entry>
+ <entry>
+ <para>Parameter is optional</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>Precision</para>
+ </entry>
+ <entry>
+ <para>integer</para>
+ </entry>
+ <entry>
+ <para>Precision of parameter</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>TypeLength</para>
+ </entry>
+ <entry>
+ <para>integer</para>
+ </entry>
+ <entry>
+ <para>Length of parameter value</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>Scale</para>
+ </entry>
+ <entry>
+ <para>integer</para>
+ </entry>
+ <entry>
+ <para>Scale of parameter</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>Radix</para>
+ </entry>
+ <entry>
+ <para>integer</para>
+ </entry>
+ <entry>
+ <para>Radix of parameter</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>NullType</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>Nullability: "Nullable", "No Nulls",
+ "Unknown"</para>
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </section>
+ </section>
+ <section>
+ <title>
+ Datatype Metadata
+ </title>
+ <section>
+ <title>SYS.DataTypes</title>
+ <para>
+ This table supplies information on
+ <link linkend="datatypes">datatypes</link>.
+ </para>
+ <informaltable frame="all">
+ <tgroup cols="3">
+ <colspec colwidth=".6*" />
+ <colspec colwidth=".4*" />
+ <thead>
+ <row>
+ <entry>
+ <para>Column Name</para>
+ </entry>
+ <entry>
+ <para>Type</para>
+ </entry>
+ <entry>
+ <para>Description</para>
+ </entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>
+ <para>Name</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>Teiid design-time type name</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>IsStandard</para>
+ </entry>
+ <entry>
+ <para>boolean</para>
+ </entry>
+ <entry>
+ <para>Always false</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>IsPhysical</para>
+ </entry>
+ <entry>
+ <para>boolean</para>
+ </entry>
+ <entry>
+ <para>Always false</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>TypeName</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>Design-time type name (same as Name)
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>JavaClass</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>Java class returned for this type</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>Scale</para>
+ </entry>
+ <entry>
+ <para>integer</para>
+ </entry>
+ <entry>
+ <para>Max scale of this type</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>TypeLength</para>
+ </entry>
+ <entry>
+ <para>integer</para>
+ </entry>
+ <entry>
+ <para>Max length of this type</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>NullType</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>Nullability: "Nullable", "No Nulls",
+ "Unknown"</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>IsSigned</para>
+ </entry>
+ <entry>
+ <para>boolean</para>
+ </entry>
+ <entry>
+ <para>Is signed numeric?</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>IsAutoIncremented</para>
+ </entry>
+ <entry>
+ <para>boolean</para>
+ </entry>
+ <entry>
+ <para>Is auto-incremented?</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>IsCaseSensitive</para>
+ </entry>
+ <entry>
+ <para>boolean</para>
+ </entry>
+ <entry>
+ <para>Is case-sensitive?</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>Precision</para>
+ </entry>
+ <entry>
+ <para>integer</para>
+ </entry>
+ <entry>
+ <para>Max precision of this type</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>Radix</para>
+ </entry>
+ <entry>
+ <para>integer</para>
+ </entry>
+ <entry>
+ <para>Radix of this type</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>SearchType</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>Searchability: "Searchable", "All
+ Except Like", "Like
+ Only", "Unsearchable"</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>UID</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>Data type unique ID</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>OID</para>
+ </entry>
+ <entry>
+ <para>integer</para>
+ </entry>
+ <entry>
+ <para>Unique ID (see note below)</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>RuntimeType</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>Teiid runtime data type name</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>BaseType</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>Base type</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>Description</para>
+ </entry>
+ <entry>
+ <para>string</para>
+ </entry>
+ <entry>
+ <para>Description of type</para>
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </section>
+ </section>
+ <warning>
+ <para>The OID column is guranteed to be unique/consistent only for given version running instance of a VDB. If a different version of
+ the VDB is deployed, these IDs are not guranteed to be the same or unique across both versions of the VDB. Dynamic VDB OIDs are not cluster safe.</para>
+ </warning>
+ </section>
+ <section id="system_procedures">
+ <title>System Procedures</title>
+ <section>
+ <title>SYS.getXMLSchemas</title>
+ <para>Returns a resultset with a single column, schema, containing the schemas as clobs.</para>
+ <para><synopsis>SYS.getXMLSchemas(document in string) returns schema string</synopsis></para>
+ </section>
+ <section>
+ <title>SYSADMIN.refreshMatView</title>
+ <para>Returns integer RowsUpdated. -1 indicates a load is in progress, otherwise the cardinality of the table is returned. See the Caching Guide for more.</para>
+ <para><synopsis>SYSADMIN.refreshMatView(RowsUpdated return integer, ViewName in string, Invalidate in boolean)</synopsis></para>
+ </section>
+ <section>
+ <title>SYSADMIN.refreshMatViewRow</title>
+ <para>Returns integer RowsUpdated. -1 indicates the materialized table is currently invalid. 0 indicates that the specified row did not exist in the live data query or in the materialized table. See the Caching Guide for more.</para>
+ <para><synopsis>SYSADMIN.refreshMatViewRow(RowsUpdated return integer, ViewName in string, Key in object)</synopsis></para>
+ </section>
+ <section>
+ <title>Metadata Procedures</title>
+ &metadata-update-note;
+ <section>
+ <title>SYSADMIN.setTableStats</title>
+ <para>Set statistics for the given table.</para>
+ <para><synopsis>SYSADMIN.setTableStats(TableName in string, Cardinality in integer)</synopsis></para>
+ </section>
+ <section>
+ <title>SYSADMIN.setColumnStats</title>
+ <para>Set statistics for the given column.</para>
+ <para><synopsis>SYSADMIN.setColumnStats(TableName in string, ColumnName in string, DistinctCount in integer, NullCount in integer, Max in string, Min in string)</synopsis></para>
+ <para>All stat values are nullable. Passing a null stat value will leave corresponding metadata value unchanged.</para>
+ </section>
+ <section>
+ <title>SYSADMIN.setProperty</title>
+ <para>Set an extension metadata property for the given record. Extension metadata is typically used by <xref linkend="translators"/>.</para>
+ <para><synopsis>SYSADMIN.setProperty(OldValue return clob, Uid in string, Name in string, Value in clob)</synopsis></para>
+ <para>Setting a value to null will remove the property.</para>
+ <example lang="sql">
+ <title>Example Property Set</title>
+ <programlisting>CALL SYSADMIN.setProperty(uid=>(SELECT uid FROM TABLES WHERE name='tab'), name=>'some name', value=>'some value')</programlisting>
+ <para>This will set the property 'some name'='some value' on table tab.</para>
+ </example>
+ <para>The use of this procedure will not trigger replanning of associated prepared plans.</para>
+ </section>
+ </section>
+ </section>
+</chapter>
\ No newline at end of file
Deleted: tags/teiid-parent-7.4.0.CR1/documentation/reference/src/main/docbook/en-US/content/translators.xml
===================================================================
--- trunk/documentation/reference/src/main/docbook/en-US/content/translators.xml 2011-05-03 09:43:58 UTC (rev 3137)
+++ tags/teiid-parent-7.4.0.CR1/documentation/reference/src/main/docbook/en-US/content/translators.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -1,1472 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<chapter id="translators">
- <title>Translators</title>
-
- <section>
- <title>Introduction to the Teiid Connector Architecture</title>
- <para>
- The Teiid Connector Architecture (TCA) provides Teiid with a robust mechanism
- for integrating with external systems. The TCA defines a common client interface
- between Teiid and an external system that includes metadata as to what SQL
- constructs are supported for pushdown and the ability to import metadata from
- the external system.
- </para>
-
- <para>
- A Translator is the heart of the TCA and acts as the bridge logic between Teiid
- and an external system, which is most commonly accessed through a JCA resource
- adapter. Refer to the Teiid Developers Guide for details on developing custom
- Translators and JCA resource adapters for use with Teiid.
- </para>
-
- <note>
- <para>
- The TCA is not the same as the JCA, the JavaEE Connector Architecture, although
- the TCA is designed for use with JCA resource adapters.
- </para>
- </note>
-
- <note>
- <para>
- The import capabilities of Teiid Translators is currently only used in
- <link linkend="dynamic_vdbs">dynamic VDBs</link> and not by the Teiid Designer.
- </para>
- </note>
-
- </section>
-
- <section>
- <title>Translators</title>
- <para>
- A Translator is typically paired with a particular JCA resource adapter. In
- instances where pooling, environment dependent configuration management, advanced
- security handling, etc. are not needed, then a JCA resource adapter is not needed.
- The configuration of JCA ConnectionFactories for needed resource adapters is not
- part of this guide, please see the Teiid Administrator Guide and the kit examples
- for configuring resource adapters for use in JBossAS.
- </para>
-
- <para>
- Translators can have a number of configurable properties. These are broken down
- into execution properties, which determine aspects of how data is retrieved, and
- import settings, which determine what metadata is read for import.
- </para>
-
- <para>
- The execution properties for a translator typically have reasonable defaults. For
- specific translator types, e.g. the Derby translator, base execution properties are
- already tuned to match the source. In most cases the user will not need to adjust
- their values.
- </para>
-
- <table>
- <title>Base Execution Properties - shared by all translators</title>
- <tgroup cols="3">
- <colspec colwidth="3*" />
- <colspec colwidth="6*" />
- <colspec colwidth="2*" />
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Description</entry>
- <entry>Default</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>Immutable</entry>
- <entry>Set to true to indicate that the source never changes.</entry>
- <entry>false</entry>
- </row>
- <row>
- <entry>RequiresCriteria</entry>
- <entry>Set to true to indicate that source SELECT/UPDATE/DELETE queries require a where clause.</entry>
- <entry>false</entry>
- </row>
- <row>
- <entry>SupportsOrderBy</entry>
- <entry>Set to true to indicate that the ORDER BY clause is supported.</entry>
- <entry>false</entry>
- </row>
- <row>
- <entry>SupportsOuterJoins</entry>
- <entry>Set to true to indicate that OUTER JOINs are supported.</entry>
- <entry>false</entry>
- </row>
- <row>
- <entry>SupportsFullOuterJoins</entry>
- <entry>If outer joins are supported, true indicates that FULL OUTER JOINs are supported.</entry>
- <entry>false</entry>
- </row>
- <row>
- <entry>SupportsInnerJoins</entry>
- <entry>Set to true to indicate that INNER JOINs are supported.</entry>
- <entry>false</entry>
- </row>
- <row>
- <entry>SupportedJoinCriteria</entry>
- <entry>If joins are supported, defines what criteria may be used as the join criteria. May be one of (ANY, THETA, EQUI, or KEY).</entry>
- <entry>ANY</entry>
- </row>
- <row>
- <entry>MaxInCriteriaSize</entry>
- <entry>If in criteria are supported, defines what the maximum number of in entries are per predicate. -1 indicates no limit.</entry>
- <entry>-1</entry>
- </row>
- <row>
- <entry>MaxDependentInPredicates</entry>
- <entry>If in criteria are supported, defines what the maximum number of predicates that can be used for a dependent join.
- Values less than 1 indicate to use only one in predicate per dependent value pushed (which matches the pre-7.4 behavior).</entry>
- <entry>-1</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <note>
- <para>
- Only a subset of the supports metadata can be set through execution properties. If more control is needed, please
- consult the Teiid Developers Guide.
- </para>
- </note>
-
- <para>There are no base importer settings.</para>
-
- <section>
- <title>File Translator</title>
- <para>
- The file translator, known by the type name <emphasis>file</emphasis>, exposes
- stored procedures to leverage file system resources exposed by the file resource
- adapter. It will commonly be used with the <link linkend="texttable">TEXTTABLE</link>
- or <link linkend="xmltable">XMLTABLE</link> table functions to use CSV or XML
- formated data.
- </para>
-
- <table>
- <title>Execution Properties</title>
- <tgroup cols="3">
- <colspec colwidth="1*" />
- <colspec colwidth="4*" />
- <colspec colwidth="1*" />
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Description</entry>
- <entry>Default</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>Encoding</entry>
- <entry>The encoding that should be used for CLOBs returned by the getTextFiles procedure</entry>
- <entry>The system default encoding</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <para>There are file importer settings, but it does provide metadata for dynamic vdbs.</para>
-
- <section>
- <title>Usage</title>
- <para>
- Retrieve all files as BLOBs with the given extension at the given path.
- </para>
-
- <programlisting>call getFiles('path/*.ext')</programlisting>
-
- <para>
- If the extension pattern is not specified and the path is a directory,
- then all files in the directory will be returned. If the path or filename
- doesn't exist, then no results will be returned.
- </para>
-
- <para>
- Retrieve all files as CLOBs with the given extension at the given path.
- </para>
- <programlisting>call getTextFiles('path/*.ext')</programlisting>
-
- <para>
- Save the CLOB, BLOB, or XML file to given path
- </para>
- <programlisting>call saveFile('path', value)</programlisting>
-
- <para>
- See the database metadata for full descriptions of the getFiles,
- getTextFiles, and saveFile procedures.
- </para>
- </section>
-
- <section>
- <title>JCA Resource Adapter</title>
- <para>The resource adapter for this translator provided through "File Data Source", Refer to Admin Guide for
- configuration information.</para>
- </section>
-
- </section>
-
- <section>
- <title>JDBC Translator</title>
- <para>
- The JDBC translator bridges between SQL semantic and data type difference
- between Teiid and a target RDBMS. Teiid has a range of specific translators
- that target the most popular open source and proprietary databases.
- </para>
-
- <itemizedlist>
- <title>Type names:</title>
- <listitem>
- <para>
- <emphasis>jdbc-ansi</emphasis> - declares support for most SQL
- constructs supported by Teiid, except for row limit/offset and
- EXCEPT/INTERCECT. Translates source SQL into ANSI compliant syntax.
- This translator should be used when another more specific type is
- not available.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>jdbc-simple</emphasis> - same as jdbc-ansi, except disables
- support for function, UNION, and aggregate pushdown.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>db2</emphasis> - for use with DB2 8 or later.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>derby</emphasis> - for use with Derby 10.1 or later.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>h2</emphasis> - for use with H2 version 1.1 or later.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>hsql</emphasis> - for use with HSQLDB 1.7 or later.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>ingres</emphasis> - for use with Ingres 2006 or later.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>ingres93</emphasis> - for use with Ingres 9.3 or later.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>intersystems-cache</emphasis> - for use with Intersystems Cache Object database (only relational aspect of it)
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>informix</emphasis> - for use with any version.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>metamatrix</emphasis> - for use with MetaMatrix 5.5.0 or later.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>modeshape</emphasis> - for use with Modeshape 2.2.1 or later. The PATH, NAME, LOCALNODENAME, DEPTH, and SCORE functions should be accessed as pseudo-columns, e.g. "nt:base"."jcr:path".
- Teiid UFDs (prefixed by JCR_) are available for CONTIANS, ISCHILDNODE, ISDESCENDENT, ISSAMENODE, REFERENCE - see the JCRFunctions.xmi.
- If a selector name is needed in a JCR function, you should use the pseudo-column "jcr:path", e.g. JCR_ISCHILDNODE(foo.jcr_path, 'x/y') would become ISCHILDNODE(foo, 'x/y') in the ModeShape query.
- An additional pseudo-column "mode:properties" should be imported by setting the ModeShape JDBC connection property teiidsupport=true.
- The column "mode:properties" should be used by the JCR_REFERENCE and other
- functions that expect a .* selector name, e.g. JCR_REFERENCE(nt_base.jcr_properties) would become REFERENCE("nt:base".*) in the ModeShape query.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>mysql</emphasis>/<emphasis>mysql5</emphasis> - for use with
- MySQL version 4.x and 5 or later respectively.
- </para>
- <para>
- The MySQL Translators expect the database or session to be using ANSI
- mode. If the database is not using ANSI mode, an initialization query
- should be used on the pool to set ANSI mode:
- </para>
- <programlisting>set SESSION sql_mode = 'ANSI'</programlisting>
- </listitem>
- <listitem>
- <para>
- <emphasis>oracle</emphasis> - for use with Oracle 9i or later.
- Sequences may be used with the Oracle translator. A sequence may be
- modeled as a table with a name in source of DUAL and columns with the
- name in source set to <code><sequencesequence name>.[nextval|currentval].</code>
- You can use a sequence as the default value for insert columns by
- setting the column to autoincrement and the name in source to
- <code><element name>:SEQUENCE=<sequence name>.<sequence value></code>.
- A rownum column can also added to any Oracle physical table to support the rownum pseudo-column.
- A rownum colum should have a name in source of <code>rownum</code>. These rownum columns do not
- have the same semantics as the Oracle rownum construct so care must be taken in their usage.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>postgresql</emphasis> - for use with 8.0 or later clients
- and 7.1 or later server.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>sqlserver</emphasis> - for use with SQL Server 2000 or later. A SQL Server JDBC driver version 2.0 or later (or compatible e.g. JTDS 1.2 or later) should be used.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>sybase</emphasis> - for use with Sybase version 12.5 or later.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>teiid</emphasis> - for use with Teiid 6.0 or later.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>teradata</emphasis> - for use with Teradata V2R5.1 or later.
- </para>
- </listitem>
- </itemizedlist>
-
- <table>
- <title>Execution Properties - shared by all JDBC Translators</title>
- <tgroup cols="3">
- <colspec colwidth="3*" />
- <colspec colwidth="6*" />
- <colspec colwidth="2*" />
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Description</entry>
- <entry>Default</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>DatabaseTimeZone</entry>
- <entry>The time zone of the database. Used when fetchings date, time, or timestamp values.</entry>
- <entry>The system default time zone</entry>
- </row>
- <row>
- <entry>DatabaseVersion</entry>
- <entry>The specific database version. Used to further tune pushdown support.</entry>
- <entry>The base supported version</entry>
- </row>
- <row>
- <entry>TrimStrings</entry>
- <entry>true to trim trailing whitespace from fixed length character strings. Note that Teiid only has a string, or varchar, type that treats trailing whitespace as meaningful.</entry>
- <entry>false</entry>
- </row>
- <row>
- <entry>UseBindVariables</entry>
- <entry>true to indicate that PreparedStatements should be used and that literal values in the source query should be replace with bind variables. If false only LOB values will trigger the use of PreparedStatements.</entry>
- <entry>true</entry>
- </row>
- <row>
- <entry>UseCommentsInSourceQuery</entry>
- <entry>This will embed a /*comment*/ leading comment with session/request id in source SQL query for informational purposes</entry>
- <entry>false</entry>
- </row>
- <row>
- <entry>MaxPreparedInsertBatchSize</entry>
- <entry>The max size of a prepared insert batch.</entry>
- <entry>2048</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Importer Properties - shared by all JDBC Translators</title>
- <tgroup cols="3">
- <colspec colwidth="3*" />
- <colspec colwidth="6*" />
- <colspec colwidth="2*" />
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Description</entry>
- <entry>Default</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>catalog</entry>
- <entry>See DatabaseMetaData.getTables<footnote label="1" id="dbmd"><para>Full JavaDoc for <ulink url="http://java.sun.com/javase/6/docs/api/java/sql/DatabaseMetaData.html">DatabaseMetaData</ulink></para></footnote></entry>
- <entry>null</entry>
- </row>
- <row>
- <entry>schemaPattern</entry>
- <entry>See DatabaseMetaData.getTables<footnoteref linkend="dbmd"/></entry>
- <entry>null</entry>
- </row>
- <row>
- <entry>tableNamePattern</entry>
- <entry>See DatabaseMetaData.getTables<footnoteref linkend="dbmd"/></entry>
- <entry>null</entry>
- </row>
- <row>
- <entry>procedurePatternName</entry>
- <entry>See DatabaseMetaData.getProcedures<footnoteref linkend="dbmd"/></entry>
- <entry>null</entry>
- </row>
- <row>
- <entry>tableTypes</entry>
- <entry>Comma separated list - without spaces - of imported table types. See DatabaseMetaData.getTables<footnoteref linkend="dbmd"/></entry>
- <entry>null</entry>
- </row>
- <row>
- <entry>useFullSchemaName</entry>
- <entry>When false, directs the importer to drop the source catalog/schema from the Teiid object name, so that the Teiid fully qualified name will be in the form of <model name>.<table name> - Note: that this may lead to objects with duplicate names when importing from multiple schemas, which results in an exception</entry>
- <entry>true</entry>
- </row>
- <row>
- <entry>importKeys</entry>
- <entry>true to import primary and foriegn keys</entry>
- <entry>true</entry>
- </row>
- <row>
- <entry>importIndexes</entry>
- <entry>true to import index/unique key/cardinality information</entry>
- <entry>true</entry>
- </row>
- <row>
- <entry>importApproximateIndexes</entry>
- <entry>true to import approximate index information. See DatabaseMetaData.getIndexInfo<footnoteref linkend="dbmd"/></entry>
- <entry>true</entry>
- </row>
- <row>
- <entry>importProcedures</entry>
- <entry>true to import procedures and procedure columns - Note that it is not always possible to import procedure result set columns due to database limitations. It is also not currently possible to import overloaded procedures.</entry>
- <entry>true</entry>
- </row>
- <row>
- <entry>widenUnsignedTypes</entry>
- <entry>true to convert unsigned types to the next widest type. For example SQL Server reports tinyint as an unsigned type. With this option enabled, tinyint would be imported as a short instead of a byte.</entry>
- <entry>true</entry>
- </row>
- <row>
- <entry>quoteNameInSource</entry>
- <entry>false will override the default and direct Teiid to create source queries using unquoted identifiers.</entry>
- <entry>true</entry>
- </row>
- <row>
- <entry>useProcedureSpecificName</entry>
- <entry>true will allow the import of overloaded procedures (which will normally result in a duplicate procedure error) by using the unique procedure specific name as the Teiid name. This option will only work with JDBC 4.0 compatable drivers that report specific names.</entry>
- <entry>false</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <warning>
- <para>
- The default import settings will crawl all available metadata. This import
- process is time consuming and full metadata import is not needed in most
- situations. Most commonly you'll want to limit import by schemaPattern
- and tableTypes.
- </para>
- </warning>
-
- <para>
- Example importer settings to only import tables and views from my-schema.
- </para>
- <programlisting language="XML" role="XML"><![CDATA[...
-<property name="importer.tableTypes" value="TABLE,VIEW"/>
-<property name="importer.schemaPattern" value="my-schema"/>
-...]]></programlisting>
-
- <section>
- <title>Usage</title>
- <para>
- Usage of a JDBC source is straight-forward. Using Teiid SQL, the source may be
- queried as if the tables and procedures were local to the Teiid system.
- </para>
- </section>
-
- <section>
- <title>JCA Resource Adapter</title>
- <para>The resource adapter for this translator provided through data source in JBoss AS,
- Refer to Admin Guide for "JDBC Data Sources" configuration section.</para>
- </section>
-
- </section>
-
- <section>
- <title>LDAP Translator</title>
- <para>
- The LDAP translator, known by the type name <emphasis>ldap</emphasis>, exposes an
- LDAP directory tree relationally with pushdown support for filtering via criteria.
- This is typically coupled with the LDAP resource adapter.
- </para>
-
- <table>
- <title>Execution Properties</title>
- <tgroup cols="3">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Description</entry>
- <entry>Default</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>SearchDerfaultBaseDN</entry>
- <entry>Default Base DN for LDAP Searches</entry>
- <entry>null</entry>
- </row>
- <row>
- <entry>SearchDefaultScope</entry>
- <entry>Default Scope for LDAP Searches. Can be one of SUBTREE_SCOPE, OBJECT_SCOPE, ONELEVEL_SCOPE.</entry>
- <entry>ONELEVEL_SCOPE</entry>
- </row>
- <row>
- <entry>RestrictToObjectClass</entry>
- <entry>Restrict Searches to objectClass named in the Name field for a table</entry>
- <entry>false</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <para>
- There are no import settings for the ldap translator; it also does not
- provide metadata.
- </para>
-
- <section>
- <title>Metadata Directives</title>
- <para>String columns with a default value of "multivalued-concat" will concatinate all attribute
- values together in alphabetical order using a ? delimiter. If a multivalued attribute does not have a default value of "multivalued-concat", then
- any value may be returned.
- </para>
- </section>
-
- <section>
- <title>JCA Resource Adapter</title>
- <para>The resource adapter for this translator provided through "LDAP Data Source",
- Refer to Admin Guide for configuration.</para>
- </section>
-
- </section>
-
- <section>
- <title>Loopback Translator</title>
- <para>
- The Loopback translator, known by the type name <emphasis>loopback</emphasis>,
- provides a quick testing solution. It supports all SQL constructs and returns
- default results, with configurable behavior.
- </para>
-
- <table>
- <title>Execution Properties</title>
- <tgroup cols="3">
- <colspec colwidth="3*" />
- <colspec colwidth="6*" />
- <colspec colwidth="2*" />
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Description</entry>
- <entry>Default</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>ThrowError</entry>
- <entry>true to always throw an error</entry>
- <entry>false</entry>
- </row>
- <row>
- <entry>RowCount</entry>
- <entry>Rows returned for non-update queries.</entry>
- <entry>1</entry>
- </row>
- <row>
- <entry>WaitTime</entry>
- <entry>Wait randomly up to this number of milliseconds with each sourc query.</entry>
- <entry>0</entry>
- </row>
- <row>
- <entry>PollIntervalInMilli</entry>
- <entry>if positive results will be "asynchronously" returned - that is a DataNotAvailableException will be thrown initially and the engine will wait the poll interval before polling for the results.</entry>
- <entry>-1</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <para>
- There are no import settings for the Loopback translator; it also does not
- provide metadata - it should be used as a testing stub.
- </para>
-
- <section>
- <title>JCA Resource Adapter</title>
- <para>The source connection is required for this translator</para>
- </section>
-
- </section>
-
- <section>
- <title>Salesforce Translator</title>
- <para>
- The Salesforce translator, known by the type name <emphasis>salesforce</emphasis>
- supports the SELECT, DELETE, INSERT and UPDATE operations against a Salesforce.com
- account. It is designed for use with the Teiid Salesforce resource adapter.
- </para>
-
- <table>
- <title>Execution Properties</title>
- <tgroup cols="3">
- <colspec colwidth="3*" />
- <colspec colwidth="6*" />
- <colspec colwidth="2*" />
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Description</entry>
- <entry>Default</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>ModelAuditFeilds</entry>
- <entry>Audit Model Fields</entry>
- <entry>false</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <para>
- The Salesforce translator can import metadata, but does not currently
- have import settings.
- </para>
-
- <section>
- <title>Usage</title>
- <section>
- <title>SQL Processing</title>
- <para>
- Salesforce does not provide the same set of
- functionality as a relational database. For example, Salesforce does
- not support arbitrary joins between tables. However, working in
- combination with the Teiid Query Planner, the Salesforce
- connector supports nearly all of the SQL syntax supported by the
- Teiid.
- </para>
- <para>
- The Salesforce Connector executes SQL commands by “pushing
- down” the command to Salesforce whenever possible, based on the
- supported capabilities. Teiid will automatically provide
- additional database functionality when the Salesforce Connector does
- not explicitly provide support for a given SQL construct. In these
- cases, the SQL construct cannot be “pushed down” to the data source,
- so it will be evaluated in Teiid, in order to ensure that the
- operation is performed.
- </para>
- <para>
- In cases where certain SQL capabilities cannot be pushed down
- to Salesforce, Teiid will push down the capabilities that are
- supported, and fetch a set of data from Salesforce. Then, Teiid
- will evaluate the additional capabilities, creating a subset of the
- original data set. Finally, Teiid will pass the result to the
- client.
- </para>
-
- <programlisting language="SQL"><![CDATA[SELECT sum(Reports) FROM Supervisor where Division = 'customer support';]]></programlisting>
-
- <para>
- Neither Salesforce nor the Salesforce Connector support
- the sum() scalar function, but they do support CompareCriteriaEquals,
- so the query that is passed to Salesforce by the connector will be
- transformed to this query.
- </para>
-
- <programlisting language="SQL"><![CDATA[SELECT Reports FROM Supervisor where Division = 'customer support';]]></programlisting>
-
- <para>
- The sum() scalar function will be applied by the Teiid Query Engine to
- the result set returned by the connector.
- </para>
-
- <para>
- In some cases multiple calls to the Salesforce application
- will be made to support the SQL passed to the connector.
- </para>
-
- <programlisting language="SQL"><![CDATA[DELETE From Case WHERE Status = 'Closed';]]></programlisting>
-
- <para>
- The API in Salesforce to delete objects only supports
- deleting by ID. In order to accomplish this the Salesforce connector
- will first execute a query to get the IDs of the correct objects, and
- then delete those objects. So the above DELETE command will result in
- the following two commands.
- </para>
-
- <programlisting language="SQL"><![CDATA[SELECT ID From Case WHERE Status = 'Closed';
-DELETE From Case where ID IN (<result of query>);]]></programlisting>
-
- <para>
- *The Salesforce API DELETE call is not expressed in SQL, but
- the above is an SQL equivalent expression.
- </para>
-
- <para>
- It's useful to be aware of unsupported capabilities, in order
- to avoid fetching large data sets from Salesforce and making you
- queries as performant as possible.
- See all <link linkend="sf_supported">Supported Capabilities</link>.
- </para>
-
- </section>
-
- <section>
- <title>Selecting from Multi-Select Picklists</title>
- <para>
- A multi-select picklist is a field type in Salesforce that can
- contain multiple values in a single field. Query criteria operators
- for fields of this type in SOQL are limited to EQ, NE, includes and
- excludes. The full Salesforce documentation for selecting from
- mullti-select picklists can be found at the following link.
- <ulink url="http://www.salesforce.com/us/developer/docs/api/index_Left.htm#StartTopic...">Querying Mulit-select Picklists</ulink>
- </para>
-
- <para>
- Teiid SQL does not support the includes or
- excludes operators, but the Salesforce connector provides user
- defined function definitions for these operators that provided
- equivalent functionality for fields of type multi-select. The
- definition for the functions is:
- </para>
-
- <programlisting>boolean includes(Column column, String param)
-boolean excludes(Column column, String param)</programlisting>
-
- <para>
- For example, take a single multi-select picklist column
- called Status that contains all of these values.
- </para>
-
- <itemizedlist mark='opencircle'>
- <listitem>
- <para>current</para>
- </listitem>
- <listitem>
- <para>working</para>
- </listitem>
- <listitem>
- <para>critical</para>
- </listitem>
- </itemizedlist>
-
- <para>
- For that column, all of the below are valid queries:
- </para>
-
- <programlisting language="SQL"><![CDATA[SELECT * FROM Issue WHERE true = includes (Status, 'current, working' );
-SELECT * FROM Issue WHERE true = excludes (Status, 'current, working' );
-SELECT * FROM Issue WHERE true = includes (Status, 'current;working, critical' );]]></programlisting>
-
- <para>
- EQ and NE criteria will pass to Salesforce as supplied. For
- example, these queries will not be modified by the connector.
- </para>
-
- <programlisting language="SQL"><![CDATA[SELECT * FROM Issue WHERE Status = 'current';
-SELECT * FROM Issue WHERE Status = 'current;critical';
-SELECT * FROM Issue WHERE Status != 'current;working';]]></programlisting>
-
- </section>
- <section>
- <title>Selecting All Objects</title>
- <para>
- The Salesforce connector supports the calling the queryAll operation
- from the Salesforce API. The queryAll operation is equivalent
- to the query operation with the exception that it returns data about
- <emphasis role="strong">all current and deleted</emphasis>
- objects in the system.
- </para>
- <para>
- The connector determines if it will call the
- query or queryAll operation via reference to the
- isDeleted property present on each Salesforce object,
- and modeled as a column on each table generated by
- the importer. By default this value is set to
- False when the model is generated and thus the connector calls
- query. Users are free to change the value in the model to True,
- changing the default behavior of the connector to be queryAll.
- </para>
- <para>
- The behavior is different if isDeleted is used as a parameter
- in the query. If the isDeleted column is used as a parameter
- in the query, and the value is 'true' the connector will call queryAll.
- </para>
-
- <programlisting language="SQL"><![CDATA[select * from Contact where isDeleted = true;</programlisting>
-
- <para>
- If the isDeleted column is used as a parameter in the query,
- and the value is 'false' the connector perform the default behavior
- will call query.
- </para>
-
- <programlisting language="SQL"><![CDATA[select * from Contact where isDeleted = false;]]></programlisting>
- </section>
- <section>
- <title>Selecting Updated Objects</title>
- <para>
- If the option is selected when importing metadata from
- Salesforce, a GetUpdated procedure is generated in the model with
- the following structure:
- </para>
-
- <programlisting language="SQL"><![CDATA[GetUpdated (ObjectName IN string,
- StartDate IN datetime,
- EndDate IN datetime,
- LatestDateCovered OUT datetime)
-returns
- ID string]]></programlisting>
-
- <para>
- See the description of the
- <ulink url="http://www.salesforce.com/us/developer/docs/api/Content/sforce_api_calls_...">GetUpdated</ulink>
- operation in the Salesforce documentation for usage details.
- </para>
-
- </section>
- <section>
- <title>Selecting Deleted Objects</title>
- <para>
- If the option is selected when importing metadata from
- Salesforce, a GetDeleted procedure is generated in the model with
- the following structure:
- </para>
-
- <programlisting language="SQL"><![CDATA[GetDeleted (ObjectName IN string,
- StartDate IN datetime,
- EndDate IN datetime,
- EarliestDateAvailable OUT datetime,
- LatestDateCovered OUT datetime)
-returns
- ID string,
- DeletedDate datetime]]></programlisting>
-
- <para>
- See the description of the
- <ulink url="http://www.salesforce.com/us/developer/docs/api/Content/sforce_api_calls_...">GetDeleted</ulink>
- operation in the Salesforce documentation for usage details.
- </para>
-
- </section>
- <section>
- <title>Relationship Queries</title>
- <para>
- Salesforce does not support joins like a relational database,
- but it does have support for queries that include parent-to-child
- or child-to-parent relationships between objects. These are termed
- Relationship Queries. The SalesForce connector supports Relationship
- Queries through Outer Join syntax.
- </para>
-
- <programlisting language="SQL"><![CDATA[SELECT Account.name, Contact.Name from Contact LEFT OUTER JOIN Account
-on Contact.Accountid = Account.id]]></programlisting>
-
- <para>
- This query shows the correct syntax to query a SalesForce model with
- to produce a relationship query from child to parent. It resolves to the
- following query to SalesForce.
- </para>
-
- <programlisting language="SQL"><![CDATA[SELECT Contact.Account.Name, Contact.Name FROM Contact]]></programlisting>
-
- <programlisting language="SQL"><![CDATA[select Contact.Name, Account.Name from Account Left outer Join Contact
-on Contact.Accountid = Account.id]]></programlisting>
-
- <para>
- This query shows the correct syntax to query a SalesForce model with
- to produce a relationship query from parent to child. It resolves to the
- following query to SalesForce.
- </para>
-
- <programlisting language="SQL"><![CDATA[SELECT Account.Name, (SELECT Contact.Name FROM
-Account.Contacts) FROM Account]]></programlisting>
-
- <para>
- See the description of the
- <ulink url="http://www.salesforce.com/us/developer/docs/api/index_Left.htm#StartTopic...">Relationship Queries</ulink>
- operation in the SalesForce documentation for limitations.
- </para>
- </section>
-
- <section id="sf_supported">
- <title>Supported Capabilities</title>
- <para>
- The following are the the connector capabilities supported by
- the Salesforce Connector. These SQL constructs will be pushed down to
- Salesforce.
- </para>
-
- <itemizedlist mark='opencircle'>
- <listitem>
- <para>SELECT command</para>
- </listitem>
- <listitem>
- <para>INSERT Command</para>
- </listitem>
- <listitem>
- <para>UPDATE Command</para>
- </listitem>
- <listitem>
- <para>DELETE Command</para>
- </listitem>
- <listitem>
- <para>CompareCriteriaEquals</para>
- </listitem>
- <listitem>
- <para>InCriteria</para>
- </listitem>
- <listitem>
- <para>LikeCriteria - Supported for String fields only.</para>
- </listitem>
- <listitem>
- <para>RowLimit</para>
- </listitem>
- <listitem>
- <para>AggregatesCountStar</para>
- </listitem>
- <listitem>
- <para>NotCriteria</para>
- </listitem>
- <listitem>
- <para>OrCriteria</para>
- </listitem>
- <listitem>
- <para>CompareCriteriaOrdered</para>
- </listitem>
- <listitem>
- <para>OuterJoins with join criteria KEY</para>
- </listitem>
- </itemizedlist>
- </section>
-
- </section>
-
- <section>
- <title>JCA Resource Adapter</title>
- <para>The resource adapter for this translator provided through "Salesforce Data Source",
- Refer to Admin Guide for configuration.</para>
- </section>
-
- </section>
-
- <section>
- <title>Web Services Translator</title>
- <para>
- The Web Services translator, known by the type name <emphasis>ws</emphasis>,
- exposes stored procedures for calling web services backed by a Teiid WS
- resource adapter. It will commonly be used with the
- <link linkend="texttable">TEXTTABLE</link> or
- <link linkend="xmltable">XMLTABLE</link> table functions to use CSV or XML
- formated data.
- </para>
-
- <table>
- <title>Execution Properties</title>
- <tgroup cols="3">
- <colspec colwidth="3*" />
- <colspec colwidth="6*" />
- <colspec colwidth="2*" />
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Description</entry>
- <entry>Default</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>DefaultBinding</entry>
- <entry>The binding that should be used if one is not specified. Can be one of HTTP, SOAP11, or SOAP12
- <note><para>Setting the proper binding value on the translator is recommended as it removes the need for callers to pass an explict value. If your service is actually uses SOAP11, but the binding used SOAP12 you will receive execution failures.</para></note>
- </entry>
- <entry>SOAP12</entry>
- </row>
- <row>
- <entry>DefaultServiceMode</entry>
- <entry>The default service mode. For SOAP, MESSAGE mode indicates that the request will contain the entire SOAP envelope and not just the contents of the SOAP body. Can be one of MESSAGE or PAYLOAD</entry>
- <entry>PAYLOAD</entry>
- </row>
- <row>
- <entry>XMLParamName</entry>
- <entry>Used with the HTTP binding (typically with the GET method) to indicate that the request document should be part of the query string.</entry>
- <entry>null - unused</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <para>
- There are ws importer settings, but it does provide metadata for dynamic VDBs.
- </para>
-
- <section>
- <title>Usage</title>
- <para>
- The WS translator exposes low level procedures for accessing web services.
- See also the ws-weather example in the kit.
- </para>
-
- <section>
- <title>Invoke Procedure</title>
- <para>
- Invoke allows for multiple binding, or protocol modes, including
- HTTP, SOAP11, and SOAP12.
- </para>
- <programlisting>Procedure invoke(binding in STRING, action in STRING, request in XML, endpoint in STRING) returns XML</programlisting>
-
- <para>
- The binding may be one of null (to use the default) HTTP, SOAP11, or
- SOAP12. Action with a SOAP binding indicates the SOAPAction value.
- Action with a HTTP binding indicates the HTTP method (GET, POST, etc.),
- which defaults to POST.
- </para>
-
- <para>
- A null value for the binding or endpoint will use the default value.
- The default endpoint is specified in the WS resource adapter
- configuration. The endpoint URL may be absolute or relative. If it's
- relative then it will be combined with the default endpoint.
- </para>
-
- <para>
- Since multiple parameters are not required to have values, it is often
- more clear to call the invoke procedure with named parameter syntax.
- </para>
- <programlisting>call invoke(binding=>'HTTP', action=>'GET')</programlisting>
- <para>The request XML should be a valid XML document or root element.</para>
- </section>
-
- <section>
- <title>InvokeHTTP Procedure</title>
- <para>
- <methodname>invokeHttp</methodname> can return the byte contents of an HTTP(S) call.
- </para>
- <programlisting>Procedure invokeHttp(action in STRING, request in OBJECT, endpoint in STRING, contentType out STRING) returns BLOB</programlisting>
-
- <para>
- Action indicates the HTTP method (GET, POST, etc.), which defaults to POST.
- </para>
- <para>
- A null value for endpoint will use the default value. The default endpoint
- is specified in the WS resource adapter configuration. The endpoint URL may
- be absolute or relative. If it's relative then it will be combined with the
- default endpoint.
- </para>
- <para>
- Since multiple parameters are not required to have values, it is often more
- clear to call the invoke procedure with named parameter syntax.
- </para>
- <programlisting>call invokeHttp(action=>'GET')</programlisting>
-
- <para>
- The request can be one of SQLXML, STRING, BLOB, or CLOB. The request will be
- sent as the POST payload in byte form. For STRING/CLOB values this will
- default to the UTF-8 encoding. To control the byte encoding, see the
- <link linkend="to_bytes">to_bytes</link> function.
- </para>
- </section>
- </section>
- <section>
- <title>JCA Resource Adapter</title>
- <para>Theresource adapter for this translator provided through "Web Service Data Source",
- Refer to Admin Guide for configuration.</para>
- </section>
- </section>
-
- <section>
- <title>OLAP Translator</title>
- <para>
- The OLAP Services translator, known by the type name <emphasis>olap</emphasis>,
- exposes stored procedures for calling analysis sevices backed by a OLAP server using MDX query lanaguage.
- This translator exposes a stored procedure, invokeMDX, that returns a result set containing tuple array values for a given MDX query.
- invokeMDX will commonly be used with the <link linkend="arraytable">ARRAYTABLE</link> table function to extract the results.
- </para>
- <para>
- Since the Cube metadata exposed by the OLAP servers and relational database metadata are so different, there is no single
- way to map the metadata from one to other. It is best to query OLAP system using its own native MDX language
- through. MDX queries my be defined statically or built dynamically in Teiid's abstraction layers.
- </para>
-
- <section>
- <title>Usage</title>
- <para>
- The olap translator exposes one low level procedure for accessing olap services.
- </para>
-
- <section>
- <title>InvokeMDX Procedure</title>
- <para>
- <methodname>invokeMdx</methodname> returns a resultset of the tuples as array values.
- </para>
- <programlisting>Procedure invokeMdx(mdx in STRING) returns resultset (tuple object)</programlisting>
-
- <para>
- The mdx parameter is a MDX query to be executed on the OLAP server.
- </para>
- <para>
- The results of the query will be returned such that each row on the row axis will be packed into an array value that will first contain each hierarcy member name on the row axis then each measure value from the column axis.
- </para>
- <note><para>The use of <xref linkend="dataroles"/> should be considered to prevent arbitrary MDX from being submitted to the invokeMDX procedure.</para></note>
- <para>
- </para>
- </section>
- </section>
- <section>
- <title>JCA Resource Adapter</title>
- <para>The resource adapter for this translator provided through data source in JBoss AS,
- Refer to Admin Guide for "JDBC Data Sources" configuration section. Two sample
- -ds.xml files provided for accessing OLAP servers in teiid-examples section. One is Mondrian specific,
- when Mondrian server is deloyed
- in the same JBoss AS as Teiid (mondrian-ds.xml). To access any other OLAP servers using XMLA interface,
- the data source for them can be created using them example template olap-xmla-ds.xml</para>
- </section>
- </section>
-
- <section>
- <title>Delegating Translators</title>
- <para>
- You may create a delegating translator by extending the <code>org.teiid.translator.BaseDelegatingExecutionFactory</code>.
- Once your classes are then packaged as a custom translator, you will be able to wire another translator instance into your delegating translator at runtime in order to intercept
- all of the calls to the delegate. This base class does not provide any functionality on its own, other than delegation.
- </para>
-
- <table>
- <title>Execution Properties</title>
- <tgroup cols="3">
- <colspec colwidth="3*" />
- <colspec colwidth="6*" />
- <colspec colwidth="2*" />
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Description</entry>
- <entry>Default</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>delegateName</entry>
- <entry>Translator instance name to delegate to</entry>
- <entry></entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </section>
- </section>
-
- <section id="dynamic_vdbs">
- <title>Dynamic VDBs</title>
- <para>
- Teiid integration is available via a "Dynamic VDB" without the need for Teiid Designer
- tooling. While this mode of operation does not yet allow for the creation of view
- layers, the underlying sources can still be queried as if they are a single source. See
- the kit's "teiid-example/dynamicvdb-*" for working examples.
- </para>
-
- <para>
- To build a dynamic VDB, you'll need to create a
- <filename><replaceable>SOME-NAME</replaceable>-vdb.xml</filename> file. The XML file captures
- information about the VDB, the sources it integrate, and preferences for importing metadata.
- </para>
-
- <note>
- <para>
- VDB name pattern must adhere to "-vdb.xml" for the Teiid VDB deployer to
- recognize this file as a dynamic VDB.
- </para>
- </note>
-
- <para>
- my-vdb.xml: (The vdb-deployer.xml schema for this file is available in the schema
- folder under the docs with the Teiid distribution.)
- </para>
-
- <programlisting role="XML" language="XML"><![CDATA[<vdb name="${vdb-name}" version="${vdb-version}">
-
- <property name="UseConnectorMetadata" value="..." />
-
- <!-- define a model fragment for each data source -->
- <model name="${model-name}">
-
- <property name="..." value="..." />
- ...
-
- <source name="${source-name}" translator-name="${translator-name}"
-
- connection-jndi-name="${deployed-jndi-name}">
- ...
- </model>
-
- <!-- create translator instances that override default properties -->
-
- <translator name="${translator-name}" type="${translator-type}" />
-
- <property name="..." value="..." />
- ...
-
- </translator>
-</vdb>]]></programlisting>
-
- <section>
- <title>VDB Element</title>
- <itemizedlist>
- <title>Attributes</title>
- <listitem>
- <para>
- <emphasis>name</emphasis>
- </para>
- <para>
- The name of the VDB. The VDB name
- referenced through the driver or datasource during the connection time.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>version</emphasis>
- </para>
- <para>
- The version of the VDB (should be an
- positive integer). This determines the deployed directory location
- (see Name), and provides an explicit versioning mechanism to the VDB
- name.
- </para>
- </listitem>
- </itemizedlist>
-
- <itemizedlist>
- <title>Property Elements</title>
- <listitem>
- <para>
- <emphasis>UseConnectorMetadata</emphasis>
- </para>
- <para>
- Setting to use connector
- supplied metadata. Can be "true" or "cached". "true" will obtain
- metadata once for every launch of Teiid. "cached" will save a file
- containing the metadata into the
- <filename><replaceable>PROFILE</replaceable>/data/teiid</filename> directory
- </para>
- </listitem>
- </itemizedlist>
-
- </section>
-
- <section>
- <title>Model Element</title>
- <itemizedlist>
- <title>Attributes</title>
- <listitem>
- <para>
- <emphasis>name</emphasis>
- </para>
- <para>
- The name of the model is used as a
- top level schema name for all of the metadata imported from the
- connector. The name should be unique among all Models in the VDB and
- should not contain the '.' character.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>version</emphasis>
- </para>
- <para>
- The version of the VDB (should be an
- positive integer). This determines the deployed directory location
- (see Name), and provides an explicit versioning mechanism to the VDB
- name.
- </para>
- </listitem>
- </itemizedlist>
-
- <itemizedlist>
- <title>Source Element</title>
- <listitem>
- <para>
- <emphasis>name</emphasis>
- </para>
- <para>
- The name of the source to use for this
- model. This can be any name you like, but will typically be the same
- as the model name. Having a name different than the model name is
- only useful in multi-source scenarios.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>translator-name</emphasis>
- </para>
- <para>
- The name or type of the Teiid Translator to use. Possible values include
- the built-in types (ws, file, ldap, oracle, sqlserver, db2, derby, etc.)
- and translators defined in the translators section.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>connection-jndi-name</emphasis>
- </para>
- <para>
- The JNDI name of this source's connection factory. There should be a
- corresponding "-ds.xml" file that defines the connection factory in
- the JBoss AS. Check out the deploying VDB dependencies section for
- info. You also need to deploy these connection factories before you
- can deploy the VDB.
- </para>
- </listitem>
- </itemizedlist>
-
- <itemizedlist>
- <title>Property Elements</title>
- <listitem>
- <para>
- <emphasis>importer.<propertyname></emphasis>
- </para>
- <para>
- Property to be used by the connector importer for the model for purposes
- importing metadata. See possible property name/values in the
- Translator specific section. Note that using these properties you
- can narrow or widen the data elements available for integration.
- </para>
- </listitem>
- </itemizedlist>
-
- </section>
- <section>
- <title>Translator Element</title>
- <itemizedlist>
- <title>Attributes</title>
- <listitem>
- <para>
- <emphasis>name</emphasis>
- </para>
- <para>
- The name of the the Translator. Referenced by the source element.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>type</emphasis>
- </para>
- <para>
- The base type of the Translator. Can be one of the built-in types (ws,
- file, ldap, oracle, sqlserver, db2, derby, etc.).
- </para>
- </listitem>
- </itemizedlist>
-
- <itemizedlist>
- <title>Property Elements</title>
- <listitem>
- <para>
- Set a value that overrides a translator default property. See
- possible property name/values in the Translator specific section.
- </para>
- </listitem>
- </itemizedlist>
- </section>
-
- </section>
- <section>
- <title>Multi-Source Models and VDB</title>
- <para>
- When you have multiple instances of data that are using identical schema
- (horizontal sharding), Teiid can help you aggregate data across all the
- instances, using "multi-source" models. In this scenario, instead of
- creating/importing a model for every data source, user needs to define one
- source model that represents the schema and configure multiple data "sources"
- underneath it. During runtime, when a query issued against this model, the query
- engine analyzes the information and gathers the required data from all the
- sources configured and aggregates the results and provides in a single result set.
- </para>
-
- <para>
- To mark a model as multi-source, the user needs to supply property called
- <property>supports-multi-source-bindings</property>, in the "vdb.xml" file.
- Also, the user needs to define multiple sources. Here is code example showing dynamic vdb with single model with
- multiple sources defined.
- </para>
-
- <programlisting role="XML" language="XML"><![CDATA[<vdb name="vdbname" version="1">
- <model visible="true" type="PHYSICAL" name="Customers" path="/Test/Customers.xmi">
- <property name="supports-multi-source-bindings" value="true"/>
- <source name="chicago"
- translator-name="oracle" connection-jndi-name="chicago-customers"/>
- <source name="newyork"
- translator-name="oracle" connection-jndi-name="newyork-customers"/>
- <source name="la"
- translator-name="oracle" connection-jndi-name="la-customers"/>
- </model>
-</vdb>]]></programlisting>
-
- <para>
- In the above example, the VDB defined has single model called <literal>Customers</literal>,
- that has multiple sources (<literal>chicago</literal>, <literal>newyork</literal>,
- and <literal>la</literal>) that define different instances of data. Every
- time a model is marked as "multi-source", the
- runtime engine adds a additional column called "SOURCE_NAME" to every table in
- that model. This column maps to the source's name from the XML. In
- the above XML code that would be <literal>chicago</literal>, <literal>la</literal>,
- <literal>newyork</literal>. This allows queries like the following:
- </para>
-
- <programlisting language="SQL"><![CDATA[select * from table where SOURCE_NAME = 'newyork'
-update table column=value where SOURCE_NAME='chicago'
-delete from table where column = x and SOURCE_NAME='la'
-insert into table (column, SOURCE_NAME) VALUES ('value', 'newyork')]]></programlisting>
-
- <para>
- Note that when user do not supply the "SOURCE_NAME" in the criteria, the command applies
- to all the sources. If SOURCE_NAME supplied, the query is executed only aginst the source specified.
- Another useful feature along with this feature is
- "partial results" to skip unavailable sources if they are down.
- </para>
-
- <note>
- <para>
- Currently the tooling support for managing the multi-source feature is
- limited, so if you need to use this feature build the VDB as usual in
- the Teiid Designer and then edit the "vdb.xml" file in the VDB archive
- using a Text editor to add the additional sources as defined above.
- You must deploy a separate data source for each source defined in the xml file.
- </para>
- </note>
-
- <note>
- <para>
- If you would like to use "SOURCE_NAME" in your transformations to control which sources are accessed or updated,
- you would manually need to add this extra column on your view table in
- the Designer. This column will not be automatically added on the source table, when you import
- the medata from source.
- </para>
- </note>
- </section>
-
-</chapter>
\ No newline at end of file
Copied: tags/teiid-parent-7.4.0.CR1/documentation/reference/src/main/docbook/en-US/content/translators.xml (from rev 3138, trunk/documentation/reference/src/main/docbook/en-US/content/translators.xml)
===================================================================
--- tags/teiid-parent-7.4.0.CR1/documentation/reference/src/main/docbook/en-US/content/translators.xml (rev 0)
+++ tags/teiid-parent-7.4.0.CR1/documentation/reference/src/main/docbook/en-US/content/translators.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -0,0 +1,1471 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<chapter id="translators">
+ <title>Translators</title>
+
+ <section>
+ <title>Introduction to the Teiid Connector Architecture</title>
+ <para>
+ The Teiid Connector Architecture (TCA) provides Teiid with a robust mechanism
+ for integrating with external systems. The TCA defines a common client interface
+ between Teiid and an external system that includes metadata as to what SQL
+ constructs are supported for pushdown and the ability to import metadata from
+ the external system.
+ </para>
+
+ <para>
+ A Translator is the heart of the TCA and acts as the bridge logic between Teiid
+ and an external system, which is most commonly accessed through a JCA resource
+ adapter. Refer to the Teiid Developers Guide for details on developing custom
+ Translators and JCA resource adapters for use with Teiid.
+ </para>
+
+ <note>
+ <para>
+ The TCA is not the same as the JCA, the JavaEE Connector Architecture, although
+ the TCA is designed for use with JCA resource adapters.
+ </para>
+ </note>
+
+ <note>
+ <para>
+ The import capabilities of Teiid Translators is currently only used in
+ <link linkend="dynamic_vdbs">dynamic VDBs</link> and not by the Teiid Designer.
+ </para>
+ </note>
+
+ </section>
+
+ <section>
+ <title>Translators</title>
+ <para>
+ A Translator is typically paired with a particular JCA resource adapter. In
+ instances where pooling, environment dependent configuration management, advanced
+ security handling, etc. are not needed, then a JCA resource adapter is not needed.
+ The configuration of JCA ConnectionFactories for needed resource adapters is not
+ part of this guide, please see the Teiid Administrator Guide and the kit examples
+ for configuring resource adapters for use in JBossAS.
+ </para>
+
+ <para>
+ Translators can have a number of configurable properties. These are broken down
+ into execution properties, which determine aspects of how data is retrieved, and
+ import settings, which determine what metadata is read for import.
+ </para>
+
+ <para>
+ The execution properties for a translator typically have reasonable defaults. For
+ specific translator types, e.g. the Derby translator, base execution properties are
+ already tuned to match the source. In most cases the user will not need to adjust
+ their values.
+ </para>
+
+ <table>
+ <title>Base Execution Properties - shared by all translators</title>
+ <tgroup cols="3">
+ <colspec colwidth="4*" />
+ <colspec colwidth="6*" />
+ <colspec colwidth="2*" />
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Description</entry>
+ <entry>Default</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>Immutable</entry>
+ <entry>Set to true to indicate that the source never changes.</entry>
+ <entry>false</entry>
+ </row>
+ <row>
+ <entry>RequiresCriteria</entry>
+ <entry>Set to true to indicate that source SELECT/UPDATE/DELETE queries require a where clause.</entry>
+ <entry>false</entry>
+ </row>
+ <row>
+ <entry>SupportsOrderBy</entry>
+ <entry>Set to true to indicate that the ORDER BY clause is supported.</entry>
+ <entry>false</entry>
+ </row>
+ <row>
+ <entry>SupportsOuterJoins</entry>
+ <entry>Set to true to indicate that OUTER JOINs are supported.</entry>
+ <entry>false</entry>
+ </row>
+ <row>
+ <entry>SupportsFullOuterJoins</entry>
+ <entry>If outer joins are supported, true indicates that FULL OUTER JOINs are supported.</entry>
+ <entry>false</entry>
+ </row>
+ <row>
+ <entry>SupportsInnerJoins</entry>
+ <entry>Set to true to indicate that INNER JOINs are supported.</entry>
+ <entry>false</entry>
+ </row>
+ <row>
+ <entry>SupportedJoinCriteria</entry>
+ <entry>If joins are supported, defines what criteria may be used as the join criteria. May be one of (ANY, THETA, EQUI, or KEY).</entry>
+ <entry>ANY</entry>
+ </row>
+ <row>
+ <entry>MaxInCriteriaSize</entry>
+ <entry>If in criteria are supported, defines what the maximum number of in entries are per predicate. -1 indicates no limit.</entry>
+ <entry>-1</entry>
+ </row>
+ <row>
+ <entry>MaxDependentInPredicates</entry>
+ <entry>If in criteria are supported, defines what the maximum number of predicates that can be used for a dependent join.
+ Values less than 1 indicate to use only one in predicate per dependent value pushed (which matches the pre-7.4 behavior).</entry>
+ <entry>-1</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+
+ <note>
+ <para>
+ Only a subset of the supports metadata can be set through execution properties. If more control is needed, please
+ consult the Teiid Developers Guide.
+ </para>
+ </note>
+
+ <para>There are no base importer settings.</para>
+
+ <section>
+ <title>File Translator</title>
+ <para>
+ The file translator, known by the type name <emphasis>file</emphasis>, exposes
+ stored procedures to leverage file system resources exposed by the file resource
+ adapter. It will commonly be used with the <link linkend="texttable">TEXTTABLE</link>
+ or <link linkend="xmltable">XMLTABLE</link> table functions to use CSV or XML
+ formated data.
+ </para>
+
+ <table>
+ <title>Execution Properties</title>
+ <tgroup cols="3">
+ <colspec colwidth="1*" />
+ <colspec colwidth="4*" />
+ <colspec colwidth="1*" />
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Description</entry>
+ <entry>Default</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>Encoding</entry>
+ <entry>The encoding that should be used for CLOBs returned by the getTextFiles procedure</entry>
+ <entry>The system default encoding</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+
+ <para>There are file importer settings, but it does provide metadata for dynamic vdbs.</para>
+
+ <section>
+ <title>Usage</title>
+ <para>
+ Retrieve all files as BLOBs with the given extension at the given path.
+ </para>
+
+ <programlisting>call getFiles('path/*.ext')</programlisting>
+
+ <para>
+ If the extension pattern is not specified and the path is a directory,
+ then all files in the directory will be returned. If the path or filename
+ doesn't exist, then no results will be returned.
+ </para>
+
+ <para>
+ Retrieve all files as CLOBs with the given extension at the given path.
+ </para>
+ <programlisting>call getTextFiles('path/*.ext')</programlisting>
+
+ <para>
+ Save the CLOB, BLOB, or XML file to given path
+ </para>
+ <programlisting>call saveFile('path', value)</programlisting>
+
+ <para>
+ See the database metadata for full descriptions of the getFiles,
+ getTextFiles, and saveFile procedures.
+ </para>
+ </section>
+
+ <section>
+ <title>JCA Resource Adapter</title>
+ <para>The resource adapter for this translator provided through "File Data Source", Refer to Admin Guide for
+ configuration information.</para>
+ </section>
+
+ </section>
+
+ <section>
+ <title>JDBC Translator</title>
+ <para>
+ The JDBC translator bridges between SQL semantic and data type difference
+ between Teiid and a target RDBMS. Teiid has a range of specific translators
+ that target the most popular open source and proprietary databases.
+ </para>
+
+ <itemizedlist>
+ <title>Type names:</title>
+ <listitem>
+ <para>
+ <emphasis>jdbc-ansi</emphasis> - declares support for most SQL
+ constructs supported by Teiid, except for row limit/offset and
+ EXCEPT/INTERCECT. Translates source SQL into ANSI compliant syntax.
+ This translator should be used when another more specific type is
+ not available.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>jdbc-simple</emphasis> - same as jdbc-ansi, except disables
+ support for function, UNION, and aggregate pushdown.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>db2</emphasis> - for use with DB2 8 or later.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>derby</emphasis> - for use with Derby 10.1 or later.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>h2</emphasis> - for use with H2 version 1.1 or later.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>hsql</emphasis> - for use with HSQLDB 1.7 or later.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>ingres</emphasis> - for use with Ingres 2006 or later.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>ingres93</emphasis> - for use with Ingres 9.3 or later.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>intersystems-cache</emphasis> - for use with Intersystems Cache Object database (only relational aspect of it)
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>informix</emphasis> - for use with any version.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>metamatrix</emphasis> - for use with MetaMatrix 5.5.0 or later.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>modeshape</emphasis> - for use with Modeshape 2.2.1 or later. The PATH, NAME, LOCALNODENAME, DEPTH, and SCORE functions should be accessed as pseudo-columns, e.g. "nt:base"."jcr:path".
+ Teiid UFDs (prefixed by JCR_) are available for CONTIANS, ISCHILDNODE, ISDESCENDENT, ISSAMENODE, REFERENCE - see the JCRFunctions.xmi.
+ If a selector name is needed in a JCR function, you should use the pseudo-column "jcr:path", e.g. JCR_ISCHILDNODE(foo.jcr_path, 'x/y') would become ISCHILDNODE(foo, 'x/y') in the ModeShape query.
+ An additional pseudo-column "mode:properties" should be imported by setting the ModeShape JDBC connection property teiidsupport=true.
+ The column "mode:properties" should be used by the JCR_REFERENCE and other
+ functions that expect a .* selector name, e.g. JCR_REFERENCE(nt_base.jcr_properties) would become REFERENCE("nt:base".*) in the ModeShape query.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>mysql</emphasis>/<emphasis>mysql5</emphasis> - for use with
+ MySQL version 4.x and 5 or later respectively.
+ </para>
+ <para>
+ The MySQL Translators expect the database or session to be using ANSI
+ mode. If the database is not using ANSI mode, an initialization query
+ should be used on the pool to set ANSI mode:
+ </para>
+ <programlisting>set SESSION sql_mode = 'ANSI'</programlisting>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>oracle</emphasis> - for use with Oracle 9i or later.
+ Sequences may be used with the Oracle translator. A sequence may be
+ modeled as a table with a name in source of DUAL and columns with the
+ name in source set to <code><sequencesequence name>.[nextval|currentval].</code>
+ You can use a sequence as the default value for insert columns by
+ setting the column to autoincrement and the name in source to
+ <code><element name>:SEQUENCE=<sequence name>.<sequence value></code>.
+ A rownum column can also added to any Oracle physical table to support the rownum pseudo-column.
+ A rownum colum should have a name in source of <code>rownum</code>. These rownum columns do not
+ have the same semantics as the Oracle rownum construct so care must be taken in their usage.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>postgresql</emphasis> - for use with 8.0 or later clients
+ and 7.1 or later server.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>sqlserver</emphasis> - for use with SQL Server 2000 or later. A SQL Server JDBC driver version 2.0 or later (or compatible e.g. JTDS 1.2 or later) should be used.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>sybase</emphasis> - for use with Sybase version 12.5 or later.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>teiid</emphasis> - for use with Teiid 6.0 or later.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>teradata</emphasis> - for use with Teradata V2R5.1 or later.
+ </para>
+ </listitem>
+ </itemizedlist>
+
+ <table>
+ <title>Execution Properties - shared by all JDBC Translators</title>
+ <tgroup cols="3">
+ <colspec colwidth="4*" />
+ <colspec colwidth="6*" />
+ <colspec colwidth="2*" />
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Description</entry>
+ <entry>Default</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>DatabaseTimeZone</entry>
+ <entry>The time zone of the database. Used when fetchings date, time, or timestamp values.</entry>
+ <entry>The system default time zone</entry>
+ </row>
+ <row>
+ <entry>DatabaseVersion</entry>
+ <entry>The specific database version. Used to further tune pushdown support.</entry>
+ <entry>The base supported version</entry>
+ </row>
+ <row>
+ <entry>TrimStrings</entry>
+ <entry>true to trim trailing whitespace from fixed length character strings. Note that Teiid only has a string, or varchar, type that treats trailing whitespace as meaningful.</entry>
+ <entry>false</entry>
+ </row>
+ <row>
+ <entry>UseBindVariables</entry>
+ <entry>true to indicate that PreparedStatements should be used and that literal values in the source query should be replace with bind variables. If false only LOB values will trigger the use of PreparedStatements.</entry>
+ <entry>true</entry>
+ </row>
+ <row>
+ <entry>UseCommentsInSourceQuery</entry>
+ <entry>This will embed a /*comment*/ leading comment with session/request id in source SQL query for informational purposes</entry>
+ <entry>false</entry>
+ </row>
+ <row>
+ <entry>MaxPreparedInsertBatchSize</entry>
+ <entry>The max size of a prepared insert batch.</entry>
+ <entry>2048</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+
+ <table>
+ <title>Importer Properties - shared by all JDBC Translators</title>
+ <tgroup cols="3">
+ <colspec colwidth="4*" />
+ <colspec colwidth="6*" />
+ <colspec colwidth="2*" />
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Description</entry>
+ <entry>Default</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>catalog</entry>
+ <entry>See DatabaseMetaData.getTables<footnote label="1" id="dbmd"><para>Full JavaDoc for <ulink url="http://java.sun.com/javase/6/docs/api/java/sql/DatabaseMetaData.html">DatabaseMetaData</ulink></para></footnote></entry>
+ <entry>null</entry>
+ </row>
+ <row>
+ <entry>schemaPattern</entry>
+ <entry>See DatabaseMetaData.getTables<footnoteref linkend="dbmd"/></entry>
+ <entry>null</entry>
+ </row>
+ <row>
+ <entry>tableNamePattern</entry>
+ <entry>See DatabaseMetaData.getTables<footnoteref linkend="dbmd"/></entry>
+ <entry>null</entry>
+ </row>
+ <row>
+ <entry>procedurePatternName</entry>
+ <entry>See DatabaseMetaData.getProcedures<footnoteref linkend="dbmd"/></entry>
+ <entry>null</entry>
+ </row>
+ <row>
+ <entry>tableTypes</entry>
+ <entry>Comma separated list - without spaces - of imported table types. See DatabaseMetaData.getTables<footnoteref linkend="dbmd"/></entry>
+ <entry>null</entry>
+ </row>
+ <row>
+ <entry>useFullSchemaName</entry>
+ <entry>When false, directs the importer to drop the source catalog/schema from the Teiid object name, so that the Teiid fully qualified name will be in the form of <model name>.<table name> - Note: that this may lead to objects with duplicate names when importing from multiple schemas, which results in an exception</entry>
+ <entry>true</entry>
+ </row>
+ <row>
+ <entry>importKeys</entry>
+ <entry>true to import primary and foriegn keys</entry>
+ <entry>true</entry>
+ </row>
+ <row>
+ <entry>importIndexes</entry>
+ <entry>true to import index/unique key/cardinality information</entry>
+ <entry>true</entry>
+ </row>
+ <row>
+ <entry>importApproximateIndexes</entry>
+ <entry>true to import approximate index information. See DatabaseMetaData.getIndexInfo<footnoteref linkend="dbmd"/></entry>
+ <entry>true</entry>
+ </row>
+ <row>
+ <entry>importProcedures</entry>
+ <entry>true to import procedures and procedure columns - Note that it is not always possible to import procedure result set columns due to database limitations. It is also not currently possible to import overloaded procedures.</entry>
+ <entry>true</entry>
+ </row>
+ <row>
+ <entry>widenUnsignedTypes</entry>
+ <entry>true to convert unsigned types to the next widest type. For example SQL Server reports tinyint as an unsigned type. With this option enabled, tinyint would be imported as a short instead of a byte.</entry>
+ <entry>true</entry>
+ </row>
+ <row>
+ <entry>quoteNameInSource</entry>
+ <entry>false will override the default and direct Teiid to create source queries using unquoted identifiers.</entry>
+ <entry>true</entry>
+ </row>
+ <row>
+ <entry>useProcedureSpecificName</entry>
+ <entry>true will allow the import of overloaded procedures (which will normally result in a duplicate procedure error) by using the unique procedure specific name as the Teiid name. This option will only work with JDBC 4.0 compatable drivers that report specific names.</entry>
+ <entry>false</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+
+ <warning>
+ <para>
+ The default import settings will crawl all available metadata. This import
+ process is time consuming and full metadata import is not needed in most
+ situations. Most commonly you'll want to limit import by schemaPattern
+ and tableTypes.
+ </para>
+ </warning>
+
+ <para>
+ Example importer settings to only import tables and views from my-schema.
+ </para>
+ <programlisting language="XML" role="XML"><![CDATA[...
+<property name="importer.tableTypes" value="TABLE,VIEW"/>
+<property name="importer.schemaPattern" value="my-schema"/>
+...]]></programlisting>
+
+ <section>
+ <title>Usage</title>
+ <para>
+ Usage of a JDBC source is straight-forward. Using Teiid SQL, the source may be
+ queried as if the tables and procedures were local to the Teiid system.
+ </para>
+ </section>
+
+ <section>
+ <title>JCA Resource Adapter</title>
+ <para>The resource adapter for this translator provided through data source in JBoss AS,
+ Refer to Admin Guide for "JDBC Data Sources" configuration section.</para>
+ </section>
+
+ </section>
+
+ <section>
+ <title>LDAP Translator</title>
+ <para>
+ The LDAP translator, known by the type name <emphasis>ldap</emphasis>, exposes an
+ LDAP directory tree relationally with pushdown support for filtering via criteria.
+ This is typically coupled with the LDAP resource adapter.
+ </para>
+
+ <table>
+ <title>Execution Properties</title>
+ <tgroup cols="3">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Description</entry>
+ <entry>Default</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>SearchDerfaultBaseDN</entry>
+ <entry>Default Base DN for LDAP Searches</entry>
+ <entry>null</entry>
+ </row>
+ <row>
+ <entry>SearchDefaultScope</entry>
+ <entry>Default Scope for LDAP Searches. Can be one of SUBTREE_SCOPE, OBJECT_SCOPE, ONELEVEL_SCOPE.</entry>
+ <entry>ONELEVEL_SCOPE</entry>
+ </row>
+ <row>
+ <entry>RestrictToObjectClass</entry>
+ <entry>Restrict Searches to objectClass named in the Name field for a table</entry>
+ <entry>false</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+
+ <para>
+ There are no import settings for the ldap translator; it also does not
+ provide metadata.
+ </para>
+
+ <section>
+ <title>Metadata Directives</title>
+ <para>String columns with a default value of "multivalued-concat" will concatinate all attribute
+ values together in alphabetical order using a ? delimiter. If a multivalued attribute does not have a default value of "multivalued-concat", then
+ any value may be returned.
+ </para>
+ </section>
+
+ <section>
+ <title>JCA Resource Adapter</title>
+ <para>The resource adapter for this translator provided through "LDAP Data Source",
+ Refer to Admin Guide for configuration.</para>
+ </section>
+
+ </section>
+
+ <section>
+ <title>Loopback Translator</title>
+ <para>
+ The Loopback translator, known by the type name <emphasis>loopback</emphasis>,
+ provides a quick testing solution. It supports all SQL constructs and returns
+ default results, with configurable behavior.
+ </para>
+
+ <table>
+ <title>Execution Properties</title>
+ <tgroup cols="3">
+ <colspec colwidth="3*" />
+ <colspec colwidth="6*" />
+ <colspec colwidth="2*" />
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Description</entry>
+ <entry>Default</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>ThrowError</entry>
+ <entry>true to always throw an error</entry>
+ <entry>false</entry>
+ </row>
+ <row>
+ <entry>RowCount</entry>
+ <entry>Rows returned for non-update queries.</entry>
+ <entry>1</entry>
+ </row>
+ <row>
+ <entry>WaitTime</entry>
+ <entry>Wait randomly up to this number of milliseconds with each sourc query.</entry>
+ <entry>0</entry>
+ </row>
+ <row>
+ <entry>PollIntervalInMilli</entry>
+ <entry>if positive results will be "asynchronously" returned - that is a DataNotAvailableException will be thrown initially and the engine will wait the poll interval before polling for the results.</entry>
+ <entry>-1</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+
+ <para>
+ There are no import settings for the Loopback translator; it also does not
+ provide metadata - it should be used as a testing stub.
+ </para>
+
+ <section>
+ <title>JCA Resource Adapter</title>
+ <para>The source connection is required for this translator</para>
+ </section>
+
+ </section>
+
+ <section>
+ <title>Salesforce Translator</title>
+ <para>
+ The Salesforce translator, known by the type name <emphasis>salesforce</emphasis>
+ supports the SELECT, DELETE, INSERT and UPDATE operations against a Salesforce.com
+ account. It is designed for use with the Teiid Salesforce resource adapter.
+ </para>
+
+ <table>
+ <title>Execution Properties</title>
+ <tgroup cols="3">
+ <colspec colwidth="3*" />
+ <colspec colwidth="6*" />
+ <colspec colwidth="2*" />
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Description</entry>
+ <entry>Default</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>ModelAuditFeilds</entry>
+ <entry>Audit Model Fields</entry>
+ <entry>false</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+
+ <para>
+ The Salesforce translator can import metadata, but does not currently
+ have import settings.
+ </para>
+
+ <section>
+ <title>Usage</title>
+ <section>
+ <title>SQL Processing</title>
+ <para>
+ Salesforce does not provide the same set of
+ functionality as a relational database. For example, Salesforce does
+ not support arbitrary joins between tables. However, working in
+ combination with the Teiid Query Planner, the Salesforce
+ connector supports nearly all of the SQL syntax supported by the
+ Teiid.
+ </para>
+ <para>
+ The Salesforce Connector executes SQL commands by “pushing
+ down” the command to Salesforce whenever possible, based on the
+ supported capabilities. Teiid will automatically provide
+ additional database functionality when the Salesforce Connector does
+ not explicitly provide support for a given SQL construct. In these
+ cases, the SQL construct cannot be “pushed down” to the data source,
+ so it will be evaluated in Teiid, in order to ensure that the
+ operation is performed.
+ </para>
+ <para>
+ In cases where certain SQL capabilities cannot be pushed down
+ to Salesforce, Teiid will push down the capabilities that are
+ supported, and fetch a set of data from Salesforce. Then, Teiid
+ will evaluate the additional capabilities, creating a subset of the
+ original data set. Finally, Teiid will pass the result to the
+ client.
+ </para>
+
+ <programlisting language="SQL"><![CDATA[SELECT sum(Reports) FROM Supervisor where Division = 'customer support';]]></programlisting>
+
+ <para>
+ Neither Salesforce nor the Salesforce Connector support
+ the sum() scalar function, but they do support CompareCriteriaEquals,
+ so the query that is passed to Salesforce by the connector will be
+ transformed to this query.
+ </para>
+
+ <programlisting language="SQL"><![CDATA[SELECT Reports FROM Supervisor where Division = 'customer support';]]></programlisting>
+
+ <para>
+ The sum() scalar function will be applied by the Teiid Query Engine to
+ the result set returned by the connector.
+ </para>
+
+ <para>
+ In some cases multiple calls to the Salesforce application
+ will be made to support the SQL passed to the connector.
+ </para>
+
+ <programlisting language="SQL"><![CDATA[DELETE From Case WHERE Status = 'Closed';]]></programlisting>
+
+ <para>
+ The API in Salesforce to delete objects only supports
+ deleting by ID. In order to accomplish this the Salesforce connector
+ will first execute a query to get the IDs of the correct objects, and
+ then delete those objects. So the above DELETE command will result in
+ the following two commands.
+ </para>
+
+ <programlisting language="SQL"><![CDATA[SELECT ID From Case WHERE Status = 'Closed';
+DELETE From Case where ID IN (<result of query>);]]></programlisting>
+
+ <para>
+ *The Salesforce API DELETE call is not expressed in SQL, but
+ the above is an SQL equivalent expression.
+ </para>
+
+ <para>
+ It's useful to be aware of unsupported capabilities, in order
+ to avoid fetching large data sets from Salesforce and making you
+ queries as performant as possible.
+ See all <link linkend="sf_supported">Supported Capabilities</link>.
+ </para>
+
+ </section>
+
+ <section>
+ <title>Selecting from Multi-Select Picklists</title>
+ <para>
+ A multi-select picklist is a field type in Salesforce that can
+ contain multiple values in a single field. Query criteria operators
+ for fields of this type in SOQL are limited to EQ, NE, includes and
+ excludes. The full Salesforce documentation for selecting from
+ mullti-select picklists can be found at the following link.
+ <ulink url="http://www.salesforce.com/us/developer/docs/api/index_Left.htm#StartTopic...">Querying Mulit-select Picklists</ulink>
+ </para>
+
+ <para>
+ Teiid SQL does not support the includes or
+ excludes operators, but the Salesforce connector provides user
+ defined function definitions for these operators that provided
+ equivalent functionality for fields of type multi-select. The
+ definition for the functions is:
+ </para>
+
+ <programlisting>boolean includes(Column column, String param)
+boolean excludes(Column column, String param)</programlisting>
+
+ <para>
+ For example, take a single multi-select picklist column
+ called Status that contains all of these values.
+ </para>
+
+ <itemizedlist mark='opencircle'>
+ <listitem>
+ <para>current</para>
+ </listitem>
+ <listitem>
+ <para>working</para>
+ </listitem>
+ <listitem>
+ <para>critical</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>
+ For that column, all of the below are valid queries:
+ </para>
+
+ <programlisting language="SQL"><![CDATA[SELECT * FROM Issue WHERE true = includes (Status, 'current, working' );
+SELECT * FROM Issue WHERE true = excludes (Status, 'current, working' );
+SELECT * FROM Issue WHERE true = includes (Status, 'current;working, critical' );]]></programlisting>
+
+ <para>
+ EQ and NE criteria will pass to Salesforce as supplied. For
+ example, these queries will not be modified by the connector.
+ </para>
+
+ <programlisting language="SQL"><![CDATA[SELECT * FROM Issue WHERE Status = 'current';
+SELECT * FROM Issue WHERE Status = 'current;critical';
+SELECT * FROM Issue WHERE Status != 'current;working';]]></programlisting>
+
+ </section>
+ <section>
+ <title>Selecting All Objects</title>
+ <para>
+ The Salesforce connector supports the calling the queryAll operation
+ from the Salesforce API. The queryAll operation is equivalent
+ to the query operation with the exception that it returns data about
+ <emphasis role="strong">all current and deleted</emphasis>
+ objects in the system.
+ </para>
+ <para>
+ The connector determines if it will call the
+ query or queryAll operation via reference to the
+ isDeleted property present on each Salesforce object,
+ and modeled as a column on each table generated by
+ the importer. By default this value is set to
+ False when the model is generated and thus the connector calls
+ query. Users are free to change the value in the model to True,
+ changing the default behavior of the connector to be queryAll.
+ </para>
+ <para>
+ The behavior is different if isDeleted is used as a parameter
+ in the query. If the isDeleted column is used as a parameter
+ in the query, and the value is 'true' the connector will call queryAll.
+ </para>
+
+ <programlisting language="SQL"><![CDATA[select * from Contact where isDeleted = true;]]></programlisting>
+
+ <para>
+ If the isDeleted column is used as a parameter in the query,
+ and the value is 'false' the connector perform the default behavior
+ will call query.
+ </para>
+
+ <programlisting language="SQL"><![CDATA[select * from Contact where isDeleted = false;]]></programlisting>
+ </section>
+ <section>
+ <title>Selecting Updated Objects</title>
+ <para>
+ If the option is selected when importing metadata from
+ Salesforce, a GetUpdated procedure is generated in the model with
+ the following structure:
+ </para>
+
+ <programlisting language="SQL"><![CDATA[GetUpdated (ObjectName IN string,
+ StartDate IN datetime,
+ EndDate IN datetime,
+ LatestDateCovered OUT datetime)
+returns
+ ID string]]></programlisting>
+
+ <para>
+ See the description of the
+ <ulink url="http://www.salesforce.com/us/developer/docs/api/Content/sforce_api_calls_...">GetUpdated</ulink>
+ operation in the Salesforce documentation for usage details.
+ </para>
+
+ </section>
+ <section>
+ <title>Selecting Deleted Objects</title>
+ <para>
+ If the option is selected when importing metadata from
+ Salesforce, a GetDeleted procedure is generated in the model with
+ the following structure:
+ </para>
+
+ <programlisting language="SQL"><![CDATA[GetDeleted (ObjectName IN string,
+ StartDate IN datetime,
+ EndDate IN datetime,
+ EarliestDateAvailable OUT datetime,
+ LatestDateCovered OUT datetime)
+returns
+ ID string,
+ DeletedDate datetime]]></programlisting>
+
+ <para>
+ See the description of the
+ <ulink url="http://www.salesforce.com/us/developer/docs/api/Content/sforce_api_calls_...">GetDeleted</ulink>
+ operation in the Salesforce documentation for usage details.
+ </para>
+
+ </section>
+ <section>
+ <title>Relationship Queries</title>
+ <para>
+ Salesforce does not support joins like a relational database,
+ but it does have support for queries that include parent-to-child
+ or child-to-parent relationships between objects. These are termed
+ Relationship Queries. The SalesForce connector supports Relationship
+ Queries through Outer Join syntax.
+ </para>
+
+ <programlisting language="SQL"><![CDATA[SELECT Account.name, Contact.Name from Contact LEFT OUTER JOIN Account
+on Contact.Accountid = Account.id]]></programlisting>
+
+ <para>
+ This query shows the correct syntax to query a SalesForce model with
+ to produce a relationship query from child to parent. It resolves to the
+ following query to SalesForce.
+ </para>
+
+ <programlisting language="SQL"><![CDATA[SELECT Contact.Account.Name, Contact.Name FROM Contact]]></programlisting>
+
+ <programlisting language="SQL"><![CDATA[select Contact.Name, Account.Name from Account Left outer Join Contact
+on Contact.Accountid = Account.id]]></programlisting>
+
+ <para>
+ This query shows the correct syntax to query a SalesForce model with
+ to produce a relationship query from parent to child. It resolves to the
+ following query to SalesForce.
+ </para>
+
+ <programlisting language="SQL"><![CDATA[SELECT Account.Name, (SELECT Contact.Name FROM
+Account.Contacts) FROM Account]]></programlisting>
+
+ <para>
+ See the description of the
+ <ulink url="http://www.salesforce.com/us/developer/docs/api/index_Left.htm#StartTopic...">Relationship Queries</ulink>
+ operation in the SalesForce documentation for limitations.
+ </para>
+ </section>
+
+ <section id="sf_supported">
+ <title>Supported Capabilities</title>
+ <para>
+ The following are the the connector capabilities supported by
+ the Salesforce Connector. These SQL constructs will be pushed down to
+ Salesforce.
+ </para>
+
+ <itemizedlist mark='opencircle'>
+ <listitem>
+ <para>SELECT command</para>
+ </listitem>
+ <listitem>
+ <para>INSERT Command</para>
+ </listitem>
+ <listitem>
+ <para>UPDATE Command</para>
+ </listitem>
+ <listitem>
+ <para>DELETE Command</para>
+ </listitem>
+ <listitem>
+ <para>CompareCriteriaEquals</para>
+ </listitem>
+ <listitem>
+ <para>InCriteria</para>
+ </listitem>
+ <listitem>
+ <para>LikeCriteria - Supported for String fields only.</para>
+ </listitem>
+ <listitem>
+ <para>RowLimit</para>
+ </listitem>
+ <listitem>
+ <para>AggregatesCountStar</para>
+ </listitem>
+ <listitem>
+ <para>NotCriteria</para>
+ </listitem>
+ <listitem>
+ <para>OrCriteria</para>
+ </listitem>
+ <listitem>
+ <para>CompareCriteriaOrdered</para>
+ </listitem>
+ <listitem>
+ <para>OuterJoins with join criteria KEY</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ </section>
+
+ <section>
+ <title>JCA Resource Adapter</title>
+ <para>The resource adapter for this translator provided through "Salesforce Data Source",
+ Refer to Admin Guide for configuration.</para>
+ </section>
+
+ </section>
+
+ <section>
+ <title>Web Services Translator</title>
+ <para>
+ The Web Services translator, known by the type name <emphasis>ws</emphasis>,
+ exposes stored procedures for calling web services backed by a Teiid WS
+ resource adapter. It will commonly be used with the
+ <link linkend="texttable">TEXTTABLE</link> or
+ <link linkend="xmltable">XMLTABLE</link> table functions to use CSV or XML
+ formated data.
+ </para>
+ <note><para>Setting the proper binding value on the translator is recommended as it removes the need for callers to pass an explict value. If your service is actually uses SOAP11, but the binding used SOAP12 you will receive execution failures.</para></note>
+ <table>
+ <title>Execution Properties</title>
+ <tgroup cols="3">
+ <colspec colwidth="3*" />
+ <colspec colwidth="6*" />
+ <colspec colwidth="2*" />
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Description</entry>
+ <entry>Default</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>DefaultBinding</entry>
+ <entry>The binding that should be used if one is not specified. Can be one of HTTP, SOAP11, or SOAP12
+ </entry>
+ <entry>SOAP12</entry>
+ </row>
+ <row>
+ <entry>DefaultServiceMode</entry>
+ <entry>The default service mode. For SOAP, MESSAGE mode indicates that the request will contain the entire SOAP envelope and not just the contents of the SOAP body. Can be one of MESSAGE or PAYLOAD</entry>
+ <entry>PAYLOAD</entry>
+ </row>
+ <row>
+ <entry>XMLParamName</entry>
+ <entry>Used with the HTTP binding (typically with the GET method) to indicate that the request document should be part of the query string.</entry>
+ <entry>null - unused</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+
+ <para>
+ There are ws importer settings, but it does provide metadata for dynamic VDBs.
+ </para>
+
+ <section>
+ <title>Usage</title>
+ <para>
+ The WS translator exposes low level procedures for accessing web services.
+ See also the ws-weather example in the kit.
+ </para>
+
+ <section>
+ <title>Invoke Procedure</title>
+ <para>
+ Invoke allows for multiple binding, or protocol modes, including
+ HTTP, SOAP11, and SOAP12.
+ </para>
+ <programlisting>Procedure invoke(binding in STRING, action in STRING, request in XML, endpoint in STRING) returns XML</programlisting>
+
+ <para>
+ The binding may be one of null (to use the default) HTTP, SOAP11, or
+ SOAP12. Action with a SOAP binding indicates the SOAPAction value.
+ Action with a HTTP binding indicates the HTTP method (GET, POST, etc.),
+ which defaults to POST.
+ </para>
+
+ <para>
+ A null value for the binding or endpoint will use the default value.
+ The default endpoint is specified in the WS resource adapter
+ configuration. The endpoint URL may be absolute or relative. If it's
+ relative then it will be combined with the default endpoint.
+ </para>
+
+ <para>
+ Since multiple parameters are not required to have values, it is often
+ more clear to call the invoke procedure with named parameter syntax.
+ </para>
+ <programlisting>call invoke(binding=>'HTTP', action=>'GET')</programlisting>
+ <para>The request XML should be a valid XML document or root element.</para>
+ </section>
+
+ <section>
+ <title>InvokeHTTP Procedure</title>
+ <para>
+ <methodname>invokeHttp</methodname> can return the byte contents of an HTTP(S) call.
+ </para>
+ <programlisting>Procedure invokeHttp(action in STRING, request in OBJECT, endpoint in STRING, contentType out STRING) returns BLOB</programlisting>
+
+ <para>
+ Action indicates the HTTP method (GET, POST, etc.), which defaults to POST.
+ </para>
+ <para>
+ A null value for endpoint will use the default value. The default endpoint
+ is specified in the WS resource adapter configuration. The endpoint URL may
+ be absolute or relative. If it's relative then it will be combined with the
+ default endpoint.
+ </para>
+ <para>
+ Since multiple parameters are not required to have values, it is often more
+ clear to call the invoke procedure with named parameter syntax.
+ </para>
+ <programlisting>call invokeHttp(action=>'GET')</programlisting>
+
+ <para>
+ The request can be one of SQLXML, STRING, BLOB, or CLOB. The request will be
+ sent as the POST payload in byte form. For STRING/CLOB values this will
+ default to the UTF-8 encoding. To control the byte encoding, see the
+ <link linkend="to_bytes">to_bytes</link> function.
+ </para>
+ </section>
+ </section>
+ <section>
+ <title>JCA Resource Adapter</title>
+ <para>Theresource adapter for this translator provided through "Web Service Data Source",
+ Refer to Admin Guide for configuration.</para>
+ </section>
+ </section>
+
+ <section>
+ <title>OLAP Translator</title>
+ <para>
+ The OLAP Services translator, known by the type name <emphasis>olap</emphasis>,
+ exposes stored procedures for calling analysis sevices backed by a OLAP server using MDX query lanaguage.
+ This translator exposes a stored procedure, invokeMDX, that returns a result set containing tuple array values for a given MDX query.
+ invokeMDX will commonly be used with the <link linkend="arraytable">ARRAYTABLE</link> table function to extract the results.
+ </para>
+ <para>
+ Since the Cube metadata exposed by the OLAP servers and relational database metadata are so different, there is no single
+ way to map the metadata from one to other. It is best to query OLAP system using its own native MDX language
+ through. MDX queries my be defined statically or built dynamically in Teiid's abstraction layers.
+ </para>
+
+ <section>
+ <title>Usage</title>
+ <para>
+ The olap translator exposes one low level procedure for accessing olap services.
+ </para>
+
+ <section>
+ <title>InvokeMDX Procedure</title>
+ <para>
+ <methodname>invokeMdx</methodname> returns a resultset of the tuples as array values.
+ </para>
+ <programlisting>Procedure invokeMdx(mdx in STRING) returns resultset (tuple object)</programlisting>
+
+ <para>
+ The mdx parameter is a MDX query to be executed on the OLAP server.
+ </para>
+ <para>
+ The results of the query will be returned such that each row on the row axis will be packed into an array value that will first contain each hierarcy member name on the row axis then each measure value from the column axis.
+ </para>
+ <note><para>The use of <xref linkend="dataroles"/> should be considered to prevent arbitrary MDX from being submitted to the invokeMDX procedure.</para></note>
+ <para>
+ </para>
+ </section>
+ </section>
+ <section>
+ <title>JCA Resource Adapter</title>
+ <para>The resource adapter for this translator provided through data source in JBoss AS,
+ Refer to Admin Guide for "JDBC Data Sources" configuration section. Two sample
+ -ds.xml files provided for accessing OLAP servers in teiid-examples section. One is Mondrian specific,
+ when Mondrian server is deloyed
+ in the same JBoss AS as Teiid (mondrian-ds.xml). To access any other OLAP servers using XMLA interface,
+ the data source for them can be created using them example template olap-xmla-ds.xml</para>
+ </section>
+ </section>
+
+ <section>
+ <title>Delegating Translators</title>
+ <para>
+ You may create a delegating translator by extending the <code>org.teiid.translator.BaseDelegatingExecutionFactory</code>.
+ Once your classes are then packaged as a custom translator, you will be able to wire another translator instance into your delegating translator at runtime in order to intercept
+ all of the calls to the delegate. This base class does not provide any functionality on its own, other than delegation.
+ </para>
+
+ <table>
+ <title>Execution Properties</title>
+ <tgroup cols="3">
+ <colspec colwidth="3*" />
+ <colspec colwidth="6*" />
+ <colspec colwidth="2*" />
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Description</entry>
+ <entry>Default</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>delegateName</entry>
+ <entry>Translator instance name to delegate to</entry>
+ <entry></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </section>
+ </section>
+
+ <section id="dynamic_vdbs">
+ <title>Dynamic VDBs</title>
+ <para>
+ Teiid integration is available via a "Dynamic VDB" without the need for Teiid Designer
+ tooling. While this mode of operation does not yet allow for the creation of view
+ layers, the underlying sources can still be queried as if they are a single source. See
+ the kit's "teiid-example/dynamicvdb-*" for working examples.
+ </para>
+
+ <para>
+ To build a dynamic VDB, you'll need to create a
+ <filename><replaceable>SOME-NAME</replaceable>-vdb.xml</filename> file. The XML file captures
+ information about the VDB, the sources it integrate, and preferences for importing metadata.
+ </para>
+
+ <note>
+ <para>
+ VDB name pattern must adhere to "-vdb.xml" for the Teiid VDB deployer to
+ recognize this file as a dynamic VDB.
+ </para>
+ </note>
+
+ <para>
+ my-vdb.xml: (The vdb-deployer.xml schema for this file is available in the schema
+ folder under the docs with the Teiid distribution.)
+ </para>
+
+ <programlisting role="XML" language="XML"><![CDATA[<vdb name="${vdb-name}" version="${vdb-version}">
+
+ <property name="UseConnectorMetadata" value="..." />
+
+ <!-- define a model fragment for each data source -->
+ <model name="${model-name}">
+
+ <property name="..." value="..." />
+ ...
+
+ <source name="${source-name}" translator-name="${translator-name}"
+
+ connection-jndi-name="${deployed-jndi-name}">
+ ...
+ </model>
+
+ <!-- create translator instances that override default properties -->
+
+ <translator name="${translator-name}" type="${translator-type}" />
+
+ <property name="..." value="..." />
+ ...
+
+ </translator>
+</vdb>]]></programlisting>
+
+ <section>
+ <title>VDB Element</title>
+ <itemizedlist>
+ <title>Attributes</title>
+ <listitem>
+ <para>
+ <emphasis>name</emphasis>
+ </para>
+ <para>
+ The name of the VDB. The VDB name
+ referenced through the driver or datasource during the connection time.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>version</emphasis>
+ </para>
+ <para>
+ The version of the VDB (should be an
+ positive integer). This determines the deployed directory location
+ (see Name), and provides an explicit versioning mechanism to the VDB
+ name.
+ </para>
+ </listitem>
+ </itemizedlist>
+
+ <itemizedlist>
+ <title>Property Elements</title>
+ <listitem>
+ <para>
+ <emphasis>UseConnectorMetadata</emphasis>
+ </para>
+ <para>
+ Setting to use connector
+ supplied metadata. Can be "true" or "cached". "true" will obtain
+ metadata once for every launch of Teiid. "cached" will save a file
+ containing the metadata into the
+ <filename><replaceable>PROFILE</replaceable>/data/teiid</filename> directory
+ </para>
+ </listitem>
+ </itemizedlist>
+
+ </section>
+
+ <section>
+ <title>Model Element</title>
+ <itemizedlist>
+ <title>Attributes</title>
+ <listitem>
+ <para>
+ <emphasis>name</emphasis>
+ </para>
+ <para>
+ The name of the model is used as a
+ top level schema name for all of the metadata imported from the
+ connector. The name should be unique among all Models in the VDB and
+ should not contain the '.' character.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>version</emphasis>
+ </para>
+ <para>
+ The version of the VDB (should be an
+ positive integer). This determines the deployed directory location
+ (see Name), and provides an explicit versioning mechanism to the VDB
+ name.
+ </para>
+ </listitem>
+ </itemizedlist>
+
+ <itemizedlist>
+ <title>Source Element</title>
+ <listitem>
+ <para>
+ <emphasis>name</emphasis>
+ </para>
+ <para>
+ The name of the source to use for this
+ model. This can be any name you like, but will typically be the same
+ as the model name. Having a name different than the model name is
+ only useful in multi-source scenarios.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>translator-name</emphasis>
+ </para>
+ <para>
+ The name or type of the Teiid Translator to use. Possible values include
+ the built-in types (ws, file, ldap, oracle, sqlserver, db2, derby, etc.)
+ and translators defined in the translators section.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>connection-jndi-name</emphasis>
+ </para>
+ <para>
+ The JNDI name of this source's connection factory. There should be a
+ corresponding "-ds.xml" file that defines the connection factory in
+ the JBoss AS. Check out the deploying VDB dependencies section for
+ info. You also need to deploy these connection factories before you
+ can deploy the VDB.
+ </para>
+ </listitem>
+ </itemizedlist>
+
+ <itemizedlist>
+ <title>Property Elements</title>
+ <listitem>
+ <para>
+ <emphasis>importer.<propertyname></emphasis>
+ </para>
+ <para>
+ Property to be used by the connector importer for the model for purposes
+ importing metadata. See possible property name/values in the
+ Translator specific section. Note that using these properties you
+ can narrow or widen the data elements available for integration.
+ </para>
+ </listitem>
+ </itemizedlist>
+
+ </section>
+ <section>
+ <title>Translator Element</title>
+ <itemizedlist>
+ <title>Attributes</title>
+ <listitem>
+ <para>
+ <emphasis>name</emphasis>
+ </para>
+ <para>
+ The name of the the Translator. Referenced by the source element.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>type</emphasis>
+ </para>
+ <para>
+ The base type of the Translator. Can be one of the built-in types (ws,
+ file, ldap, oracle, sqlserver, db2, derby, etc.).
+ </para>
+ </listitem>
+ </itemizedlist>
+
+ <itemizedlist>
+ <title>Property Elements</title>
+ <listitem>
+ <para>
+ Set a value that overrides a translator default property. See
+ possible property name/values in the Translator specific section.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ </section>
+ <section>
+ <title>Multi-Source Models and VDB</title>
+ <para>
+ When you have multiple instances of data that are using identical schema
+ (horizontal sharding), Teiid can help you aggregate data across all the
+ instances, using "multi-source" models. In this scenario, instead of
+ creating/importing a model for every data source, user needs to define one
+ source model that represents the schema and configure multiple data "sources"
+ underneath it. During runtime, when a query issued against this model, the query
+ engine analyzes the information and gathers the required data from all the
+ sources configured and aggregates the results and provides in a single result set.
+ </para>
+
+ <para>
+ To mark a model as multi-source, the user needs to supply property called
+ <property>supports-multi-source-bindings</property>, in the "vdb.xml" file.
+ Also, the user needs to define multiple sources. Here is code example showing dynamic vdb with single model with
+ multiple sources defined.
+ </para>
+
+ <programlisting role="XML" language="XML"><![CDATA[<vdb name="vdbname" version="1">
+ <model visible="true" type="PHYSICAL" name="Customers" path="/Test/Customers.xmi">
+ <property name="supports-multi-source-bindings" value="true"/>
+ <source name="chicago"
+ translator-name="oracle" connection-jndi-name="chicago-customers"/>
+ <source name="newyork"
+ translator-name="oracle" connection-jndi-name="newyork-customers"/>
+ <source name="la"
+ translator-name="oracle" connection-jndi-name="la-customers"/>
+ </model>
+</vdb>]]></programlisting>
+
+ <para>
+ In the above example, the VDB defined has single model called <literal>Customers</literal>,
+ that has multiple sources (<literal>chicago</literal>, <literal>newyork</literal>,
+ and <literal>la</literal>) that define different instances of data. Every
+ time a model is marked as "multi-source", the
+ runtime engine adds a additional column called "SOURCE_NAME" to every table in
+ that model. This column maps to the source's name from the XML. In
+ the above XML code that would be <literal>chicago</literal>, <literal>la</literal>,
+ <literal>newyork</literal>. This allows queries like the following:
+ </para>
+
+ <programlisting language="SQL"><![CDATA[select * from table where SOURCE_NAME = 'newyork'
+update table column=value where SOURCE_NAME='chicago'
+delete from table where column = x and SOURCE_NAME='la'
+insert into table (column, SOURCE_NAME) VALUES ('value', 'newyork')]]></programlisting>
+
+ <para>
+ Note that when user do not supply the "SOURCE_NAME" in the criteria, the command applies
+ to all the sources. If SOURCE_NAME supplied, the query is executed only aginst the source specified.
+ Another useful feature along with this feature is
+ "partial results" to skip unavailable sources if they are down.
+ </para>
+
+ <note>
+ <para>
+ Currently the tooling support for managing the multi-source feature is
+ limited, so if you need to use this feature build the VDB as usual in
+ the Teiid Designer and then edit the "vdb.xml" file in the VDB archive
+ using a Text editor to add the additional sources as defined above.
+ You must deploy a separate data source for each source defined in the xml file.
+ </para>
+ </note>
+
+ <note>
+ <para>
+ If you would like to use "SOURCE_NAME" in your transformations to control which sources are accessed or updated,
+ you would manually need to add this extra column on your view table in
+ the Designer. This column will not be automatically added on the source table, when you import
+ the medata from source.
+ </para>
+ </note>
+ </section>
+
+</chapter>
\ No newline at end of file
Deleted: tags/teiid-parent-7.4.0.CR1/engine/pom.xml
===================================================================
--- trunk/engine/pom.xml 2011-05-03 09:43:58 UTC (rev 3137)
+++ tags/teiid-parent-7.4.0.CR1/engine/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -1,97 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <parent>
- <artifactId>teiid-parent</artifactId>
- <groupId>org.jboss.teiid</groupId>
- <version>7.4.0.CR1-SNAPSHOT</version>
- </parent>
- <modelVersion>4.0.0</modelVersion>
- <artifactId>teiid-engine</artifactId>
- <name>Engine</name>
- <description>Relational, procedural, and xml core engine.</description>
-
- <build>
- <plugins>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>javacc-maven-plugin</artifactId>
- <version>2.4</version>
- <executions>
- <execution>
- <id>javacc</id>
- <goals>
- <goal>javacc</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
-
- <dependencies>
-
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-common-core</artifactId>
- <type>test-jar</type>
- </dependency>
-
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-api</artifactId>
- <scope>provided</scope>
- </dependency>
-
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-client</artifactId>
- <scope>provided</scope>
- </dependency>
-
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-client</artifactId>
- <type>test-jar</type>
- </dependency>
-
- <dependency>
- <groupId>javax.resource</groupId>
- <artifactId>connector-api</artifactId>
- </dependency>
-
- <dependency>
- <groupId>javax.transaction</groupId>
- <artifactId>jta</artifactId>
- </dependency>
-
- <dependency>
- <groupId>org.jboss.deployers</groupId>
- <artifactId>jboss-deployers-vfs-spi</artifactId>
- <scope>provided</scope>
- </dependency>
-
- <dependency>
- <groupId>org.jboss.deployers</groupId>
- <artifactId>jboss-deployers-vfs</artifactId>
- <scope>provided</scope>
- </dependency>
-
- <dependency>
- <groupId>net.sourceforge.saxon</groupId>
- <artifactId>saxon</artifactId>
- </dependency>
-
- <dependency>
- <groupId>net.sourceforge.saxon</groupId>
- <classifier>dom</classifier>
- <artifactId>saxon</artifactId>
- </dependency>
-
- <dependency>
- <groupId>com.googlecode.json-simple</groupId>
- <artifactId>json-simple</artifactId>
- </dependency>
-
- </dependencies>
-
-</project>
\ No newline at end of file
Copied: tags/teiid-parent-7.4.0.CR1/engine/pom.xml (from rev 3140, trunk/engine/pom.xml)
===================================================================
--- tags/teiid-parent-7.4.0.CR1/engine/pom.xml (rev 0)
+++ tags/teiid-parent-7.4.0.CR1/engine/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <artifactId>teiid-parent</artifactId>
+ <groupId>org.jboss.teiid</groupId>
+ <version>7.4.0.CR1</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>teiid-engine</artifactId>
+ <name>Engine</name>
+ <description>Relational, procedural, and xml core engine.</description>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>javacc-maven-plugin</artifactId>
+ <version>2.4</version>
+ <executions>
+ <execution>
+ <id>javacc</id>
+ <goals>
+ <goal>javacc</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+
+ <dependencies>
+
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-common-core</artifactId>
+ <type>test-jar</type>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-client</artifactId>
+ <scope>provided</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-client</artifactId>
+ <type>test-jar</type>
+ </dependency>
+
+ <dependency>
+ <groupId>javax.resource</groupId>
+ <artifactId>connector-api</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>javax.transaction</groupId>
+ <artifactId>jta</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.deployers</groupId>
+ <artifactId>jboss-deployers-vfs-spi</artifactId>
+ <scope>provided</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.deployers</groupId>
+ <artifactId>jboss-deployers-vfs</artifactId>
+ <scope>provided</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>net.sourceforge.saxon</groupId>
+ <artifactId>saxon</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>net.sourceforge.saxon</groupId>
+ <classifier>dom</classifier>
+ <artifactId>saxon</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>com.googlecode.json-simple</groupId>
+ <artifactId>json-simple</artifactId>
+ </dependency>
+
+ </dependencies>
+
+</project>
\ No newline at end of file
Deleted: tags/teiid-parent-7.4.0.CR1/engine/src/main/java/org/teiid/dqp/internal/process/DataTierManagerImpl.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/dqp/internal/process/DataTierManagerImpl.java 2011-05-03 09:43:58 UTC (rev 3137)
+++ tags/teiid-parent-7.4.0.CR1/engine/src/main/java/org/teiid/dqp/internal/process/DataTierManagerImpl.java 2011-05-03 16:47:11 UTC (rev 3141)
@@ -1,571 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301 USA.
- */
-
-package org.teiid.dqp.internal.process;
-
-import java.io.IOException;
-import java.sql.Clob;
-import java.sql.DatabaseMetaData;
-import java.sql.SQLException;
-import java.sql.Timestamp;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Map;
-
-import javax.sql.rowset.serial.SerialClob;
-
-import org.teiid.adminapi.impl.ModelMetaData;
-import org.teiid.adminapi.impl.VDBMetaData;
-import org.teiid.api.exception.query.QueryMetadataException;
-import org.teiid.client.RequestMessage;
-import org.teiid.common.buffer.BlockedException;
-import org.teiid.common.buffer.BufferManager;
-import org.teiid.common.buffer.TupleSource;
-import org.teiid.core.CoreConstants;
-import org.teiid.core.TeiidComponentException;
-import org.teiid.core.TeiidProcessingException;
-import org.teiid.core.types.BlobType;
-import org.teiid.core.types.ClobType;
-import org.teiid.core.types.SQLXMLImpl;
-import org.teiid.core.types.XMLType;
-import org.teiid.core.util.Assertion;
-import org.teiid.core.util.ObjectConverterUtil;
-import org.teiid.core.util.StringUtil;
-import org.teiid.dqp.internal.datamgr.ConnectorManager;
-import org.teiid.dqp.internal.datamgr.ConnectorManagerRepository;
-import org.teiid.dqp.internal.datamgr.ConnectorWork;
-import org.teiid.dqp.message.AtomicRequestMessage;
-import org.teiid.dqp.message.RequestID;
-import org.teiid.dqp.service.BufferService;
-import org.teiid.events.EventDistributor;
-import org.teiid.metadata.AbstractMetadataRecord;
-import org.teiid.metadata.Column;
-import org.teiid.metadata.ColumnStats;
-import org.teiid.metadata.Datatype;
-import org.teiid.metadata.ForeignKey;
-import org.teiid.metadata.KeyRecord;
-import org.teiid.metadata.MetadataRepository;
-import org.teiid.metadata.Procedure;
-import org.teiid.metadata.ProcedureParameter;
-import org.teiid.metadata.Schema;
-import org.teiid.metadata.Table;
-import org.teiid.metadata.TableStats;
-import org.teiid.query.QueryPlugin;
-import org.teiid.query.metadata.CompositeMetadataStore;
-import org.teiid.query.metadata.TempMetadataID;
-import org.teiid.query.metadata.TransformationMetadata;
-import org.teiid.query.optimizer.relational.RelationalPlanner;
-import org.teiid.query.processor.CollectionTupleSource;
-import org.teiid.query.processor.ProcessorDataManager;
-import org.teiid.query.sql.lang.Command;
-import org.teiid.query.sql.lang.Query;
-import org.teiid.query.sql.lang.StoredProcedure;
-import org.teiid.query.sql.lang.UnaryFromClause;
-import org.teiid.query.sql.symbol.Constant;
-import org.teiid.query.sql.symbol.GroupSymbol;
-import org.teiid.query.sql.visitor.GroupCollectorVisitor;
-import org.teiid.query.tempdata.TempTableStore;
-import org.teiid.query.tempdata.TempTableStore.MatTableInfo;
-import org.teiid.query.util.CommandContext;
-
-/**
- * Full {@link ProcessorDataManager} implementation that
- * controls access to {@link ConnectorManager}s and handles system queries.
- */
-public class DataTierManagerImpl implements ProcessorDataManager {
-
- private static final int MAX_VALUE_LENGTH = 1 << 21;
-
- private enum SystemTables {
- VIRTUALDATABASES,
- SCHEMAS,
- TABLES,
- DATATYPES,
- COLUMNS,
- KEYS,
- PROCEDURES,
- KEYCOLUMNS,
- PROCEDUREPARAMS,
- REFERENCEKEYCOLUMNS,
- PROPERTIES
- }
-
- private enum SystemAdminTables {
- MATVIEWS,
- VDBRESOURCES
- }
-
- private enum SystemAdminProcs {
- SETTABLESTATS,
- SETCOLUMNSTATS,
- SETPROPERTY
- }
-
- private enum SystemProcs {
- GETXMLSCHEMAS
- }
-
- // Resources
- private DQPCore requestMgr;
- private BufferService bufferService;
- private EventDistributor eventDistributor;
- private boolean detectChangeEvents;
- private MetadataRepository metadataRepository;
-
- public DataTierManagerImpl(DQPCore requestMgr, BufferService bufferService, boolean detectChangeEvents) {
- this.requestMgr = requestMgr;
- this.bufferService = bufferService;
- this.detectChangeEvents = detectChangeEvents;
- }
-
- public boolean detectChangeEvents() {
- return detectChangeEvents;
- }
-
- public void setEventDistributor(EventDistributor eventDistributor) {
- this.eventDistributor = eventDistributor;
- }
-
- public EventDistributor getEventDistributor() {
- return eventDistributor;
- }
-
- public MetadataRepository getMetadataRepository() {
- return metadataRepository;
- }
-
- public void setMetadataRepository(MetadataRepository metadataRepository) {
- this.metadataRepository = metadataRepository;
- }
-
- public TupleSource registerRequest(CommandContext context, Command command, String modelName, String connectorBindingId, int nodeID, int limit) throws TeiidComponentException, TeiidProcessingException {
- RequestWorkItem workItem = requestMgr.getRequestWorkItem((RequestID)context.getProcessorID());
-
- if(CoreConstants.SYSTEM_MODEL.equals(modelName) || CoreConstants.SYSTEM_ADMIN_MODEL.equals(modelName)) {
- return processSystemQuery(context, command, workItem.getDqpWorkContext());
- }
-
- AtomicRequestMessage aqr = createRequest(context.getProcessorID(), command, modelName, connectorBindingId, nodeID);
- if (limit > 0) {
- aqr.setFetchSize(Math.min(limit, aqr.getFetchSize()));
- }
- if (context.getDataObjects() != null) {
- for (GroupSymbol gs : GroupCollectorVisitor.getGroupsIgnoreInlineViews(command, false)) {
- context.accessedDataObject(gs.getMetadataID());
- }
- }
- ConnectorManagerRepository cmr = workItem.getDqpWorkContext().getVDB().getAttachment(ConnectorManagerRepository.class);
- ConnectorWork work = cmr.getConnectorManager(aqr.getConnectorName()).registerRequest(aqr);
- return new DataTierTupleSource(aqr, workItem, work, this, limit);
- }
-
- /**
- * TODO: it would be good if processing here was lazy, in response of next batch, rather than up front.
- * @param command
- * @param workItem
- * @return
- * @throws TeiidComponentException
- * @throws TeiidProcessingException
- */
- @SuppressWarnings("unchecked")
- private TupleSource processSystemQuery(CommandContext context, Command command,
- DQPWorkContext workContext) throws TeiidComponentException, TeiidProcessingException {
- String vdbName = workContext.getVdbName();
- int vdbVersion = workContext.getVdbVersion();
- VDBMetaData vdb = workContext.getVDB();
- CompositeMetadataStore metadata = vdb.getAttachment(TransformationMetadata.class).getMetadataStore();
- TransformationMetadata indexMetadata = vdb.getAttachment(TransformationMetadata.class);
- Collection rows = new ArrayList();
- int oid = 1;
- if (command instanceof Query) {
- Query query = (Query)command;
- UnaryFromClause ufc = (UnaryFromClause)query.getFrom().getClauses().get(0);
- GroupSymbol group = ufc.getGroup();
- if (StringUtil.startsWithIgnoreCase(group.getNonCorrelationName(), CoreConstants.SYSTEM_ADMIN_MODEL)) {
- final SystemAdminTables sysTable = SystemAdminTables.valueOf(group.getNonCorrelationName().substring(CoreConstants.SYSTEM_ADMIN_MODEL.length() + 1).toUpperCase());
- switch (sysTable) {
- case MATVIEWS:
- for (Schema schema : getVisibleSchemas(vdb, metadata)) {
- for (Table table : schema.getTables().values()) {
- if (!table.isMaterialized()) {
- continue;
- }
- String targetSchema = null;
- String matTableName = null;
- String state = null;
- Timestamp updated = null;
- Integer cardinaltity = null;
- Boolean valid = null;
- if (table.getMaterializedTable() == null) {
- TempTableStore globalStore = context.getGlobalTableStore();
- matTableName = RelationalPlanner.MAT_PREFIX+table.getFullName().toUpperCase();
- MatTableInfo info = globalStore.getMatTableInfo(matTableName);
- valid = info.isValid();
- state = info.getState().name();
- updated = info.getUpdateTime()==-1?null:new Timestamp(info.getUpdateTime());
- TempMetadataID id = globalStore.getMetadataStore().getTempGroupID(matTableName);
- if (id != null) {
- cardinaltity = id.getCardinality();
- }
- //ttl, pref_mem - not part of proper metadata
- } else {
- Table t = table.getMaterializedTable();
- matTableName = t.getName();
- targetSchema = t.getParent().getName();
- }
- rows.add(Arrays.asList(vdbName, schema.getName(), table.getName(), targetSchema, matTableName, valid, state, updated, cardinaltity));
- }
- }
- break;
- case VDBRESOURCES:
- String[] filePaths = indexMetadata.getVDBResourcePaths();
- for (String filePath : filePaths) {
- rows.add(Arrays.asList(filePath, new BlobType(indexMetadata.getVDBResourceAsBlob(filePath))));
- }
- break;
- }
- return new CollectionTupleSource(rows.iterator());
- }
- final SystemTables sysTable = SystemTables.valueOf(group.getNonCorrelationName().substring(CoreConstants.SYSTEM_MODEL.length() + 1).toUpperCase());
- switch (sysTable) {
- case DATATYPES:
- for (Datatype datatype : metadata.getDatatypes()) {
- rows.add(Arrays.asList(datatype.getName(), datatype.isBuiltin(), datatype.isBuiltin(), datatype.getName(), datatype.getJavaClassName(), datatype.getScale(),
- datatype.getLength(), datatype.getNullType().toString(), datatype.isSigned(), datatype.isAutoIncrement(), datatype.isCaseSensitive(), datatype.getPrecisionLength(),
- datatype.getRadix(), datatype.getSearchType().toString(), datatype.getUUID(), datatype.getRuntimeTypeName(), datatype.getBasetypeName(), datatype.getAnnotation(), oid++));
- }
- break;
- case VIRTUALDATABASES:
- rows.add(Arrays.asList(vdbName, vdbVersion));
- break;
- case SCHEMAS:
- for (Schema model : getVisibleSchemas(vdb, metadata)) {
- rows.add(Arrays.asList(vdbName, model.getName(), model.isPhysical(), model.getUUID(), model.getAnnotation(), model.getPrimaryMetamodelUri(), oid++));
- }
- break;
- case PROCEDURES:
- for (Schema schema : getVisibleSchemas(vdb, metadata)) {
- for (Procedure proc : schema.getProcedures().values()) {
- rows.add(Arrays.asList(vdbName, proc.getParent().getName(), proc.getName(), proc.getNameInSource(), proc.getResultSet() != null, proc.getUUID(), proc.getAnnotation(), oid++));
- }
- }
- break;
- case PROCEDUREPARAMS:
- for (Schema schema : getVisibleSchemas(vdb, metadata)) {
- for (Procedure proc : schema.getProcedures().values()) {
- for (ProcedureParameter param : proc.getParameters()) {
- Datatype dt = param.getDatatype();
- rows.add(Arrays.asList(vdbName, proc.getParent().getName(), proc.getName(), param.getName(), dt!=null?dt.getRuntimeTypeName():null, param.getPosition(), param.getType().toString(), param.isOptional(),
- param.getPrecision(), param.getLength(), param.getScale(), param.getRadix(), param.getNullType().toString(), param.getUUID(), param.getAnnotation(), oid++));
- }
- if (proc.getResultSet() != null) {
- for (Column param : proc.getResultSet().getColumns()) {
- Datatype dt = param.getDatatype();
- rows.add(Arrays.asList(vdbName, proc.getParent().getName(), proc.getName(), param.getName(), dt!=null?dt.getRuntimeTypeName():null, param.getPosition(), "ResultSet", false, //$NON-NLS-1$
- param.getPrecision(), param.getLength(), param.getScale(), param.getRadix(), param.getNullType().toString(), param.getUUID(), param.getAnnotation(), oid++));
- }
- }
- }
- }
- break;
- case PROPERTIES: //TODO: consider storing separately in the metadatastore
- Collection<AbstractMetadataRecord> records = getAllPropertiedObjects(metadata, getVisibleSchemas(vdb, metadata));
- for (AbstractMetadataRecord record : records) {
- for (Map.Entry<String, String> entry : record.getProperties().entrySet()) {
- String value = entry.getValue();
- Clob clobValue = null;
- if (value != null) {
- try {
- clobValue = new ClobType(new SerialClob(value.toCharArray()));
- } catch (SQLException e) {
- throw new TeiidProcessingException(e);
- }
- }
- rows.add(Arrays.asList(entry.getKey(), entry.getValue(), record.getUUID(), oid++, clobValue));
- }
- }
- break;
- default:
- for (Schema schema : getVisibleSchemas(vdb, metadata)) {
- for (Table table : schema.getTables().values()) {
- switch (sysTable) {
- case TABLES:
- rows.add(Arrays.asList(vdbName, schema.getName(), table.getName(), table.getTableType().toString(), table.getNameInSource(),
- table.isPhysical(), table.supportsUpdate(), table.getUUID(), table.getCardinality(), table.getAnnotation(), table.isSystem(), table.isMaterialized(), oid++));
- break;
- case COLUMNS:
- for (Column column : table.getColumns()) {
- Datatype dt = column.getDatatype();
- rows.add(Arrays.asList(vdbName, schema.getName(), table.getName(), column.getName(), column.getPosition(), column.getNameInSource(),
- dt!=null?dt.getRuntimeTypeName():null, column.getScale(), column.getLength(), column.isFixedLength(), column.isSelectable(), column.isUpdatable(),
- column.isCaseSensitive(), column.isSigned(), column.isCurrency(), column.isAutoIncremented(), column.getNullType().toString(), column.getMinimumValue(),
- column.getMaximumValue(), column.getDistinctValues(), column.getNullValues(), column.getSearchType().toString(), column.getFormat(),
- column.getDefaultValue(), dt!=null?dt.getJavaClassName():null, column.getPrecision(),
- column.getCharOctetLength(), column.getRadix(), column.getUUID(), column.getAnnotation(), oid++));
- }
- break;
- case KEYS:
- for (KeyRecord key : table.getAllKeys()) {
- rows.add(Arrays.asList(vdbName, table.getParent().getName(), table.getName(), key.getName(), key.getAnnotation(), key.getNameInSource(), key.getType().toString(),
- false, (key instanceof ForeignKey)?((ForeignKey)key).getUniqueKeyID():null, key.getUUID(), oid++));
- }
- break;
- case KEYCOLUMNS:
- for (KeyRecord key : table.getAllKeys()) {
- int postition = 1;
- for (Column column : key.getColumns()) {
- rows.add(Arrays.asList(vdbName, schema.getName(), table.getName(), column.getName(), key.getName(), key.getType().toString(),
- (key instanceof ForeignKey)?((ForeignKey)key).getUniqueKeyID():null, key.getUUID(), postition++, oid++));
- }
- }
- break;
- case REFERENCEKEYCOLUMNS:
- for (ForeignKey key : table.getForeignKeys()) {
- short postition = 0;
- for (Column column : key.getColumns()) {
- Table pkTable = key.getPrimaryKey().getParent();
- rows.add(Arrays.asList(vdbName, pkTable.getParent().getName(), pkTable.getName(), key.getPrimaryKey().getColumns().get(postition).getName(), vdbName, schema.getName(), table.getName(), column.getName(),
- ++postition, DatabaseMetaData.importedKeyNoAction, DatabaseMetaData.importedKeyNoAction, key.getName(), key.getPrimaryKey().getName(), DatabaseMetaData.importedKeyInitiallyDeferred));
- }
- }
- break;
- }
- }
- }
- break;
- }
- } else {
- StoredProcedure proc = (StoredProcedure)command;
- if (StringUtil.startsWithIgnoreCase(proc.getProcedureCallableName(), CoreConstants.SYSTEM_ADMIN_MODEL)) {
- final SystemAdminProcs sysProc = SystemAdminProcs.valueOf(proc.getProcedureCallableName().substring(CoreConstants.SYSTEM_ADMIN_MODEL.length() + 1).toUpperCase());
- switch (sysProc) {
- case SETPROPERTY:
- try {
- String uuid = (String)((Constant)proc.getParameter(2).getExpression()).getValue();
- String key = (String)((Constant)proc.getParameter(3).getExpression()).getValue();
- Clob value = (Clob)((Constant)proc.getParameter(4).getExpression()).getValue();
- String strVal = null;
- String result = null;
- if (value != null) {
- if (value.length() > MAX_VALUE_LENGTH) {
- throw new TeiidProcessingException(QueryPlugin.Util.getString("DataTierManagerImpl.max_value_length", MAX_VALUE_LENGTH)); //$NON-NLS-1$
- }
- strVal = ObjectConverterUtil.convertToString(value.getCharacterStream());
- }
- AbstractMetadataRecord target = getByUuid(metadata, uuid);
- if (target == null) {
- throw new TeiidProcessingException(QueryPlugin.Util.getString("DataTierManagerImpl.unknown_uuid", uuid)); //$NON-NLS-1$
- }
- if (value == null) {
- result = target.setProperty(key, null);
- } else {
- strVal = ObjectConverterUtil.convertToString(value.getCharacterStream());
- result = target.setProperty(key, strVal);
- }
- if (eventDistributor != null) {
- eventDistributor.setProperty(vdbName, vdbVersion, uuid, key, strVal);
- }
- if (this.metadataRepository != null) {
- this.metadataRepository.setProperty(vdbName, vdbVersion, target, key, strVal);
- }
- if (result == null) {
- rows.add(Arrays.asList((Clob)null));
- } else {
- rows.add(Arrays.asList(new ClobType(new SerialClob(result.toCharArray()))));
- }
- return new CollectionTupleSource(rows.iterator());
- } catch (SQLException e) {
- throw new TeiidProcessingException(e);
- } catch (IOException e) {
- throw new TeiidProcessingException(e);
- }
- }
- Table table = indexMetadata.getGroupID((String)((Constant)proc.getParameter(1).getExpression()).getValue());
- switch (sysProc) {
- case SETCOLUMNSTATS:
- String columnName = (String)((Constant)proc.getParameter(2).getExpression()).getValue();
- Column c = null;
- for (Column col : table.getColumns()) {
- if (col.getName().equalsIgnoreCase(columnName)) {
- c = col;
- break;
- }
- }
- if (c == null) {
- throw new TeiidProcessingException(columnName + TransformationMetadata.NOT_EXISTS_MESSAGE);
- }
- Integer distinctVals = (Integer)((Constant)proc.getParameter(3).getExpression()).getValue();
- Integer nullVals = (Integer)((Constant)proc.getParameter(4).getExpression()).getValue();
- String max = (String) ((Constant)proc.getParameter(5).getExpression()).getValue();
- String min = (String) ((Constant)proc.getParameter(6).getExpression()).getValue();
- if (distinctVals != null) {
- c.setDistinctValues(distinctVals);
- }
- if (nullVals != null) {
- c.setNullValues(nullVals);
- }
- if (max != null) {
- c.setMaximumValue(max);
- }
- if (min != null) {
- c.setMinimumValue(min);
- }
- ColumnStats columnStats = new ColumnStats();
- columnStats.setDistinctValues(distinctVals);
- columnStats.setNullValues(nullVals);
- columnStats.setMaximumValue(max);
- columnStats.setMinimumValue(min);
- if (eventDistributor != null) {
- eventDistributor.setColumnStats(vdbName, vdbVersion, table.getParent().getName(), table.getName(), columnName, columnStats);
- }
- if (this.metadataRepository != null) {
- this.metadataRepository.setColumnStats(vdbName, vdbVersion, c, columnStats);
- }
- break;
- case SETTABLESTATS:
- Constant val = (Constant)proc.getParameter(2).getExpression();
- int cardinality = (Integer)val.getValue();
- table.setCardinality(cardinality);
- TableStats tableStats = new TableStats();
- tableStats.setCardinality(cardinality);
- if (eventDistributor != null) {
- eventDistributor.setTableStats(vdbName, vdbVersion, table.getParent().getName(), table.getName(), tableStats);
- }
- if (this.metadataRepository != null) {
- this.metadataRepository.setTableStats(vdbName, vdbVersion, table, tableStats);
- }
- break;
- }
- table.setLastModified(System.currentTimeMillis());
- return new CollectionTupleSource(rows.iterator());
- }
- final SystemProcs sysTable = SystemProcs.valueOf(proc.getProcedureCallableName().substring(CoreConstants.SYSTEM_MODEL.length() + 1).toUpperCase());
- switch (sysTable) {
- case GETXMLSCHEMAS:
- try {
- Object groupID = indexMetadata.getGroupID((String)((Constant)proc.getParameter(1).getExpression()).getValue());
- List<SQLXMLImpl> schemas = indexMetadata.getXMLSchemas(groupID);
- for (SQLXMLImpl schema : schemas) {
- rows.add(Arrays.asList(new XMLType(schema)));
- }
- } catch (QueryMetadataException e) {
- throw new TeiidProcessingException(e);
- }
- break;
- }
- }
- return new CollectionTupleSource(rows.iterator());
- }
-
- //TODO: do better than a linear search
- public static AbstractMetadataRecord getByUuid(CompositeMetadataStore metadata,
- String uuid) {
- for (AbstractMetadataRecord object : getAllPropertiedObjects(metadata, metadata.getSchemas().values())) {
- if (object.getUUID().equals(uuid)) {
- return object;
- }
- }
- return null;
- }
-
- public static Collection<AbstractMetadataRecord> getAllPropertiedObjects(CompositeMetadataStore metadata, Collection<Schema> schemas) {
- Collection<AbstractMetadataRecord> records = new LinkedHashSet<AbstractMetadataRecord>();
- records.addAll(metadata.getDatatypes());
- for (Schema schema : schemas) {
- records.add(schema);
- for (Table table : schema.getTables().values()) {
- records.add(table);
- records.addAll(table.getColumns());
- records.addAll(table.getAllKeys());
- }
- for (Procedure proc : schema.getProcedures().values()) {
- records.add(proc);
- records.addAll(proc.getParameters());
- if (proc.getResultSet() != null) {
- records.addAll(proc.getResultSet().getColumns());
- }
- }
- }
- return records;
- }
-
- private List<Schema> getVisibleSchemas(VDBMetaData vdb, CompositeMetadataStore metadata) {
- ArrayList<Schema> result = new ArrayList<Schema>();
- for (Schema schema : metadata.getSchemas().values()) {
- if(vdb.isVisible(schema.getName())) {
- result.add(schema);
- }
- }
- return result;
- }
-
- private AtomicRequestMessage createRequest(Object processorId,
- Command command, String modelName, String connectorBindingId, int nodeID)
- throws TeiidProcessingException, TeiidComponentException {
- RequestWorkItem workItem = requestMgr.getRequestWorkItem((RequestID)processorId);
-
- RequestMessage request = workItem.requestMsg;
- // build the atomic request based on original request + context info
- AtomicRequestMessage aqr = new AtomicRequestMessage(request, workItem.getDqpWorkContext(), nodeID);
- aqr.setCommand(command);
- aqr.setModelName(modelName);
- aqr.setMaxResultRows(requestMgr.getMaxSourceRows());
- aqr.setExceptionOnMaxRows(requestMgr.isExceptionOnMaxSourceRows());
- aqr.setPartialResults(request.supportsPartialResults());
- aqr.setSerial(requestMgr.getUserRequestSourceConcurrency() == 1);
- if (nodeID >= 0) {
- aqr.setTransactionContext(workItem.getTransactionContext());
- }
- aqr.setFetchSize(this.bufferService.getBufferManager().getConnectorBatchSize());
- if (connectorBindingId == null) {
- VDBMetaData vdb = workItem.getDqpWorkContext().getVDB();
- ModelMetaData model = vdb.getModel(modelName);
- List<String> bindings = model.getSourceNames();
- if (bindings == null || bindings.size() != 1) {
- // this should not happen, but it did occur when setting up the SystemAdmin models
- throw new TeiidComponentException(QueryPlugin.Util.getString("DataTierManager.could_not_obtain_connector_binding", new Object[]{modelName, workItem.getDqpWorkContext().getVdbName(), workItem.getDqpWorkContext().getVdbVersion() })); //$NON-NLS-1$
- }
- connectorBindingId = bindings.get(0);
- Assertion.isNotNull(connectorBindingId, "could not obtain connector id"); //$NON-NLS-1$
- }
- aqr.setConnectorName(connectorBindingId);
- return aqr;
- }
-
- public Object lookupCodeValue(
- CommandContext context,
- String codeTableName,
- String returnElementName,
- String keyElementName,
- Object keyValue)
- throws BlockedException, TeiidComponentException, TeiidProcessingException {
- throw new UnsupportedOperationException();
- }
-
- BufferManager getBufferManager() {
- return bufferService.getBufferManager();
- }
-
-}
Copied: tags/teiid-parent-7.4.0.CR1/engine/src/main/java/org/teiid/dqp/internal/process/DataTierManagerImpl.java (from rev 3138, trunk/engine/src/main/java/org/teiid/dqp/internal/process/DataTierManagerImpl.java)
===================================================================
--- tags/teiid-parent-7.4.0.CR1/engine/src/main/java/org/teiid/dqp/internal/process/DataTierManagerImpl.java (rev 0)
+++ tags/teiid-parent-7.4.0.CR1/engine/src/main/java/org/teiid/dqp/internal/process/DataTierManagerImpl.java 2011-05-03 16:47:11 UTC (rev 3141)
@@ -0,0 +1,555 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership. Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301 USA.
+ */
+
+package org.teiid.dqp.internal.process;
+
+import java.io.IOException;
+import java.sql.Clob;
+import java.sql.DatabaseMetaData;
+import java.sql.SQLException;
+import java.sql.Timestamp;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Map;
+
+import javax.sql.rowset.serial.SerialClob;
+
+import org.teiid.adminapi.impl.ModelMetaData;
+import org.teiid.adminapi.impl.VDBMetaData;
+import org.teiid.api.exception.query.QueryMetadataException;
+import org.teiid.client.RequestMessage;
+import org.teiid.common.buffer.BlockedException;
+import org.teiid.common.buffer.BufferManager;
+import org.teiid.common.buffer.TupleSource;
+import org.teiid.core.CoreConstants;
+import org.teiid.core.TeiidComponentException;
+import org.teiid.core.TeiidProcessingException;
+import org.teiid.core.types.BlobType;
+import org.teiid.core.types.ClobType;
+import org.teiid.core.types.SQLXMLImpl;
+import org.teiid.core.types.XMLType;
+import org.teiid.core.util.Assertion;
+import org.teiid.core.util.ObjectConverterUtil;
+import org.teiid.core.util.StringUtil;
+import org.teiid.dqp.internal.datamgr.ConnectorManager;
+import org.teiid.dqp.internal.datamgr.ConnectorManagerRepository;
+import org.teiid.dqp.internal.datamgr.ConnectorWork;
+import org.teiid.dqp.message.AtomicRequestMessage;
+import org.teiid.dqp.message.RequestID;
+import org.teiid.dqp.service.BufferService;
+import org.teiid.events.EventDistributor;
+import org.teiid.metadata.AbstractMetadataRecord;
+import org.teiid.metadata.Column;
+import org.teiid.metadata.ColumnStats;
+import org.teiid.metadata.Datatype;
+import org.teiid.metadata.ForeignKey;
+import org.teiid.metadata.KeyRecord;
+import org.teiid.metadata.MetadataRepository;
+import org.teiid.metadata.Procedure;
+import org.teiid.metadata.ProcedureParameter;
+import org.teiid.metadata.Schema;
+import org.teiid.metadata.Table;
+import org.teiid.metadata.TableStats;
+import org.teiid.query.QueryPlugin;
+import org.teiid.query.metadata.CompositeMetadataStore;
+import org.teiid.query.metadata.TempMetadataID;
+import org.teiid.query.metadata.TransformationMetadata;
+import org.teiid.query.optimizer.relational.RelationalPlanner;
+import org.teiid.query.processor.CollectionTupleSource;
+import org.teiid.query.processor.ProcessorDataManager;
+import org.teiid.query.sql.lang.Command;
+import org.teiid.query.sql.lang.Query;
+import org.teiid.query.sql.lang.StoredProcedure;
+import org.teiid.query.sql.lang.UnaryFromClause;
+import org.teiid.query.sql.symbol.Constant;
+import org.teiid.query.sql.symbol.GroupSymbol;
+import org.teiid.query.sql.visitor.GroupCollectorVisitor;
+import org.teiid.query.tempdata.TempTableStore;
+import org.teiid.query.tempdata.TempTableStore.MatTableInfo;
+import org.teiid.query.util.CommandContext;
+
+/**
+ * Full {@link ProcessorDataManager} implementation that
+ * controls access to {@link ConnectorManager}s and handles system queries.
+ */
+public class DataTierManagerImpl implements ProcessorDataManager {
+
+ private static final int MAX_VALUE_LENGTH = 1 << 21;
+
+ private enum SystemTables {
+ VIRTUALDATABASES,
+ SCHEMAS,
+ TABLES,
+ DATATYPES,
+ COLUMNS,
+ KEYS,
+ PROCEDURES,
+ KEYCOLUMNS,
+ PROCEDUREPARAMS,
+ REFERENCEKEYCOLUMNS,
+ PROPERTIES
+ }
+
+ private enum SystemAdminTables {
+ MATVIEWS,
+ VDBRESOURCES
+ }
+
+ private enum SystemAdminProcs {
+ SETTABLESTATS,
+ SETCOLUMNSTATS,
+ SETPROPERTY
+ }
+
+ private enum SystemProcs {
+ GETXMLSCHEMAS
+ }
+
+ // Resources
+ private DQPCore requestMgr;
+ private BufferService bufferService;
+ private EventDistributor eventDistributor;
+ private boolean detectChangeEvents;
+ private MetadataRepository metadataRepository;
+
+ public DataTierManagerImpl(DQPCore requestMgr, BufferService bufferService, boolean detectChangeEvents) {
+ this.requestMgr = requestMgr;
+ this.bufferService = bufferService;
+ this.detectChangeEvents = detectChangeEvents;
+ }
+
+ public boolean detectChangeEvents() {
+ return detectChangeEvents;
+ }
+
+ public void setEventDistributor(EventDistributor eventDistributor) {
+ this.eventDistributor = eventDistributor;
+ }
+
+ public EventDistributor getEventDistributor() {
+ return eventDistributor;
+ }
+
+ public MetadataRepository getMetadataRepository() {
+ return metadataRepository;
+ }
+
+ public void setMetadataRepository(MetadataRepository metadataRepository) {
+ this.metadataRepository = metadataRepository;
+ }
+
+ public TupleSource registerRequest(CommandContext context, Command command, String modelName, String connectorBindingId, int nodeID, int limit) throws TeiidComponentException, TeiidProcessingException {
+ RequestWorkItem workItem = requestMgr.getRequestWorkItem((RequestID)context.getProcessorID());
+
+ if(CoreConstants.SYSTEM_MODEL.equals(modelName) || CoreConstants.SYSTEM_ADMIN_MODEL.equals(modelName)) {
+ return processSystemQuery(context, command, workItem.getDqpWorkContext());
+ }
+
+ AtomicRequestMessage aqr = createRequest(context.getProcessorID(), command, modelName, connectorBindingId, nodeID);
+ if (limit > 0) {
+ aqr.setFetchSize(Math.min(limit, aqr.getFetchSize()));
+ }
+ if (context.getDataObjects() != null) {
+ for (GroupSymbol gs : GroupCollectorVisitor.getGroupsIgnoreInlineViews(command, false)) {
+ context.accessedDataObject(gs.getMetadataID());
+ }
+ }
+ ConnectorManagerRepository cmr = workItem.getDqpWorkContext().getVDB().getAttachment(ConnectorManagerRepository.class);
+ ConnectorWork work = cmr.getConnectorManager(aqr.getConnectorName()).registerRequest(aqr);
+ return new DataTierTupleSource(aqr, workItem, work, this, limit);
+ }
+
+ /**
+ * TODO: it would be good if processing here was lazy, in response of next batch, rather than up front.
+ * @param command
+ * @param workItem
+ * @return
+ * @throws TeiidComponentException
+ * @throws TeiidProcessingException
+ */
+ @SuppressWarnings("unchecked")
+ private TupleSource processSystemQuery(CommandContext context, Command command,
+ DQPWorkContext workContext) throws TeiidComponentException, TeiidProcessingException {
+ String vdbName = workContext.getVdbName();
+ int vdbVersion = workContext.getVdbVersion();
+ VDBMetaData vdb = workContext.getVDB();
+ CompositeMetadataStore metadata = vdb.getAttachment(TransformationMetadata.class).getMetadataStore();
+ TransformationMetadata indexMetadata = vdb.getAttachment(TransformationMetadata.class);
+ Collection rows = new ArrayList();
+ int oid = 1;
+ if (command instanceof Query) {
+ Query query = (Query)command;
+ UnaryFromClause ufc = (UnaryFromClause)query.getFrom().getClauses().get(0);
+ GroupSymbol group = ufc.getGroup();
+ if (StringUtil.startsWithIgnoreCase(group.getNonCorrelationName(), CoreConstants.SYSTEM_ADMIN_MODEL)) {
+ final SystemAdminTables sysTable = SystemAdminTables.valueOf(group.getNonCorrelationName().substring(CoreConstants.SYSTEM_ADMIN_MODEL.length() + 1).toUpperCase());
+ switch (sysTable) {
+ case MATVIEWS:
+ for (Schema schema : getVisibleSchemas(vdb, metadata)) {
+ for (Table table : schema.getTables().values()) {
+ if (!table.isMaterialized()) {
+ continue;
+ }
+ String targetSchema = null;
+ String matTableName = null;
+ String state = null;
+ Timestamp updated = null;
+ Integer cardinaltity = null;
+ Boolean valid = null;
+ if (table.getMaterializedTable() == null) {
+ TempTableStore globalStore = context.getGlobalTableStore();
+ matTableName = RelationalPlanner.MAT_PREFIX+table.getFullName().toUpperCase();
+ MatTableInfo info = globalStore.getMatTableInfo(matTableName);
+ valid = info.isValid();
+ state = info.getState().name();
+ updated = info.getUpdateTime()==-1?null:new Timestamp(info.getUpdateTime());
+ TempMetadataID id = globalStore.getMetadataStore().getTempGroupID(matTableName);
+ if (id != null) {
+ cardinaltity = id.getCardinality();
+ }
+ //ttl, pref_mem - not part of proper metadata
+ } else {
+ Table t = table.getMaterializedTable();
+ matTableName = t.getName();
+ targetSchema = t.getParent().getName();
+ }
+ rows.add(Arrays.asList(vdbName, schema.getName(), table.getName(), targetSchema, matTableName, valid, state, updated, cardinaltity));
+ }
+ }
+ break;
+ case VDBRESOURCES:
+ String[] filePaths = indexMetadata.getVDBResourcePaths();
+ for (String filePath : filePaths) {
+ rows.add(Arrays.asList(filePath, new BlobType(indexMetadata.getVDBResourceAsBlob(filePath))));
+ }
+ break;
+ }
+ return new CollectionTupleSource(rows.iterator());
+ }
+ final SystemTables sysTable = SystemTables.valueOf(group.getNonCorrelationName().substring(CoreConstants.SYSTEM_MODEL.length() + 1).toUpperCase());
+ switch (sysTable) {
+ case DATATYPES:
+ for (Datatype datatype : metadata.getDatatypes()) {
+ rows.add(Arrays.asList(datatype.getName(), datatype.isBuiltin(), datatype.isBuiltin(), datatype.getName(), datatype.getJavaClassName(), datatype.getScale(),
+ datatype.getLength(), datatype.getNullType().toString(), datatype.isSigned(), datatype.isAutoIncrement(), datatype.isCaseSensitive(), datatype.getPrecisionLength(),
+ datatype.getRadix(), datatype.getSearchType().toString(), datatype.getUUID(), datatype.getRuntimeTypeName(), datatype.getBasetypeName(), datatype.getAnnotation(), oid++));
+ }
+ break;
+ case VIRTUALDATABASES:
+ rows.add(Arrays.asList(vdbName, vdbVersion));
+ break;
+ case SCHEMAS:
+ for (Schema model : getVisibleSchemas(vdb, metadata)) {
+ rows.add(Arrays.asList(vdbName, model.getName(), model.isPhysical(), model.getUUID(), model.getAnnotation(), model.getPrimaryMetamodelUri(), oid++));
+ }
+ break;
+ case PROCEDURES:
+ for (Schema schema : getVisibleSchemas(vdb, metadata)) {
+ for (Procedure proc : schema.getProcedures().values()) {
+ rows.add(Arrays.asList(vdbName, proc.getParent().getName(), proc.getName(), proc.getNameInSource(), proc.getResultSet() != null, proc.getUUID(), proc.getAnnotation(), oid++));
+ }
+ }
+ break;
+ case PROCEDUREPARAMS:
+ for (Schema schema : getVisibleSchemas(vdb, metadata)) {
+ for (Procedure proc : schema.getProcedures().values()) {
+ for (ProcedureParameter param : proc.getParameters()) {
+ Datatype dt = param.getDatatype();
+ rows.add(Arrays.asList(vdbName, proc.getParent().getName(), proc.getName(), param.getName(), dt!=null?dt.getRuntimeTypeName():null, param.getPosition(), param.getType().toString(), param.isOptional(),
+ param.getPrecision(), param.getLength(), param.getScale(), param.getRadix(), param.getNullType().toString(), param.getUUID(), param.getAnnotation(), oid++));
+ }
+ if (proc.getResultSet() != null) {
+ for (Column param : proc.getResultSet().getColumns()) {
+ Datatype dt = param.getDatatype();
+ rows.add(Arrays.asList(vdbName, proc.getParent().getName(), proc.getName(), param.getName(), dt!=null?dt.getRuntimeTypeName():null, param.getPosition(), "ResultSet", false, //$NON-NLS-1$
+ param.getPrecision(), param.getLength(), param.getScale(), param.getRadix(), param.getNullType().toString(), param.getUUID(), param.getAnnotation(), oid++));
+ }
+ }
+ }
+ }
+ break;
+ case PROPERTIES: //TODO: consider storing separately in the metadatastore
+ Collection<AbstractMetadataRecord> records = getAllPropertiedObjects(metadata, getVisibleSchemas(vdb, metadata));
+ for (AbstractMetadataRecord record : records) {
+ for (Map.Entry<String, String> entry : record.getProperties().entrySet()) {
+ String value = entry.getValue();
+ Clob clobValue = null;
+ if (value != null) {
+ try {
+ clobValue = new ClobType(new SerialClob(value.toCharArray()));
+ } catch (SQLException e) {
+ throw new TeiidProcessingException(e);
+ }
+ }
+ rows.add(Arrays.asList(entry.getKey(), entry.getValue(), record.getUUID(), oid++, clobValue));
+ }
+ }
+ break;
+ default:
+ for (Schema schema : getVisibleSchemas(vdb, metadata)) {
+ for (Table table : schema.getTables().values()) {
+ switch (sysTable) {
+ case TABLES:
+ rows.add(Arrays.asList(vdbName, schema.getName(), table.getName(), table.getTableType().toString(), table.getNameInSource(),
+ table.isPhysical(), table.supportsUpdate(), table.getUUID(), table.getCardinality(), table.getAnnotation(), table.isSystem(), table.isMaterialized(), oid++));
+ break;
+ case COLUMNS:
+ for (Column column : table.getColumns()) {
+ Datatype dt = column.getDatatype();
+ rows.add(Arrays.asList(vdbName, schema.getName(), table.getName(), column.getName(), column.getPosition(), column.getNameInSource(),
+ dt!=null?dt.getRuntimeTypeName():null, column.getScale(), column.getLength(), column.isFixedLength(), column.isSelectable(), column.isUpdatable(),
+ column.isCaseSensitive(), column.isSigned(), column.isCurrency(), column.isAutoIncremented(), column.getNullType().toString(), column.getMinimumValue(),
+ column.getMaximumValue(), column.getDistinctValues(), column.getNullValues(), column.getSearchType().toString(), column.getFormat(),
+ column.getDefaultValue(), dt!=null?dt.getJavaClassName():null, column.getPrecision(),
+ column.getCharOctetLength(), column.getRadix(), column.getUUID(), column.getAnnotation(), oid++));
+ }
+ break;
+ case KEYS:
+ for (KeyRecord key : table.getAllKeys()) {
+ rows.add(Arrays.asList(vdbName, table.getParent().getName(), table.getName(), key.getName(), key.getAnnotation(), key.getNameInSource(), key.getType().toString(),
+ false, (key instanceof ForeignKey)?((ForeignKey)key).getUniqueKeyID():null, key.getUUID(), oid++));
+ }
+ break;
+ case KEYCOLUMNS:
+ for (KeyRecord key : table.getAllKeys()) {
+ int postition = 1;
+ for (Column column : key.getColumns()) {
+ rows.add(Arrays.asList(vdbName, schema.getName(), table.getName(), column.getName(), key.getName(), key.getType().toString(),
+ (key instanceof ForeignKey)?((ForeignKey)key).getUniqueKeyID():null, key.getUUID(), postition++, oid++));
+ }
+ }
+ break;
+ case REFERENCEKEYCOLUMNS:
+ for (ForeignKey key : table.getForeignKeys()) {
+ short postition = 0;
+ for (Column column : key.getColumns()) {
+ Table pkTable = key.getPrimaryKey().getParent();
+ rows.add(Arrays.asList(vdbName, pkTable.getParent().getName(), pkTable.getName(), key.getPrimaryKey().getColumns().get(postition).getName(), vdbName, schema.getName(), table.getName(), column.getName(),
+ ++postition, DatabaseMetaData.importedKeyNoAction, DatabaseMetaData.importedKeyNoAction, key.getName(), key.getPrimaryKey().getName(), DatabaseMetaData.importedKeyInitiallyDeferred));
+ }
+ }
+ break;
+ }
+ }
+ }
+ break;
+ }
+ } else {
+ StoredProcedure proc = (StoredProcedure)command;
+ if (StringUtil.startsWithIgnoreCase(proc.getProcedureCallableName(), CoreConstants.SYSTEM_ADMIN_MODEL)) {
+ final SystemAdminProcs sysProc = SystemAdminProcs.valueOf(proc.getProcedureCallableName().substring(CoreConstants.SYSTEM_ADMIN_MODEL.length() + 1).toUpperCase());
+ switch (sysProc) {
+ case SETPROPERTY:
+ try {
+ String uuid = (String)((Constant)proc.getParameter(2).getExpression()).getValue();
+ String key = (String)((Constant)proc.getParameter(3).getExpression()).getValue();
+ Clob value = (Clob)((Constant)proc.getParameter(4).getExpression()).getValue();
+ String strVal = null;
+ String result = null;
+ if (value != null) {
+ if (value.length() > MAX_VALUE_LENGTH) {
+ throw new TeiidProcessingException(QueryPlugin.Util.getString("DataTierManagerImpl.max_value_length", MAX_VALUE_LENGTH)); //$NON-NLS-1$
+ }
+ strVal = ObjectConverterUtil.convertToString(value.getCharacterStream());
+ }
+ AbstractMetadataRecord target = getByUuid(metadata, uuid);
+ if (target == null) {
+ throw new TeiidProcessingException(QueryPlugin.Util.getString("DataTierManagerImpl.unknown_uuid", uuid)); //$NON-NLS-1$
+ }
+ if (this.metadataRepository != null) {
+ this.metadataRepository.setProperty(vdbName, vdbVersion, target, key, strVal);
+ }
+ result = target.setProperty(key, strVal);
+ if (eventDistributor != null) {
+ eventDistributor.setProperty(vdbName, vdbVersion, uuid, key, strVal);
+ }
+ if (result == null) {
+ rows.add(Arrays.asList((Clob)null));
+ } else {
+ rows.add(Arrays.asList(new ClobType(new SerialClob(result.toCharArray()))));
+ }
+ return new CollectionTupleSource(rows.iterator());
+ } catch (SQLException e) {
+ throw new TeiidProcessingException(e);
+ } catch (IOException e) {
+ throw new TeiidProcessingException(e);
+ }
+ }
+ Table table = indexMetadata.getGroupID((String)((Constant)proc.getParameter(1).getExpression()).getValue());
+ switch (sysProc) {
+ case SETCOLUMNSTATS:
+ String columnName = (String)((Constant)proc.getParameter(2).getExpression()).getValue();
+ Column c = null;
+ for (Column col : table.getColumns()) {
+ if (col.getName().equalsIgnoreCase(columnName)) {
+ c = col;
+ break;
+ }
+ }
+ if (c == null) {
+ throw new TeiidProcessingException(columnName + TransformationMetadata.NOT_EXISTS_MESSAGE);
+ }
+ Integer distinctVals = (Integer)((Constant)proc.getParameter(3).getExpression()).getValue();
+ Integer nullVals = (Integer)((Constant)proc.getParameter(4).getExpression()).getValue();
+ String max = (String) ((Constant)proc.getParameter(5).getExpression()).getValue();
+ String min = (String) ((Constant)proc.getParameter(6).getExpression()).getValue();
+ ColumnStats columnStats = new ColumnStats();
+ columnStats.setDistinctValues(distinctVals);
+ columnStats.setNullValues(nullVals);
+ columnStats.setMaximumValue(max);
+ columnStats.setMinimumValue(min);
+ if (this.metadataRepository != null) {
+ this.metadataRepository.setColumnStats(vdbName, vdbVersion, c, columnStats);
+ }
+ c.setColumnStats(columnStats);
+ if (eventDistributor != null) {
+ eventDistributor.setColumnStats(vdbName, vdbVersion, table.getParent().getName(), table.getName(), columnName, columnStats);
+ }
+ break;
+ case SETTABLESTATS:
+ Constant val = (Constant)proc.getParameter(2).getExpression();
+ int cardinality = (Integer)val.getValue();
+ TableStats tableStats = new TableStats();
+ tableStats.setCardinality(cardinality);
+ if (this.metadataRepository != null) {
+ this.metadataRepository.setTableStats(vdbName, vdbVersion, table, tableStats);
+ }
+ table.setCardinality(cardinality);
+ if (eventDistributor != null) {
+ eventDistributor.setTableStats(vdbName, vdbVersion, table.getParent().getName(), table.getName(), tableStats);
+ }
+ break;
+ }
+ table.setLastModified(System.currentTimeMillis());
+ return new CollectionTupleSource(rows.iterator());
+ }
+ final SystemProcs sysTable = SystemProcs.valueOf(proc.getProcedureCallableName().substring(CoreConstants.SYSTEM_MODEL.length() + 1).toUpperCase());
+ switch (sysTable) {
+ case GETXMLSCHEMAS:
+ try {
+ Object groupID = indexMetadata.getGroupID((String)((Constant)proc.getParameter(1).getExpression()).getValue());
+ List<SQLXMLImpl> schemas = indexMetadata.getXMLSchemas(groupID);
+ for (SQLXMLImpl schema : schemas) {
+ rows.add(Arrays.asList(new XMLType(schema)));
+ }
+ } catch (QueryMetadataException e) {
+ throw new TeiidProcessingException(e);
+ }
+ break;
+ }
+ }
+ return new CollectionTupleSource(rows.iterator());
+ }
+
+ //TODO: do better than a linear search
+ public static AbstractMetadataRecord getByUuid(CompositeMetadataStore metadata,
+ String uuid) {
+ for (AbstractMetadataRecord object : getAllPropertiedObjects(metadata, metadata.getSchemas().values())) {
+ if (object.getUUID().equals(uuid)) {
+ return object;
+ }
+ }
+ return null;
+ }
+
+ public static Collection<AbstractMetadataRecord> getAllPropertiedObjects(CompositeMetadataStore metadata, Collection<Schema> schemas) {
+ Collection<AbstractMetadataRecord> records = new LinkedHashSet<AbstractMetadataRecord>();
+ records.addAll(metadata.getDatatypes());
+ for (Schema schema : schemas) {
+ records.add(schema);
+ for (Table table : schema.getTables().values()) {
+ records.add(table);
+ records.addAll(table.getColumns());
+ records.addAll(table.getAllKeys());
+ }
+ for (Procedure proc : schema.getProcedures().values()) {
+ records.add(proc);
+ records.addAll(proc.getParameters());
+ if (proc.getResultSet() != null) {
+ records.addAll(proc.getResultSet().getColumns());
+ }
+ }
+ }
+ return records;
+ }
+
+ private List<Schema> getVisibleSchemas(VDBMetaData vdb, CompositeMetadataStore metadata) {
+ ArrayList<Schema> result = new ArrayList<Schema>();
+ for (Schema schema : metadata.getSchemas().values()) {
+ if(vdb.isVisible(schema.getName())) {
+ result.add(schema);
+ }
+ }
+ return result;
+ }
+
+ private AtomicRequestMessage createRequest(Object processorId,
+ Command command, String modelName, String connectorBindingId, int nodeID)
+ throws TeiidProcessingException, TeiidComponentException {
+ RequestWorkItem workItem = requestMgr.getRequestWorkItem((RequestID)processorId);
+
+ RequestMessage request = workItem.requestMsg;
+ // build the atomic request based on original request + context info
+ AtomicRequestMessage aqr = new AtomicRequestMessage(request, workItem.getDqpWorkContext(), nodeID);
+ aqr.setCommand(command);
+ aqr.setModelName(modelName);
+ aqr.setMaxResultRows(requestMgr.getMaxSourceRows());
+ aqr.setExceptionOnMaxRows(requestMgr.isExceptionOnMaxSourceRows());
+ aqr.setPartialResults(request.supportsPartialResults());
+ aqr.setSerial(requestMgr.getUserRequestSourceConcurrency() == 1);
+ if (nodeID >= 0) {
+ aqr.setTransactionContext(workItem.getTransactionContext());
+ }
+ aqr.setFetchSize(this.bufferService.getBufferManager().getConnectorBatchSize());
+ if (connectorBindingId == null) {
+ VDBMetaData vdb = workItem.getDqpWorkContext().getVDB();
+ ModelMetaData model = vdb.getModel(modelName);
+ List<String> bindings = model.getSourceNames();
+ if (bindings == null || bindings.size() != 1) {
+ // this should not happen, but it did occur when setting up the SystemAdmin models
+ throw new TeiidComponentException(QueryPlugin.Util.getString("DataTierManager.could_not_obtain_connector_binding", new Object[]{modelName, workItem.getDqpWorkContext().getVdbName(), workItem.getDqpWorkContext().getVdbVersion() })); //$NON-NLS-1$
+ }
+ connectorBindingId = bindings.get(0);
+ Assertion.isNotNull(connectorBindingId, "could not obtain connector id"); //$NON-NLS-1$
+ }
+ aqr.setConnectorName(connectorBindingId);
+ return aqr;
+ }
+
+ public Object lookupCodeValue(
+ CommandContext context,
+ String codeTableName,
+ String returnElementName,
+ String keyElementName,
+ Object keyValue)
+ throws BlockedException, TeiidComponentException, TeiidProcessingException {
+ throw new UnsupportedOperationException();
+ }
+
+ BufferManager getBufferManager() {
+ return bufferService.getBufferManager();
+ }
+
+}
Deleted: tags/teiid-parent-7.4.0.CR1/engine/src/main/java/org/teiid/query/processor/DdlPlan.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/processor/DdlPlan.java 2011-05-03 09:43:58 UTC (rev 3137)
+++ tags/teiid-parent-7.4.0.CR1/engine/src/main/java/org/teiid/query/processor/DdlPlan.java 2011-05-03 16:47:11 UTC (rev 3141)
@@ -1,228 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301 USA.
- */
-
-package org.teiid.query.processor;
-
-import static org.teiid.query.analysis.AnalysisRecord.*;
-
-import java.util.Arrays;
-import java.util.List;
-
-import org.teiid.adminapi.impl.VDBMetaData;
-import org.teiid.client.plan.PlanNode;
-import org.teiid.common.buffer.BlockedException;
-import org.teiid.common.buffer.BufferManager;
-import org.teiid.common.buffer.TupleBatch;
-import org.teiid.core.TeiidComponentException;
-import org.teiid.core.TeiidProcessingException;
-import org.teiid.core.TeiidRuntimeException;
-import org.teiid.dqp.internal.process.DQPWorkContext;
-import org.teiid.language.SQLConstants;
-import org.teiid.metadata.Procedure;
-import org.teiid.metadata.Table;
-import org.teiid.metadata.Table.TriggerEvent;
-import org.teiid.query.QueryPlugin;
-import org.teiid.query.metadata.TransformationMetadata;
-import org.teiid.query.sql.LanguageVisitor;
-import org.teiid.query.sql.lang.AlterProcedure;
-import org.teiid.query.sql.lang.AlterTrigger;
-import org.teiid.query.sql.lang.AlterView;
-import org.teiid.query.sql.lang.Command;
-import org.teiid.query.sql.lang.StoredProcedure;
-import org.teiid.query.util.CommandContext;
-
-public class DdlPlan extends ProcessorPlan {
-
- class AlterProcessor extends LanguageVisitor {
- DQPWorkContext workContext = DQPWorkContext.getWorkContext();
-
- @Override
- public void visit(AlterView obj) {
- VDBMetaData vdb = workContext.getVDB();
- Table t = (Table)obj.getTarget().getMetadataID();
- String sql = obj.getDefinition().toString();
- alterView(vdb, t, sql);
- if (pdm.getEventDistributor() != null) {
- pdm.getEventDistributor().setViewDefinition(workContext.getVdbName(), workContext.getVdbVersion(), t.getParent().getName(), t.getName(), sql);
- }
- if (pdm.getMetadataRepository() != null) {
- pdm.getMetadataRepository().setViewDefinition(workContext.getVdbName(), workContext.getVdbVersion(), t, sql);
- }
- }
-
- @Override
- public void visit(AlterProcedure obj) {
- VDBMetaData vdb = workContext.getVDB();
- Procedure p = (Procedure)obj.getTarget().getMetadataID();
- String sql = obj.getDefinition().toString();
- alterProcedureDefinition(vdb, p, sql);
- if (pdm.getEventDistributor() != null) {
- pdm.getEventDistributor().setProcedureDefinition(workContext.getVdbName(), workContext.getVdbVersion(), p.getParent().getName(), p.getName(), sql);
- }
- if (pdm.getMetadataRepository() != null) {
- pdm.getMetadataRepository().setProcedureDefinition(workContext.getVdbName(), workContext.getVdbVersion(), p, sql);
- }
- }
-
- @Override
- public void visit(AlterTrigger obj) {
- VDBMetaData vdb = workContext.getVDB();
- Table t = (Table)obj.getTarget().getMetadataID();
- String sql = null;
- TriggerEvent event = obj.getEvent();
- if (obj.getEnabled() == null) {
- if (obj.isCreate()) {
- if (getPlanForEvent(t, event) != null) {
- throw new TeiidRuntimeException(new TeiidProcessingException(QueryPlugin.Util.getString("DdlPlan.event_already_exists", t.getName(), obj.getEvent()))); //$NON-NLS-1$
- }
- } else if (getPlanForEvent(t, event) == null) {
- throw new TeiidRuntimeException(new TeiidProcessingException(QueryPlugin.Util.getString("DdlPlan.event_not_exists", t.getName(), obj.getEvent()))); //$NON-NLS-1$
- }
- sql = obj.getDefinition().toString();
- } else if (getPlanForEvent(t, event) == null) {
- throw new TeiidRuntimeException(new TeiidProcessingException(QueryPlugin.Util.getString("DdlPlan.event_not_exists", t.getName(), obj.getEvent()))); //$NON-NLS-1$
- }
- alterInsteadOfTrigger(vdb, t, sql, obj.getEnabled(), event);
- if (pdm.getEventDistributor() != null) {
- pdm.getEventDistributor().setInsteadOfTriggerDefinition(workContext.getVdbName(), workContext.getVdbVersion(), t.getParent().getName(), t.getName(), obj.getEvent(), sql, obj.getEnabled());
- }
- if (pdm.getMetadataRepository() != null) {
- if (sql != null) {
- pdm.getMetadataRepository().setInsteadOfTriggerDefinition(workContext.getVdbName(), workContext.getVdbVersion(), t, obj.getEvent(), sql);
- } else {
- pdm.getMetadataRepository().setInsteadOfTriggerEnabled(workContext.getVdbName(), workContext.getVdbVersion(), t, obj.getEvent(), obj.getEnabled());
- }
- }
- }
- }
-
- public static void alterView(VDBMetaData vdb, Table t, String sql) {
- t.setSelectTransformation(sql);
- t.setLastModified(System.currentTimeMillis());
- TransformationMetadata indexMetadata = vdb.getAttachment(TransformationMetadata.class);
- indexMetadata.addToMetadataCache(t, "transformation/"+SQLConstants.Reserved.SELECT, null); //$NON-NLS-1$
- }
-
- public static void alterProcedureDefinition(VDBMetaData vdb, Procedure p, String sql) {
- p.setQueryPlan(sql);
- p.setLastModified(System.currentTimeMillis());
- TransformationMetadata indexMetadata = vdb.getAttachment(TransformationMetadata.class);
- indexMetadata.addToMetadataCache(p, "transformation/"+StoredProcedure.class.getSimpleName().toUpperCase(), null); //$NON-NLS-1$
- }
-
- public static void alterInsteadOfTrigger(VDBMetaData vdb, Table t,
- String sql, Boolean enabled, TriggerEvent event) {
- switch (event) {
- case DELETE:
- if (sql != null) {
- t.setDeletePlan(sql);
- } else {
- t.setDeletePlanEnabled(enabled);
- }
- break;
- case INSERT:
- if (sql != null) {
- t.setInsertPlan(sql);
- } else {
- t.setInsertPlanEnabled(enabled);
- }
- break;
- case UPDATE:
- if (sql != null) {
- t.setUpdatePlan(sql);
- } else {
- t.setUpdatePlanEnabled(enabled);
- }
- break;
- }
- TransformationMetadata indexMetadata = vdb.getAttachment(TransformationMetadata.class);
- indexMetadata.addToMetadataCache(t, "transformation/"+event, null); //$NON-NLS-1$
- t.setLastModified(System.currentTimeMillis());
- }
-
- private static String getPlanForEvent(Table t, TriggerEvent event) {
- switch (event) {
- case DELETE:
- return t.getDeletePlan();
- case INSERT:
- return t.getInsertPlan();
- case UPDATE:
- return t.getUpdatePlan();
- }
- throw new AssertionError();
- }
-
- private Command command;
- private ProcessorDataManager pdm;
-
- public DdlPlan(Command command) {
- this.command = command;
- }
-
- @Override
- public ProcessorPlan clone() {
- return new DdlPlan(command);
- }
-
- @Override
- public void close() throws TeiidComponentException {
- }
-
- @Override
- public List getOutputElements() {
- return command.getProjectedSymbols();
- }
-
- @Override
- public void initialize(CommandContext context,
- ProcessorDataManager dataMgr, BufferManager bufferMgr) {
- this.setContext(context);
- this.pdm = dataMgr;
- }
-
- @Override
- public TupleBatch nextBatch() throws BlockedException,
- TeiidComponentException, TeiidProcessingException {
- TupleBatch tupleBatch = new TupleBatch(1, new List[] {Arrays.asList(0)});
- tupleBatch.setTerminationFlag(true);
- return tupleBatch;
- }
-
- @Override
- public void open() throws TeiidComponentException, TeiidProcessingException {
- AlterProcessor ap = new AlterProcessor();
- ap.workContext = DQPWorkContext.getWorkContext();
- try {
- command.acceptVisitor(ap);
- } catch (TeiidRuntimeException e) {
- throw (TeiidProcessingException)e.getCause();
- }
- }
-
- @Override
- public PlanNode getDescriptionProperties() {
- PlanNode props = super.getDescriptionProperties();
- props.addProperty(PROP_SQL, this.command.toString());
- return props;
- }
-
-}
Copied: tags/teiid-parent-7.4.0.CR1/engine/src/main/java/org/teiid/query/processor/DdlPlan.java (from rev 3138, trunk/engine/src/main/java/org/teiid/query/processor/DdlPlan.java)
===================================================================
--- tags/teiid-parent-7.4.0.CR1/engine/src/main/java/org/teiid/query/processor/DdlPlan.java (rev 0)
+++ tags/teiid-parent-7.4.0.CR1/engine/src/main/java/org/teiid/query/processor/DdlPlan.java 2011-05-03 16:47:11 UTC (rev 3141)
@@ -0,0 +1,228 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership. Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301 USA.
+ */
+
+package org.teiid.query.processor;
+
+import static org.teiid.query.analysis.AnalysisRecord.*;
+
+import java.util.Arrays;
+import java.util.List;
+
+import org.teiid.adminapi.impl.VDBMetaData;
+import org.teiid.client.plan.PlanNode;
+import org.teiid.common.buffer.BlockedException;
+import org.teiid.common.buffer.BufferManager;
+import org.teiid.common.buffer.TupleBatch;
+import org.teiid.core.TeiidComponentException;
+import org.teiid.core.TeiidProcessingException;
+import org.teiid.core.TeiidRuntimeException;
+import org.teiid.dqp.internal.process.DQPWorkContext;
+import org.teiid.language.SQLConstants;
+import org.teiid.metadata.Procedure;
+import org.teiid.metadata.Table;
+import org.teiid.metadata.Table.TriggerEvent;
+import org.teiid.query.QueryPlugin;
+import org.teiid.query.metadata.TransformationMetadata;
+import org.teiid.query.sql.LanguageVisitor;
+import org.teiid.query.sql.lang.AlterProcedure;
+import org.teiid.query.sql.lang.AlterTrigger;
+import org.teiid.query.sql.lang.AlterView;
+import org.teiid.query.sql.lang.Command;
+import org.teiid.query.sql.lang.StoredProcedure;
+import org.teiid.query.util.CommandContext;
+
+public class DdlPlan extends ProcessorPlan {
+
+ class AlterProcessor extends LanguageVisitor {
+ DQPWorkContext workContext = DQPWorkContext.getWorkContext();
+
+ @Override
+ public void visit(AlterView obj) {
+ VDBMetaData vdb = workContext.getVDB();
+ Table t = (Table)obj.getTarget().getMetadataID();
+ String sql = obj.getDefinition().toString();
+ if (pdm.getMetadataRepository() != null) {
+ pdm.getMetadataRepository().setViewDefinition(workContext.getVdbName(), workContext.getVdbVersion(), t, sql);
+ }
+ alterView(vdb, t, sql);
+ if (pdm.getEventDistributor() != null) {
+ pdm.getEventDistributor().setViewDefinition(workContext.getVdbName(), workContext.getVdbVersion(), t.getParent().getName(), t.getName(), sql);
+ }
+ }
+
+ @Override
+ public void visit(AlterProcedure obj) {
+ VDBMetaData vdb = workContext.getVDB();
+ Procedure p = (Procedure)obj.getTarget().getMetadataID();
+ String sql = obj.getDefinition().toString();
+ if (pdm.getMetadataRepository() != null) {
+ pdm.getMetadataRepository().setProcedureDefinition(workContext.getVdbName(), workContext.getVdbVersion(), p, sql);
+ }
+ alterProcedureDefinition(vdb, p, sql);
+ if (pdm.getEventDistributor() != null) {
+ pdm.getEventDistributor().setProcedureDefinition(workContext.getVdbName(), workContext.getVdbVersion(), p.getParent().getName(), p.getName(), sql);
+ }
+ }
+
+ @Override
+ public void visit(AlterTrigger obj) {
+ VDBMetaData vdb = workContext.getVDB();
+ Table t = (Table)obj.getTarget().getMetadataID();
+ String sql = null;
+ TriggerEvent event = obj.getEvent();
+ if (obj.getEnabled() == null) {
+ if (obj.isCreate()) {
+ if (getPlanForEvent(t, event) != null) {
+ throw new TeiidRuntimeException(new TeiidProcessingException(QueryPlugin.Util.getString("DdlPlan.event_already_exists", t.getName(), obj.getEvent()))); //$NON-NLS-1$
+ }
+ } else if (getPlanForEvent(t, event) == null) {
+ throw new TeiidRuntimeException(new TeiidProcessingException(QueryPlugin.Util.getString("DdlPlan.event_not_exists", t.getName(), obj.getEvent()))); //$NON-NLS-1$
+ }
+ sql = obj.getDefinition().toString();
+ } else if (getPlanForEvent(t, event) == null) {
+ throw new TeiidRuntimeException(new TeiidProcessingException(QueryPlugin.Util.getString("DdlPlan.event_not_exists", t.getName(), obj.getEvent()))); //$NON-NLS-1$
+ }
+ if (pdm.getMetadataRepository() != null) {
+ if (sql != null) {
+ pdm.getMetadataRepository().setInsteadOfTriggerDefinition(workContext.getVdbName(), workContext.getVdbVersion(), t, obj.getEvent(), sql);
+ } else {
+ pdm.getMetadataRepository().setInsteadOfTriggerEnabled(workContext.getVdbName(), workContext.getVdbVersion(), t, obj.getEvent(), obj.getEnabled());
+ }
+ }
+ alterInsteadOfTrigger(vdb, t, sql, obj.getEnabled(), event);
+ if (pdm.getEventDistributor() != null) {
+ pdm.getEventDistributor().setInsteadOfTriggerDefinition(workContext.getVdbName(), workContext.getVdbVersion(), t.getParent().getName(), t.getName(), obj.getEvent(), sql, obj.getEnabled());
+ }
+ }
+ }
+
+ public static void alterView(VDBMetaData vdb, Table t, String sql) {
+ t.setSelectTransformation(sql);
+ t.setLastModified(System.currentTimeMillis());
+ TransformationMetadata indexMetadata = vdb.getAttachment(TransformationMetadata.class);
+ indexMetadata.addToMetadataCache(t, "transformation/"+SQLConstants.Reserved.SELECT, null); //$NON-NLS-1$
+ }
+
+ public static void alterProcedureDefinition(VDBMetaData vdb, Procedure p, String sql) {
+ p.setQueryPlan(sql);
+ p.setLastModified(System.currentTimeMillis());
+ TransformationMetadata indexMetadata = vdb.getAttachment(TransformationMetadata.class);
+ indexMetadata.addToMetadataCache(p, "transformation/"+StoredProcedure.class.getSimpleName().toUpperCase(), null); //$NON-NLS-1$
+ }
+
+ public static void alterInsteadOfTrigger(VDBMetaData vdb, Table t,
+ String sql, Boolean enabled, TriggerEvent event) {
+ switch (event) {
+ case DELETE:
+ if (sql != null) {
+ t.setDeletePlan(sql);
+ } else {
+ t.setDeletePlanEnabled(enabled);
+ }
+ break;
+ case INSERT:
+ if (sql != null) {
+ t.setInsertPlan(sql);
+ } else {
+ t.setInsertPlanEnabled(enabled);
+ }
+ break;
+ case UPDATE:
+ if (sql != null) {
+ t.setUpdatePlan(sql);
+ } else {
+ t.setUpdatePlanEnabled(enabled);
+ }
+ break;
+ }
+ TransformationMetadata indexMetadata = vdb.getAttachment(TransformationMetadata.class);
+ indexMetadata.addToMetadataCache(t, "transformation/"+event, null); //$NON-NLS-1$
+ t.setLastModified(System.currentTimeMillis());
+ }
+
+ private static String getPlanForEvent(Table t, TriggerEvent event) {
+ switch (event) {
+ case DELETE:
+ return t.getDeletePlan();
+ case INSERT:
+ return t.getInsertPlan();
+ case UPDATE:
+ return t.getUpdatePlan();
+ }
+ throw new AssertionError();
+ }
+
+ private Command command;
+ private ProcessorDataManager pdm;
+
+ public DdlPlan(Command command) {
+ this.command = command;
+ }
+
+ @Override
+ public ProcessorPlan clone() {
+ return new DdlPlan(command);
+ }
+
+ @Override
+ public void close() throws TeiidComponentException {
+ }
+
+ @Override
+ public List getOutputElements() {
+ return command.getProjectedSymbols();
+ }
+
+ @Override
+ public void initialize(CommandContext context,
+ ProcessorDataManager dataMgr, BufferManager bufferMgr) {
+ this.setContext(context);
+ this.pdm = dataMgr;
+ }
+
+ @Override
+ public TupleBatch nextBatch() throws BlockedException,
+ TeiidComponentException, TeiidProcessingException {
+ TupleBatch tupleBatch = new TupleBatch(1, new List[] {Arrays.asList(0)});
+ tupleBatch.setTerminationFlag(true);
+ return tupleBatch;
+ }
+
+ @Override
+ public void open() throws TeiidComponentException, TeiidProcessingException {
+ AlterProcessor ap = new AlterProcessor();
+ ap.workContext = DQPWorkContext.getWorkContext();
+ try {
+ command.acceptVisitor(ap);
+ } catch (TeiidRuntimeException e) {
+ throw (TeiidProcessingException)e.getCause();
+ }
+ }
+
+ @Override
+ public PlanNode getDescriptionProperties() {
+ PlanNode props = super.getDescriptionProperties();
+ props.addProperty(PROP_SQL, this.command.toString());
+ return props;
+ }
+
+}
Deleted: tags/teiid-parent-7.4.0.CR1/hibernate-dialect/pom.xml
===================================================================
--- trunk/hibernate-dialect/pom.xml 2011-05-03 09:43:58 UTC (rev 3137)
+++ tags/teiid-parent-7.4.0.CR1/hibernate-dialect/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -1,18 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <parent>
- <artifactId>teiid-parent</artifactId>
- <groupId>org.jboss.teiid</groupId>
- <version>7.4.0.CR1-SNAPSHOT</version>
- </parent>
- <modelVersion>4.0.0</modelVersion>
- <artifactId>teiid-hibernate-dialect</artifactId>
- <name>Hibernate Dialect</name>
- <description>Teiid Hibernate Dialect</description>
- <dependencies>
- <dependency>
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-core</artifactId>
- <version>3.5.2-Final</version>
- </dependency>
- </dependencies>
-</project>
\ No newline at end of file
Copied: tags/teiid-parent-7.4.0.CR1/hibernate-dialect/pom.xml (from rev 3140, trunk/hibernate-dialect/pom.xml)
===================================================================
--- tags/teiid-parent-7.4.0.CR1/hibernate-dialect/pom.xml (rev 0)
+++ tags/teiid-parent-7.4.0.CR1/hibernate-dialect/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -0,0 +1,18 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <artifactId>teiid-parent</artifactId>
+ <groupId>org.jboss.teiid</groupId>
+ <version>7.4.0.CR1</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>teiid-hibernate-dialect</artifactId>
+ <name>Hibernate Dialect</name>
+ <description>Teiid Hibernate Dialect</description>
+ <dependencies>
+ <dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-core</artifactId>
+ <version>3.5.2-Final</version>
+ </dependency>
+ </dependencies>
+</project>
\ No newline at end of file
Deleted: tags/teiid-parent-7.4.0.CR1/jboss-integration/pom.xml
===================================================================
--- trunk/jboss-integration/pom.xml 2011-05-03 09:43:58 UTC (rev 3137)
+++ tags/teiid-parent-7.4.0.CR1/jboss-integration/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -1,146 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <parent>
- <artifactId>teiid-parent</artifactId>
- <groupId>org.jboss.teiid</groupId>
- <version>7.4.0.CR1-SNAPSHOT</version>
- </parent>
- <modelVersion>4.0.0</modelVersion>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-jboss-integration</artifactId>
- <name>teiid-jboss-integration</name>
- <description>JBoss specific integration layer for teiid</description>
-
- <dependencies>
-
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-runtime</artifactId>
- </dependency>
-
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-api</artifactId>
- </dependency>
-
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-cache-jbosscache</artifactId>
- </dependency>
-
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-client</artifactId>
- <scope>provided</scope>
- </dependency>
-
- <dependency>
- <groupId>javax.resource</groupId>
- <artifactId>connector-api</artifactId>
- <scope>provided</scope>
- </dependency>
-
- <dependency>
- <groupId>org.jboss</groupId>
- <artifactId>jboss-reflect</artifactId>
- <scope>provided</scope>
- </dependency>
-
- <dependency>
- <groupId>org.jboss.man</groupId>
- <artifactId>jboss-managed</artifactId>
- <scope>provided</scope>
- </dependency>
-
- <dependency>
- <groupId>org.jboss.integration</groupId>
- <artifactId>jboss-profileservice-spi</artifactId>
- <scope>provided</scope>
- </dependency>
-
- <dependency>
- <groupId>org.jboss.jbossas</groupId>
- <artifactId>jboss-as-connector</artifactId>
- <scope>provided</scope>
- </dependency>
-
- <dependency>
- <groupId>org.jboss.microcontainer</groupId>
- <artifactId>jboss-aop-mc-int</artifactId>
- <version>2.0.6.GA</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.security</groupId>
- <artifactId>jbosssx</artifactId>
- <version>2.0.3.SP1</version>
- <scope>provided</scope>
- </dependency>
- <!-- these for just running profile service remotely -->
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-common-core</artifactId>
- <type>test-jar</type>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>org.jboss.naming</groupId>
- <artifactId>jnp-client</artifactId>
- <version>5.0.3.GA</version>
- <scope>test</scope>
- </dependency>
-<!--
- <dependency>
- <groupId>org.jboss.aop</groupId>
- <artifactId>jboss-aop</artifactId>
- <classifier>client</classifier>
- <version>2.1.1.GA</version>
- <scope>test</scope>
- </dependency>
--->
-
- <dependency>
- <groupId>org.jboss.remoting</groupId>
- <artifactId>jboss-remoting</artifactId>
- <version>2.5.1</version>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>org.jboss.aspects</groupId>
- <artifactId>jboss-security-aspects</artifactId>
- <version>1.0.0.GA</version>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>org.jboss.aspects</groupId>
- <artifactId>jboss-remoting-aspects</artifactId>
- <version>1.0.1.GA</version>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>oswego-concurrent</groupId>
- <artifactId>concurrent</artifactId>
- <version>1.3.4-jboss-update1</version>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>org.jboss.jbossas</groupId>
- <artifactId>jboss-as-server</artifactId>
- <version>5.1.0.GA</version>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>org.jboss.jbossas</groupId>
- <artifactId>jboss-as-profileservice</artifactId>
- <version>5.1.0.GA</version>
- <scope>test</scope>
- </dependency>
-
- </dependencies>
-
-</project>
Copied: tags/teiid-parent-7.4.0.CR1/jboss-integration/pom.xml (from rev 3140, trunk/jboss-integration/pom.xml)
===================================================================
--- tags/teiid-parent-7.4.0.CR1/jboss-integration/pom.xml (rev 0)
+++ tags/teiid-parent-7.4.0.CR1/jboss-integration/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -0,0 +1,146 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <artifactId>teiid-parent</artifactId>
+ <groupId>org.jboss.teiid</groupId>
+ <version>7.4.0.CR1</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-jboss-integration</artifactId>
+ <name>teiid-jboss-integration</name>
+ <description>JBoss specific integration layer for teiid</description>
+
+ <dependencies>
+
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-runtime</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-api</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-cache-jbosscache</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-client</artifactId>
+ <scope>provided</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>javax.resource</groupId>
+ <artifactId>connector-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss</groupId>
+ <artifactId>jboss-reflect</artifactId>
+ <scope>provided</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.man</groupId>
+ <artifactId>jboss-managed</artifactId>
+ <scope>provided</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.integration</groupId>
+ <artifactId>jboss-profileservice-spi</artifactId>
+ <scope>provided</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.jbossas</groupId>
+ <artifactId>jboss-as-connector</artifactId>
+ <scope>provided</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.microcontainer</groupId>
+ <artifactId>jboss-aop-mc-int</artifactId>
+ <version>2.0.6.GA</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.security</groupId>
+ <artifactId>jbosssx</artifactId>
+ <version>2.0.3.SP1</version>
+ <scope>provided</scope>
+ </dependency>
+ <!-- these for just running profile service remotely -->
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-common-core</artifactId>
+ <type>test-jar</type>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.naming</groupId>
+ <artifactId>jnp-client</artifactId>
+ <version>5.0.3.GA</version>
+ <scope>test</scope>
+ </dependency>
+<!--
+ <dependency>
+ <groupId>org.jboss.aop</groupId>
+ <artifactId>jboss-aop</artifactId>
+ <classifier>client</classifier>
+ <version>2.1.1.GA</version>
+ <scope>test</scope>
+ </dependency>
+-->
+
+ <dependency>
+ <groupId>org.jboss.remoting</groupId>
+ <artifactId>jboss-remoting</artifactId>
+ <version>2.5.1</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.aspects</groupId>
+ <artifactId>jboss-security-aspects</artifactId>
+ <version>1.0.0.GA</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.aspects</groupId>
+ <artifactId>jboss-remoting-aspects</artifactId>
+ <version>1.0.1.GA</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>oswego-concurrent</groupId>
+ <artifactId>concurrent</artifactId>
+ <version>1.3.4-jboss-update1</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.jbossas</groupId>
+ <artifactId>jboss-as-server</artifactId>
+ <version>5.1.0.GA</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.jbossas</groupId>
+ <artifactId>jboss-as-profileservice</artifactId>
+ <version>5.1.0.GA</version>
+ <scope>test</scope>
+ </dependency>
+
+ </dependencies>
+
+</project>
Deleted: tags/teiid-parent-7.4.0.CR1/metadata/pom.xml
===================================================================
--- trunk/metadata/pom.xml 2011-05-03 09:43:58 UTC (rev 3137)
+++ tags/teiid-parent-7.4.0.CR1/metadata/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -1,69 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <parent>
- <artifactId>teiid-parent</artifactId>
- <groupId>org.jboss.teiid</groupId>
- <version>7.4.0.CR1-SNAPSHOT</version>
- </parent>
- <modelVersion>4.0.0</modelVersion>
- <artifactId>teiid-metadata</artifactId>
- <name>Metadata</name>
- <description>Provides vdb metadata from index files.</description>
-
- <dependencies>
-
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-common-core</artifactId>
- <scope>provided</scope>
- </dependency>
-
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-common-core</artifactId>
- <type>test-jar</type>
- </dependency>
-
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-engine</artifactId>
- </dependency>
-
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-engine</artifactId>
- <type>test-jar</type>
- </dependency>
-
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-client</artifactId>
- <scope>provided</scope>
- </dependency>
-
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-api</artifactId>
- <scope>provided</scope>
- </dependency>
-
- <dependency>
- <groupId>javax.resource</groupId>
- <artifactId>connector-api</artifactId>
- <scope>provided</scope>
- </dependency>
-
- <dependency>
- <groupId>org.jboss</groupId>
- <artifactId>jboss-vfs</artifactId>
- <scope>provided</scope>
- </dependency>
-
- <dependency>
- <groupId>org.jboss.man</groupId>
- <artifactId>jboss-managed</artifactId>
- </dependency>
-
- </dependencies>
-
-</project>
\ No newline at end of file
Copied: tags/teiid-parent-7.4.0.CR1/metadata/pom.xml (from rev 3140, trunk/metadata/pom.xml)
===================================================================
--- tags/teiid-parent-7.4.0.CR1/metadata/pom.xml (rev 0)
+++ tags/teiid-parent-7.4.0.CR1/metadata/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <artifactId>teiid-parent</artifactId>
+ <groupId>org.jboss.teiid</groupId>
+ <version>7.4.0.CR1</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>teiid-metadata</artifactId>
+ <name>Metadata</name>
+ <description>Provides vdb metadata from index files.</description>
+
+ <dependencies>
+
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-common-core</artifactId>
+ <scope>provided</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-common-core</artifactId>
+ <type>test-jar</type>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-engine</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-engine</artifactId>
+ <type>test-jar</type>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-client</artifactId>
+ <scope>provided</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>javax.resource</groupId>
+ <artifactId>connector-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss</groupId>
+ <artifactId>jboss-vfs</artifactId>
+ <scope>provided</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.man</groupId>
+ <artifactId>jboss-managed</artifactId>
+ </dependency>
+
+ </dependencies>
+
+</project>
\ No newline at end of file
Deleted: tags/teiid-parent-7.4.0.CR1/pom.xml
===================================================================
--- trunk/pom.xml 2011-05-03 09:43:58 UTC (rev 3137)
+++ tags/teiid-parent-7.4.0.CR1/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -1,496 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-parent</artifactId>
- <packaging>pom</packaging>
- <name>Teiid</name>
- <version>7.4.0.CR1-SNAPSHOT</version>
- <description>Federated SQL and XML query engine.</description>
- <properties>
- <ant.version>1.7.0</ant.version>
- <site.url>http://www.jboss.org/teiid</site.url>
- </properties>
- <scm>
- <connection>scm:svn:https://anonsvn.jboss.org/repos/teiid/trunk</connection>
- <developerConnection>scm:svn:https://svn.jboss.org/repos/teiid/trunk</developerConnection>
- </scm>
- <licenses>
- <license>
- <name>GNU Lesser General Public License</name>
- <url>http://www.gnu.org/licenses/lgpl.html</url>
- <distribution>repo</distribution>
- <comments>A business-friendly OSS license</comments>
- </license>
- </licenses>
- <url>${site.url}</url>
- <developers>
- <developer>
- <name>Steve Hawkins</name>
- <id>steve</id>
- <email>shawkins(a)redhat.com</email>
- <organization>Red Hat</organization>
- <roles>
- <role>Project Lead</role>
- </roles>
- <timezone>-6</timezone>
- </developer>
- <developer>
- <name>Ramesh Reddy</name>
- <id>ramesh</id>
- <email>rareddy(a)redhat.com</email>
- <organization>Red Hat</organization>
- <roles>
- <role>Project Lead</role>
- </roles>
- <timezone>-6</timezone>
- </developer>
- <developer>
- <name>Van Halbert</name>
- <id>van</id>
- <email>vhalbert(a)redhat.com</email>
- <organization>Red Hat</organization>
- <roles>
- <role>Developer</role>
- </roles>
- <timezone>-6</timezone>
- </developer>
- <developer>
- <name>Ted Jones</name>
- <id>ted</id>
- <email>tejones(a)redhat.com</email>
- <organization>Red Hat</organization>
- <roles>
- <role>Developer</role>
- </roles>
- <timezone>-6</timezone>
- </developer>
- </developers>
- <profiles>
- <profile>
- <!--
- This profile is activated manually, as in "mvn ... -P release ..."
- -->
- <id>release</id>
- <modules>
- <module>documentation</module>
- <module>build</module>
- </modules>
- </profile>
- <profile>
- <!--
- This is to enable faster build for development time.
- -->
- <id>dev</id>
- <modules>
- <module>build</module>
- </modules>
- </profile>
- </profiles>
- <build>
- <!-- This section defines the default plugin settings inherited by child projects. -->
- <pluginManagement>
- <plugins>
- <!-- Fixes how test resources of a project can be used in projects dependent on it -->
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-jar-plugin</artifactId>
- <version>2.2</version>
- </plugin>
- <plugin>
- <artifactId>maven-assembly-plugin</artifactId>
- <version>2.2-beta-6-m1-jboss</version>
- </plugin>
- </plugins>
- </pluginManagement>
- <plugins>
- <!-- Specify the compiler options and settings -->
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <configuration>
- <source>1.6</source>
- <target>1.6</target>
- <showDeprecation>false</showDeprecation>
- <showWarnings>false</showWarnings>
- </configuration>
- </plugin>
- <plugin>
- <artifactId>maven-surefire-plugin</artifactId>
- <configuration>
- <includes>
- <include>**/*TestCase.java</include>
- <include>**/*Test.java</include>
- <include>**/Test*.java</include>
- </includes>
- <excludes>
- <exclude>**/Abstract*TestCase.java</exclude>
- <!-- hack to prevent anonymous inner classes in Tests from being run as tests -->
- <include>**/Test*$*.java</include>
- </excludes>
- <systemProperties>
- <property>
- <name>user.dir</name>
- <value>${basedir}/target</value>
- </property>
- <property>
- <name>java.io.tmpdir</name>
- <value>${basedir}/target</value>
- </property>
- </systemProperties>
- </configuration>
- </plugin>
- <!--
- Build a test-jar for each project, so that src/test/* resources and classes can be used
- in other projects. Also customize how the jar files are assembled.
- -->
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-jar-plugin</artifactId>
- <executions>
- <execution>
- <goals>
- <goal>test-jar</goal>
- </goals>
- </execution>
- </executions>
- <configuration>
- <archive>
- <manifest>
- <addDefaultSpecificationEntries> true</addDefaultSpecificationEntries>
- <addDefaultImplementationEntries> true</addDefaultImplementationEntries>
- </manifest>
- <manifestEntries>
- <Implementation-URL>${pom.url}</Implementation-URL>
- </manifestEntries>
- </archive>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-source-plugin</artifactId>
- <executions>
- <execution>
- <id>attach-sources</id>
- <goals>
- <goal>jar</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-javadoc-plugin</artifactId>
- <version>2.5</version>
- </plugin>
- </plugins>
- </build>
- <reporting>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-javadoc-plugin</artifactId>
- <configuration>
- <aggregate>true</aggregate>
- <maxmemory>512m</maxmemory>
- <excludePackageNames>*.internal</excludePackageNames>
- </configuration>
- </plugin>
- </plugins>
- </reporting>
- <repositories>
- <repository>
- <id>jboss-public-repository</id>
- <name>JBoss Public Maven Repository Group</name>
- <url>http://repository.jboss.org/nexus/content/groups/public/</url>
- </repository>
- </repositories>
- <dependencies>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>4.4</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.mockito</groupId>
- <artifactId>mockito-all</artifactId>
- <version>1.5</version>
- <scope>test</scope>
- </dependency>
- </dependencies>
- <dependencyManagement>
- <dependencies>
- <!--
- Declare all dependency versions and default scopes here, but not optional.
- Each module should declare it's direct dependency and possibily overwrite scope/optional.
- -->
-
- <!-- Internal dependencies -->
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-common-core</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-common-core</artifactId>
- <type>test-jar</type>
- <version>${project.version}</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-api</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-api</artifactId>
- <type>test-jar</type>
- <version>${project.version}</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-console</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-console</artifactId>
- <type>test-jar</type>
- <version>${project.version}</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-client</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-client</artifactId>
- <type>test-jar</type>
- <version>${project.version}</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-engine</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-engine</artifactId>
- <type>test-jar</type>
- <version>${project.version}</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-metadata</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-metadata</artifactId>
- <type>test-jar</type>
- <version>${project.version}</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-txn-jbossts</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-cache-jbosscache</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-jboss-integration</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-runtime</artifactId>
- <version>${project.version}</version>
- </dependency>
-
- <!-- External dependencies -->
- <dependency>
- <groupId>javax.resource</groupId>
- <artifactId>connector-api</artifactId>
- <version>1.5</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>javax.transaction</groupId>
- <artifactId>jta</artifactId>
- <version>1.1</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>log4j</groupId>
- <artifactId>log4j</artifactId>
- <version>1.2.14</version>
- </dependency>
- <dependency>
- <groupId>commons-logging</groupId>
- <artifactId>commons-logging</artifactId>
- <version>1.1</version>
- <exclusions>
- <exclusion>
- <groupId>logkit</groupId>
- <artifactId>logkit</artifactId>
- </exclusion>
- <exclusion>
- <groupId>avalon-framework</groupId>
- <artifactId>avalon-framework</artifactId>
- </exclusion>
- <exclusion>
- <groupId>javax.servlet</groupId>
- <artifactId>servlet-api</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>jgroups</groupId>
- <artifactId>jgroups</artifactId>
- <version>2.6.15.GA</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.cache</groupId>
- <artifactId>jbosscache-core</artifactId>
- <version>3.2.5.GA</version>
- <exclusions>
- <exclusion>
- <groupId>javax.transaction</groupId>
- <artifactId>jta</artifactId>
- </exclusion>
- <exclusion>
- <groupId>commons-logging</groupId>
- <artifactId>commons-logging</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.jboss</groupId>
- <artifactId>jboss-common-core</artifactId>
- </exclusion>
- </exclusions>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.man</groupId>
- <artifactId>jboss-managed</artifactId>
- <version>2.1.0.SP1</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.man</groupId>
- <artifactId>jboss-metatype</artifactId>
- <version>2.1.0.SP1</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.integration</groupId>
- <artifactId>jboss-profileservice-spi</artifactId>
- <version>5.1.0.GA</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss</groupId>
- <artifactId>jboss-vfs</artifactId>
- <version>2.1.2.GA</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.deployers</groupId>
- <artifactId>jboss-deployers-vfs-spi</artifactId>
- <version>2.0.7.GA</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.deployers</groupId>
- <artifactId>jboss-deployers-vfs</artifactId>
- <version>2.0.7.GA</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.jbossas</groupId>
- <artifactId>jboss-as-connector</artifactId>
- <version>5.1.0.GA</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss</groupId>
- <artifactId>jboss-reflect</artifactId>
- <version>2.0.2.GA</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.remoting</groupId>
- <artifactId>jboss-remoting</artifactId>
- <version>2.5.1</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>net.sourceforge.saxon</groupId>
- <artifactId>saxon</artifactId>
- <version>9.1.0.8</version>
- </dependency>
- <dependency>
- <groupId>net.sourceforge.saxon</groupId>
- <artifactId>saxon</artifactId>
- <classifier>dom</classifier>
- <version>9.1.0.8</version>
- </dependency>
- <dependency>
- <groupId>org.jboss.netty</groupId>
- <artifactId>netty</artifactId>
- <version>3.2.1.Final</version>
- </dependency>
- <dependency>
- <groupId>org.apache.ant</groupId>
- <artifactId>ant</artifactId>
- <version>${ant.version}</version>
- </dependency>
- <dependency>
- <groupId>com.googlecode.json-simple</groupId>
- <artifactId>json-simple</artifactId>
- <version>1.1</version>
- </dependency>
- </dependencies>
- </dependencyManagement>
- <modules>
- <module>common-core</module>
- <module>api</module>
- <module>client</module>
- <module>engine</module>
- <module>connectors</module>
- <module>console</module>
- <module>metadata</module>
- <module>runtime</module>
- <module>adminshell</module>
- <module>cache-jbosscache</module>
- <module>hibernate-dialect</module>
- <module>jboss-integration</module>
- <module>test-integration</module>
- <module>client-jdk15</module>
- </modules>
- <distributionManagement>
- <repository>
- <id>jboss-releases-repository</id>
- <name>JBoss Releases Repository</name>
- <url>https://repository.jboss.org/nexus/service/local/staging/deploy/maven2/</url>
- </repository>
- <snapshotRepository>
- <id>jboss-snapshots-repository</id>
- <name>JBoss Snapshots Repository</name>
- <url>https://repository.jboss.org/nexus/content/repositories/snapshots/</url>
- </snapshotRepository>
- </distributionManagement>
-</project>
\ No newline at end of file
Copied: tags/teiid-parent-7.4.0.CR1/pom.xml (from rev 3140, trunk/pom.xml)
===================================================================
--- tags/teiid-parent-7.4.0.CR1/pom.xml (rev 0)
+++ tags/teiid-parent-7.4.0.CR1/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -0,0 +1,496 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-parent</artifactId>
+ <packaging>pom</packaging>
+ <name>Teiid</name>
+ <version>7.4.0.CR1</version>
+ <description>Federated SQL and XML query engine.</description>
+ <properties>
+ <ant.version>1.7.0</ant.version>
+ <site.url>http://www.jboss.org/teiid</site.url>
+ </properties>
+ <scm>
+ <connection>scm:svn:https://anonsvn.jboss.org/repos/teiid/tags/teiid-parent-7.4.0.CR1</connection>
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/teiid/tags/teiid-parent-7.4.0.CR1</developerConnection>
+ </scm>
+ <licenses>
+ <license>
+ <name>GNU Lesser General Public License</name>
+ <url>http://www.gnu.org/licenses/lgpl.html</url>
+ <distribution>repo</distribution>
+ <comments>A business-friendly OSS license</comments>
+ </license>
+ </licenses>
+ <url>${site.url}</url>
+ <developers>
+ <developer>
+ <name>Steve Hawkins</name>
+ <id>steve</id>
+ <email>shawkins(a)redhat.com</email>
+ <organization>Red Hat</organization>
+ <roles>
+ <role>Project Lead</role>
+ </roles>
+ <timezone>-6</timezone>
+ </developer>
+ <developer>
+ <name>Ramesh Reddy</name>
+ <id>ramesh</id>
+ <email>rareddy(a)redhat.com</email>
+ <organization>Red Hat</organization>
+ <roles>
+ <role>Project Lead</role>
+ </roles>
+ <timezone>-6</timezone>
+ </developer>
+ <developer>
+ <name>Van Halbert</name>
+ <id>van</id>
+ <email>vhalbert(a)redhat.com</email>
+ <organization>Red Hat</organization>
+ <roles>
+ <role>Developer</role>
+ </roles>
+ <timezone>-6</timezone>
+ </developer>
+ <developer>
+ <name>Ted Jones</name>
+ <id>ted</id>
+ <email>tejones(a)redhat.com</email>
+ <organization>Red Hat</organization>
+ <roles>
+ <role>Developer</role>
+ </roles>
+ <timezone>-6</timezone>
+ </developer>
+ </developers>
+ <profiles>
+ <profile>
+ <!--
+ This profile is activated manually, as in "mvn ... -P release ..."
+ -->
+ <id>release</id>
+ <modules>
+ <module>documentation</module>
+ <module>build</module>
+ </modules>
+ </profile>
+ <profile>
+ <!--
+ This is to enable faster build for development time.
+ -->
+ <id>dev</id>
+ <modules>
+ <module>build</module>
+ </modules>
+ </profile>
+ </profiles>
+ <build>
+ <!-- This section defines the default plugin settings inherited by child projects. -->
+ <pluginManagement>
+ <plugins>
+ <!-- Fixes how test resources of a project can be used in projects dependent on it -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <version>2.2</version>
+ </plugin>
+ <plugin>
+ <artifactId>maven-assembly-plugin</artifactId>
+ <version>2.2-beta-6-m1-jboss</version>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+ <plugins>
+ <!-- Specify the compiler options and settings -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <source>1.6</source>
+ <target>1.6</target>
+ <showDeprecation>false</showDeprecation>
+ <showWarnings>false</showWarnings>
+ </configuration>
+ </plugin>
+ <plugin>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <includes>
+ <include>**/*TestCase.java</include>
+ <include>**/*Test.java</include>
+ <include>**/Test*.java</include>
+ </includes>
+ <excludes>
+ <exclude>**/Abstract*TestCase.java</exclude>
+ <!-- hack to prevent anonymous inner classes in Tests from being run as tests -->
+ <include>**/Test*$*.java</include>
+ </excludes>
+ <systemProperties>
+ <property>
+ <name>user.dir</name>
+ <value>${basedir}/target</value>
+ </property>
+ <property>
+ <name>java.io.tmpdir</name>
+ <value>${basedir}/target</value>
+ </property>
+ </systemProperties>
+ </configuration>
+ </plugin>
+ <!--
+ Build a test-jar for each project, so that src/test/* resources and classes can be used
+ in other projects. Also customize how the jar files are assembled.
+ -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <executions>
+ <execution>
+ <goals>
+ <goal>test-jar</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <archive>
+ <manifest>
+ <addDefaultSpecificationEntries> true</addDefaultSpecificationEntries>
+ <addDefaultImplementationEntries> true</addDefaultImplementationEntries>
+ </manifest>
+ <manifestEntries>
+ <Implementation-URL>${pom.url}</Implementation-URL>
+ </manifestEntries>
+ </archive>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-source-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>attach-sources</id>
+ <goals>
+ <goal>jar</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ <version>2.5</version>
+ </plugin>
+ </plugins>
+ </build>
+ <reporting>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ <configuration>
+ <aggregate>true</aggregate>
+ <maxmemory>512m</maxmemory>
+ <excludePackageNames>*.internal</excludePackageNames>
+ </configuration>
+ </plugin>
+ </plugins>
+ </reporting>
+ <repositories>
+ <repository>
+ <id>jboss-public-repository</id>
+ <name>JBoss Public Maven Repository Group</name>
+ <url>http://repository.jboss.org/nexus/content/groups/public/</url>
+ </repository>
+ </repositories>
+ <dependencies>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.4</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-all</artifactId>
+ <version>1.5</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+ <dependencyManagement>
+ <dependencies>
+ <!--
+ Declare all dependency versions and default scopes here, but not optional.
+ Each module should declare it's direct dependency and possibily overwrite scope/optional.
+ -->
+
+ <!-- Internal dependencies -->
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-common-core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-common-core</artifactId>
+ <type>test-jar</type>
+ <version>${project.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-api</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-api</artifactId>
+ <type>test-jar</type>
+ <version>${project.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-console</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-console</artifactId>
+ <type>test-jar</type>
+ <version>${project.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-client</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-client</artifactId>
+ <type>test-jar</type>
+ <version>${project.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-engine</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-engine</artifactId>
+ <type>test-jar</type>
+ <version>${project.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-metadata</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-metadata</artifactId>
+ <type>test-jar</type>
+ <version>${project.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-txn-jbossts</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-cache-jbosscache</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-jboss-integration</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-runtime</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <!-- External dependencies -->
+ <dependency>
+ <groupId>javax.resource</groupId>
+ <artifactId>connector-api</artifactId>
+ <version>1.5</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.transaction</groupId>
+ <artifactId>jta</artifactId>
+ <version>1.1</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ <version>1.2.14</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ <version>1.1</version>
+ <exclusions>
+ <exclusion>
+ <groupId>logkit</groupId>
+ <artifactId>logkit</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>avalon-framework</groupId>
+ <artifactId>avalon-framework</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>jgroups</groupId>
+ <artifactId>jgroups</artifactId>
+ <version>2.6.15.GA</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.cache</groupId>
+ <artifactId>jbosscache-core</artifactId>
+ <version>3.2.5.GA</version>
+ <exclusions>
+ <exclusion>
+ <groupId>javax.transaction</groupId>
+ <artifactId>jta</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.jboss</groupId>
+ <artifactId>jboss-common-core</artifactId>
+ </exclusion>
+ </exclusions>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.man</groupId>
+ <artifactId>jboss-managed</artifactId>
+ <version>2.1.0.SP1</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.man</groupId>
+ <artifactId>jboss-metatype</artifactId>
+ <version>2.1.0.SP1</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.integration</groupId>
+ <artifactId>jboss-profileservice-spi</artifactId>
+ <version>5.1.0.GA</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss</groupId>
+ <artifactId>jboss-vfs</artifactId>
+ <version>2.1.2.GA</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.deployers</groupId>
+ <artifactId>jboss-deployers-vfs-spi</artifactId>
+ <version>2.0.7.GA</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.deployers</groupId>
+ <artifactId>jboss-deployers-vfs</artifactId>
+ <version>2.0.7.GA</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.jbossas</groupId>
+ <artifactId>jboss-as-connector</artifactId>
+ <version>5.1.0.GA</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss</groupId>
+ <artifactId>jboss-reflect</artifactId>
+ <version>2.0.2.GA</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.remoting</groupId>
+ <artifactId>jboss-remoting</artifactId>
+ <version>2.5.1</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>net.sourceforge.saxon</groupId>
+ <artifactId>saxon</artifactId>
+ <version>9.1.0.8</version>
+ </dependency>
+ <dependency>
+ <groupId>net.sourceforge.saxon</groupId>
+ <artifactId>saxon</artifactId>
+ <classifier>dom</classifier>
+ <version>9.1.0.8</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.netty</groupId>
+ <artifactId>netty</artifactId>
+ <version>3.2.1.Final</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.ant</groupId>
+ <artifactId>ant</artifactId>
+ <version>${ant.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.googlecode.json-simple</groupId>
+ <artifactId>json-simple</artifactId>
+ <version>1.1</version>
+ </dependency>
+ </dependencies>
+ </dependencyManagement>
+ <modules>
+ <module>common-core</module>
+ <module>api</module>
+ <module>client</module>
+ <module>engine</module>
+ <module>connectors</module>
+ <module>console</module>
+ <module>metadata</module>
+ <module>runtime</module>
+ <module>adminshell</module>
+ <module>cache-jbosscache</module>
+ <module>hibernate-dialect</module>
+ <module>jboss-integration</module>
+ <module>test-integration</module>
+ <module>client-jdk15</module>
+ </modules>
+ <distributionManagement>
+ <repository>
+ <id>jboss-releases-repository</id>
+ <name>JBoss Releases Repository</name>
+ <url>https://repository.jboss.org/nexus/service/local/staging/deploy/maven2/</url>
+ </repository>
+ <snapshotRepository>
+ <id>jboss-snapshots-repository</id>
+ <name>JBoss Snapshots Repository</name>
+ <url>https://repository.jboss.org/nexus/content/repositories/snapshots/</url>
+ </snapshotRepository>
+ </distributionManagement>
+</project>
\ No newline at end of file
Deleted: tags/teiid-parent-7.4.0.CR1/runtime/pom.xml
===================================================================
--- trunk/runtime/pom.xml 2011-05-03 09:43:58 UTC (rev 3137)
+++ tags/teiid-parent-7.4.0.CR1/runtime/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -1,94 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <parent>
- <artifactId>teiid-parent</artifactId>
- <groupId>org.jboss.teiid</groupId>
- <version>7.4.0.CR1-SNAPSHOT</version>
- </parent>
- <modelVersion>4.0.0</modelVersion>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-runtime</artifactId>
- <name>Runtime Engine</name>
- <description>Teiid Runtime Engine</description>
- <dependencies>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-common-core</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-common-core</artifactId>
- <type>test-jar</type>
- </dependency>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-api</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-client</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-engine</artifactId>
- </dependency>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-engine</artifactId>
- <type>test-jar</type>
- </dependency>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-metadata</artifactId>
- </dependency>
- <dependency>
- <groupId>log4j</groupId>
- <artifactId>log4j</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>commons-logging</groupId>
- <artifactId>commons-logging</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.netty</groupId>
- <artifactId>netty</artifactId>
- </dependency>
-
- <dependency>
- <groupId>org.jboss.cache</groupId>
- <artifactId>jbosscache-core</artifactId>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>javax.resource</groupId>
- <artifactId>connector-api</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss</groupId>
- <artifactId>jboss-vfs</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.deployers</groupId>
- <artifactId>jboss-deployers-vfs-spi</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.deployers</groupId>
- <artifactId>jboss-deployers-vfs</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.integration</groupId>
- <artifactId>jboss-profileservice-spi</artifactId>
- <scope>provided</scope>
- </dependency>
- </dependencies>
-</project>
\ No newline at end of file
Copied: tags/teiid-parent-7.4.0.CR1/runtime/pom.xml (from rev 3140, trunk/runtime/pom.xml)
===================================================================
--- tags/teiid-parent-7.4.0.CR1/runtime/pom.xml (rev 0)
+++ tags/teiid-parent-7.4.0.CR1/runtime/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <artifactId>teiid-parent</artifactId>
+ <groupId>org.jboss.teiid</groupId>
+ <version>7.4.0.CR1</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-runtime</artifactId>
+ <name>Runtime Engine</name>
+ <description>Teiid Runtime Engine</description>
+ <dependencies>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-common-core</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-common-core</artifactId>
+ <type>test-jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-client</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-engine</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-engine</artifactId>
+ <type>test-jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-metadata</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.netty</groupId>
+ <artifactId>netty</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.cache</groupId>
+ <artifactId>jbosscache-core</artifactId>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>javax.resource</groupId>
+ <artifactId>connector-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss</groupId>
+ <artifactId>jboss-vfs</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.deployers</groupId>
+ <artifactId>jboss-deployers-vfs-spi</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.deployers</groupId>
+ <artifactId>jboss-deployers-vfs</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.integration</groupId>
+ <artifactId>jboss-profileservice-spi</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ </dependencies>
+</project>
\ No newline at end of file
Deleted: tags/teiid-parent-7.4.0.CR1/runtime/src/main/java/org/teiid/deployers/VDBRepository.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/deployers/VDBRepository.java 2011-05-03 09:43:58 UTC (rev 3137)
+++ tags/teiid-parent-7.4.0.CR1/runtime/src/main/java/org/teiid/deployers/VDBRepository.java 2011-05-03 16:47:11 UTC (rev 3141)
@@ -1,347 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301 USA.
- */
-package org.teiid.deployers;
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.LinkedHashMap;
-import java.util.LinkedHashSet;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.NavigableMap;
-import java.util.Properties;
-import java.util.concurrent.ConcurrentSkipListMap;
-import java.util.concurrent.CopyOnWriteArrayList;
-
-import org.jboss.deployers.spi.DeploymentException;
-import org.teiid.adminapi.AdminException;
-import org.teiid.adminapi.AdminProcessingException;
-import org.teiid.adminapi.impl.VDBMetaData;
-import org.teiid.core.CoreConstants;
-import org.teiid.core.types.DataTypeManager;
-import org.teiid.dqp.internal.datamgr.ConnectorManagerRepository;
-import org.teiid.logging.LogConstants;
-import org.teiid.logging.LogManager;
-import org.teiid.metadata.AbstractMetadataRecord;
-import org.teiid.metadata.Column;
-import org.teiid.metadata.ColumnStats;
-import org.teiid.metadata.Datatype;
-import org.teiid.metadata.MetadataRepository;
-import org.teiid.metadata.MetadataStore;
-import org.teiid.metadata.Procedure;
-import org.teiid.metadata.Schema;
-import org.teiid.metadata.Table;
-import org.teiid.metadata.TableStats;
-import org.teiid.query.function.SystemFunctionManager;
-import org.teiid.query.metadata.TransformationMetadata.Resource;
-import org.teiid.runtime.RuntimePlugin;
-import org.teiid.translator.TranslatorException;
-import org.teiid.vdb.runtime.VDBKey;
-
-
-/**
- * Repository for VDBs
- */
-public class VDBRepository implements Serializable{
- private static final long serialVersionUID = 312177538191772674L;
-
- private NavigableMap<VDBKey, CompositeVDB> vdbRepo = new ConcurrentSkipListMap<VDBKey, CompositeVDB>();
- private MetadataStore systemStore;
- private MetadataStore odbcStore;
- private boolean odbcEnabled = false;
- private List<VDBLifeCycleListener> listeners = new CopyOnWriteArrayList<VDBLifeCycleListener>();
- private SystemFunctionManager systemFunctionManager;
- private MetadataRepository metadataRepository;
-
- public MetadataRepository getMetadataRepository() {
- return metadataRepository;
- }
-
- public void addVDB(VDBMetaData vdb, MetadataStoreGroup stores, LinkedHashMap<String, Resource> visibilityMap, UDFMetaData udf, ConnectorManagerRepository cmr) throws DeploymentException {
- if (getVDB(vdb.getName(), vdb.getVersion()) != null) {
- throw new DeploymentException(RuntimePlugin.Util.getString("duplicate_vdb", vdb.getName(), vdb.getVersion())); //$NON-NLS-1$
- }
-
- // get the system VDB metadata store
- if (this.systemStore == null) {
- throw new DeploymentException(RuntimePlugin.Util.getString("system_vdb_load_error")); //$NON-NLS-1$
- }
-
- if (this.odbcEnabled && odbcStore == null) {
- this.odbcStore = getODBCMetadataStore();
- }
- CompositeVDB cvdb = null;
- if (this.odbcStore == null) {
- cvdb = new CompositeVDB(vdb, stores, visibilityMap, udf, this.systemFunctionManager.getSystemFunctions(), cmr, this.systemStore);
- }
- else {
- cvdb = new CompositeVDB(vdb, stores, visibilityMap, udf, this.systemFunctionManager.getSystemFunctions(), cmr, this.systemStore, odbcStore);
- }
- updateFromMetadataRepository(stores, cvdb);
- this.vdbRepo.put(vdbId(vdb), cvdb);
- notifyAdd(vdb.getName(), vdb.getVersion());
- }
-
- private void updateFromMetadataRepository(MetadataStoreGroup stores,
- CompositeVDB cvdb) {
- if (metadataRepository == null) {
- return;
- }
- String vdbName = cvdb.getVDB().getName();
- int vdbVersion = cvdb.getVDB().getVersion();
- LinkedList<MetadataStore> allStores = new LinkedList<MetadataStore>(stores.getStores());
- allStores.addAll(Arrays.asList(cvdb.getAdditionalStores()));
- for (MetadataStore metadataStore : allStores) {
- Collection<AbstractMetadataRecord> records = new LinkedHashSet<AbstractMetadataRecord>();
- for (Schema schema : metadataStore.getSchemas().values()) {
- records.add(schema);
- for (Table t : schema.getTables().values()) {
- records.add(t);
- records.addAll(t.getColumns());
- records.addAll(t.getAllKeys());
- if (t.isPhysical()) {
- TableStats stats = metadataRepository.getTableStats(vdbName, vdbVersion, t);
- if (stats != null) {
- t.setTableStats(stats);
- }
- for (Column c : t.getColumns()) {
- ColumnStats cStats = metadataRepository.getColumnStats(vdbName, vdbVersion, c);
- if (cStats != null) {
- c.setColumnStats(cStats);
- }
- }
- } else {
- String def = metadataRepository.getViewDefinition(vdbName, vdbVersion, t);
- if (def != null) {
- t.setSelectTransformation(def);
- }
- if (t.supportsUpdate()) {
- def = metadataRepository.getInsteadOfTriggerDefinition(vdbName, vdbVersion, t, Table.TriggerEvent.INSERT);
- if (def != null) {
- t.setInsertPlan(def);
- }
- Boolean enabled = metadataRepository.isInsteadOfTriggerEnabled(vdbName, vdbVersion, t, Table.TriggerEvent.INSERT);
- if (enabled != null) {
- t.setInsertPlanEnabled(enabled);
- }
- def = metadataRepository.getInsteadOfTriggerDefinition(vdbName, vdbVersion, t, Table.TriggerEvent.UPDATE);
- if (def != null) {
- t.setUpdatePlan(def);
- }
- enabled = metadataRepository.isInsteadOfTriggerEnabled(vdbName, vdbVersion, t, Table.TriggerEvent.UPDATE);
- if (enabled != null) {
- t.setUpdatePlanEnabled(enabled);
- }
- def = metadataRepository.getInsteadOfTriggerDefinition(vdbName, vdbVersion, t, Table.TriggerEvent.DELETE);
- if (def != null) {
- t.setDeletePlan(def);
- }
- enabled = metadataRepository.isInsteadOfTriggerEnabled(vdbName, vdbVersion, t, Table.TriggerEvent.DELETE);
- if (enabled != null) {
- t.setDeletePlanEnabled(enabled);
- }
- }
- }
- }
- for (Procedure p : schema.getProcedures().values()) {
- records.add(p);
- records.addAll(p.getParameters());
- if (p.getResultSet() != null) {
- records.addAll(p.getResultSet().getColumns());
- }
- if (p.isVirtual() && !p.isFunction()) {
- String proc = metadataRepository.getProcedureDefinition(vdbName, vdbVersion, p);
- if (proc != null) {
- p.setQueryPlan(proc);
- }
- }
- }
- }
- for (AbstractMetadataRecord abstractMetadataRecord : records) {
- LinkedHashMap<String, String> p = metadataRepository.getProperties(vdbName, vdbVersion, abstractMetadataRecord);
- if (p != null) {
- abstractMetadataRecord.setProperties(p);
- }
- }
- }
- }
-
- public VDBMetaData getVDB(String name, int version) {
- CompositeVDB v = this.vdbRepo.get(new VDBKey(name, version));
- if (v != null) {
- return v.getVDB();
- }
- return null;
- }
-
- public List<VDBMetaData> getVDBs(){
- ArrayList<VDBMetaData> vdbs = new ArrayList<VDBMetaData>();
- for(CompositeVDB cVDB:this.vdbRepo.values()) {
- vdbs.add(cVDB.getVDB());
- }
- return vdbs;
- }
-
- protected VDBKey vdbId(VDBMetaData vdb) {
- return new VDBKey(vdb.getName(), vdb.getVersion());
- }
-
- public VDBMetaData getVDB(String vdbName) {
- int latestVersion = 0;
- for (VDBKey key:this.vdbRepo.tailMap(new VDBKey(vdbName, 0)).keySet()) {
- if(!key.getName().equalsIgnoreCase(vdbName)) {
- break;
- }
- VDBMetaData vdb = this.vdbRepo.get(key).getVDB();
- switch (vdb.getConnectionType()) {
- case ANY:
- latestVersion = Math.max(vdb.getVersion(), latestVersion);
- break;
- case BY_VERSION:
- if (latestVersion == 0) {
- latestVersion = vdb.getVersion();
- }
- break;
- }
- }
- if(latestVersion == 0) {
- return null;
- }
-
- return getVDB(vdbName, latestVersion);
- }
-
- public MetadataStore getSystemStore() {
- return systemStore;
- }
-
- public MetadataStore getODBCStore() {
- return this.odbcStore;
- }
-
- public void setSystemStore(MetadataStore store) {
- this.systemStore = store;
- }
-
- public void setMetadataRepository(MetadataRepository metadataRepository) {
- this.metadataRepository = metadataRepository;
- }
-
- private MetadataStore getODBCMetadataStore() {
- try {
- PgCatalogMetadataStore pg = new PgCatalogMetadataStore(CoreConstants.ODBC_MODEL, getBuiltinDatatypes(), new Properties());
- return pg.getMetadataStore();
- } catch (TranslatorException e) {
- LogManager.logError(LogConstants.CTX_DQP, RuntimePlugin.Util.getString("failed_to_load_odbc_metadata")); //$NON-NLS-1$
- }
- return null;
- }
-
- public void odbcEnabled() {
- this.odbcEnabled = true;
- }
-
- public boolean removeVDB(String vdbName, int vdbVersion) {
- VDBKey key = new VDBKey(vdbName, vdbVersion);
- CompositeVDB removed = this.vdbRepo.remove(key);
- if (removed != null) {
- // if this VDB was part of another VDB; then remove them.
- for (CompositeVDB other:this.vdbRepo.values()) {
- other.removeChild(key);
- }
- notifyRemove(key.getName(), key.getVersion());
- return true;
- }
- return false;
- }
-
- public Map<String, Datatype> getBuiltinDatatypes() {
- Collection<Datatype> datatypes = this.systemStore.getDatatypes();
- Map<String, Datatype> datatypeMap = new HashMap<String, Datatype>();
- for (Class<?> typeClass : DataTypeManager.getAllDataTypeClasses()) {
- for (Datatype datatypeRecordImpl : datatypes) {
- if (datatypeRecordImpl.getJavaClassName().equals(typeClass.getName())) {
- datatypeMap.put(DataTypeManager.getDataTypeName(typeClass), datatypeRecordImpl);
- break;
- }
- }
- }
- return datatypeMap;
- }
-
- public void mergeVDBs(String sourceVDBName, int sourceVDBVersion, String targetVDBName, int targetVDBVersion) throws AdminException{
- CompositeVDB source = this.vdbRepo.get(new VDBKey(sourceVDBName, sourceVDBVersion));
- if (source == null) {
- throw new AdminProcessingException(RuntimePlugin.Util.getString("vdb_not_found", sourceVDBName, sourceVDBVersion)); //$NON-NLS-1$
- }
-
- CompositeVDB target = this.vdbRepo.get(new VDBKey(targetVDBName, targetVDBVersion));
- if (target == null) {
- throw new AdminProcessingException(RuntimePlugin.Util.getString("vdb_not_found", sourceVDBName, sourceVDBVersion)); //$NON-NLS-1$
- }
-
- // merge them
- target.addChild(source);
- }
-
- // this is called by mc
- public void start() {
- if (this.odbcEnabled) {
- this.odbcStore = getODBCMetadataStore();
- }
- }
-
- void updateVDB(String name, int version) {
- CompositeVDB v = this.vdbRepo.get(new VDBKey(name, version));
- if (v!= null) {
- v.update(v.getVDB(), systemFunctionManager.getSystemFunctions());
- }
- }
-
- public void addListener(VDBLifeCycleListener listener) {
- this.listeners.add(listener);
- }
-
- public void removeListener(VDBLifeCycleListener listener) {
- this.listeners.remove(listener);
- }
-
- private void notifyAdd(String name, int version) {
- for(VDBLifeCycleListener l:this.listeners) {
- l.added(name, version);
- }
- }
-
- private void notifyRemove(String name, int version) {
- for(VDBLifeCycleListener l:this.listeners) {
- l.removed(name, version);
- }
- }
-
- public void setSystemFunctionManager(SystemFunctionManager mgr) {
- this.systemFunctionManager = mgr;
- }
-}
Copied: tags/teiid-parent-7.4.0.CR1/runtime/src/main/java/org/teiid/deployers/VDBRepository.java (from rev 3138, trunk/runtime/src/main/java/org/teiid/deployers/VDBRepository.java)
===================================================================
--- tags/teiid-parent-7.4.0.CR1/runtime/src/main/java/org/teiid/deployers/VDBRepository.java (rev 0)
+++ tags/teiid-parent-7.4.0.CR1/runtime/src/main/java/org/teiid/deployers/VDBRepository.java 2011-05-03 16:47:11 UTC (rev 3141)
@@ -0,0 +1,349 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership. Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301 USA.
+ */
+package org.teiid.deployers;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.LinkedHashSet;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.NavigableMap;
+import java.util.Properties;
+import java.util.concurrent.ConcurrentSkipListMap;
+import java.util.concurrent.CopyOnWriteArrayList;
+
+import org.jboss.deployers.spi.DeploymentException;
+import org.teiid.adminapi.AdminException;
+import org.teiid.adminapi.AdminProcessingException;
+import org.teiid.adminapi.impl.VDBMetaData;
+import org.teiid.core.CoreConstants;
+import org.teiid.core.types.DataTypeManager;
+import org.teiid.dqp.internal.datamgr.ConnectorManagerRepository;
+import org.teiid.logging.LogConstants;
+import org.teiid.logging.LogManager;
+import org.teiid.metadata.AbstractMetadataRecord;
+import org.teiid.metadata.Column;
+import org.teiid.metadata.ColumnStats;
+import org.teiid.metadata.Datatype;
+import org.teiid.metadata.MetadataRepository;
+import org.teiid.metadata.MetadataStore;
+import org.teiid.metadata.Procedure;
+import org.teiid.metadata.Schema;
+import org.teiid.metadata.Table;
+import org.teiid.metadata.TableStats;
+import org.teiid.query.function.SystemFunctionManager;
+import org.teiid.query.metadata.TransformationMetadata.Resource;
+import org.teiid.runtime.RuntimePlugin;
+import org.teiid.translator.TranslatorException;
+import org.teiid.vdb.runtime.VDBKey;
+
+
+/**
+ * Repository for VDBs
+ */
+public class VDBRepository implements Serializable{
+ private static final long serialVersionUID = 312177538191772674L;
+
+ private NavigableMap<VDBKey, CompositeVDB> vdbRepo = new ConcurrentSkipListMap<VDBKey, CompositeVDB>();
+ private MetadataStore systemStore;
+ private MetadataStore odbcStore;
+ private boolean odbcEnabled = false;
+ private List<VDBLifeCycleListener> listeners = new CopyOnWriteArrayList<VDBLifeCycleListener>();
+ private SystemFunctionManager systemFunctionManager;
+ private MetadataRepository metadataRepository;
+
+ public MetadataRepository getMetadataRepository() {
+ return metadataRepository;
+ }
+
+ public void addVDB(VDBMetaData vdb, MetadataStoreGroup stores, LinkedHashMap<String, Resource> visibilityMap, UDFMetaData udf, ConnectorManagerRepository cmr) throws DeploymentException {
+ if (getVDB(vdb.getName(), vdb.getVersion()) != null) {
+ throw new DeploymentException(RuntimePlugin.Util.getString("duplicate_vdb", vdb.getName(), vdb.getVersion())); //$NON-NLS-1$
+ }
+
+ // get the system VDB metadata store
+ if (this.systemStore == null) {
+ throw new DeploymentException(RuntimePlugin.Util.getString("system_vdb_load_error")); //$NON-NLS-1$
+ }
+
+ if (this.odbcEnabled && odbcStore == null) {
+ this.odbcStore = getODBCMetadataStore();
+ }
+ CompositeVDB cvdb = null;
+ if (this.odbcStore == null) {
+ cvdb = new CompositeVDB(vdb, stores, visibilityMap, udf, this.systemFunctionManager.getSystemFunctions(), cmr, this.systemStore);
+ }
+ else {
+ cvdb = new CompositeVDB(vdb, stores, visibilityMap, udf, this.systemFunctionManager.getSystemFunctions(), cmr, this.systemStore, odbcStore);
+ }
+ updateFromMetadataRepository(stores, cvdb);
+ this.vdbRepo.put(vdbId(vdb), cvdb);
+ notifyAdd(vdb.getName(), vdb.getVersion());
+ }
+
+ private void updateFromMetadataRepository(MetadataStoreGroup stores,
+ CompositeVDB cvdb) {
+ if (metadataRepository == null) {
+ return;
+ }
+ String vdbName = cvdb.getVDB().getName();
+ int vdbVersion = cvdb.getVDB().getVersion();
+ LinkedList<MetadataStore> allStores = new LinkedList<MetadataStore>(stores.getStores());
+ allStores.addAll(Arrays.asList(cvdb.getAdditionalStores()));
+ metadataRepository.startLoadVdb(vdbName, vdbVersion);
+ for (MetadataStore metadataStore : allStores) {
+ Collection<AbstractMetadataRecord> records = new LinkedHashSet<AbstractMetadataRecord>();
+ for (Schema schema : metadataStore.getSchemas().values()) {
+ records.add(schema);
+ for (Table t : schema.getTables().values()) {
+ records.add(t);
+ records.addAll(t.getColumns());
+ records.addAll(t.getAllKeys());
+ if (t.isPhysical()) {
+ TableStats stats = metadataRepository.getTableStats(vdbName, vdbVersion, t);
+ if (stats != null) {
+ t.setTableStats(stats);
+ }
+ for (Column c : t.getColumns()) {
+ ColumnStats cStats = metadataRepository.getColumnStats(vdbName, vdbVersion, c);
+ if (cStats != null) {
+ c.setColumnStats(cStats);
+ }
+ }
+ } else {
+ String def = metadataRepository.getViewDefinition(vdbName, vdbVersion, t);
+ if (def != null) {
+ t.setSelectTransformation(def);
+ }
+ if (t.supportsUpdate()) {
+ def = metadataRepository.getInsteadOfTriggerDefinition(vdbName, vdbVersion, t, Table.TriggerEvent.INSERT);
+ if (def != null) {
+ t.setInsertPlan(def);
+ }
+ Boolean enabled = metadataRepository.isInsteadOfTriggerEnabled(vdbName, vdbVersion, t, Table.TriggerEvent.INSERT);
+ if (enabled != null) {
+ t.setInsertPlanEnabled(enabled);
+ }
+ def = metadataRepository.getInsteadOfTriggerDefinition(vdbName, vdbVersion, t, Table.TriggerEvent.UPDATE);
+ if (def != null) {
+ t.setUpdatePlan(def);
+ }
+ enabled = metadataRepository.isInsteadOfTriggerEnabled(vdbName, vdbVersion, t, Table.TriggerEvent.UPDATE);
+ if (enabled != null) {
+ t.setUpdatePlanEnabled(enabled);
+ }
+ def = metadataRepository.getInsteadOfTriggerDefinition(vdbName, vdbVersion, t, Table.TriggerEvent.DELETE);
+ if (def != null) {
+ t.setDeletePlan(def);
+ }
+ enabled = metadataRepository.isInsteadOfTriggerEnabled(vdbName, vdbVersion, t, Table.TriggerEvent.DELETE);
+ if (enabled != null) {
+ t.setDeletePlanEnabled(enabled);
+ }
+ }
+ }
+ }
+ for (Procedure p : schema.getProcedures().values()) {
+ records.add(p);
+ records.addAll(p.getParameters());
+ if (p.getResultSet() != null) {
+ records.addAll(p.getResultSet().getColumns());
+ }
+ if (p.isVirtual() && !p.isFunction()) {
+ String proc = metadataRepository.getProcedureDefinition(vdbName, vdbVersion, p);
+ if (proc != null) {
+ p.setQueryPlan(proc);
+ }
+ }
+ }
+ }
+ for (AbstractMetadataRecord abstractMetadataRecord : records) {
+ LinkedHashMap<String, String> p = metadataRepository.getProperties(vdbName, vdbVersion, abstractMetadataRecord);
+ if (p != null) {
+ abstractMetadataRecord.setProperties(p);
+ }
+ }
+ }
+ metadataRepository.endLoadVdb(vdbName, vdbVersion);
+ }
+
+ public VDBMetaData getVDB(String name, int version) {
+ CompositeVDB v = this.vdbRepo.get(new VDBKey(name, version));
+ if (v != null) {
+ return v.getVDB();
+ }
+ return null;
+ }
+
+ public List<VDBMetaData> getVDBs(){
+ ArrayList<VDBMetaData> vdbs = new ArrayList<VDBMetaData>();
+ for(CompositeVDB cVDB:this.vdbRepo.values()) {
+ vdbs.add(cVDB.getVDB());
+ }
+ return vdbs;
+ }
+
+ protected VDBKey vdbId(VDBMetaData vdb) {
+ return new VDBKey(vdb.getName(), vdb.getVersion());
+ }
+
+ public VDBMetaData getVDB(String vdbName) {
+ int latestVersion = 0;
+ for (VDBKey key:this.vdbRepo.tailMap(new VDBKey(vdbName, 0)).keySet()) {
+ if(!key.getName().equalsIgnoreCase(vdbName)) {
+ break;
+ }
+ VDBMetaData vdb = this.vdbRepo.get(key).getVDB();
+ switch (vdb.getConnectionType()) {
+ case ANY:
+ latestVersion = Math.max(vdb.getVersion(), latestVersion);
+ break;
+ case BY_VERSION:
+ if (latestVersion == 0) {
+ latestVersion = vdb.getVersion();
+ }
+ break;
+ }
+ }
+ if(latestVersion == 0) {
+ return null;
+ }
+
+ return getVDB(vdbName, latestVersion);
+ }
+
+ public MetadataStore getSystemStore() {
+ return systemStore;
+ }
+
+ public MetadataStore getODBCStore() {
+ return this.odbcStore;
+ }
+
+ public void setSystemStore(MetadataStore store) {
+ this.systemStore = store;
+ }
+
+ public void setMetadataRepository(MetadataRepository metadataRepository) {
+ this.metadataRepository = metadataRepository;
+ }
+
+ private MetadataStore getODBCMetadataStore() {
+ try {
+ PgCatalogMetadataStore pg = new PgCatalogMetadataStore(CoreConstants.ODBC_MODEL, getBuiltinDatatypes(), new Properties());
+ return pg.getMetadataStore();
+ } catch (TranslatorException e) {
+ LogManager.logError(LogConstants.CTX_DQP, RuntimePlugin.Util.getString("failed_to_load_odbc_metadata")); //$NON-NLS-1$
+ }
+ return null;
+ }
+
+ public void odbcEnabled() {
+ this.odbcEnabled = true;
+ }
+
+ public boolean removeVDB(String vdbName, int vdbVersion) {
+ VDBKey key = new VDBKey(vdbName, vdbVersion);
+ CompositeVDB removed = this.vdbRepo.remove(key);
+ if (removed != null) {
+ // if this VDB was part of another VDB; then remove them.
+ for (CompositeVDB other:this.vdbRepo.values()) {
+ other.removeChild(key);
+ }
+ notifyRemove(key.getName(), key.getVersion());
+ return true;
+ }
+ return false;
+ }
+
+ public Map<String, Datatype> getBuiltinDatatypes() {
+ Collection<Datatype> datatypes = this.systemStore.getDatatypes();
+ Map<String, Datatype> datatypeMap = new HashMap<String, Datatype>();
+ for (Class<?> typeClass : DataTypeManager.getAllDataTypeClasses()) {
+ for (Datatype datatypeRecordImpl : datatypes) {
+ if (datatypeRecordImpl.getJavaClassName().equals(typeClass.getName())) {
+ datatypeMap.put(DataTypeManager.getDataTypeName(typeClass), datatypeRecordImpl);
+ break;
+ }
+ }
+ }
+ return datatypeMap;
+ }
+
+ public void mergeVDBs(String sourceVDBName, int sourceVDBVersion, String targetVDBName, int targetVDBVersion) throws AdminException{
+ CompositeVDB source = this.vdbRepo.get(new VDBKey(sourceVDBName, sourceVDBVersion));
+ if (source == null) {
+ throw new AdminProcessingException(RuntimePlugin.Util.getString("vdb_not_found", sourceVDBName, sourceVDBVersion)); //$NON-NLS-1$
+ }
+
+ CompositeVDB target = this.vdbRepo.get(new VDBKey(targetVDBName, targetVDBVersion));
+ if (target == null) {
+ throw new AdminProcessingException(RuntimePlugin.Util.getString("vdb_not_found", sourceVDBName, sourceVDBVersion)); //$NON-NLS-1$
+ }
+
+ // merge them
+ target.addChild(source);
+ }
+
+ // this is called by mc
+ public void start() {
+ if (this.odbcEnabled) {
+ this.odbcStore = getODBCMetadataStore();
+ }
+ }
+
+ void updateVDB(String name, int version) {
+ CompositeVDB v = this.vdbRepo.get(new VDBKey(name, version));
+ if (v!= null) {
+ v.update(v.getVDB(), systemFunctionManager.getSystemFunctions());
+ }
+ }
+
+ public void addListener(VDBLifeCycleListener listener) {
+ this.listeners.add(listener);
+ }
+
+ public void removeListener(VDBLifeCycleListener listener) {
+ this.listeners.remove(listener);
+ }
+
+ private void notifyAdd(String name, int version) {
+ for(VDBLifeCycleListener l:this.listeners) {
+ l.added(name, version);
+ }
+ }
+
+ private void notifyRemove(String name, int version) {
+ for(VDBLifeCycleListener l:this.listeners) {
+ l.removed(name, version);
+ }
+ }
+
+ public void setSystemFunctionManager(SystemFunctionManager mgr) {
+ this.systemFunctionManager = mgr;
+ }
+}
Deleted: tags/teiid-parent-7.4.0.CR1/test-integration/common/pom.xml
===================================================================
--- trunk/test-integration/common/pom.xml 2011-05-03 09:43:58 UTC (rev 3137)
+++ tags/teiid-parent-7.4.0.CR1/test-integration/common/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <parent>
- <artifactId>teiid-test-integration</artifactId>
- <groupId>org.jboss.teiid</groupId>
- <version>7.4.0.CR1-SNAPSHOT</version>
- </parent>
- <modelVersion>4.0.0</modelVersion>
- <artifactId>test-integration-common</artifactId>
- <name>Common Integration Tests</name>
- <description>Common Integration tests that do not require external dependencies</description>
- <dependencies>
- <dependency>
- <groupId>postgresql</groupId>
- <artifactId>postgresql</artifactId>
- <version>8.3-606.jdbc3</version>
- </dependency>
- </dependencies>
-
-</project>
\ No newline at end of file
Copied: tags/teiid-parent-7.4.0.CR1/test-integration/common/pom.xml (from rev 3140, trunk/test-integration/common/pom.xml)
===================================================================
--- tags/teiid-parent-7.4.0.CR1/test-integration/common/pom.xml (rev 0)
+++ tags/teiid-parent-7.4.0.CR1/test-integration/common/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <artifactId>teiid-test-integration</artifactId>
+ <groupId>org.jboss.teiid</groupId>
+ <version>7.4.0.CR1</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>test-integration-common</artifactId>
+ <name>Common Integration Tests</name>
+ <description>Common Integration tests that do not require external dependencies</description>
+ <dependencies>
+ <dependency>
+ <groupId>postgresql</groupId>
+ <artifactId>postgresql</artifactId>
+ <version>8.3-606.jdbc3</version>
+ </dependency>
+ </dependencies>
+
+</project>
\ No newline at end of file
Deleted: tags/teiid-parent-7.4.0.CR1/test-integration/db/pom.xml
===================================================================
--- trunk/test-integration/db/pom.xml 2011-05-03 09:43:58 UTC (rev 3137)
+++ tags/teiid-parent-7.4.0.CR1/test-integration/db/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -1,537 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-
-<!--
- The database dependent tests are meant to be run on their own, not as part of the continous or nightly
- build for Teiid.
--->
-
- <parent>
- <artifactId>teiid-test-integration</artifactId>
- <groupId>org.jboss.teiid</groupId>
- <version>7.4.0.CR1-SNAPSHOT</version>
- </parent>
-
- <modelVersion>4.0.0</modelVersion>
- <artifactId>test-integration-db</artifactId>
-
- <name>DB Dependent Integration Tests</name>
- <groupId>org.jboss.teiid.teiid-test-integration</groupId>
- <description>Integration tests that require external database dependencies </description>
- <dependencies>
-
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>4.4</version>
- </dependency>
-
- <dependency>
- <groupId>javax.transaction</groupId>
- <artifactId>jta</artifactId>
- <version>1.1</version>
- </dependency>
-
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-client</artifactId>
- </dependency>
-
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-client</artifactId>
- <type>test-jar</type>
- <scope>compile</scope>
- </dependency>
-
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-common-core</artifactId>
- </dependency>
-
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-common-core</artifactId>
- <type>test-jar</type>
- <scope>compile</scope>
- </dependency>
-
-
-
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-engine</artifactId>
- <type>test-jar</type>
- <scope>compile</scope>
- </dependency>
-
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>test-integration-common</artifactId>
- <type>test-jar</type>
- <scope>compile</scope>
- <version>${project.version}</version>
- </dependency>
-
- <dependency>
- <groupId>org.apache.ant</groupId>
- <artifactId>ant</artifactId>
- <version>1.7.0</version>
- </dependency>
-
- <dependency>
- <groupId>org.apache.ant</groupId>
- <artifactId>ant-launcher</artifactId>
- <version>1.7.0</version>
- </dependency>
- <dependency>
- <groupId>ant-contrib</groupId>
- <artifactId>ant-contrib</artifactId>
- <version>1.0b3</version>
- <exclusions>
- <exclusion>
- <groupId>ant</groupId>
- <artifactId>ant</artifactId>
- </exclusion>
- </exclusions>
-
- </dependency>
-
- <dependency>
- <groupId>ant-contrib</groupId>
- <artifactId>cpptasks</artifactId>
- <version>1.0b3</version>
- <exclusions>
- <exclusion>
- <groupId>ant</groupId>
- <artifactId>ant</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
-
-
- <!-- DBUnit dependencies -->
-
- <dependency>
- <groupId>org.dbunit</groupId>
- <artifactId>dbunit</artifactId>
- <version>2.2</version>
- </dependency>
-
- <dependency>
- <groupId>commons-collections</groupId>
- <artifactId>commons-collections</artifactId>
- <version>3.2.1</version>
- </dependency>
-
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-api</artifactId>
- <version>1.5.6</version>
- </dependency>
-
-
- <dependency>
- <groupId>org.apache.poi</groupId>
- <artifactId>poi</artifactId>
- <version>3.2-FINAL</version>
- </dependency>
-
- <dependency>
- <groupId>jdom</groupId>
- <artifactId>jdom</artifactId>
- <version>1.0</version>
- </dependency>
-
- <dependency>
- <groupId>postgresql</groupId>
- <artifactId>postgresql</artifactId>
- <version>${postgresql.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.derby</groupId>
- <artifactId>derby</artifactId>
- <version>${derby.version}</version>
- </dependency>
- <dependency>
- <groupId>mysql</groupId>
- <artifactId>mysql-connector-java</artifactId>
- <version>${mysql.connector.version}</version>
- </dependency>
-
- </dependencies>
-
- <profiles>
- <profile>
- <id>default</id>
- <activation>
- <activeByDefault>true</activeByDefault>
- </activation>
-
- <build>
- <plugins>
- <!-- Specify the compiler options and settings -->
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <configuration>
- <source>1.6</source>
- <target>1.6</target>
- <showDeprecation>false</showDeprecation>
- <showWarnings>false</showWarnings>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <configuration>
- <skip>true</skip>
- </configuration>
- </plugin>
-
- <plugin>
- <artifactId>maven-assembly-plugin</artifactId>
- <configuration>
- <descriptors>
- <descriptor>src/assembly/binaries.xml</descriptor>
- </descriptors>
- <outputDirectory>target/distribution</outputDirectory>
- <workDirectory>target/assembly/work</workDirectory>
- </configuration>
- <executions>
- <execution>
- <id>make-assembly</id>
- <phase>package</phase>
- <goals>
- <goal>attached</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
- </profile>
-
-
- <profile>
- <id>runalltests</id>
- <build>
- <plugins>
-
- <plugin>
- <artifactId>maven-surefire-plugin</artifactId>
- <configuration>
- <additionalClasspathElements>
- <additionalClasspathElement>${basedir}/lib/ojdbc6.jar</additionalClasspathElement>
- <additionalClasspathElement>${basedir}/lib/sqljdbc4.jar</additionalClasspathElement>
- <additionalClasspathElement>${basedir}/lib/db2jcc4.jar</additionalClasspathElement>
-
- </additionalClasspathElements>
- <systemProperties>
- <property>
- <name>usedatasources</name>
- <value>${usedatasources}</value>
- </property>
- <property>
- <name>datasourceloc</name>
- <value>${datasourceloc}</value>
- </property>
- </systemProperties>
-
-<!--
-<forkMode>always</forkMode>
- <forkedProcessTimeoutInSeconds>600</forkedProcessTimeoutInSeconds>
- -->
- <includes>
- <!-- <include>**/*TestCase.java</include> -->
- <include>**/*Test.java</include>
- <include>**/*Tests.java</include>
- <include>**/Test*.java</include>
- </includes>
- <excludes>
- <exclude>**/*Abstract*TestCase.java</exclude>
- <exclude>**/*Abstract*Test.java</exclude>
- <!-- hack to prevent anonymous inner classes in Tests from being run as tests -->
- <exclude>**/Test*$*.java</exclude>
- </excludes>
-
- </configuration>
- </plugin>
-
- </plugins>
-
- </build>
-
-<!-- <version>2.4.2</version> -->
-
- <reporting>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-report-plugin</artifactId>
-
- <configuration>
- <outputDirectory>${basedir}/target/newsite</outputDirectory>
- </configuration>
- </plugin>
- </plugins>
- </reporting>
- </profile>
-
- <profile>
- <id>runsingletest</id>
- <activation>
- <property>
- <name>classname</name>
- </property>
- </activation>
- <build>
- <plugins>
-
- <plugin>
- <artifactId>maven-surefire-plugin</artifactId>
- <configuration>
- <additionalClasspathElements>
- <additionalClasspathElement>${basedir}/lib/ojdbc6.jar</additionalClasspathElement>
- <additionalClasspathElement>${basedir}/lib/sqljdbc4.jar</additionalClasspathElement>
- <additionalClasspathElement>${basedir}/lib/db2jcc4.jar</additionalClasspathElement>
- </additionalClasspathElements>
- <systemProperties>
- <property>
- <name>usedatasources</name>
- <value>${usedatasources}</value>
- </property>
- <property>
- <name>datasourceloc</name>
- <value>${datasourceloc}</value>
- </property>
- </systemProperties>
-
-<!--
- <forkMode>always</forkMode>
-
- <forkedProcessTimeoutInSeconds>600</forkedProcessTimeoutInSeconds>
- -->
- <includes>
- <include>**/${classname}.java</include>
- </includes>
-
- </configuration>
- </plugin>
-
- </plugins>
- </build>
- </profile>
-
-
- <profile>
- <id>setupdatasources</id>
- <build>
- <plugins>
-
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <configuration>
- <skip>true</skip>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-antrun-plugin</artifactId>
- <dependencies>
- <dependency>
- <groupId>org.apache.ant</groupId>
- <artifactId>ant</artifactId>
- <version>${apache.ant.version}</version>
- </dependency>
- </dependencies>
- <configuration>
- </configuration>
- <executions>
- <execution>
- <id>setupalldatasources</id>
- <phase>pre-integration-test</phase>
- <configuration>
- <tasks>
- <property name="maven.runtime.classpath" refid="maven.runtime.classpath" />
- <property name="relative.resources.dir" value="src/main/resources" />
- <property name="datasourceloc" value="${datasourceloc}" />
- <ant antfile="src/main/resources/ddl/manage_schemas.xml" />
- </tasks>
- </configuration>
- <goals>
- <goal>run</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
-
-
- </plugins>
- </build>
- </profile>
- <profile>
- <id>singledatasource</id>
- <activation>
- <property>
- <name>datasource</name>
- </property>
- </activation>
- <build>
- <plugins>
-
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <configuration>
- <skip>true</skip>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-antrun-plugin</artifactId>
- <dependencies>
- <dependency>
- <groupId>org.apache.ant</groupId>
- <artifactId>ant</artifactId>
- <version>${apache.ant.version}</version>
- </dependency>
- </dependencies>
- <configuration>
-
- </configuration>
- <executions>
- <execution>
- <id>setupsingledatasource</id>
- <phase>pre-integration-test</phase>
- <configuration>
- <tasks>
-
- <property name="single" value="${datasource}" />
- <property name="maven.runtime.classpath" refid="maven.runtime.classpath" />
- <property name="datasourceloc" value="${datasourceloc}" />
-
- <property name="relative.resources.dir" value="src/main/resources" />
- <ant antfile="src/main/resources/ddl/manage_schemas.xml" />
- </tasks>
- </configuration>
- <goals>
- <goal>run</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
-
-
- </plugins>
- </build>
- </profile>
-
-
- <profile>
- <id>runclienttests</id>
- <activation>
- <property>
- <name>scenario.dir</name>
- </property>
- </activation>
- <build>
- <plugins>
-
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <configuration>
- <skip>true</skip>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-antrun-plugin</artifactId>
- <dependencies>
- <dependency>
- <groupId>org.apache.ant</groupId>
- <artifactId>ant</artifactId>
- <version>${apache.ant.version}</version>
- </dependency>
- </dependencies>
- <executions>
- <execution>
- <id>run-client-test</id>
- <phase>integration-test</phase>
- <configuration>
- <tasks>
-
- <property name="maven.runtime.classpath" refid="maven.runtime.classpath" />
- <property name="scenario.dir" value="${scenario.dir}" />
- <property name="queryset.artifacts.dir" value="${queryset.artifacts.dir}" />
- <property name="vdb.artifacts.dir" value="${vdb.artifacts.dir}" />
- <!-- optional properties -->
- <property name="config.file" value="${config.file}" />
- <property name="query.scenario.classname" value="${query.scenario.classname}" />
- <property name="proj.dir" value="${project.basedir}/target/" />
- <property name="usedatasources" value="${usedatasources}" />
- <property name="datasourceloc" value="${datasourceloc}" />
-
- <ant antfile="src/main/resources/ctc_tests/ctc.xml" />
-
- </tasks>
- </configuration>
- <goals>
- <goal>run</goal>
- </goals>
- </execution>
-
- </executions>
- </plugin>
- </plugins>
- </build>
-
- </profile>
-
- <profile>
- <id>assemble</id>
-<!-- assemble will compile, but not run the tests prior to assemblying the kit -->
-
- <build>
- <plugins>
-
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <configuration>
- <skip>true</skip>
- </configuration>
- </plugin>
-
- <plugin>
- <artifactId>maven-assembly-plugin</artifactId>
- <configuration>
- <descriptors>
- <descriptor>src/assembly/binaries.xml</descriptor>
- </descriptors>
- <outputDirectory>target/distribution</outputDirectory>
- <workDirectory>target/work/assembly</workDirectory>
-
- </configuration>
- <executions>
-
- <execution>
- <id>make-assembly</id>
- <phase>package</phase>
- <goals>
- <goal>attached</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
-
- </plugins>
- </build>
- </profile>
-
- </profiles>
-
-
-</project>
\ No newline at end of file
Copied: tags/teiid-parent-7.4.0.CR1/test-integration/db/pom.xml (from rev 3140, trunk/test-integration/db/pom.xml)
===================================================================
--- tags/teiid-parent-7.4.0.CR1/test-integration/db/pom.xml (rev 0)
+++ tags/teiid-parent-7.4.0.CR1/test-integration/db/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -0,0 +1,537 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+<!--
+ The database dependent tests are meant to be run on their own, not as part of the continous or nightly
+ build for Teiid.
+-->
+
+ <parent>
+ <artifactId>teiid-test-integration</artifactId>
+ <groupId>org.jboss.teiid</groupId>
+ <version>7.4.0.CR1</version>
+ </parent>
+
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>test-integration-db</artifactId>
+
+ <name>DB Dependent Integration Tests</name>
+ <groupId>org.jboss.teiid.teiid-test-integration</groupId>
+ <description>Integration tests that require external database dependencies </description>
+ <dependencies>
+
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.4</version>
+ </dependency>
+
+ <dependency>
+ <groupId>javax.transaction</groupId>
+ <artifactId>jta</artifactId>
+ <version>1.1</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-client</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-client</artifactId>
+ <type>test-jar</type>
+ <scope>compile</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-common-core</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-common-core</artifactId>
+ <type>test-jar</type>
+ <scope>compile</scope>
+ </dependency>
+
+
+
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-engine</artifactId>
+ <type>test-jar</type>
+ <scope>compile</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>test-integration-common</artifactId>
+ <type>test-jar</type>
+ <scope>compile</scope>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.ant</groupId>
+ <artifactId>ant</artifactId>
+ <version>1.7.0</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.ant</groupId>
+ <artifactId>ant-launcher</artifactId>
+ <version>1.7.0</version>
+ </dependency>
+ <dependency>
+ <groupId>ant-contrib</groupId>
+ <artifactId>ant-contrib</artifactId>
+ <version>1.0b3</version>
+ <exclusions>
+ <exclusion>
+ <groupId>ant</groupId>
+ <artifactId>ant</artifactId>
+ </exclusion>
+ </exclusions>
+
+ </dependency>
+
+ <dependency>
+ <groupId>ant-contrib</groupId>
+ <artifactId>cpptasks</artifactId>
+ <version>1.0b3</version>
+ <exclusions>
+ <exclusion>
+ <groupId>ant</groupId>
+ <artifactId>ant</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
+
+ <!-- DBUnit dependencies -->
+
+ <dependency>
+ <groupId>org.dbunit</groupId>
+ <artifactId>dbunit</artifactId>
+ <version>2.2</version>
+ </dependency>
+
+ <dependency>
+ <groupId>commons-collections</groupId>
+ <artifactId>commons-collections</artifactId>
+ <version>3.2.1</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ <version>1.5.6</version>
+ </dependency>
+
+
+ <dependency>
+ <groupId>org.apache.poi</groupId>
+ <artifactId>poi</artifactId>
+ <version>3.2-FINAL</version>
+ </dependency>
+
+ <dependency>
+ <groupId>jdom</groupId>
+ <artifactId>jdom</artifactId>
+ <version>1.0</version>
+ </dependency>
+
+ <dependency>
+ <groupId>postgresql</groupId>
+ <artifactId>postgresql</artifactId>
+ <version>${postgresql.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.derby</groupId>
+ <artifactId>derby</artifactId>
+ <version>${derby.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>mysql</groupId>
+ <artifactId>mysql-connector-java</artifactId>
+ <version>${mysql.connector.version}</version>
+ </dependency>
+
+ </dependencies>
+
+ <profiles>
+ <profile>
+ <id>default</id>
+ <activation>
+ <activeByDefault>true</activeByDefault>
+ </activation>
+
+ <build>
+ <plugins>
+ <!-- Specify the compiler options and settings -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <source>1.6</source>
+ <target>1.6</target>
+ <showDeprecation>false</showDeprecation>
+ <showWarnings>false</showWarnings>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <skip>true</skip>
+ </configuration>
+ </plugin>
+
+ <plugin>
+ <artifactId>maven-assembly-plugin</artifactId>
+ <configuration>
+ <descriptors>
+ <descriptor>src/assembly/binaries.xml</descriptor>
+ </descriptors>
+ <outputDirectory>target/distribution</outputDirectory>
+ <workDirectory>target/assembly/work</workDirectory>
+ </configuration>
+ <executions>
+ <execution>
+ <id>make-assembly</id>
+ <phase>package</phase>
+ <goals>
+ <goal>attached</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+
+
+ <profile>
+ <id>runalltests</id>
+ <build>
+ <plugins>
+
+ <plugin>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <additionalClasspathElements>
+ <additionalClasspathElement>${basedir}/lib/ojdbc6.jar</additionalClasspathElement>
+ <additionalClasspathElement>${basedir}/lib/sqljdbc4.jar</additionalClasspathElement>
+ <additionalClasspathElement>${basedir}/lib/db2jcc4.jar</additionalClasspathElement>
+
+ </additionalClasspathElements>
+ <systemProperties>
+ <property>
+ <name>usedatasources</name>
+ <value>${usedatasources}</value>
+ </property>
+ <property>
+ <name>datasourceloc</name>
+ <value>${datasourceloc}</value>
+ </property>
+ </systemProperties>
+
+<!--
+<forkMode>always</forkMode>
+ <forkedProcessTimeoutInSeconds>600</forkedProcessTimeoutInSeconds>
+ -->
+ <includes>
+ <!-- <include>**/*TestCase.java</include> -->
+ <include>**/*Test.java</include>
+ <include>**/*Tests.java</include>
+ <include>**/Test*.java</include>
+ </includes>
+ <excludes>
+ <exclude>**/*Abstract*TestCase.java</exclude>
+ <exclude>**/*Abstract*Test.java</exclude>
+ <!-- hack to prevent anonymous inner classes in Tests from being run as tests -->
+ <exclude>**/Test*$*.java</exclude>
+ </excludes>
+
+ </configuration>
+ </plugin>
+
+ </plugins>
+
+ </build>
+
+<!-- <version>2.4.2</version> -->
+
+ <reporting>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-report-plugin</artifactId>
+
+ <configuration>
+ <outputDirectory>${basedir}/target/newsite</outputDirectory>
+ </configuration>
+ </plugin>
+ </plugins>
+ </reporting>
+ </profile>
+
+ <profile>
+ <id>runsingletest</id>
+ <activation>
+ <property>
+ <name>classname</name>
+ </property>
+ </activation>
+ <build>
+ <plugins>
+
+ <plugin>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <additionalClasspathElements>
+ <additionalClasspathElement>${basedir}/lib/ojdbc6.jar</additionalClasspathElement>
+ <additionalClasspathElement>${basedir}/lib/sqljdbc4.jar</additionalClasspathElement>
+ <additionalClasspathElement>${basedir}/lib/db2jcc4.jar</additionalClasspathElement>
+ </additionalClasspathElements>
+ <systemProperties>
+ <property>
+ <name>usedatasources</name>
+ <value>${usedatasources}</value>
+ </property>
+ <property>
+ <name>datasourceloc</name>
+ <value>${datasourceloc}</value>
+ </property>
+ </systemProperties>
+
+<!--
+ <forkMode>always</forkMode>
+
+ <forkedProcessTimeoutInSeconds>600</forkedProcessTimeoutInSeconds>
+ -->
+ <includes>
+ <include>**/${classname}.java</include>
+ </includes>
+
+ </configuration>
+ </plugin>
+
+ </plugins>
+ </build>
+ </profile>
+
+
+ <profile>
+ <id>setupdatasources</id>
+ <build>
+ <plugins>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <skip>true</skip>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.ant</groupId>
+ <artifactId>ant</artifactId>
+ <version>${apache.ant.version}</version>
+ </dependency>
+ </dependencies>
+ <configuration>
+ </configuration>
+ <executions>
+ <execution>
+ <id>setupalldatasources</id>
+ <phase>pre-integration-test</phase>
+ <configuration>
+ <tasks>
+ <property name="maven.runtime.classpath" refid="maven.runtime.classpath" />
+ <property name="relative.resources.dir" value="src/main/resources" />
+ <property name="datasourceloc" value="${datasourceloc}" />
+ <ant antfile="src/main/resources/ddl/manage_schemas.xml" />
+ </tasks>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+
+
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <id>singledatasource</id>
+ <activation>
+ <property>
+ <name>datasource</name>
+ </property>
+ </activation>
+ <build>
+ <plugins>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <skip>true</skip>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.ant</groupId>
+ <artifactId>ant</artifactId>
+ <version>${apache.ant.version}</version>
+ </dependency>
+ </dependencies>
+ <configuration>
+
+ </configuration>
+ <executions>
+ <execution>
+ <id>setupsingledatasource</id>
+ <phase>pre-integration-test</phase>
+ <configuration>
+ <tasks>
+
+ <property name="single" value="${datasource}" />
+ <property name="maven.runtime.classpath" refid="maven.runtime.classpath" />
+ <property name="datasourceloc" value="${datasourceloc}" />
+
+ <property name="relative.resources.dir" value="src/main/resources" />
+ <ant antfile="src/main/resources/ddl/manage_schemas.xml" />
+ </tasks>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+
+
+ </plugins>
+ </build>
+ </profile>
+
+
+ <profile>
+ <id>runclienttests</id>
+ <activation>
+ <property>
+ <name>scenario.dir</name>
+ </property>
+ </activation>
+ <build>
+ <plugins>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <skip>true</skip>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.ant</groupId>
+ <artifactId>ant</artifactId>
+ <version>${apache.ant.version}</version>
+ </dependency>
+ </dependencies>
+ <executions>
+ <execution>
+ <id>run-client-test</id>
+ <phase>integration-test</phase>
+ <configuration>
+ <tasks>
+
+ <property name="maven.runtime.classpath" refid="maven.runtime.classpath" />
+ <property name="scenario.dir" value="${scenario.dir}" />
+ <property name="queryset.artifacts.dir" value="${queryset.artifacts.dir}" />
+ <property name="vdb.artifacts.dir" value="${vdb.artifacts.dir}" />
+ <!-- optional properties -->
+ <property name="config.file" value="${config.file}" />
+ <property name="query.scenario.classname" value="${query.scenario.classname}" />
+ <property name="proj.dir" value="${project.basedir}/target/" />
+ <property name="usedatasources" value="${usedatasources}" />
+ <property name="datasourceloc" value="${datasourceloc}" />
+
+ <ant antfile="src/main/resources/ctc_tests/ctc.xml" />
+
+ </tasks>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+
+ </profile>
+
+ <profile>
+ <id>assemble</id>
+<!-- assemble will compile, but not run the tests prior to assemblying the kit -->
+
+ <build>
+ <plugins>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <skip>true</skip>
+ </configuration>
+ </plugin>
+
+ <plugin>
+ <artifactId>maven-assembly-plugin</artifactId>
+ <configuration>
+ <descriptors>
+ <descriptor>src/assembly/binaries.xml</descriptor>
+ </descriptors>
+ <outputDirectory>target/distribution</outputDirectory>
+ <workDirectory>target/work/assembly</workDirectory>
+
+ </configuration>
+ <executions>
+
+ <execution>
+ <id>make-assembly</id>
+ <phase>package</phase>
+ <goals>
+ <goal>attached</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+
+ </plugins>
+ </build>
+ </profile>
+
+ </profiles>
+
+
+</project>
\ No newline at end of file
Deleted: tags/teiid-parent-7.4.0.CR1/test-integration/pom.xml
===================================================================
--- trunk/test-integration/pom.xml 2011-05-03 09:43:58 UTC (rev 3137)
+++ tags/teiid-parent-7.4.0.CR1/test-integration/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -1,107 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <parent>
- <artifactId>teiid-parent</artifactId>
- <groupId>org.jboss.teiid</groupId>
- <version>7.4.0.CR1-SNAPSHOT</version>
- </parent>
- <modelVersion>4.0.0</modelVersion>
- <artifactId>teiid-test-integration</artifactId>
- <packaging>pom</packaging>
- <name>Integration Tests</name>
- <description>Integration tests spanning server/embedded/connectors.</description>
-
- <properties>
- <derby.version>10.2.1.6</derby.version>
- <mysql.connector.version>5.1.5</mysql.connector.version>
- <postgresql.version>8.3-603.jdbc3</postgresql.version>
-
- <apache.ant.version>1.7.0</apache.ant.version>
- </properties>
-
- <dependencies>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-common-core</artifactId>
- <type>test-jar</type>
- </dependency>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-metadata</artifactId>
- </dependency>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-metadata</artifactId>
- <type>test-jar</type>
- </dependency>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-api</artifactId>
- </dependency>
- <dependency>
- <groupId>org.jboss.teiid.connectors</groupId>
- <artifactId>translator-jdbc</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-client</artifactId>
- </dependency>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-client</artifactId>
- <type>test-jar</type>
- </dependency>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-engine</artifactId>
- <type>test-jar</type>
- </dependency>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-adminshell</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.jboss.teiid</groupId>
- <artifactId>teiid-runtime</artifactId>
- </dependency>
-
- <!-- external dependencies -->
- <dependency>
- <groupId>org.apache.derby</groupId>
- <artifactId>derby</artifactId>
- <version>${derby.version}</version>
-
- </dependency>
-
- <dependency>
- <groupId>javax.resource</groupId>
- <artifactId>connector-api</artifactId>
- <scope>provided</scope>
- </dependency>
-
- <dependency>
- <groupId>javax.transaction</groupId>
- <artifactId>jta</artifactId>
- </dependency>
-
- <dependency>
- <groupId>org.jboss.deployers</groupId>
- <artifactId>jboss-deployers-vfs-spi</artifactId>
- <scope>provided</scope>
- </dependency>
-
- <dependency>
- <groupId>org.jboss.deployers</groupId>
- <artifactId>jboss-deployers-vfs</artifactId>
- <scope>provided</scope>
- </dependency>
-
- </dependencies>
-
- <modules>
- <module>common</module>
- <module>db</module>
- </modules>
-</project>
\ No newline at end of file
Copied: tags/teiid-parent-7.4.0.CR1/test-integration/pom.xml (from rev 3140, trunk/test-integration/pom.xml)
===================================================================
--- tags/teiid-parent-7.4.0.CR1/test-integration/pom.xml (rev 0)
+++ tags/teiid-parent-7.4.0.CR1/test-integration/pom.xml 2011-05-03 16:47:11 UTC (rev 3141)
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <artifactId>teiid-parent</artifactId>
+ <groupId>org.jboss.teiid</groupId>
+ <version>7.4.0.CR1</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>teiid-test-integration</artifactId>
+ <packaging>pom</packaging>
+ <name>Integration Tests</name>
+ <description>Integration tests spanning server/embedded/connectors.</description>
+
+ <properties>
+ <derby.version>10.2.1.6</derby.version>
+ <mysql.connector.version>5.1.5</mysql.connector.version>
+ <postgresql.version>8.3-603.jdbc3</postgresql.version>
+
+ <apache.ant.version>1.7.0</apache.ant.version>
+ </properties>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-common-core</artifactId>
+ <type>test-jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-metadata</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-metadata</artifactId>
+ <type>test-jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.teiid.connectors</groupId>
+ <artifactId>translator-jdbc</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-client</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-client</artifactId>
+ <type>test-jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-engine</artifactId>
+ <type>test-jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-adminshell</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.teiid</groupId>
+ <artifactId>teiid-runtime</artifactId>
+ </dependency>
+
+ <!-- external dependencies -->
+ <dependency>
+ <groupId>org.apache.derby</groupId>
+ <artifactId>derby</artifactId>
+ <version>${derby.version}</version>
+
+ </dependency>
+
+ <dependency>
+ <groupId>javax.resource</groupId>
+ <artifactId>connector-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>javax.transaction</groupId>
+ <artifactId>jta</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.deployers</groupId>
+ <artifactId>jboss-deployers-vfs-spi</artifactId>
+ <scope>provided</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.deployers</groupId>
+ <artifactId>jboss-deployers-vfs</artifactId>
+ <scope>provided</scope>
+ </dependency>
+
+ </dependencies>
+
+ <modules>
+ <module>common</module>
+ <module>db</module>
+ </modules>
+</project>
\ No newline at end of file
14 years, 7 months
teiid SVN: r3140 - in trunk: adminshell and 37 other directories.
by teiid-commits@lists.jboss.org
Author: shawkins
Date: 2011-05-03 12:43:26 -0400 (Tue, 03 May 2011)
New Revision: 3140
Modified:
trunk/adminshell/pom.xml
trunk/api/pom.xml
trunk/build/pom.xml
trunk/cache-jbosscache/pom.xml
trunk/client-jdk15/pom.xml
trunk/client/pom.xml
trunk/common-core/pom.xml
trunk/connectors/connector-file/pom.xml
trunk/connectors/connector-ldap/pom.xml
trunk/connectors/connector-salesforce/pom.xml
trunk/connectors/connector-ws/pom.xml
trunk/connectors/pom.xml
trunk/connectors/salesforce-api/pom.xml
trunk/connectors/sandbox/pom.xml
trunk/connectors/sandbox/translator-yahoo/pom.xml
trunk/connectors/translator-file/pom.xml
trunk/connectors/translator-jdbc/pom.xml
trunk/connectors/translator-ldap/pom.xml
trunk/connectors/translator-loopback/pom.xml
trunk/connectors/translator-olap/pom.xml
trunk/connectors/translator-salesforce/pom.xml
trunk/connectors/translator-ws/pom.xml
trunk/console/pom.xml
trunk/documentation/admin-guide/pom.xml
trunk/documentation/caching-guide/pom.xml
trunk/documentation/client-developers-guide/pom.xml
trunk/documentation/developer-guide/pom.xml
trunk/documentation/pom.xml
trunk/documentation/quick-start-example/pom.xml
trunk/documentation/reference/pom.xml
trunk/engine/pom.xml
trunk/hibernate-dialect/pom.xml
trunk/jboss-integration/pom.xml
trunk/metadata/pom.xml
trunk/pom.xml
trunk/runtime/pom.xml
trunk/test-integration/common/pom.xml
trunk/test-integration/db/pom.xml
trunk/test-integration/pom.xml
Log:
[maven-release-plugin] prepare release teiid-parent-7.4.0.CR1
Modified: trunk/adminshell/pom.xml
===================================================================
--- trunk/adminshell/pom.xml 2011-05-03 16:35:33 UTC (rev 3139)
+++ trunk/adminshell/pom.xml 2011-05-03 16:43:26 UTC (rev 3140)
@@ -3,7 +3,7 @@
<parent>
<artifactId>teiid-parent</artifactId>
<groupId>org.jboss.teiid</groupId>
- <version>7.4.0.CR1-SNAPSHOT</version>
+ <version>7.4.0.CR1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>teiid-adminshell</artifactId>
Modified: trunk/api/pom.xml
===================================================================
--- trunk/api/pom.xml 2011-05-03 16:35:33 UTC (rev 3139)
+++ trunk/api/pom.xml 2011-05-03 16:43:26 UTC (rev 3140)
@@ -3,7 +3,7 @@
<parent>
<artifactId>teiid-parent</artifactId>
<groupId>org.jboss.teiid</groupId>
- <version>7.4.0.CR1-SNAPSHOT</version>
+ <version>7.4.0.CR1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>teiid-api</artifactId>
Modified: trunk/build/pom.xml
===================================================================
--- trunk/build/pom.xml 2011-05-03 16:35:33 UTC (rev 3139)
+++ trunk/build/pom.xml 2011-05-03 16:43:26 UTC (rev 3140)
@@ -2,7 +2,7 @@
<parent>
<artifactId>teiid-parent</artifactId>
<groupId>org.jboss.teiid</groupId>
- <version>7.4.0.CR1-SNAPSHOT</version>
+ <version>7.4.0.CR1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>teiid</artifactId>
Modified: trunk/cache-jbosscache/pom.xml
===================================================================
--- trunk/cache-jbosscache/pom.xml 2011-05-03 16:35:33 UTC (rev 3139)
+++ trunk/cache-jbosscache/pom.xml 2011-05-03 16:43:26 UTC (rev 3140)
@@ -3,7 +3,7 @@
<parent>
<artifactId>teiid-parent</artifactId>
<groupId>org.jboss.teiid</groupId>
- <version>7.4.0.CR1-SNAPSHOT</version>
+ <version>7.4.0.CR1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>teiid-cache-jbosscache</artifactId>
Modified: trunk/client/pom.xml
===================================================================
--- trunk/client/pom.xml 2011-05-03 16:35:33 UTC (rev 3139)
+++ trunk/client/pom.xml 2011-05-03 16:43:26 UTC (rev 3140)
@@ -3,7 +3,7 @@
<parent>
<artifactId>teiid-parent</artifactId>
<groupId>org.jboss.teiid</groupId>
- <version>7.4.0.CR1-SNAPSHOT</version>
+ <version>7.4.0.CR1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>teiid-client</artifactId>
Modified: trunk/client-jdk15/pom.xml
===================================================================
--- trunk/client-jdk15/pom.xml 2011-05-03 16:35:33 UTC (rev 3139)
+++ trunk/client-jdk15/pom.xml 2011-05-03 16:43:26 UTC (rev 3140)
@@ -3,7 +3,7 @@
<parent>
<artifactId>teiid-parent</artifactId>
<groupId>org.jboss.teiid</groupId>
- <version>7.4.0.CR1-SNAPSHOT</version>
+ <version>7.4.0.CR1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>teiid-client-jdk15</artifactId>
Modified: trunk/common-core/pom.xml
===================================================================
--- trunk/common-core/pom.xml 2011-05-03 16:35:33 UTC (rev 3139)
+++ trunk/common-core/pom.xml 2011-05-03 16:43:26 UTC (rev 3140)
@@ -3,7 +3,7 @@
<parent>
<artifactId>teiid-parent</artifactId>
<groupId>org.jboss.teiid</groupId>
- <version>7.4.0.CR1-SNAPSHOT</version>
+ <version>7.4.0.CR1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>teiid-common-core</artifactId>
Modified: trunk/connectors/connector-file/pom.xml
===================================================================
--- trunk/connectors/connector-file/pom.xml 2011-05-03 16:35:33 UTC (rev 3139)
+++ trunk/connectors/connector-file/pom.xml 2011-05-03 16:43:26 UTC (rev 3140)
@@ -3,7 +3,7 @@
<parent>
<artifactId>connectors</artifactId>
<groupId>org.jboss.teiid</groupId>
- <version>7.4.0.CR1-SNAPSHOT</version>
+ <version>7.4.0.CR1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>connector-file</artifactId>
Modified: trunk/connectors/connector-ldap/pom.xml
===================================================================
--- trunk/connectors/connector-ldap/pom.xml 2011-05-03 16:35:33 UTC (rev 3139)
+++ trunk/connectors/connector-ldap/pom.xml 2011-05-03 16:43:26 UTC (rev 3140)
@@ -2,7 +2,7 @@
<parent>
<artifactId>connectors</artifactId>
<groupId>org.jboss.teiid</groupId>
- <version>7.4.0.CR1-SNAPSHOT</version>
+ <version>7.4.0.CR1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>connector-ldap</artifactId>
Modified: trunk/connectors/connector-salesforce/pom.xml
===================================================================
--- trunk/connectors/connector-salesforce/pom.xml 2011-05-03 16:35:33 UTC (rev 3139)
+++ trunk/connectors/connector-salesforce/pom.xml 2011-05-03 16:43:26 UTC (rev 3140)
@@ -3,7 +3,7 @@
<parent>
<artifactId>connectors</artifactId>
<groupId>org.jboss.teiid</groupId>
- <version>7.4.0.CR1-SNAPSHOT</version>
+ <version>7.4.0.CR1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>connector-salesforce</artifactId>
Modified: trunk/connectors/connector-ws/pom.xml
===================================================================
--- trunk/connectors/connector-ws/pom.xml 2011-05-03 16:35:33 UTC (rev 3139)
+++ trunk/connectors/connector-ws/pom.xml 2011-05-03 16:43:26 UTC (rev 3140)
@@ -3,7 +3,7 @@
<parent>
<artifactId>connectors</artifactId>
<groupId>org.jboss.teiid</groupId>
- <version>7.4.0.CR1-SNAPSHOT</version>
+ <version>7.4.0.CR1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>connector-ws</artifactId>
Modified: trunk/connectors/pom.xml
===================================================================
--- trunk/connectors/pom.xml 2011-05-03 16:35:33 UTC (rev 3139)
+++ trunk/connectors/pom.xml 2011-05-03 16:43:26 UTC (rev 3140)
@@ -3,7 +3,7 @@
<parent>
<artifactId>teiid-parent</artifactId>
<groupId>org.jboss.teiid</groupId>
- <version>7.4.0.CR1-SNAPSHOT</version>
+ <version>7.4.0.CR1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.jboss.teiid</groupId>
Modified: trunk/connectors/salesforce-api/pom.xml
===================================================================
--- trunk/connectors/salesforce-api/pom.xml 2011-05-03 16:35:33 UTC (rev 3139)
+++ trunk/connectors/salesforce-api/pom.xml 2011-05-03 16:43:26 UTC (rev 3140)
@@ -2,7 +2,7 @@
<parent>
<artifactId>connectors</artifactId>
<groupId>org.jboss.teiid</groupId>
- <version>7.4.0.CR1-SNAPSHOT</version>
+ <version>7.4.0.CR1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>salesforce-api</artifactId>
Modified: trunk/connectors/sandbox/pom.xml
===================================================================
--- trunk/connectors/sandbox/pom.xml 2011-05-03 16:35:33 UTC (rev 3139)
+++ trunk/connectors/sandbox/pom.xml 2011-05-03 16:43:26 UTC (rev 3140)
@@ -3,7 +3,7 @@
<parent>
<artifactId>connectors</artifactId>
<groupId>org.jboss.teiid</groupId>
- <version>7.4.0.CR1-SNAPSHOT</version>
+ <version>7.4.0.CR1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.jboss.teiid.connectors</groupId>
Modified: trunk/connectors/sandbox/translator-yahoo/pom.xml
===================================================================
--- trunk/connectors/sandbox/translator-yahoo/pom.xml 2011-05-03 16:35:33 UTC (rev 3139)
+++ trunk/connectors/sandbox/translator-yahoo/pom.xml 2011-05-03 16:43:26 UTC (rev 3140)
@@ -3,7 +3,7 @@
<parent>
<artifactId>sandbox</artifactId>
<groupId>org.jboss.teiid.connectors</groupId>
- <version>7.4.0.CR1-SNAPSHOT</version>
+ <version>7.4.0.CR1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>translator-yahoo</artifactId>
Modified: trunk/connectors/translator-file/pom.xml
===================================================================
--- trunk/connectors/translator-file/pom.xml 2011-05-03 16:35:33 UTC (rev 3139)
+++ trunk/connectors/translator-file/pom.xml 2011-05-03 16:43:26 UTC (rev 3140)
@@ -3,7 +3,7 @@
<parent>
<artifactId>connectors</artifactId>
<groupId>org.jboss.teiid</groupId>
- <version>7.4.0.CR1-SNAPSHOT</version>
+ <version>7.4.0.CR1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>translator-file</artifactId>
Modified: trunk/connectors/translator-jdbc/pom.xml
===================================================================
--- trunk/connectors/translator-jdbc/pom.xml 2011-05-03 16:35:33 UTC (rev 3139)
+++ trunk/connectors/translator-jdbc/pom.xml 2011-05-03 16:43:26 UTC (rev 3140)
@@ -3,7 +3,7 @@
<parent>
<artifactId>connectors</artifactId>
<groupId>org.jboss.teiid</groupId>
- <version>7.4.0.CR1-SNAPSHOT</version>
+ <version>7.4.0.CR1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>translator-jdbc</artifactId>
Modified: trunk/connectors/translator-ldap/pom.xml
===================================================================
--- trunk/connectors/translator-ldap/pom.xml 2011-05-03 16:35:33 UTC (rev 3139)
+++ trunk/connectors/translator-ldap/pom.xml 2011-05-03 16:43:26 UTC (rev 3140)
@@ -2,7 +2,7 @@
<parent>
<artifactId>connectors</artifactId>
<groupId>org.jboss.teiid</groupId>
- <version>7.4.0.CR1-SNAPSHOT</version>
+ <version>7.4.0.CR1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>translator-ldap</artifactId>
Modified: trunk/connectors/translator-loopback/pom.xml
===================================================================
--- trunk/connectors/translator-loopback/pom.xml 2011-05-03 16:35:33 UTC (rev 3139)
+++ trunk/connectors/translator-loopback/pom.xml 2011-05-03 16:43:26 UTC (rev 3140)
@@ -3,7 +3,7 @@
<parent>
<artifactId>connectors</artifactId>
<groupId>org.jboss.teiid</groupId>
- <version>7.4.0.CR1-SNAPSHOT</version>
+ <version>7.4.0.CR1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>translator-loopback</artifactId>
Modified: trunk/connectors/translator-olap/pom.xml
===================================================================
--- trunk/connectors/translator-olap/pom.xml 2011-05-03 16:35:33 UTC (rev 3139)
+++ trunk/connectors/translator-olap/pom.xml 2011-05-03 16:43:26 UTC (rev 3140)
@@ -3,7 +3,7 @@
<parent>
<artifactId>connectors</artifactId>
<groupId>org.jboss.teiid</groupId>
- <version>7.4.0.CR1-SNAPSHOT</version>
+ <version>7.4.0.CR1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>translator-olap</artifactId>
Modified: trunk/connectors/translator-salesforce/pom.xml
===================================================================
--- trunk/connectors/translator-salesforce/pom.xml 2011-05-03 16:35:33 UTC (rev 3139)
+++ trunk/connectors/translator-salesforce/pom.xml 2011-05-03 16:43:26 UTC (rev 3140)
@@ -3,7 +3,7 @@
<parent>
<artifactId>connectors</artifactId>
<groupId>org.jboss.teiid</groupId>
- <version>7.4.0.CR1-SNAPSHOT</version>
+ <version>7.4.0.CR1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>translator-salesforce</artifactId>
Modified: trunk/connectors/translator-ws/pom.xml
===================================================================
--- trunk/connectors/translator-ws/pom.xml 2011-05-03 16:35:33 UTC (rev 3139)
+++ trunk/connectors/translator-ws/pom.xml 2011-05-03 16:43:26 UTC (rev 3140)
@@ -3,7 +3,7 @@
<parent>
<artifactId>connectors</artifactId>
<groupId>org.jboss.teiid</groupId>
- <version>7.4.0.CR1-SNAPSHOT</version>
+ <version>7.4.0.CR1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>translator-ws</artifactId>
Modified: trunk/console/pom.xml
===================================================================
--- trunk/console/pom.xml 2011-05-03 16:35:33 UTC (rev 3139)
+++ trunk/console/pom.xml 2011-05-03 16:43:26 UTC (rev 3140)
@@ -3,7 +3,7 @@
<parent>
<artifactId>teiid-parent</artifactId>
<groupId>org.jboss.teiid</groupId>
- <version>7.4.0.CR1-SNAPSHOT</version>
+ <version>7.4.0.CR1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
Modified: trunk/documentation/admin-guide/pom.xml
===================================================================
--- trunk/documentation/admin-guide/pom.xml 2011-05-03 16:35:33 UTC (rev 3139)
+++ trunk/documentation/admin-guide/pom.xml 2011-05-03 16:43:26 UTC (rev 3140)
@@ -2,7 +2,7 @@
<parent>
<groupId>org.jboss.teiid</groupId>
<artifactId>documentation</artifactId>
- <version>7.4.0.CR1-SNAPSHOT</version>
+ <version>7.4.0.CR1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>admin-guide</artifactId>
Modified: trunk/documentation/caching-guide/pom.xml
===================================================================
--- trunk/documentation/caching-guide/pom.xml 2011-05-03 16:35:33 UTC (rev 3139)
+++ trunk/documentation/caching-guide/pom.xml 2011-05-03 16:43:26 UTC (rev 3140)
@@ -2,7 +2,7 @@
<parent>
<groupId>org.jboss.teiid</groupId>
<artifactId>documentation</artifactId>
- <version>7.4.0.CR1-SNAPSHOT</version>
+ <version>7.4.0.CR1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>caching-guide</artifactId>
Modified: trunk/documentation/client-developers-guide/pom.xml
===================================================================
--- trunk/documentation/client-developers-guide/pom.xml 2011-05-03 16:35:33 UTC (rev 3139)
+++ trunk/documentation/client-developers-guide/pom.xml 2011-05-03 16:43:26 UTC (rev 3140)
@@ -2,7 +2,7 @@
<parent>
<groupId>org.jboss.teiid</groupId>
<artifactId>documentation</artifactId>
- <version>7.4.0.CR1-SNAPSHOT</version>
+ <version>7.4.0.CR1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>client-developers-guide</artifactId>
Modified: trunk/documentation/developer-guide/pom.xml
===================================================================
--- trunk/documentation/developer-guide/pom.xml 2011-05-03 16:35:33 UTC (rev 3139)
+++ trunk/documentation/developer-guide/pom.xml 2011-05-03 16:43:26 UTC (rev 3140)
@@ -2,7 +2,7 @@
<parent>
<groupId>org.jboss.teiid</groupId>
<artifactId>documentation</artifactId>
- <version>7.4.0.CR1-SNAPSHOT</version>
+ <version>7.4.0.CR1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>developer-guide</artifactId>
Modified: trunk/documentation/pom.xml
===================================================================
--- trunk/documentation/pom.xml 2011-05-03 16:35:33 UTC (rev 3139)
+++ trunk/documentation/pom.xml 2011-05-03 16:43:26 UTC (rev 3140)
@@ -2,7 +2,7 @@
<parent>
<artifactId>teiid-parent</artifactId>
<groupId>org.jboss.teiid</groupId>
- <version>7.4.0.CR1-SNAPSHOT</version>
+ <version>7.4.0.CR1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.jboss.teiid</groupId>
Modified: trunk/documentation/quick-start-example/pom.xml
===================================================================
--- trunk/documentation/quick-start-example/pom.xml 2011-05-03 16:35:33 UTC (rev 3139)
+++ trunk/documentation/quick-start-example/pom.xml 2011-05-03 16:43:26 UTC (rev 3140)
@@ -2,7 +2,7 @@
<parent>
<groupId>org.jboss.teiid</groupId>
<artifactId>documentation</artifactId>
- <version>7.4.0.CR1-SNAPSHOT</version>
+ <version>7.4.0.CR1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>quick-start-example</artifactId>
Modified: trunk/documentation/reference/pom.xml
===================================================================
--- trunk/documentation/reference/pom.xml 2011-05-03 16:35:33 UTC (rev 3139)
+++ trunk/documentation/reference/pom.xml 2011-05-03 16:43:26 UTC (rev 3140)
@@ -2,7 +2,7 @@
<parent>
<groupId>org.jboss.teiid</groupId>
<artifactId>documentation</artifactId>
- <version>7.4.0.CR1-SNAPSHOT</version>
+ <version>7.4.0.CR1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>reference</artifactId>
Modified: trunk/engine/pom.xml
===================================================================
--- trunk/engine/pom.xml 2011-05-03 16:35:33 UTC (rev 3139)
+++ trunk/engine/pom.xml 2011-05-03 16:43:26 UTC (rev 3140)
@@ -3,7 +3,7 @@
<parent>
<artifactId>teiid-parent</artifactId>
<groupId>org.jboss.teiid</groupId>
- <version>7.4.0.CR1-SNAPSHOT</version>
+ <version>7.4.0.CR1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>teiid-engine</artifactId>
Modified: trunk/hibernate-dialect/pom.xml
===================================================================
--- trunk/hibernate-dialect/pom.xml 2011-05-03 16:35:33 UTC (rev 3139)
+++ trunk/hibernate-dialect/pom.xml 2011-05-03 16:43:26 UTC (rev 3140)
@@ -2,7 +2,7 @@
<parent>
<artifactId>teiid-parent</artifactId>
<groupId>org.jboss.teiid</groupId>
- <version>7.4.0.CR1-SNAPSHOT</version>
+ <version>7.4.0.CR1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>teiid-hibernate-dialect</artifactId>
Modified: trunk/jboss-integration/pom.xml
===================================================================
--- trunk/jboss-integration/pom.xml 2011-05-03 16:35:33 UTC (rev 3139)
+++ trunk/jboss-integration/pom.xml 2011-05-03 16:43:26 UTC (rev 3140)
@@ -2,7 +2,7 @@
<parent>
<artifactId>teiid-parent</artifactId>
<groupId>org.jboss.teiid</groupId>
- <version>7.4.0.CR1-SNAPSHOT</version>
+ <version>7.4.0.CR1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.jboss.teiid</groupId>
Modified: trunk/metadata/pom.xml
===================================================================
--- trunk/metadata/pom.xml 2011-05-03 16:35:33 UTC (rev 3139)
+++ trunk/metadata/pom.xml 2011-05-03 16:43:26 UTC (rev 3140)
@@ -3,7 +3,7 @@
<parent>
<artifactId>teiid-parent</artifactId>
<groupId>org.jboss.teiid</groupId>
- <version>7.4.0.CR1-SNAPSHOT</version>
+ <version>7.4.0.CR1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>teiid-metadata</artifactId>
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2011-05-03 16:35:33 UTC (rev 3139)
+++ trunk/pom.xml 2011-05-03 16:43:26 UTC (rev 3140)
@@ -5,15 +5,15 @@
<artifactId>teiid-parent</artifactId>
<packaging>pom</packaging>
<name>Teiid</name>
- <version>7.4.0.CR1-SNAPSHOT</version>
+ <version>7.4.0.CR1</version>
<description>Federated SQL and XML query engine.</description>
<properties>
<ant.version>1.7.0</ant.version>
<site.url>http://www.jboss.org/teiid</site.url>
</properties>
<scm>
- <connection>scm:svn:https://anonsvn.jboss.org/repos/teiid/trunk</connection>
- <developerConnection>scm:svn:https://svn.jboss.org/repos/teiid/trunk</developerConnection>
+ <connection>scm:svn:https://anonsvn.jboss.org/repos/teiid/tags/teiid-parent-7.4.0.CR1</connection>
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/teiid/tags/teiid-parent-7.4.0.CR1</developerConnection>
</scm>
<licenses>
<license>
Modified: trunk/runtime/pom.xml
===================================================================
--- trunk/runtime/pom.xml 2011-05-03 16:35:33 UTC (rev 3139)
+++ trunk/runtime/pom.xml 2011-05-03 16:43:26 UTC (rev 3140)
@@ -3,7 +3,7 @@
<parent>
<artifactId>teiid-parent</artifactId>
<groupId>org.jboss.teiid</groupId>
- <version>7.4.0.CR1-SNAPSHOT</version>
+ <version>7.4.0.CR1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.jboss.teiid</groupId>
Modified: trunk/test-integration/common/pom.xml
===================================================================
--- trunk/test-integration/common/pom.xml 2011-05-03 16:35:33 UTC (rev 3139)
+++ trunk/test-integration/common/pom.xml 2011-05-03 16:43:26 UTC (rev 3140)
@@ -3,7 +3,7 @@
<parent>
<artifactId>teiid-test-integration</artifactId>
<groupId>org.jboss.teiid</groupId>
- <version>7.4.0.CR1-SNAPSHOT</version>
+ <version>7.4.0.CR1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>test-integration-common</artifactId>
Modified: trunk/test-integration/db/pom.xml
===================================================================
--- trunk/test-integration/db/pom.xml 2011-05-03 16:35:33 UTC (rev 3139)
+++ trunk/test-integration/db/pom.xml 2011-05-03 16:43:26 UTC (rev 3140)
@@ -9,7 +9,7 @@
<parent>
<artifactId>teiid-test-integration</artifactId>
<groupId>org.jboss.teiid</groupId>
- <version>7.4.0.CR1-SNAPSHOT</version>
+ <version>7.4.0.CR1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
Modified: trunk/test-integration/pom.xml
===================================================================
--- trunk/test-integration/pom.xml 2011-05-03 16:35:33 UTC (rev 3139)
+++ trunk/test-integration/pom.xml 2011-05-03 16:43:26 UTC (rev 3140)
@@ -3,7 +3,7 @@
<parent>
<artifactId>teiid-parent</artifactId>
<groupId>org.jboss.teiid</groupId>
- <version>7.4.0.CR1-SNAPSHOT</version>
+ <version>7.4.0.CR1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>teiid-test-integration</artifactId>
14 years, 7 months
teiid SVN: r3139 - trunk/documentation/developer-guide/src/main/docbook/en-US/content.
by teiid-commits@lists.jboss.org
Author: shawkins
Date: 2011-05-03 12:35:33 -0400 (Tue, 03 May 2011)
New Revision: 3139
Modified:
trunk/documentation/developer-guide/src/main/docbook/en-US/content/runtime-updates.xml
Log:
TEIID-1507 adding a note about turning off internal capture
Modified: trunk/documentation/developer-guide/src/main/docbook/en-US/content/runtime-updates.xml
===================================================================
--- trunk/documentation/developer-guide/src/main/docbook/en-US/content/runtime-updates.xml 2011-05-03 16:21:08 UTC (rev 3138)
+++ trunk/documentation/developer-guide/src/main/docbook/en-US/content/runtime-updates.xml 2011-05-03 16:35:33 UTC (rev 3139)
@@ -22,6 +22,7 @@
ed.dataModification(vdbName, vdbVersion, schema, tableName);</programlisting>
<para>This will distribute a change event for schema.tableName in vdb vdbName.vdbVersion.</para>
</example>
+ <para>When externally capturing all update events, &jboss-beans; RuntimeEngineDeployer.detectingChangeEvents can be set to false, to not duplicate change events.</para>
<para>The use of the other <code>EventDistributor</code> methods to manual distribute other events is not recommended.</para>
</section>
<section>
14 years, 7 months
teiid SVN: r3138 - in trunk: build/kits/jboss-container/deployers/teiid.deployer and 9 other directories.
by teiid-commits@lists.jboss.org
Author: shawkins
Date: 2011-05-03 12:21:08 -0400 (Tue, 03 May 2011)
New Revision: 3138
Added:
trunk/documentation/developer-guide/src/main/docbook/en-US/content/runtime-updates.xml
Modified:
trunk/api/src/main/java/org/teiid/metadata/MetadataRepository.java
trunk/build/kits/jboss-container/deployers/teiid.deployer/teiid-deployer-jboss-beans.xml
trunk/documentation/caching-guide/src/main/docbook/en-US/content/results.xml
trunk/documentation/client-developers-guide/src/main/docbook/en-US/content/prepared-statements.xml
trunk/documentation/developer-guide/src/main/docbook/en-US/Developer_Guide.xml
trunk/documentation/docbook/custom.dtd
trunk/documentation/reference/src/main/docbook/en-US/content/grammar.xml
trunk/documentation/reference/src/main/docbook/en-US/content/system_schema.xml
trunk/documentation/reference/src/main/docbook/en-US/content/translators.xml
trunk/engine/src/main/java/org/teiid/dqp/internal/process/DataTierManagerImpl.java
trunk/engine/src/main/java/org/teiid/query/processor/DdlPlan.java
trunk/runtime/src/main/java/org/teiid/deployers/VDBRepository.java
Log:
TEIID-1326 refining runtime update logic and rounding out the docs
Modified: trunk/api/src/main/java/org/teiid/metadata/MetadataRepository.java
===================================================================
--- trunk/api/src/main/java/org/teiid/metadata/MetadataRepository.java 2011-05-03 09:43:58 UTC (rev 3137)
+++ trunk/api/src/main/java/org/teiid/metadata/MetadataRepository.java 2011-05-03 16:21:08 UTC (rev 3138)
@@ -29,6 +29,20 @@
public interface MetadataRepository {
/**
+ * Marks the start of vdb metadata loading
+ * @param vdbName
+ * @param vdbVersion
+ */
+ void startLoadVdb(String vdbName, int vdbVersion);
+
+ /**
+ * Marks the end of vdb metadata loading
+ * @param vdbName
+ * @param vdbVersion
+ */
+ void endLoadVdb(String vdbName, int vdbVersion);
+
+ /**
* Returns an updated view definition (AS SQL only) or null if the current view definition should be used
* should be used.
*/
@@ -67,7 +81,7 @@
* @param triggerOperation
* @return
*/
- boolean isInsteadOfTriggerEnabled(String vdbName, int vdbVersion, Table table, Table.TriggerEvent triggerOperation);
+ Boolean isInsteadOfTriggerEnabled(String vdbName, int vdbVersion, Table table, Table.TriggerEvent triggerOperation);
/**
* Set the given trigger enabled.
Modified: trunk/build/kits/jboss-container/deployers/teiid.deployer/teiid-deployer-jboss-beans.xml
===================================================================
--- trunk/build/kits/jboss-container/deployers/teiid.deployer/teiid-deployer-jboss-beans.xml 2011-05-03 09:43:58 UTC (rev 3137)
+++ trunk/build/kits/jboss-container/deployers/teiid.deployer/teiid-deployer-jboss-beans.xml 2011-05-03 16:21:08 UTC (rev 3138)
@@ -11,6 +11,10 @@
<bean name="VDBRepository" class="org.teiid.deployers.VDBRepository">
<property name="systemFunctionManager"><inject bean="SystemFunctionManager"/></property>
+ <!--
+ Optionally set a org.teiid.metadata.MetadataRepository for persistent metadata updates
+ -->
+ <!-- <property name="metadataRepository"><inject bean="MetadataRepository"/></property> -->
</bean>
<bean name="SecurityHelper" class="org.teiid.jboss.JBossSecurityHelper"/>
Modified: trunk/documentation/caching-guide/src/main/docbook/en-US/content/results.xml
===================================================================
--- trunk/documentation/caching-guide/src/main/docbook/en-US/content/results.xml 2011-05-03 09:43:58 UTC (rev 3137)
+++ trunk/documentation/caching-guide/src/main/docbook/en-US/content/results.xml 2011-05-03 16:21:08 UTC (rev 3138)
@@ -99,6 +99,8 @@
</para>
<note><para>While the result data is not held in memory, cache keys - including parameter values - may be held in memory.
Thus the cache should not be given an unlimited maximum size.</para></note>
+ <para>Result set cache entries can be invalidated by data change events. The maxStaleness setting determines how long an entry will remain
+ in the case after one of the tables that contributed to the results has been changed. See the Developers Guide for further customization.</para>
</section>
<section>
<title>Cache Administration</title>
Modified: trunk/documentation/client-developers-guide/src/main/docbook/en-US/content/prepared-statements.xml
===================================================================
--- trunk/documentation/client-developers-guide/src/main/docbook/en-US/content/prepared-statements.xml 2011-05-03 09:43:58 UTC (rev 3137)
+++ trunk/documentation/client-developers-guide/src/main/docbook/en-US/content/prepared-statements.xml 2011-05-03 16:21:08 UTC (rev 3138)
@@ -25,9 +25,6 @@
<para>Plans are cached for the entire VDB or for just a particular session. The scope of a plan is detected automatically based upon the functions evaluated during it's planning process.</para>
</listitem>
<listitem>
- <para>Runtime updates of costing information do not yet cause replanning. At this time only session scoped temporary table or internally materialized tables update their costing information.</para>
- </listitem>
- <listitem>
<para>Stored procedures executed through a <code>CallableStatement</code> have their plans cached just as a <code>PreparedStatement</code>.</para>
</listitem>
<listitem>
Modified: trunk/documentation/developer-guide/src/main/docbook/en-US/Developer_Guide.xml
===================================================================
--- trunk/documentation/developer-guide/src/main/docbook/en-US/Developer_Guide.xml 2011-05-03 09:43:58 UTC (rev 3137)
+++ trunk/documentation/developer-guide/src/main/docbook/en-US/Developer_Guide.xml 2011-05-03 16:21:08 UTC (rev 3138)
@@ -15,9 +15,8 @@
<xi:include href="content/adminapi.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="content/logging.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="content/security.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="content/runtime-updates.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="content/appendix-a.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="content/appendix-b.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
-
-
</book>
Added: trunk/documentation/developer-guide/src/main/docbook/en-US/content/runtime-updates.xml
===================================================================
--- trunk/documentation/developer-guide/src/main/docbook/en-US/content/runtime-updates.xml (rev 0)
+++ trunk/documentation/developer-guide/src/main/docbook/en-US/content/runtime-updates.xml 2011-05-03 16:21:08 UTC (rev 3138)
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % CustomDTD SYSTEM "../../../../../../docbook/custom.dtd">
+%CustomDTD;
+]>
+<chapter id="runtime-updates">
+ <title>Runtime Updates</title>
+ <para>Teiid supports several mechanisms for updating the runtime system.</para>
+ <section>
+ <title>Data Updates</title>
+ <para>Data change events are used by Teiid to invalidate result set cache entries. Result set cache entires are tracked by the tables that contributed to their results.
+ By default Teiid will capture internal data events against physical sources and distribute them across the cluster.
+ This approach has several limitations. First updates are scoped only to their originating VDB/version. Second updates made out side of Teiid are not captured.
+ To increase data consistency external change data capture tools can be used to send events to Teiid. From within a Teiid cluster the <code>org.teiid.events.EventDistributorFactory</code>
+ and <code>org.teiid.events.EventDistributor</code> can be used to distribute change events. The <code>EventDistributorFactory</code> is implemented by the
+ <code>RuntimeEngineDeployer</code> bean and should be looked up by its name "teiid/engine-deployer". See the example below.</para>
+ <example>
+ <title>Usage of the <code>EventDistributor</code></title>
+ <programlisting language="java">InitialContext ctx = new InitialContext();
+EventDistributorFactory edf = (EventDistributorFactory)ctx.lookup("teiid/engine-deployer");
+EventDistributor ed = edf.getEventDistributor();
+ed.dataModification(vdbName, vdbVersion, schema, tableName);</programlisting>
+ <para>This will distribute a change event for schema.tableName in vdb vdbName.vdbVersion.</para>
+ </example>
+ <para>The use of the other <code>EventDistributor</code> methods to manual distribute other events is not recommended.</para>
+ </section>
+ <section>
+ <title>Runtime Metadata Updates</title>
+ <para>Runtime updates via system procedures and DDL statements are by default ephemeral. They are effective across the cluster only for the currently running vdbs.
+ With the next vdb start the values will revert to whatever is stored in the vdb. Updates may be made persistent though by configuring a <code>org.teiid.metadata.MetadataRepository</code>.
+ An instance of a <code>MetadataRepository</code> can be installed via the &teiid-deployer-beans; file in the <code>VDBRepository</code> bean.
+ The <code>MetadataRepository</code> repository instance may fully implement as many of the methods as needed and return null from any unneeded getter.</para>
+ <note><para>It is not recommended to directly manipulate <code>org.teiid.metadata.AbstractMetadataRecord</code> instances.
+ System procedures and DDL statements should be used instead since the effects will be distributed through the cluster and will not introduce inconsistencies.</para></note>
+ <para><code>org.teiid.metadata.AbstractMetadataRecord</code> objects passed to the <code>MetadataRepository</code> have not yet been modified.
+ If the <code>MetadataRepository</code> cannot persist the update, then a <code>RuntimeException</code> should be thrown to prevent the update from being applied by the runtime engine.</para>
+ <section>
+ <title>Costing Updates</title>
+ <para>See the Reference for the system procedures <code>SYSADMIN.setColumnStats</code> and <code>SYSADMIN.setTableStats</code>.
+ To make costing updates persistent <code>MetadataRepository</code> implementations should be provided for:
+ <programlisting language="java">TableStats getTableStats(String vdbName, int vdbVersion, Table table);
+void setTableStats(String vdbName, int vdbVersion, Table table, TableStats tableStats);
+ColumnStats getColumnStats(String vdbName, int vdbVersion, Column column);
+void setColumnStats(String vdbName, int vdbVersion, Column column, ColumnStats columnStats);</programlisting>
+ </para>
+ </section>
+ <section>
+ <title>Schema Updates</title>
+ <para>See the Reference for supported DDL statements. To make schema updates persistent implementations should be provided for:</para>
+ <programlisting>String getViewDefinition(String vdbName, int vdbVersion, Table table);
+void setViewDefinition(String vdbName, int vdbVersion, Table table, String viewDefinition);
+String getInsteadOfTriggerDefinition(String vdbName, int vdbVersion, Table table, Table.TriggerEvent triggerOperation);
+void setInsteadOfTriggerDefinition(String vdbName, int vdbVersion, Table table, Table.TriggerEvent triggerOperation, String triggerDefinition);
+boolean isInsteadOfTriggerEnabled(String vdbName, int vdbVersion, Table table, Table.TriggerEvent triggerOperation);
+void setInsteadOfTriggerEnabled(String vdbName, int vdbVersion, Table table, Table.TriggerEvent triggerOperation, boolean enabled);
+String getProcedureDefinition(String vdbName, int vdbVersion, Procedure procedure);
+void setProcedureDefinition(String vdbName, int vdbVersion, Procedure procedure, String procedureDefinition);
+LinkedHashMap<String, String> getProperties(String vdbName, int vdbVersion, AbstractMetadataRecord record);
+void setProperty(String vdbName, int vdbVersion, AbstractMetadataRecord record, String name, String value);</programlisting>
+ </section>
+ </section>
+</chapter>
\ No newline at end of file
Property changes on: trunk/documentation/developer-guide/src/main/docbook/en-US/content/runtime-updates.xml
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified: trunk/documentation/docbook/custom.dtd
===================================================================
--- trunk/documentation/docbook/custom.dtd 2011-05-03 09:43:58 UTC (rev 3137)
+++ trunk/documentation/docbook/custom.dtd 2011-05-03 16:21:08 UTC (rev 3138)
@@ -6,4 +6,5 @@
<!ENTITY javaDocUrl "http://docs.jboss.org/teiid/&versionNumber;/apidocs">
<!ENTITY desDocUrl "http://www.jboss.org/teiiddesigner/docs.html">
<!ENTITY jboss-beans "<code><jboss-install>/server/<profile>/deploy/teiid/teiid-jboss-beans.xml</code>">
-<!ENTITY metadata-update-note "<note><para>A <code>MetadataRepository</code> must be configured to make a non-temporary metadata update persistent. See the Developers Guide Runtime Updates section for more.</para></note>">
+<!ENTITY teiid-deployer-beans "<code><jboss-install>/server/<profile>/deploy/deployers/teiid.deployer/teiid-deployer-jboss-beans.xml</code>">
+<!ENTITY metadata-update-note "<note><para>A <code>MetadataRepository</code> must be configured to make a non-temporary metadata update persistent. See the Developers Guide Runtime Metadata Updates section for more.</para></note>">
Modified: trunk/documentation/reference/src/main/docbook/en-US/content/grammar.xml
===================================================================
--- trunk/documentation/reference/src/main/docbook/en-US/content/grammar.xml 2011-05-03 09:43:58 UTC (rev 3137)
+++ trunk/documentation/reference/src/main/docbook/en-US/content/grammar.xml 2011-05-03 16:21:08 UTC (rev 3138)
@@ -1,8 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<appendix id="grammar">
- <title>BNF for SQL Grammar</title>
-<section>
+ <title>BNF for SQL Grammar</title><section>
<title>TOKENS</title>
<informaltable frame="none">
<tgroup cols="1">
@@ -416,449 +415,453 @@
<row>
<entry align="right" valign="top"><para><anchor id="prod8" xreflabel="updateProcedure"/>updateProcedure</para></entry>
<entry align="left" valign="top"><para>::=
-( <link linkend="prod4">createUpdateProcedure</link> | <link linkend="prod9">triggerAction</link> ) <EOF></para></entry></row>
+( <link linkend="prod4">createUpdateProcedure</link> | <link linkend="prod9">forEachRowTriggerAction</link> ) <EOF></para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod10" xreflabel="alter"/>alter</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod10" xreflabel="createTrigger"/>createTrigger</para></entry>
<entry align="left" valign="top"><para>::=
-<ALTER> ( ( <link linkend="prod11">nonReserved</link> <link linkend="prod2">id</link> <AS> <link linkend="prod12">queryExpression</link> ) | ( <PROCEDURE> <link linkend="prod2">id</link> <AS> <link linkend="prod13">block</link> ) | ( <TRIGGER> <ON> <link linkend="prod2">id</link> <link linkend="prod11">nonReserved</link> <OF> ( <INSERT> | <UPDATE> | <DELETE> ) <AS> <link linkend="prod9">triggerAction</link> ) )</para></entry></row>
+<CREATE> <TRIGGER> <ON> <link linkend="prod2">id</link> <link linkend="prod11">nonReserved</link> <OF> ( <INSERT> | <UPDATE> | <DELETE> ) <AS> <link linkend="prod9">forEachRowTriggerAction</link></para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod9" xreflabel="triggerAction"/>triggerAction</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod12" xreflabel="alter"/>alter</para></entry>
<entry align="left" valign="top"><para>::=
-<FOR> <EACH> <ROW> <link linkend="prod13">block</link></para></entry></row>
+<ALTER> ( ( <link linkend="prod11">nonReserved</link> <link linkend="prod2">id</link> <AS> <link linkend="prod13">queryExpression</link> ) | ( <PROCEDURE> <link linkend="prod2">id</link> <AS> <link linkend="prod14">block</link> ) | ( <TRIGGER> <ON> <link linkend="prod2">id</link> <link linkend="prod11">nonReserved</link> <OF> ( <INSERT> | <UPDATE> | <DELETE> ) ( ( <AS> <link linkend="prod9">forEachRowTriggerAction</link> ) | <link linkend="prod11">nonReserved</link> ) ) )</para></entry></row>
<row>
+<entry align="right" valign="top"><para><anchor id="prod9" xreflabel="forEachRowTriggerAction"/>forEachRowTriggerAction</para></entry>
+<entry align="left" valign="top"><para>::=
+<FOR> <EACH> <ROW> <link linkend="prod14">block</link></para></entry></row>
+<row>
<entry align="right" valign="top"><para><anchor id="prod5" xreflabel="userCommand"/>userCommand</para></entry>
<entry align="left" valign="top"><para>::=
-( <link linkend="prod12">queryExpression</link> | <link linkend="prod14">storedProcedure</link> | <link linkend="prod15">insert</link> | <link linkend="prod16">update</link> | <link linkend="prod17">delete</link> | <link linkend="prod18">dropTable</link> | <link linkend="prod19">createTempTable</link> | <link linkend="prod10">alter</link> )</para></entry></row>
+( <link linkend="prod13">queryExpression</link> | <link linkend="prod15">storedProcedure</link> | <link linkend="prod16">insert</link> | <link linkend="prod17">update</link> | <link linkend="prod18">delete</link> | <link linkend="prod19">dropTable</link> | <link linkend="prod20">createTempTable</link> | <link linkend="prod12">alter</link> | <link linkend="prod10">createTrigger</link> )</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod18" xreflabel="dropTable"/>dropTable</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod19" xreflabel="dropTable"/>dropTable</para></entry>
<entry align="left" valign="top"><para>::=
<DROP> <TABLE> <link linkend="prod2">id</link></para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod19" xreflabel="createTempTable"/>createTempTable</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod20" xreflabel="createTempTable"/>createTempTable</para></entry>
<entry align="left" valign="top"><para>::=
-<CREATE> <LOCAL> <TEMPORARY> <TABLE> <link linkend="prod2">id</link> <LPAREN> <link linkend="prod20">tableElement</link> ( <COMMA> <link linkend="prod20">tableElement</link> )* ( <COMMA> <PRIMARY> <link linkend="prod11">nonReserved</link> <LPAREN> <link linkend="prod2">id</link> ( <COMMA> <link linkend="prod2">id</link> )* <RPAREN> )? <RPAREN></para></entry></row>
+<CREATE> <LOCAL> <TEMPORARY> <TABLE> <link linkend="prod2">id</link> <LPAREN> <link linkend="prod21">tableElement</link> ( <COMMA> <link linkend="prod21">tableElement</link> )* ( <COMMA> <PRIMARY> <link linkend="prod11">nonReserved</link> <LPAREN> <link linkend="prod2">id</link> ( <COMMA> <link linkend="prod2">id</link> )* <RPAREN> )? <RPAREN></para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod20" xreflabel="tableElement"/>tableElement</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod21" xreflabel="tableElement"/>tableElement</para></entry>
<entry align="left" valign="top"><para>::=
-<link linkend="prod2">id</link> ( <link linkend="prod21">dataTypeString</link> | <link linkend="prod11">nonReserved</link> ) ( <NOT> <NULL> )?</para></entry></row>
+<link linkend="prod2">id</link> ( <link linkend="prod22">dataTypeString</link> | <link linkend="prod11">nonReserved</link> ) ( <NOT> <NULL> )?</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod22" xreflabel="errorStatement"/>errorStatement</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod23" xreflabel="errorStatement"/>errorStatement</para></entry>
<entry align="left" valign="top"><para>::=
-<ERROR> <link linkend="prod23">expression</link></para></entry></row>
+<ERROR> <link linkend="prod24">expression</link></para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod24" xreflabel="statement"/>statement</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod25" xreflabel="statement"/>statement</para></entry>
<entry align="left" valign="top"><para>::=
-( <link linkend="prod25">ifStatement</link> | <link linkend="prod26">loopStatement</link> | <link linkend="prod27">whileStatement</link> | <link linkend="prod28">delimitedStatement</link> )</para></entry></row>
+( <link linkend="prod26">ifStatement</link> | <link linkend="prod27">loopStatement</link> | <link linkend="prod28">whileStatement</link> | <link linkend="prod29">delimitedStatement</link> )</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod28" xreflabel="delimitedStatement"/>delimitedStatement</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod29" xreflabel="delimitedStatement"/>delimitedStatement</para></entry>
<entry align="left" valign="top"><para>::=
-( <link linkend="prod29">assignStatement</link> | <link linkend="prod30">sqlStatement</link> | <link linkend="prod22">errorStatement</link> | <link linkend="prod31">declareStatement</link> | <link linkend="prod32">continueStatement</link> | <link linkend="prod33">breakStatement</link> ) <SEMICOLON></para></entry></row>
+( <link linkend="prod30">assignStatement</link> | <link linkend="prod31">sqlStatement</link> | <link linkend="prod23">errorStatement</link> | <link linkend="prod32">declareStatement</link> | <link linkend="prod33">continueStatement</link> | <link linkend="prod34">breakStatement</link> ) <SEMICOLON></para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod13" xreflabel="block"/>block</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod14" xreflabel="block"/>block</para></entry>
<entry align="left" valign="top"><para>::=
-( <link linkend="prod24">statement</link> | ( <BEGIN> ( <link linkend="prod24">statement</link> )* <END> ) )</para></entry></row>
+( <link linkend="prod25">statement</link> | ( <BEGIN> ( <link linkend="prod25">statement</link> )* <END> ) )</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod33" xreflabel="breakStatement"/>breakStatement</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod34" xreflabel="breakStatement"/>breakStatement</para></entry>
<entry align="left" valign="top"><para>::=
<BREAK></para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod32" xreflabel="continueStatement"/>continueStatement</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod33" xreflabel="continueStatement"/>continueStatement</para></entry>
<entry align="left" valign="top"><para>::=
<CONTINUE></para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod27" xreflabel="whileStatement"/>whileStatement</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod28" xreflabel="whileStatement"/>whileStatement</para></entry>
<entry align="left" valign="top"><para>::=
-<WHILE> <LPAREN> <link linkend="prod34">criteria</link> <RPAREN> <link linkend="prod13">block</link></para></entry></row>
+<WHILE> <LPAREN> <link linkend="prod35">criteria</link> <RPAREN> <link linkend="prod14">block</link></para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod26" xreflabel="loopStatement"/>loopStatement</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod27" xreflabel="loopStatement"/>loopStatement</para></entry>
<entry align="left" valign="top"><para>::=
-<LOOP> <ON> <LPAREN> <link linkend="prod12">queryExpression</link> <RPAREN> <AS> <link linkend="prod2">id</link> <link linkend="prod13">block</link></para></entry></row>
+<LOOP> <ON> <LPAREN> <link linkend="prod13">queryExpression</link> <RPAREN> <AS> <link linkend="prod2">id</link> <link linkend="prod14">block</link></para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod25" xreflabel="ifStatement"/>ifStatement</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod26" xreflabel="ifStatement"/>ifStatement</para></entry>
<entry align="left" valign="top"><para>::=
-<IF> <LPAREN> <link linkend="prod34">criteria</link> <RPAREN> <link linkend="prod13">block</link> ( <ELSE> <link linkend="prod13">block</link> )?</para></entry></row>
+<IF> <LPAREN> <link linkend="prod35">criteria</link> <RPAREN> <link linkend="prod14">block</link> ( <ELSE> <link linkend="prod14">block</link> )?</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod35" xreflabel="criteriaSelector"/>criteriaSelector</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod36" xreflabel="criteriaSelector"/>criteriaSelector</para></entry>
<entry align="left" valign="top"><para>::=
( ( <EQ> | <NE> | <NE2> | <LE> | <GE> | <LT> | <GT> | <IN> | <LIKE> | ( <IS> <NULL> ) | <BETWEEN> ) )? <CRITERIA> ( <ON> <LPAREN> <link linkend="prod2">id</link> ( <COMMA> <link linkend="prod2">id</link> )* <RPAREN> )?</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod36" xreflabel="hasCriteria"/>hasCriteria</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod37" xreflabel="hasCriteria"/>hasCriteria</para></entry>
<entry align="left" valign="top"><para>::=
-<HAS> <link linkend="prod35">criteriaSelector</link></para></entry></row>
+<HAS> <link linkend="prod36">criteriaSelector</link></para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod31" xreflabel="declareStatement"/>declareStatement</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod32" xreflabel="declareStatement"/>declareStatement</para></entry>
<entry align="left" valign="top"><para>::=
-<DECLARE> <link linkend="prod37">dataType</link> <link linkend="prod2">id</link> ( ( <link linkend="prod11">nonReserved</link> | <EQ> ) <link linkend="prod38">assignStatementOperand</link> )?</para></entry></row>
+<DECLARE> <link linkend="prod38">dataType</link> <link linkend="prod2">id</link> ( ( <link linkend="prod11">nonReserved</link> | <EQ> ) <link linkend="prod39">assignStatementOperand</link> )?</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod29" xreflabel="assignStatement"/>assignStatement</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod30" xreflabel="assignStatement"/>assignStatement</para></entry>
<entry align="left" valign="top"><para>::=
-<link linkend="prod2">id</link> ( <link linkend="prod11">nonReserved</link> | <EQ> ) <link linkend="prod38">assignStatementOperand</link></para></entry></row>
+<link linkend="prod2">id</link> ( <link linkend="prod11">nonReserved</link> | <EQ> ) <link linkend="prod39">assignStatementOperand</link></para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod38" xreflabel="assignStatementOperand"/>assignStatementOperand</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod39" xreflabel="assignStatementOperand"/>assignStatementOperand</para></entry>
<entry align="left" valign="top"><para>::=
-( ( <link linkend="prod15">insert</link> ) | <link linkend="prod16">update</link> | <link linkend="prod17">delete</link> | ( <link linkend="prod23">expression</link> ) | <link linkend="prod12">queryExpression</link> )</para></entry></row>
+( ( <link linkend="prod16">insert</link> ) | <link linkend="prod17">update</link> | <link linkend="prod18">delete</link> | ( <link linkend="prod24">expression</link> ) | <link linkend="prod13">queryExpression</link> )</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod30" xreflabel="sqlStatement"/>sqlStatement</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod31" xreflabel="sqlStatement"/>sqlStatement</para></entry>
<entry align="left" valign="top"><para>::=
-( ( <link linkend="prod5">userCommand</link> ) | <link linkend="prod39">dynamicCommand</link> | ( <link linkend="prod2">id</link> ( <link linkend="prod11">nonReserved</link> | <EQ> ) <link linkend="prod14">storedProcedure</link> ) )</para></entry></row>
+( ( <link linkend="prod5">userCommand</link> ) | <link linkend="prod40">dynamicCommand</link> | ( <link linkend="prod2">id</link> ( <link linkend="prod11">nonReserved</link> | <EQ> ) <link linkend="prod15">storedProcedure</link> ) )</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod40" xreflabel="translateCriteria"/>translateCriteria</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod41" xreflabel="translateCriteria"/>translateCriteria</para></entry>
<entry align="left" valign="top"><para>::=
-<TRANSLATE> <link linkend="prod35">criteriaSelector</link> ( <WITH> <LPAREN> <link linkend="prod2">id</link> <EQ> <link linkend="prod23">expression</link> ( <COMMA> <link linkend="prod2">id</link> <EQ> <link linkend="prod23">expression</link> )* <RPAREN> )?</para></entry></row>
+<TRANSLATE> <link linkend="prod36">criteriaSelector</link> ( <WITH> <LPAREN> <link linkend="prod2">id</link> <EQ> <link linkend="prod24">expression</link> ( <COMMA> <link linkend="prod2">id</link> <EQ> <link linkend="prod24">expression</link> )* <RPAREN> )?</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod4" xreflabel="createUpdateProcedure"/>createUpdateProcedure</para></entry>
<entry align="left" valign="top"><para>::=
-<CREATE> ( <VIRTUAL> )? ( <UPDATE> )? <PROCEDURE> <link linkend="prod13">block</link></para></entry></row>
+<CREATE> ( <VIRTUAL> )? ( <UPDATE> )? <PROCEDURE> <link linkend="prod14">block</link></para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod39" xreflabel="dynamicCommand"/>dynamicCommand</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod40" xreflabel="dynamicCommand"/>dynamicCommand</para></entry>
<entry align="left" valign="top"><para>::=
-( <EXECUTE> | <EXEC> ) ( ( <STRING> | <IMMEDIATE> ) )? <link linkend="prod23">expression</link> ( <AS> <link linkend="prod41">createElementsWithTypes</link> ( <INTO> <link linkend="prod2">id</link> )? )? ( <USING> <link linkend="prod42">setClauseList</link> )? ( <UPDATE> ( ( <INTEGERVAL> ) | ( <STAR> ) ) )?</para></entry></row>
+( <EXECUTE> | <EXEC> ) ( ( <STRING> | <IMMEDIATE> ) )? <link linkend="prod24">expression</link> ( <AS> <link linkend="prod42">createElementsWithTypes</link> ( <INTO> <link linkend="prod2">id</link> )? )? ( <USING> <link linkend="prod43">setClauseList</link> )? ( <UPDATE> ( ( <INTEGERVAL> ) | ( <STAR> ) ) )?</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod42" xreflabel="setClauseList"/>setClauseList</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod43" xreflabel="setClauseList"/>setClauseList</para></entry>
<entry align="left" valign="top"><para>::=
<link linkend="prod2">id</link> <EQ> ( <COMMA> <link linkend="prod2">id</link> <EQ> )*</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod41" xreflabel="createElementsWithTypes"/>createElementsWithTypes</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod42" xreflabel="createElementsWithTypes"/>createElementsWithTypes</para></entry>
<entry align="left" valign="top"><para>::=
-<link linkend="prod2">id</link> <link linkend="prod21">dataTypeString</link> ( <COMMA> <link linkend="prod2">id</link> <link linkend="prod21">dataTypeString</link> )*</para></entry></row>
+<link linkend="prod2">id</link> <link linkend="prod22">dataTypeString</link> ( <COMMA> <link linkend="prod2">id</link> <link linkend="prod22">dataTypeString</link> )*</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod6" xreflabel="callableStatement"/>callableStatement</para></entry>
<entry align="left" valign="top"><para>::=
-<LBRACE> ( <QMARK> <EQ> )? <CALL> <link linkend="prod2">id</link> ( <LPAREN> ( <link linkend="prod43">executeUnnamedParams</link> ) <RPAREN> )? <RBRACE> ( <link linkend="prod44">option</link> )?</para></entry></row>
+<LBRACE> ( <QMARK> <EQ> )? <CALL> <link linkend="prod2">id</link> ( <LPAREN> ( <link linkend="prod44">executeUnnamedParams</link> ) <RPAREN> )? <RBRACE> ( <link linkend="prod45">option</link> )?</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod14" xreflabel="storedProcedure"/>storedProcedure</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod15" xreflabel="storedProcedure"/>storedProcedure</para></entry>
<entry align="left" valign="top"><para>::=
-( ( <EXEC> | <EXECUTE> | <CALL> ) <link linkend="prod2">id</link> <LPAREN> ( <link linkend="prod45">executeNamedParams</link> | <link linkend="prod43">executeUnnamedParams</link> ) <RPAREN> ) ( <link linkend="prod44">option</link> )?</para></entry></row>
+( ( <EXEC> | <EXECUTE> | <CALL> ) <link linkend="prod2">id</link> <LPAREN> ( <link linkend="prod46">executeNamedParams</link> | <link linkend="prod44">executeUnnamedParams</link> ) <RPAREN> ) ( <link linkend="prod45">option</link> )?</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod43" xreflabel="executeUnnamedParams"/>executeUnnamedParams</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod44" xreflabel="executeUnnamedParams"/>executeUnnamedParams</para></entry>
<entry align="left" valign="top"><para>::=
-( <link linkend="prod23">expression</link> ( <COMMA> <link linkend="prod23">expression</link> )* )?</para></entry></row>
+( <link linkend="prod24">expression</link> ( <COMMA> <link linkend="prod24">expression</link> )* )?</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod45" xreflabel="executeNamedParams"/>executeNamedParams</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod46" xreflabel="executeNamedParams"/>executeNamedParams</para></entry>
<entry align="left" valign="top"><para>::=
-( <link linkend="prod2">id</link> <EQ> ( <GT> )? <link linkend="prod23">expression</link> ( <COMMA> <link linkend="prod2">id</link> <EQ> ( <GT> )? <link linkend="prod23">expression</link> )* )</para></entry></row>
+( <link linkend="prod2">id</link> <EQ> ( <GT> )? <link linkend="prod24">expression</link> ( <COMMA> <link linkend="prod2">id</link> <EQ> ( <GT> )? <link linkend="prod24">expression</link> )* )</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod15" xreflabel="insert"/>insert</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod16" xreflabel="insert"/>insert</para></entry>
<entry align="left" valign="top"><para>::=
-<INSERT> <INTO> <link linkend="prod2">id</link> ( <link linkend="prod46">columnList</link> )? ( ( <VALUES> <link linkend="prod47">rowValues</link> ) | ( <link linkend="prod12">queryExpression</link> ) ) ( <link linkend="prod44">option</link> )?</para></entry></row>
+<INSERT> <INTO> <link linkend="prod2">id</link> ( <link linkend="prod47">columnList</link> )? ( ( <VALUES> <link linkend="prod48">rowValues</link> ) | ( <link linkend="prod13">queryExpression</link> ) ) ( <link linkend="prod45">option</link> )?</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod46" xreflabel="columnList"/>columnList</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod47" xreflabel="columnList"/>columnList</para></entry>
<entry align="left" valign="top"><para>::=
<LPAREN> <link linkend="prod2">id</link> ( <COMMA> <link linkend="prod2">id</link> )* <RPAREN></para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod47" xreflabel="rowValues"/>rowValues</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod48" xreflabel="rowValues"/>rowValues</para></entry>
<entry align="left" valign="top"><para>::=
-<LPAREN> <link linkend="prod23">expression</link> ( <COMMA> <link linkend="prod23">expression</link> )* <RPAREN></para></entry></row>
+<LPAREN> <link linkend="prod24">expression</link> ( <COMMA> <link linkend="prod24">expression</link> )* <RPAREN></para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod16" xreflabel="update"/>update</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod17" xreflabel="update"/>update</para></entry>
<entry align="left" valign="top"><para>::=
-<UPDATE> <link linkend="prod2">id</link> <SET> <link linkend="prod42">setClauseList</link> ( <link linkend="prod48">where</link> )? ( <link linkend="prod44">option</link> )?</para></entry></row>
+<UPDATE> <link linkend="prod2">id</link> <SET> <link linkend="prod43">setClauseList</link> ( <link linkend="prod49">where</link> )? ( <link linkend="prod45">option</link> )?</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod17" xreflabel="delete"/>delete</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod18" xreflabel="delete"/>delete</para></entry>
<entry align="left" valign="top"><para>::=
-<DELETE> <FROM> <link linkend="prod2">id</link> ( <link linkend="prod48">where</link> )? ( <link linkend="prod44">option</link> )?</para></entry></row>
+<DELETE> <FROM> <link linkend="prod2">id</link> ( <link linkend="prod49">where</link> )? ( <link linkend="prod45">option</link> )?</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod12" xreflabel="queryExpression"/>queryExpression</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod13" xreflabel="queryExpression"/>queryExpression</para></entry>
<entry align="left" valign="top"><para>::=
-( <WITH> <link linkend="prod49">withListElement</link> ( <COMMA> <link linkend="prod49">withListElement</link> )* )? <link linkend="prod50">queryExpressionBody</link></para></entry></row>
+( <WITH> <link linkend="prod50">withListElement</link> ( <COMMA> <link linkend="prod50">withListElement</link> )* )? <link linkend="prod51">queryExpressionBody</link></para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod49" xreflabel="withListElement"/>withListElement</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod50" xreflabel="withListElement"/>withListElement</para></entry>
<entry align="left" valign="top"><para>::=
-<link linkend="prod2">id</link> ( <link linkend="prod46">columnList</link> )? <AS> <LPAREN> <link linkend="prod12">queryExpression</link> <RPAREN></para></entry></row>
+<link linkend="prod2">id</link> ( <link linkend="prod47">columnList</link> )? <AS> <LPAREN> <link linkend="prod13">queryExpression</link> <RPAREN></para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod50" xreflabel="queryExpressionBody"/>queryExpressionBody</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod51" xreflabel="queryExpressionBody"/>queryExpressionBody</para></entry>
<entry align="left" valign="top"><para>::=
-<link linkend="prod51">queryTerm</link> ( ( <UNION> | <EXCEPT> ) ( <ALL> | <DISTINCT> )? <link linkend="prod51">queryTerm</link> )* ( <link linkend="prod52">orderby</link> )? ( <link linkend="prod53">limit</link> )? ( <link linkend="prod44">option</link> )?</para></entry></row>
+<link linkend="prod52">queryTerm</link> ( ( <UNION> | <EXCEPT> ) ( <ALL> | <DISTINCT> )? <link linkend="prod52">queryTerm</link> )* ( <link linkend="prod53">orderby</link> )? ( <link linkend="prod54">limit</link> )? ( <link linkend="prod45">option</link> )?</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod51" xreflabel="queryTerm"/>queryTerm</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod52" xreflabel="queryTerm"/>queryTerm</para></entry>
<entry align="left" valign="top"><para>::=
-<link linkend="prod54">queryPrimary</link> ( <INTERSECT> ( <ALL> | <DISTINCT> )? <link linkend="prod54">queryPrimary</link> )*</para></entry></row>
+<link linkend="prod55">queryPrimary</link> ( <INTERSECT> ( <ALL> | <DISTINCT> )? <link linkend="prod55">queryPrimary</link> )*</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod54" xreflabel="queryPrimary"/>queryPrimary</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod55" xreflabel="queryPrimary"/>queryPrimary</para></entry>
<entry align="left" valign="top"><para>::=
-( <link linkend="prod55">query</link> | ( <TABLE> <link linkend="prod2">id</link> ) | ( <LPAREN> <link linkend="prod50">queryExpressionBody</link> <RPAREN> ) )</para></entry></row>
+( <link linkend="prod56">query</link> | ( <TABLE> <link linkend="prod2">id</link> ) | ( <LPAREN> <link linkend="prod51">queryExpressionBody</link> <RPAREN> ) )</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod55" xreflabel="query"/>query</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod56" xreflabel="query"/>query</para></entry>
<entry align="left" valign="top"><para>::=
-<link linkend="prod56">select</link> ( <link linkend="prod57">into</link> )? ( <link linkend="prod58">from</link> ( <link linkend="prod48">where</link> )? ( <link linkend="prod59">groupBy</link> )? ( <link linkend="prod60">having</link> )? )?</para></entry></row>
+<link linkend="prod57">select</link> ( <link linkend="prod58">into</link> )? ( <link linkend="prod59">from</link> ( <link linkend="prod49">where</link> )? ( <link linkend="prod60">groupBy</link> )? ( <link linkend="prod61">having</link> )? )?</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod57" xreflabel="into"/>into</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod58" xreflabel="into"/>into</para></entry>
<entry align="left" valign="top"><para>::=
<INTO> ( <link linkend="prod2">id</link> )</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod56" xreflabel="select"/>select</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod57" xreflabel="select"/>select</para></entry>
<entry align="left" valign="top"><para>::=
-<SELECT> ( <ALL> | ( <DISTINCT> ) )? ( <STAR> | ( <link linkend="prod61">selectSymbol</link> ( <COMMA> <link linkend="prod61">selectSymbol</link> )* ) )</para></entry></row>
+<SELECT> ( <ALL> | ( <DISTINCT> ) )? ( <STAR> | ( <link linkend="prod62">selectSymbol</link> ( <COMMA> <link linkend="prod62">selectSymbol</link> )* ) )</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod61" xreflabel="selectSymbol"/>selectSymbol</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod62" xreflabel="selectSymbol"/>selectSymbol</para></entry>
<entry align="left" valign="top"><para>::=
-( <link linkend="prod62">selectExpression</link> | <link linkend="prod63">allInGroupSymbol</link> )</para></entry></row>
+( <link linkend="prod63">selectExpression</link> | <link linkend="prod64">allInGroupSymbol</link> )</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod62" xreflabel="selectExpression"/>selectExpression</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod63" xreflabel="selectExpression"/>selectExpression</para></entry>
<entry align="left" valign="top"><para>::=
-( <link linkend="prod23">expression</link> ( ( <AS> )? <link linkend="prod2">id</link> )? )</para></entry></row>
+( <link linkend="prod24">expression</link> ( ( <AS> )? <link linkend="prod2">id</link> )? )</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod64" xreflabel="derivedColumn"/>derivedColumn</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod65" xreflabel="derivedColumn"/>derivedColumn</para></entry>
<entry align="left" valign="top"><para>::=
-( <link linkend="prod23">expression</link> ( <AS> <link linkend="prod2">id</link> )? )</para></entry></row>
+( <link linkend="prod24">expression</link> ( <AS> <link linkend="prod2">id</link> )? )</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod63" xreflabel="allInGroupSymbol"/>allInGroupSymbol</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod64" xreflabel="allInGroupSymbol"/>allInGroupSymbol</para></entry>
<entry align="left" valign="top"><para>::=
<ALL_IN_GROUP></para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod65" xreflabel="xmlAgg"/>xmlAgg</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod66" xreflabel="xmlAgg"/>xmlAgg</para></entry>
<entry align="left" valign="top"><para>::=
-<XMLAGG> <LPAREN> <link linkend="prod23">expression</link> ( <link linkend="prod52">orderby</link> )? <RPAREN></para></entry></row>
+<XMLAGG> <LPAREN> <link linkend="prod24">expression</link> ( <link linkend="prod53">orderby</link> )? <RPAREN></para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod66" xreflabel="arrayAgg"/>arrayAgg</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod67" xreflabel="arrayAgg"/>arrayAgg</para></entry>
<entry align="left" valign="top"><para>::=
-<ARRAY_AGG> <LPAREN> <link linkend="prod23">expression</link> ( <link linkend="prod52">orderby</link> )? <RPAREN></para></entry></row>
+<ARRAY_AGG> <LPAREN> <link linkend="prod24">expression</link> ( <link linkend="prod53">orderby</link> )? <RPAREN></para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod67" xreflabel="textAgg"/>textAgg</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod68" xreflabel="textAgg"/>textAgg</para></entry>
<entry align="left" valign="top"><para>::=
-<link linkend="prod11">nonReserved</link> <LPAREN> <FOR> <link linkend="prod64">derivedColumn</link> ( <COMMA> <link linkend="prod64">derivedColumn</link> )* ( <ID> <link linkend="prod68">charVal</link> )? ( ( <ID> <link linkend="prod68">charVal</link> ) )? ( <ID> )? ( ( <ID> <link linkend="prod2">id</link> ) )? ( <link linkend="prod52">orderby</link> )? <RPAREN></para></entry></row>
+<link linkend="prod11">nonReserved</link> <LPAREN> <FOR> <link linkend="prod65">derivedColumn</link> ( <COMMA> <link linkend="prod65">derivedColumn</link> )* ( <ID> <link linkend="prod69">charVal</link> )? ( ( <ID> <link linkend="prod69">charVal</link> ) )? ( <ID> )? ( ( <ID> <link linkend="prod2">id</link> ) )? ( <link linkend="prod53">orderby</link> )? <RPAREN></para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod69" xreflabel="aggregateSymbol"/>aggregateSymbol</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod70" xreflabel="aggregateSymbol"/>aggregateSymbol</para></entry>
<entry align="left" valign="top"><para>::=
-( ( <link linkend="prod11">nonReserved</link> <LPAREN> <STAR> <RPAREN> ) | ( ( <link linkend="prod11">nonReserved</link> | <ANY> | <SOME> ) <LPAREN> ( <DISTINCT> | <ALL> )? <link linkend="prod23">expression</link> <RPAREN> ) )</para></entry></row>
+( ( <link linkend="prod11">nonReserved</link> <LPAREN> <STAR> <RPAREN> ) | ( ( <link linkend="prod11">nonReserved</link> | <ANY> | <SOME> ) <LPAREN> ( <DISTINCT> | <ALL> )? <link linkend="prod24">expression</link> <RPAREN> ) )</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod58" xreflabel="from"/>from</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod59" xreflabel="from"/>from</para></entry>
<entry align="left" valign="top"><para>::=
-<FROM> ( <link linkend="prod70">tableReference</link> ( <COMMA> <link linkend="prod70">tableReference</link> )* )</para></entry></row>
+<FROM> ( <link linkend="prod71">tableReference</link> ( <COMMA> <link linkend="prod71">tableReference</link> )* )</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod70" xreflabel="tableReference"/>tableReference</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod71" xreflabel="tableReference"/>tableReference</para></entry>
<entry align="left" valign="top"><para>::=
-( ( <LBRACE> <link linkend="prod11">nonReserved</link> <link linkend="prod71">joinedTable</link> <RBRACE> ) | <link linkend="prod71">joinedTable</link> )</para></entry></row>
+( ( <LBRACE> <link linkend="prod11">nonReserved</link> <link linkend="prod72">joinedTable</link> <RBRACE> ) | <link linkend="prod72">joinedTable</link> )</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod71" xreflabel="joinedTable"/>joinedTable</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod72" xreflabel="joinedTable"/>joinedTable</para></entry>
<entry align="left" valign="top"><para>::=
-<link linkend="prod72">tablePrimary</link> ( ( <link linkend="prod73">crossJoin</link> | <link linkend="prod74">qualifiedJoin</link> ) )*</para></entry></row>
+<link linkend="prod73">tablePrimary</link> ( ( <link linkend="prod74">crossJoin</link> | <link linkend="prod75">qualifiedJoin</link> ) )*</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod73" xreflabel="crossJoin"/>crossJoin</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod74" xreflabel="crossJoin"/>crossJoin</para></entry>
<entry align="left" valign="top"><para>::=
-( ( <CROSS> | <UNION> ) <JOIN> <link linkend="prod72">tablePrimary</link> )</para></entry></row>
+( ( <CROSS> | <UNION> ) <JOIN> <link linkend="prod73">tablePrimary</link> )</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod74" xreflabel="qualifiedJoin"/>qualifiedJoin</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod75" xreflabel="qualifiedJoin"/>qualifiedJoin</para></entry>
<entry align="left" valign="top"><para>::=
-( ( ( <RIGHT> ( <OUTER> )? ) | ( <LEFT> ( <OUTER> )? ) | ( <FULL> ( <OUTER> )? ) | <INNER> )? <JOIN> <link linkend="prod70">tableReference</link> <ON> <link linkend="prod34">criteria</link> )</para></entry></row>
+( ( ( <RIGHT> ( <OUTER> )? ) | ( <LEFT> ( <OUTER> )? ) | ( <FULL> ( <OUTER> )? ) | <INNER> )? <JOIN> <link linkend="prod71">tableReference</link> <ON> <link linkend="prod35">criteria</link> )</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod72" xreflabel="tablePrimary"/>tablePrimary</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod73" xreflabel="tablePrimary"/>tablePrimary</para></entry>
<entry align="left" valign="top"><para>::=
-( <link linkend="prod75">textTable</link> | <link linkend="prod76">arrayTable</link> | <link linkend="prod77">xmlTable</link> | <link linkend="prod78">unaryFromClause</link> | <link linkend="prod79">subqueryFromClause</link> | ( <LPAREN> <link linkend="prod71">joinedTable</link> <RPAREN> ) ) ( ( <MAKEDEP> ) | ( <MAKENOTDEP> ) )?</para></entry></row>
+( <link linkend="prod76">textTable</link> | <link linkend="prod77">arrayTable</link> | <link linkend="prod78">xmlTable</link> | <link linkend="prod79">unaryFromClause</link> | <link linkend="prod80">subqueryFromClause</link> | ( <LPAREN> <link linkend="prod72">joinedTable</link> <RPAREN> ) ) ( ( <MAKEDEP> ) | ( <MAKENOTDEP> ) )?</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod80" xreflabel="xmlSerialize"/>xmlSerialize</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod81" xreflabel="xmlSerialize"/>xmlSerialize</para></entry>
<entry align="left" valign="top"><para>::=
-<XMLSERIALIZE> <LPAREN> ( <link linkend="prod11">nonReserved</link> )? <link linkend="prod23">expression</link> ( <AS> ( <STRING> | <VARCHAR> | <CLOB> ) )? <RPAREN></para></entry></row>
+<XMLSERIALIZE> <LPAREN> ( <link linkend="prod11">nonReserved</link> )? <link linkend="prod24">expression</link> ( <AS> ( <STRING> | <VARCHAR> | <CLOB> ) )? <RPAREN></para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod11" xreflabel="nonReserved"/>nonReserved</para></entry>
<entry align="left" valign="top"><para>::=
<ID></para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod76" xreflabel="arrayTable"/>arrayTable</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod77" xreflabel="arrayTable"/>arrayTable</para></entry>
<entry align="left" valign="top"><para>::=
-<ID> <LPAREN> <link linkend="prod23">expression</link> <link linkend="prod11">nonReserved</link> <link linkend="prod41">createElementsWithTypes</link> <RPAREN> ( <AS> )? <link linkend="prod2">id</link></para></entry></row>
+<ID> <LPAREN> <link linkend="prod24">expression</link> <link linkend="prod11">nonReserved</link> <link linkend="prod42">createElementsWithTypes</link> <RPAREN> ( <AS> )? <link linkend="prod2">id</link></para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod75" xreflabel="textTable"/>textTable</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod76" xreflabel="textTable"/>textTable</para></entry>
<entry align="left" valign="top"><para>::=
-<ID> <LPAREN> <link linkend="prod23">expression</link> <link linkend="prod11">nonReserved</link> <link linkend="prod81">textColumn</link> ( <COMMA> <link linkend="prod81">textColumn</link> )* ( <ID> <link linkend="prod68">charVal</link> )? ( ( <ESCAPE> <link linkend="prod68">charVal</link> ) | ( <ID> <link linkend="prod68">charVal</link> ) )? ( <ID> ( <link linkend="prod82">intVal</link> )? )? ( <ID> <link linkend="prod82">intVal</link> )? <RPAREN> ( <AS> )? <link linkend="prod2">id</link></para></entry></row>
+<ID> <LPAREN> <link linkend="prod24">expression</link> <link linkend="prod11">nonReserved</link> <link linkend="prod82">textColumn</link> ( <COMMA> <link linkend="prod82">textColumn</link> )* ( <ID> <link linkend="prod69">charVal</link> )? ( ( <ESCAPE> <link linkend="prod69">charVal</link> ) | ( <ID> <link linkend="prod69">charVal</link> ) )? ( <ID> ( <link linkend="prod83">intVal</link> )? )? ( <ID> <link linkend="prod83">intVal</link> )? <RPAREN> ( <AS> )? <link linkend="prod2">id</link></para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod81" xreflabel="textColumn"/>textColumn</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod82" xreflabel="textColumn"/>textColumn</para></entry>
<entry align="left" valign="top"><para>::=
-<link linkend="prod2">id</link> <link linkend="prod37">dataType</link> ( <ID> <link linkend="prod82">intVal</link> )?</para></entry></row>
+<link linkend="prod2">id</link> <link linkend="prod38">dataType</link> ( <ID> <link linkend="prod83">intVal</link> )?</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod83" xreflabel="xmlQuery"/>xmlQuery</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod84" xreflabel="xmlQuery"/>xmlQuery</para></entry>
<entry align="left" valign="top"><para>::=
-<XMLQUERY> <LPAREN> ( <link linkend="prod84">xmlNamespaces</link> <COMMA> )? <link linkend="prod1">stringVal</link> ( <ID> <link linkend="prod64">derivedColumn</link> ( <COMMA> <link linkend="prod64">derivedColumn</link> )* )? ( ( <NULL> | <link linkend="prod11">nonReserved</link> ) <ON> <link linkend="prod11">nonReserved</link> )? <RPAREN></para></entry></row>
+<XMLQUERY> <LPAREN> ( <link linkend="prod85">xmlNamespaces</link> <COMMA> )? <link linkend="prod1">stringVal</link> ( <ID> <link linkend="prod65">derivedColumn</link> ( <COMMA> <link linkend="prod65">derivedColumn</link> )* )? ( ( <NULL> | <link linkend="prod11">nonReserved</link> ) <ON> <link linkend="prod11">nonReserved</link> )? <RPAREN></para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod77" xreflabel="xmlTable"/>xmlTable</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod78" xreflabel="xmlTable"/>xmlTable</para></entry>
<entry align="left" valign="top"><para>::=
-<XMLTABLE> <LPAREN> ( <link linkend="prod84">xmlNamespaces</link> <COMMA> )? <link linkend="prod1">stringVal</link> ( <ID> <link linkend="prod64">derivedColumn</link> ( <COMMA> <link linkend="prod64">derivedColumn</link> )* )? ( <ID> <link linkend="prod85">xmlColumn</link> ( <COMMA> <link linkend="prod85">xmlColumn</link> )* )? <RPAREN> ( <AS> )? <link linkend="prod2">id</link></para></entry></row>
+<XMLTABLE> <LPAREN> ( <link linkend="prod85">xmlNamespaces</link> <COMMA> )? <link linkend="prod1">stringVal</link> ( <ID> <link linkend="prod65">derivedColumn</link> ( <COMMA> <link linkend="prod65">derivedColumn</link> )* )? ( <ID> <link linkend="prod86">xmlColumn</link> ( <COMMA> <link linkend="prod86">xmlColumn</link> )* )? <RPAREN> ( <AS> )? <link linkend="prod2">id</link></para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod85" xreflabel="xmlColumn"/>xmlColumn</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod86" xreflabel="xmlColumn"/>xmlColumn</para></entry>
<entry align="left" valign="top"><para>::=
-<link linkend="prod2">id</link> ( ( <FOR> <link linkend="prod11">nonReserved</link> ) | ( <link linkend="prod37">dataType</link> ( <DEFAULT_KEYWORD> <link linkend="prod23">expression</link> )? ( <link linkend="prod11">nonReserved</link> <link linkend="prod1">stringVal</link> )? ) )</para></entry></row>
+<link linkend="prod2">id</link> ( ( <FOR> <link linkend="prod11">nonReserved</link> ) | ( <link linkend="prod38">dataType</link> ( <DEFAULT_KEYWORD> <link linkend="prod24">expression</link> )? ( <link linkend="prod11">nonReserved</link> <link linkend="prod1">stringVal</link> )? ) )</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod82" xreflabel="intVal"/>intVal</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod83" xreflabel="intVal"/>intVal</para></entry>
<entry align="left" valign="top"><para>::=
<INTEGERVAL></para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod79" xreflabel="subqueryFromClause"/>subqueryFromClause</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod80" xreflabel="subqueryFromClause"/>subqueryFromClause</para></entry>
<entry align="left" valign="top"><para>::=
-( <TABLE> )? <LPAREN> ( <link linkend="prod12">queryExpression</link> | <link linkend="prod14">storedProcedure</link> ) <RPAREN> ( <AS> )? <link linkend="prod2">id</link></para></entry></row>
+( <TABLE> )? <LPAREN> ( <link linkend="prod13">queryExpression</link> | <link linkend="prod15">storedProcedure</link> ) <RPAREN> ( <AS> )? <link linkend="prod2">id</link></para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod78" xreflabel="unaryFromClause"/>unaryFromClause</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod79" xreflabel="unaryFromClause"/>unaryFromClause</para></entry>
<entry align="left" valign="top"><para>::=
( <ID> ( ( <AS> )? <link linkend="prod2">id</link> )? )</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod48" xreflabel="where"/>where</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod49" xreflabel="where"/>where</para></entry>
<entry align="left" valign="top"><para>::=
-<WHERE> <link linkend="prod34">criteria</link></para></entry></row>
+<WHERE> <link linkend="prod35">criteria</link></para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod34" xreflabel="criteria"/>criteria</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod35" xreflabel="criteria"/>criteria</para></entry>
<entry align="left" valign="top"><para>::=
-<link linkend="prod86">compoundCritOr</link></para></entry></row>
+<link linkend="prod87">compoundCritOr</link></para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod86" xreflabel="compoundCritOr"/>compoundCritOr</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod87" xreflabel="compoundCritOr"/>compoundCritOr</para></entry>
<entry align="left" valign="top"><para>::=
-<link linkend="prod87">compoundCritAnd</link> ( <OR> <link linkend="prod87">compoundCritAnd</link> )*</para></entry></row>
+<link linkend="prod88">compoundCritAnd</link> ( <OR> <link linkend="prod88">compoundCritAnd</link> )*</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod87" xreflabel="compoundCritAnd"/>compoundCritAnd</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod88" xreflabel="compoundCritAnd"/>compoundCritAnd</para></entry>
<entry align="left" valign="top"><para>::=
-<link linkend="prod88">notCrit</link> ( <AND> <link linkend="prod88">notCrit</link> )*</para></entry></row>
+<link linkend="prod89">notCrit</link> ( <AND> <link linkend="prod89">notCrit</link> )*</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod88" xreflabel="notCrit"/>notCrit</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod89" xreflabel="notCrit"/>notCrit</para></entry>
<entry align="left" valign="top"><para>::=
-( <NOT> )? <link linkend="prod89">booleanPrimary</link></para></entry></row>
+( <NOT> )? <link linkend="prod90">booleanPrimary</link></para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod89" xreflabel="booleanPrimary"/>booleanPrimary</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod90" xreflabel="booleanPrimary"/>booleanPrimary</para></entry>
<entry align="left" valign="top"><para>::=
-( <link linkend="prod40">translateCriteria</link> | ( <link linkend="prod90">commonValueExpression</link> ( ( <link linkend="prod91">betweenCrit</link> | <link linkend="prod92">matchCrit</link> | <link linkend="prod93">setCrit</link> | <link linkend="prod94">isNullCrit</link> | <link linkend="prod95">subqueryCompareCriteria</link> | <link linkend="prod96">compareCrit</link> ) )? ) | <link linkend="prod97">existsCriteria</link> | <link linkend="prod36">hasCriteria</link> )</para></entry></row>
+( <link linkend="prod41">translateCriteria</link> | ( <link linkend="prod91">commonValueExpression</link> ( ( <link linkend="prod92">betweenCrit</link> | <link linkend="prod93">matchCrit</link> | <link linkend="prod94">setCrit</link> | <link linkend="prod95">isNullCrit</link> | <link linkend="prod96">subqueryCompareCriteria</link> | <link linkend="prod97">compareCrit</link> ) )? ) | <link linkend="prod98">existsCriteria</link> | <link linkend="prod37">hasCriteria</link> )</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod98" xreflabel="operator"/>operator</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod99" xreflabel="operator"/>operator</para></entry>
<entry align="left" valign="top"><para>::=
( <EQ> | <NE> | <NE2> | <LT> | <LE> | <GT> | <GE> )</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod96" xreflabel="compareCrit"/>compareCrit</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod97" xreflabel="compareCrit"/>compareCrit</para></entry>
<entry align="left" valign="top"><para>::=
-<link linkend="prod98">operator</link> <link linkend="prod90">commonValueExpression</link></para></entry></row>
+<link linkend="prod99">operator</link> <link linkend="prod91">commonValueExpression</link></para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod99" xreflabel="subquery"/>subquery</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod100" xreflabel="subquery"/>subquery</para></entry>
<entry align="left" valign="top"><para>::=
-<link linkend="prod100">subqueryAndHint</link></para></entry></row>
+<LPAREN> ( <link linkend="prod13">queryExpression</link> | ( <link linkend="prod15">storedProcedure</link> ) ) <RPAREN></para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod100" xreflabel="subqueryAndHint"/>subqueryAndHint</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod101" xreflabel="subqueryAndHint"/>subqueryAndHint</para></entry>
<entry align="left" valign="top"><para>::=
-<LPAREN> ( <link linkend="prod12">queryExpression</link> | ( <link linkend="prod14">storedProcedure</link> ) ) <RPAREN></para></entry></row>
+<link linkend="prod100">subquery</link></para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod95" xreflabel="subqueryCompareCriteria"/>subqueryCompareCriteria</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod96" xreflabel="subqueryCompareCriteria"/>subqueryCompareCriteria</para></entry>
<entry align="left" valign="top"><para>::=
-<link linkend="prod98">operator</link> ( <ANY> | <SOME> | <ALL> ) <link linkend="prod99">subquery</link></para></entry></row>
+<link linkend="prod99">operator</link> ( <ANY> | <SOME> | <ALL> ) <link linkend="prod100">subquery</link></para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod92" xreflabel="matchCrit"/>matchCrit</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod93" xreflabel="matchCrit"/>matchCrit</para></entry>
<entry align="left" valign="top"><para>::=
-( <NOT> )? <LIKE> <link linkend="prod90">commonValueExpression</link> ( <ESCAPE> <link linkend="prod68">charVal</link> | ( <LBRACE> <ESCAPE> <link linkend="prod68">charVal</link> <RBRACE> ) )?</para></entry></row>
+( <NOT> )? <LIKE> <link linkend="prod91">commonValueExpression</link> ( <ESCAPE> <link linkend="prod69">charVal</link> | ( <LBRACE> <ESCAPE> <link linkend="prod69">charVal</link> <RBRACE> ) )?</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod68" xreflabel="charVal"/>charVal</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod69" xreflabel="charVal"/>charVal</para></entry>
<entry align="left" valign="top"><para>::=
<link linkend="prod1">stringVal</link></para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod91" xreflabel="betweenCrit"/>betweenCrit</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod92" xreflabel="betweenCrit"/>betweenCrit</para></entry>
<entry align="left" valign="top"><para>::=
-( <NOT> )? <BETWEEN> <link linkend="prod90">commonValueExpression</link> <AND> <link linkend="prod90">commonValueExpression</link></para></entry></row>
+( <NOT> )? <BETWEEN> <link linkend="prod91">commonValueExpression</link> <AND> <link linkend="prod91">commonValueExpression</link></para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod94" xreflabel="isNullCrit"/>isNullCrit</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod95" xreflabel="isNullCrit"/>isNullCrit</para></entry>
<entry align="left" valign="top"><para>::=
<IS> ( <NOT> )? <NULL></para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod93" xreflabel="setCrit"/>setCrit</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod94" xreflabel="setCrit"/>setCrit</para></entry>
<entry align="left" valign="top"><para>::=
-( <NOT> )? <IN> ( ( <link linkend="prod100">subqueryAndHint</link> ) | ( <LPAREN> <link linkend="prod90">commonValueExpression</link> ( <COMMA> <link linkend="prod90">commonValueExpression</link> )* <RPAREN> ) )</para></entry></row>
+( <NOT> )? <IN> ( ( <link linkend="prod101">subqueryAndHint</link> ) | ( <LPAREN> <link linkend="prod91">commonValueExpression</link> ( <COMMA> <link linkend="prod91">commonValueExpression</link> )* <RPAREN> ) )</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod97" xreflabel="existsCriteria"/>existsCriteria</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod98" xreflabel="existsCriteria"/>existsCriteria</para></entry>
<entry align="left" valign="top"><para>::=
-<EXISTS> <link linkend="prod100">subqueryAndHint</link></para></entry></row>
+<EXISTS> <link linkend="prod101">subqueryAndHint</link></para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod59" xreflabel="groupBy"/>groupBy</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod60" xreflabel="groupBy"/>groupBy</para></entry>
<entry align="left" valign="top"><para>::=
-<GROUP> <BY> ( <link linkend="prod101">groupByItem</link> ( <COMMA> <link linkend="prod101">groupByItem</link> )* )</para></entry></row>
+<GROUP> <BY> ( <link linkend="prod102">groupByItem</link> ( <COMMA> <link linkend="prod102">groupByItem</link> )* )</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod101" xreflabel="groupByItem"/>groupByItem</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod102" xreflabel="groupByItem"/>groupByItem</para></entry>
<entry align="left" valign="top"><para>::=
-<link linkend="prod23">expression</link></para></entry></row>
+<link linkend="prod24">expression</link></para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod60" xreflabel="having"/>having</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod61" xreflabel="having"/>having</para></entry>
<entry align="left" valign="top"><para>::=
-<HAVING> <link linkend="prod34">criteria</link></para></entry></row>
+<HAVING> <link linkend="prod35">criteria</link></para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod52" xreflabel="orderby"/>orderby</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod53" xreflabel="orderby"/>orderby</para></entry>
<entry align="left" valign="top"><para>::=
-<ORDER> <BY> <link linkend="prod102">sortSpecification</link> ( <COMMA> <link linkend="prod102">sortSpecification</link> )*</para></entry></row>
+<ORDER> <BY> <link linkend="prod103">sortSpecification</link> ( <COMMA> <link linkend="prod103">sortSpecification</link> )*</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod102" xreflabel="sortSpecification"/>sortSpecification</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod103" xreflabel="sortSpecification"/>sortSpecification</para></entry>
<entry align="left" valign="top"><para>::=
-<link linkend="prod103">sortKey</link> ( <ASC> | <DESC> )? ( <link linkend="prod11">nonReserved</link> <link linkend="prod11">nonReserved</link> )?</para></entry></row>
+<link linkend="prod104">sortKey</link> ( <ASC> | <DESC> )? ( <link linkend="prod11">nonReserved</link> <link linkend="prod11">nonReserved</link> )?</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod103" xreflabel="sortKey"/>sortKey</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod104" xreflabel="sortKey"/>sortKey</para></entry>
<entry align="left" valign="top"><para>::=
-<link linkend="prod23">expression</link></para></entry></row>
+<link linkend="prod24">expression</link></para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod53" xreflabel="limit"/>limit</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod54" xreflabel="limit"/>limit</para></entry>
<entry align="left" valign="top"><para>::=
<LIMIT> ( <INTEGERVAL> | <QMARK> ) ( <COMMA> ( <INTEGERVAL> | <QMARK> ) )?</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod44" xreflabel="option"/>option</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod45" xreflabel="option"/>option</para></entry>
<entry align="left" valign="top"><para>::=
<OPTION> ( <MAKEDEP> <link linkend="prod2">id</link> ( <COMMA> <link linkend="prod2">id</link> )* | <MAKENOTDEP> <link linkend="prod2">id</link> ( <COMMA> <link linkend="prod2">id</link> )* | <NOCACHE> ( <link linkend="prod2">id</link> ( <COMMA> <link linkend="prod2">id</link> )* )? )*</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod23" xreflabel="expression"/>expression</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod24" xreflabel="expression"/>expression</para></entry>
<entry align="left" valign="top"><para>::=
-<link linkend="prod34">criteria</link></para></entry></row>
+<link linkend="prod35">criteria</link></para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod90" xreflabel="commonValueExpression"/>commonValueExpression</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod91" xreflabel="commonValueExpression"/>commonValueExpression</para></entry>
<entry align="left" valign="top"><para>::=
-( <link linkend="prod104">plusExpression</link> ( <CONCAT_OP> <link linkend="prod104">plusExpression</link> )* )</para></entry></row>
+( <link linkend="prod105">plusExpression</link> ( <CONCAT_OP> <link linkend="prod105">plusExpression</link> )* )</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod104" xreflabel="plusExpression"/>plusExpression</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod105" xreflabel="plusExpression"/>plusExpression</para></entry>
<entry align="left" valign="top"><para>::=
-( <link linkend="prod105">timesExpression</link> ( <link linkend="prod106">plusOperator</link> <link linkend="prod105">timesExpression</link> )* )</para></entry></row>
+( <link linkend="prod106">timesExpression</link> ( <link linkend="prod107">plusOperator</link> <link linkend="prod106">timesExpression</link> )* )</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod106" xreflabel="plusOperator"/>plusOperator</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod107" xreflabel="plusOperator"/>plusOperator</para></entry>
<entry align="left" valign="top"><para>::=
( <PLUS> | <MINUS> )</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod105" xreflabel="timesExpression"/>timesExpression</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod106" xreflabel="timesExpression"/>timesExpression</para></entry>
<entry align="left" valign="top"><para>::=
-( <link linkend="prod107">valueExpressionPrimary</link> ( <link linkend="prod108">timesOperator</link> <link linkend="prod107">valueExpressionPrimary</link> )* )</para></entry></row>
+( <link linkend="prod108">valueExpressionPrimary</link> ( <link linkend="prod109">timesOperator</link> <link linkend="prod108">valueExpressionPrimary</link> )* )</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod108" xreflabel="timesOperator"/>timesOperator</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod109" xreflabel="timesOperator"/>timesOperator</para></entry>
<entry align="left" valign="top"><para>::=
( <STAR> | <SLASH> )</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod107" xreflabel="valueExpressionPrimary"/>valueExpressionPrimary</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod108" xreflabel="valueExpressionPrimary"/>valueExpressionPrimary</para></entry>
<entry align="left" valign="top"><para>::=
-( <QMARK> | <POS_REF> | <link linkend="prod109">literal</link> | ( <LBRACE> <link linkend="prod11">nonReserved</link> <link linkend="prod110">function</link> <RBRACE> ) | ( <link linkend="prod67">textAgg</link> ) | ( <link linkend="prod69">aggregateSymbol</link> ) | ( <link linkend="prod69">aggregateSymbol</link> ) | ( <link linkend="prod69">aggregateSymbol</link> ) | ( <link linkend="prod65">xmlAgg</link> ) | ( <link linkend="prod66">arrayAgg</link> ) | ( <link linkend="prod110">function</link> ) | ( <ID> ( <LSBRACE> <link linkend="prod82">intVal</link> <RSBRACE> )? ) | <link linkend="prod99">subquery</link> | ( <LPAREN> <link linkend="prod23">expression</link> <RPAREN> ( <LSBRACE> <link linkend="prod82">intVal</link> <RSBRACE> )? ) | <link linkend="prod111">searchedCaseExpression</link> | <link linkend="prod112">caseExpression</link> )</para></entry></row>
+( <QMARK> | <POS_REF> | <link linkend="prod110">literal</link> | ( <LBRACE> <link linkend="prod11">nonReserved</link> <link linkend="prod111">function</link> <RBRACE> ) | ( <link linkend="prod68">textAgg</link> ) | ( <link linkend="prod70">aggregateSymbol</link> ) | ( <link linkend="prod70">aggregateSymbol</link> ) | ( <link linkend="prod70">aggregateSymbol</link> ) | ( <link linkend="prod66">xmlAgg</link> ) | ( <link linkend="prod67">arrayAgg</link> ) | ( <link linkend="prod111">function</link> ) | ( <ID> ( <LSBRACE> <link linkend="prod83">intVal</link> <RSBRACE> )? ) | <link linkend="prod100">subquery</link> | ( <LPAREN> <link linkend="prod24">expression</link> <RPAREN> ( <LSBRACE> <link linkend="prod83">intVal</link> <RSBRACE> )? ) | <link linkend="prod112">searchedCaseExpression</link> | <link linkend="prod113">caseExpression</link> )</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod112" xreflabel="caseExpression"/>caseExpression</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod113" xreflabel="caseExpression"/>caseExpression</para></entry>
<entry align="left" valign="top"><para>::=
-<CASE> <link linkend="prod23">expression</link> ( <WHEN> <link linkend="prod23">expression</link> <THEN> <link linkend="prod23">expression</link> )+ ( <ELSE> <link linkend="prod23">expression</link> )? <END></para></entry></row>
+<CASE> <link linkend="prod24">expression</link> ( <WHEN> <link linkend="prod24">expression</link> <THEN> <link linkend="prod24">expression</link> )+ ( <ELSE> <link linkend="prod24">expression</link> )? <END></para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod111" xreflabel="searchedCaseExpression"/>searchedCaseExpression</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod112" xreflabel="searchedCaseExpression"/>searchedCaseExpression</para></entry>
<entry align="left" valign="top"><para>::=
-<CASE> ( <WHEN> <link linkend="prod34">criteria</link> <THEN> <link linkend="prod23">expression</link> )+ ( <ELSE> <link linkend="prod23">expression</link> )? <END></para></entry></row>
+<CASE> ( <WHEN> <link linkend="prod35">criteria</link> <THEN> <link linkend="prod24">expression</link> )+ ( <ELSE> <link linkend="prod24">expression</link> )? <END></para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod110" xreflabel="function"/>function</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod111" xreflabel="function"/>function</para></entry>
<entry align="left" valign="top"><para>::=
-( ( <CONVERT> <LPAREN> <link linkend="prod23">expression</link> <COMMA> <link linkend="prod37">dataType</link> <RPAREN> ) | ( <CAST> <LPAREN> <link linkend="prod23">expression</link> <AS> <link linkend="prod37">dataType</link> <RPAREN> ) | ( <link linkend="prod11">nonReserved</link> <LPAREN> <link linkend="prod23">expression</link> <COMMA> <link linkend="prod113">stringConstant</link> <RPAREN> ) | ( <link linkend="prod11">nonReserved</link> <LPAREN> <link linkend="prod114">intervalType</link> <COMMA> <link linkend="prod23">expression</link> <COMMA> <link linkend="prod23">expression</link> <RPAREN> ) | <link linkend="prod115">queryString</link> | ( ( <LEFT> | <RIGHT> | <CHAR> | <USER> | <YEAR> | <MONTH> | <HOUR> | <MINUTE> | <SECOND> | <XMLCONCAT> | <XMLCOMMENT> ) <LPAREN> ( <link linkend="prod23">expression</link> !
( <COMMA> <link linkend="prod23">expression</link> )* )? <RPAREN> ) | ( ( <INSERT> ) <LPAREN> ( <link linkend="prod23">expression</link> ( <COMMA> <link linkend="prod23">expression</link> )* )? <RPAREN> ) | ( ( <TRANSLATE> ) <LPAREN> ( <link linkend="prod23">expression</link> ( <COMMA> <link linkend="prod23">expression</link> )* )? <RPAREN> ) | <link linkend="prod116">xmlParse</link> | <link linkend="prod117">xmlElement</link> | ( <XMLPI> <LPAREN> ( <ID> <link linkend="prod118">idExpression</link> | <link linkend="prod118">idExpression</link> ) ( <COMMA> <link linkend="prod23">expression</link> )? <RPAREN> ) | <link linkend="prod119">xmlForest</link> | <link linkend="prod80">xmlSerialize</link> | <link linkend="prod83">xmlQuery</link> | ( <link linkend="prod2">id</link> <LPAREN> ( <link linkend="prod23">expression</link> ( <COMMA> <link linkend="prod23">expression</link> )*!
)? <RPAREN> ) )</para></entry></row>
+( ( <CONVERT> <LPAREN> <link linkend="prod24">expression</link> <COMMA> <link linkend="prod38">dataType</link> <RPAREN> ) | ( <CAST> <LPAREN> <link linkend="prod24">expression</link> <AS> <link linkend="prod38">dataType</link> <RPAREN> ) | ( <link linkend="prod11">nonReserved</link> <LPAREN> <link linkend="prod24">expression</link> <COMMA> <link linkend="prod114">stringConstant</link> <RPAREN> ) | ( <link linkend="prod11">nonReserved</link> <LPAREN> <link linkend="prod115">intervalType</link> <COMMA> <link linkend="prod24">expression</link> <COMMA> <link linkend="prod24">expression</link> <RPAREN> ) | <link linkend="prod116">queryString</link> | ( ( <LEFT> | <RIGHT> | <CHAR> | <USER> | <YEAR> | <MONTH> | <HOUR> | <MINUTE> | <SECOND> | <XMLCONCAT> | <XMLCOMMENT> ) <LPAREN> ( <link linkend="prod24">expression</link> !
( <COMMA> <link linkend="prod24">expression</link> )* )? <RPAREN> ) | ( ( <INSERT> ) <LPAREN> ( <link linkend="prod24">expression</link> ( <COMMA> <link linkend="prod24">expression</link> )* )? <RPAREN> ) | ( ( <TRANSLATE> ) <LPAREN> ( <link linkend="prod24">expression</link> ( <COMMA> <link linkend="prod24">expression</link> )* )? <RPAREN> ) | <link linkend="prod117">xmlParse</link> | <link linkend="prod118">xmlElement</link> | ( <XMLPI> <LPAREN> ( <ID> <link linkend="prod119">idExpression</link> | <link linkend="prod119">idExpression</link> ) ( <COMMA> <link linkend="prod24">expression</link> )? <RPAREN> ) | <link linkend="prod120">xmlForest</link> | <link linkend="prod81">xmlSerialize</link> | <link linkend="prod84">xmlQuery</link> | ( <link linkend="prod2">id</link> <LPAREN> ( <link linkend="prod24">expression</link> ( <COMMA> <link linkend="prod24">expression</link> )*!
)? <RPAREN> ) )</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod113" xreflabel="stringConstant"/>stringConstant</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod114" xreflabel="stringConstant"/>stringConstant</para></entry>
<entry align="left" valign="top"><para>::=
<link linkend="prod1">stringVal</link></para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod116" xreflabel="xmlParse"/>xmlParse</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod117" xreflabel="xmlParse"/>xmlParse</para></entry>
<entry align="left" valign="top"><para>::=
-<XMLPARSE> <LPAREN> <link linkend="prod11">nonReserved</link> <link linkend="prod23">expression</link> ( <link linkend="prod11">nonReserved</link> )? <RPAREN></para></entry></row>
+<XMLPARSE> <LPAREN> <link linkend="prod11">nonReserved</link> <link linkend="prod24">expression</link> ( <link linkend="prod11">nonReserved</link> )? <RPAREN></para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod115" xreflabel="queryString"/>queryString</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod116" xreflabel="queryString"/>queryString</para></entry>
<entry align="left" valign="top"><para>::=
-<link linkend="prod11">nonReserved</link> <LPAREN> <link linkend="prod23">expression</link> ( <COMMA> <link linkend="prod64">derivedColumn</link> )* <RPAREN></para></entry></row>
+<link linkend="prod11">nonReserved</link> <LPAREN> <link linkend="prod24">expression</link> ( <COMMA> <link linkend="prod65">derivedColumn</link> )* <RPAREN></para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod117" xreflabel="xmlElement"/>xmlElement</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod118" xreflabel="xmlElement"/>xmlElement</para></entry>
<entry align="left" valign="top"><para>::=
-<XMLELEMENT> <LPAREN> ( <ID> <link linkend="prod2">id</link> | <link linkend="prod2">id</link> ) ( <COMMA> <link linkend="prod84">xmlNamespaces</link> )? ( <COMMA> <link linkend="prod120">xmlAttributes</link> )? ( <COMMA> <link linkend="prod23">expression</link> )* <RPAREN></para></entry></row>
+<XMLELEMENT> <LPAREN> ( <ID> <link linkend="prod2">id</link> | <link linkend="prod2">id</link> ) ( <COMMA> <link linkend="prod85">xmlNamespaces</link> )? ( <COMMA> <link linkend="prod121">xmlAttributes</link> )? ( <COMMA> <link linkend="prod24">expression</link> )* <RPAREN></para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod120" xreflabel="xmlAttributes"/>xmlAttributes</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod121" xreflabel="xmlAttributes"/>xmlAttributes</para></entry>
<entry align="left" valign="top"><para>::=
-<XMLATTRIBUTES> <LPAREN> <link linkend="prod64">derivedColumn</link> ( <COMMA> <link linkend="prod64">derivedColumn</link> )* <RPAREN></para></entry></row>
+<XMLATTRIBUTES> <LPAREN> <link linkend="prod65">derivedColumn</link> ( <COMMA> <link linkend="prod65">derivedColumn</link> )* <RPAREN></para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod119" xreflabel="xmlForest"/>xmlForest</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod120" xreflabel="xmlForest"/>xmlForest</para></entry>
<entry align="left" valign="top"><para>::=
-<XMLFOREST> <LPAREN> ( <link linkend="prod84">xmlNamespaces</link> <COMMA> )? <link linkend="prod64">derivedColumn</link> ( <COMMA> <link linkend="prod64">derivedColumn</link> )* <RPAREN></para></entry></row>
+<XMLFOREST> <LPAREN> ( <link linkend="prod85">xmlNamespaces</link> <COMMA> )? <link linkend="prod65">derivedColumn</link> ( <COMMA> <link linkend="prod65">derivedColumn</link> )* <RPAREN></para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod84" xreflabel="xmlNamespaces"/>xmlNamespaces</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod85" xreflabel="xmlNamespaces"/>xmlNamespaces</para></entry>
<entry align="left" valign="top"><para>::=
-<XMLNAMESPACES> <LPAREN> <link linkend="prod121">namespaceItem</link> ( <COMMA> <link linkend="prod121">namespaceItem</link> )* <RPAREN></para></entry></row>
+<XMLNAMESPACES> <LPAREN> <link linkend="prod122">namespaceItem</link> ( <COMMA> <link linkend="prod122">namespaceItem</link> )* <RPAREN></para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod121" xreflabel="namespaceItem"/>namespaceItem</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod122" xreflabel="namespaceItem"/>namespaceItem</para></entry>
<entry align="left" valign="top"><para>::=
( <link linkend="prod1">stringVal</link> <AS> <link linkend="prod2">id</link> )</para></entry></row>
<row>
@@ -870,23 +873,23 @@
<entry align="left" valign="top"><para>::=
( <DEFAULT_KEYWORD> <link linkend="prod1">stringVal</link> )</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod118" xreflabel="idExpression"/>idExpression</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod119" xreflabel="idExpression"/>idExpression</para></entry>
<entry align="left" valign="top"><para>::=
<link linkend="prod2">id</link></para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod21" xreflabel="dataTypeString"/>dataTypeString</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod22" xreflabel="dataTypeString"/>dataTypeString</para></entry>
<entry align="left" valign="top"><para>::=
( <STRING> | <VARCHAR> | <BOOLEAN> | <BYTE> | <TINYINT> | <SHORT> | <SMALLINT> | <CHAR> | <INTEGER> | <LONG> | <BIGINT> | <BIGINTEGER> | <FLOAT> | <REAL> | <DOUBLE> | <BIGDECIMAL> | <DECIMAL> | <DATE> | <TIME> | <TIMESTAMP> | <OBJECT> | <BLOB> | <CLOB> | <XML> )</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod37" xreflabel="dataType"/>dataType</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod38" xreflabel="dataType"/>dataType</para></entry>
<entry align="left" valign="top"><para>::=
-<link linkend="prod21">dataTypeString</link></para></entry></row>
+<link linkend="prod22">dataTypeString</link></para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod114" xreflabel="intervalType"/>intervalType</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod115" xreflabel="intervalType"/>intervalType</para></entry>
<entry align="left" valign="top"><para>::=
( <link linkend="prod11">nonReserved</link> )</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod109" xreflabel="literal"/>literal</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod110" xreflabel="literal"/>literal</para></entry>
<entry align="left" valign="top"><para>::=
( <link linkend="prod1">stringVal</link> | <INTEGERVAL> | <FLOATVAL> | <FALSE> | <TRUE> | <UNKNOWN> | <NULL> | ( ( <BOOLEANTYPE> | <TIMESTAMPTYPE> | <DATETYPE> | <TIMETYPE> ) <link linkend="prod1">stringVal</link> <RBRACE> ) )</para></entry></row>
</tbody>
Modified: trunk/documentation/reference/src/main/docbook/en-US/content/system_schema.xml
===================================================================
--- trunk/documentation/reference/src/main/docbook/en-US/content/system_schema.xml 2011-05-03 09:43:58 UTC (rev 3137)
+++ trunk/documentation/reference/src/main/docbook/en-US/content/system_schema.xml 2011-05-03 16:21:08 UTC (rev 3138)
@@ -1795,7 +1795,7 @@
</section>
</section>
<warning>
- <para>The OID column is is guranteed to be unique/consistent only for given version running instance of a VDB. If a different version of
+ <para>The OID column is guranteed to be unique/consistent only for given version running instance of a VDB. If a different version of
the VDB is deployed, these IDs are not guranteed to be the same or unique across both versions of the VDB. Dynamic VDB OIDs are not cluster safe.</para>
</warning>
</section>
@@ -1804,17 +1804,17 @@
<section>
<title>SYS.getXMLSchemas</title>
<para>Returns a resultset with a single column, schema, containing the schemas as clobs.</para>
- <para><synopsis>SYS.getXMLSchemas(in string document)</synopsis></para>
+ <para><synopsis>SYS.getXMLSchemas(document in string) returns schema string</synopsis></para>
</section>
<section>
<title>SYSADMIN.refreshMatView</title>
<para>Returns integer RowsUpdated. -1 indicates a load is in progress, otherwise the cardinality of the table is returned. See the Caching Guide for more.</para>
- <para><synopsis>SYSADMIN.refreshMatView(return integer RowsUpdated, in string ViewName, in boolean Invalidate)</synopsis></para>
+ <para><synopsis>SYSADMIN.refreshMatView(RowsUpdated return integer, ViewName in string, Invalidate in boolean)</synopsis></para>
</section>
<section>
<title>SYSADMIN.refreshMatViewRow</title>
<para>Returns integer RowsUpdated. -1 indicates the materialized table is currently invalid. 0 indicates that the specified row did not exist in the live data query or in the materialized table. See the Caching Guide for more.</para>
- <para><synopsis>SYSADMIN.refreshMatViewRow(return integer RowsUpdated, in string ViewName, in object Key)</synopsis></para>
+ <para><synopsis>SYSADMIN.refreshMatViewRow(RowsUpdated return integer, ViewName in string, Key in object)</synopsis></para>
</section>
<section>
<title>Metadata Procedures</title>
@@ -1822,24 +1822,25 @@
<section>
<title>SYSADMIN.setTableStats</title>
<para>Set statistics for the given table.</para>
- <para><synopsis>SYSADMIN.setTableStats(in string TableName, in integer Cardinality)</synopsis></para>
+ <para><synopsis>SYSADMIN.setTableStats(TableName in string, Cardinality in integer)</synopsis></para>
</section>
<section>
<title>SYSADMIN.setColumnStats</title>
<para>Set statistics for the given column.</para>
- <para><synopsis>SYSADMIN.setColumnStats(in string TableName, in string ColumnName, in integer DistinctCount, in integer NullCount, in string Max, in string Min)</synopsis></para>
- <para>Passing a null stat value will leave corresponding metadata value unchanged.</para>
+ <para><synopsis>SYSADMIN.setColumnStats(TableName in string, ColumnName in string, DistinctCount in integer, NullCount in integer, Max in string, Min in string)</synopsis></para>
+ <para>All stat values are nullable. Passing a null stat value will leave corresponding metadata value unchanged.</para>
</section>
<section>
<title>SYSADMIN.setProperty</title>
<para>Set an extension metadata property for the given record. Extension metadata is typically used by <xref linkend="translators"/>.</para>
- <para><synopsis>SYSADMIN.setProperty(return clob OldValue, in string Uid, in string Name, in clob Value)</synopsis></para>
+ <para><synopsis>SYSADMIN.setProperty(OldValue return clob, Uid in string, Name in string, Value in clob)</synopsis></para>
<para>Setting a value to null will remove the property.</para>
<example lang="sql">
<title>Example Property Set</title>
<programlisting>CALL SYSADMIN.setProperty(uid=>(SELECT uid FROM TABLES WHERE name='tab'), name=>'some name', value=>'some value')</programlisting>
<para>This will set the property 'some name'='some value' on table tab.</para>
</example>
+ <para>The use of this procedure will not trigger replanning of associated prepared plans.</para>
</section>
</section>
</section>
Modified: trunk/documentation/reference/src/main/docbook/en-US/content/translators.xml
===================================================================
--- trunk/documentation/reference/src/main/docbook/en-US/content/translators.xml 2011-05-03 09:43:58 UTC (rev 3137)
+++ trunk/documentation/reference/src/main/docbook/en-US/content/translators.xml 2011-05-03 16:21:08 UTC (rev 3138)
@@ -63,7 +63,7 @@
<table>
<title>Base Execution Properties - shared by all translators</title>
<tgroup cols="3">
- <colspec colwidth="3*" />
+ <colspec colwidth="4*" />
<colspec colwidth="6*" />
<colspec colwidth="2*" />
<thead>
@@ -343,7 +343,7 @@
<table>
<title>Execution Properties - shared by all JDBC Translators</title>
<tgroup cols="3">
- <colspec colwidth="3*" />
+ <colspec colwidth="4*" />
<colspec colwidth="6*" />
<colspec colwidth="2*" />
<thead>
@@ -391,7 +391,7 @@
<table>
<title>Importer Properties - shared by all JDBC Translators</title>
<tgroup cols="3">
- <colspec colwidth="3*" />
+ <colspec colwidth="4*" />
<colspec colwidth="6*" />
<colspec colwidth="2*" />
<thead>
@@ -818,7 +818,7 @@
in the query, and the value is 'true' the connector will call queryAll.
</para>
- <programlisting language="SQL"><![CDATA[select * from Contact where isDeleted = true;</programlisting>
+ <programlisting language="SQL"><![CDATA[select * from Contact where isDeleted = true;]]></programlisting>
<para>
If the isDeleted column is used as a parameter in the query,
@@ -985,7 +985,7 @@
<link linkend="xmltable">XMLTABLE</link> table functions to use CSV or XML
formated data.
</para>
-
+ <note><para>Setting the proper binding value on the translator is recommended as it removes the need for callers to pass an explict value. If your service is actually uses SOAP11, but the binding used SOAP12 you will receive execution failures.</para></note>
<table>
<title>Execution Properties</title>
<tgroup cols="3">
@@ -1003,7 +1003,6 @@
<row>
<entry>DefaultBinding</entry>
<entry>The binding that should be used if one is not specified. Can be one of HTTP, SOAP11, or SOAP12
- <note><para>Setting the proper binding value on the translator is recommended as it removes the need for callers to pass an explict value. If your service is actually uses SOAP11, but the binding used SOAP12 you will receive execution failures.</para></note>
</entry>
<entry>SOAP12</entry>
</row>
Modified: trunk/engine/src/main/java/org/teiid/dqp/internal/process/DataTierManagerImpl.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/dqp/internal/process/DataTierManagerImpl.java 2011-05-03 09:43:58 UTC (rev 3137)
+++ trunk/engine/src/main/java/org/teiid/dqp/internal/process/DataTierManagerImpl.java 2011-05-03 16:21:08 UTC (rev 3138)
@@ -378,18 +378,13 @@
if (target == null) {
throw new TeiidProcessingException(QueryPlugin.Util.getString("DataTierManagerImpl.unknown_uuid", uuid)); //$NON-NLS-1$
}
- if (value == null) {
- result = target.setProperty(key, null);
- } else {
- strVal = ObjectConverterUtil.convertToString(value.getCharacterStream());
- result = target.setProperty(key, strVal);
+ if (this.metadataRepository != null) {
+ this.metadataRepository.setProperty(vdbName, vdbVersion, target, key, strVal);
}
+ result = target.setProperty(key, strVal);
if (eventDistributor != null) {
eventDistributor.setProperty(vdbName, vdbVersion, uuid, key, strVal);
}
- if (this.metadataRepository != null) {
- this.metadataRepository.setProperty(vdbName, vdbVersion, target, key, strVal);
- }
if (result == null) {
rows.add(Arrays.asList((Clob)null));
} else {
@@ -420,42 +415,31 @@
Integer nullVals = (Integer)((Constant)proc.getParameter(4).getExpression()).getValue();
String max = (String) ((Constant)proc.getParameter(5).getExpression()).getValue();
String min = (String) ((Constant)proc.getParameter(6).getExpression()).getValue();
- if (distinctVals != null) {
- c.setDistinctValues(distinctVals);
- }
- if (nullVals != null) {
- c.setNullValues(nullVals);
- }
- if (max != null) {
- c.setMaximumValue(max);
- }
- if (min != null) {
- c.setMinimumValue(min);
- }
ColumnStats columnStats = new ColumnStats();
columnStats.setDistinctValues(distinctVals);
columnStats.setNullValues(nullVals);
columnStats.setMaximumValue(max);
columnStats.setMinimumValue(min);
- if (eventDistributor != null) {
- eventDistributor.setColumnStats(vdbName, vdbVersion, table.getParent().getName(), table.getName(), columnName, columnStats);
- }
if (this.metadataRepository != null) {
this.metadataRepository.setColumnStats(vdbName, vdbVersion, c, columnStats);
}
+ c.setColumnStats(columnStats);
+ if (eventDistributor != null) {
+ eventDistributor.setColumnStats(vdbName, vdbVersion, table.getParent().getName(), table.getName(), columnName, columnStats);
+ }
break;
case SETTABLESTATS:
Constant val = (Constant)proc.getParameter(2).getExpression();
int cardinality = (Integer)val.getValue();
- table.setCardinality(cardinality);
TableStats tableStats = new TableStats();
tableStats.setCardinality(cardinality);
- if (eventDistributor != null) {
- eventDistributor.setTableStats(vdbName, vdbVersion, table.getParent().getName(), table.getName(), tableStats);
- }
if (this.metadataRepository != null) {
this.metadataRepository.setTableStats(vdbName, vdbVersion, table, tableStats);
}
+ table.setCardinality(cardinality);
+ if (eventDistributor != null) {
+ eventDistributor.setTableStats(vdbName, vdbVersion, table.getParent().getName(), table.getName(), tableStats);
+ }
break;
}
table.setLastModified(System.currentTimeMillis());
Modified: trunk/engine/src/main/java/org/teiid/query/processor/DdlPlan.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/processor/DdlPlan.java 2011-05-03 09:43:58 UTC (rev 3137)
+++ trunk/engine/src/main/java/org/teiid/query/processor/DdlPlan.java 2011-05-03 16:21:08 UTC (rev 3138)
@@ -60,13 +60,13 @@
VDBMetaData vdb = workContext.getVDB();
Table t = (Table)obj.getTarget().getMetadataID();
String sql = obj.getDefinition().toString();
+ if (pdm.getMetadataRepository() != null) {
+ pdm.getMetadataRepository().setViewDefinition(workContext.getVdbName(), workContext.getVdbVersion(), t, sql);
+ }
alterView(vdb, t, sql);
if (pdm.getEventDistributor() != null) {
pdm.getEventDistributor().setViewDefinition(workContext.getVdbName(), workContext.getVdbVersion(), t.getParent().getName(), t.getName(), sql);
}
- if (pdm.getMetadataRepository() != null) {
- pdm.getMetadataRepository().setViewDefinition(workContext.getVdbName(), workContext.getVdbVersion(), t, sql);
- }
}
@Override
@@ -74,13 +74,13 @@
VDBMetaData vdb = workContext.getVDB();
Procedure p = (Procedure)obj.getTarget().getMetadataID();
String sql = obj.getDefinition().toString();
+ if (pdm.getMetadataRepository() != null) {
+ pdm.getMetadataRepository().setProcedureDefinition(workContext.getVdbName(), workContext.getVdbVersion(), p, sql);
+ }
alterProcedureDefinition(vdb, p, sql);
if (pdm.getEventDistributor() != null) {
pdm.getEventDistributor().setProcedureDefinition(workContext.getVdbName(), workContext.getVdbVersion(), p.getParent().getName(), p.getName(), sql);
}
- if (pdm.getMetadataRepository() != null) {
- pdm.getMetadataRepository().setProcedureDefinition(workContext.getVdbName(), workContext.getVdbVersion(), p, sql);
- }
}
@Override
@@ -101,10 +101,6 @@
} else if (getPlanForEvent(t, event) == null) {
throw new TeiidRuntimeException(new TeiidProcessingException(QueryPlugin.Util.getString("DdlPlan.event_not_exists", t.getName(), obj.getEvent()))); //$NON-NLS-1$
}
- alterInsteadOfTrigger(vdb, t, sql, obj.getEnabled(), event);
- if (pdm.getEventDistributor() != null) {
- pdm.getEventDistributor().setInsteadOfTriggerDefinition(workContext.getVdbName(), workContext.getVdbVersion(), t.getParent().getName(), t.getName(), obj.getEvent(), sql, obj.getEnabled());
- }
if (pdm.getMetadataRepository() != null) {
if (sql != null) {
pdm.getMetadataRepository().setInsteadOfTriggerDefinition(workContext.getVdbName(), workContext.getVdbVersion(), t, obj.getEvent(), sql);
@@ -112,6 +108,10 @@
pdm.getMetadataRepository().setInsteadOfTriggerEnabled(workContext.getVdbName(), workContext.getVdbVersion(), t, obj.getEvent(), obj.getEnabled());
}
}
+ alterInsteadOfTrigger(vdb, t, sql, obj.getEnabled(), event);
+ if (pdm.getEventDistributor() != null) {
+ pdm.getEventDistributor().setInsteadOfTriggerDefinition(workContext.getVdbName(), workContext.getVdbVersion(), t.getParent().getName(), t.getName(), obj.getEvent(), sql, obj.getEnabled());
+ }
}
}
Modified: trunk/runtime/src/main/java/org/teiid/deployers/VDBRepository.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/deployers/VDBRepository.java 2011-05-03 09:43:58 UTC (rev 3137)
+++ trunk/runtime/src/main/java/org/teiid/deployers/VDBRepository.java 2011-05-03 16:21:08 UTC (rev 3138)
@@ -114,6 +114,7 @@
int vdbVersion = cvdb.getVDB().getVersion();
LinkedList<MetadataStore> allStores = new LinkedList<MetadataStore>(stores.getStores());
allStores.addAll(Arrays.asList(cvdb.getAdditionalStores()));
+ metadataRepository.startLoadVdb(vdbName, vdbVersion);
for (MetadataStore metadataStore : allStores) {
Collection<AbstractMetadataRecord> records = new LinkedHashSet<AbstractMetadataRecord>();
for (Schema schema : metadataStore.getSchemas().values()) {
@@ -187,6 +188,7 @@
}
}
}
+ metadataRepository.endLoadVdb(vdbName, vdbVersion);
}
public VDBMetaData getVDB(String name, int version) {
14 years, 7 months
teiid SVN: r3137 - in trunk: client/src/main/java/org/teiid/jdbc and 1 other directories.
by teiid-commits@lists.jboss.org
Author: shawkins
Date: 2011-05-03 05:43:58 -0400 (Tue, 03 May 2011)
New Revision: 3137
Modified:
trunk/build/kits/jboss-container/teiid-releasenotes.html
trunk/client/src/main/java/org/teiid/jdbc/BaseDataSource.java
trunk/client/src/main/java/org/teiid/jdbc/ExecutionProperties.java
trunk/client/src/main/java/org/teiid/jdbc/StatementImpl.java
trunk/documentation/client-developers-guide/src/main/docbook/en-US/content/jdbc-connection.xml
Log:
TEIID-1573 adding a client property for settting the query timeout.
Modified: trunk/build/kits/jboss-container/teiid-releasenotes.html
===================================================================
--- trunk/build/kits/jboss-container/teiid-releasenotes.html 2011-05-03 02:38:00 UTC (rev 3136)
+++ trunk/build/kits/jboss-container/teiid-releasenotes.html 2011-05-03 09:43:58 UTC (rev 3137)
@@ -47,7 +47,7 @@
<UL>
<LI><B>Improved Planning</B> - the decision to create a dependent join is now considered earlier in planning and is much more effective for dependent joins involving multiple unrelated independent tables.
<LI><B>IN predicate splitting</B> - the planner can now split large dependent IN predicates into multiple IN predicates, which is controlled by the translator property MaxDepdendentInPredicates. This allows for much larger dependent joins to be performed as a single query.
- <LI><B>Dependent query parallization</B> - when multiple dependent queries are still required, then they will be run in parallel (up to MaxUserSourceRequestConcurrency), rather than sequentially.
+ <LI><B>Dependent query parallelization</B> - when multiple dependent queries are still required, then they will be run in parallel (up to MaxUserSourceRequestConcurrency), rather than sequentially.
<LI><B>Cost based back-off</B> - for cost based dependent joins if the number of independent values is too large, then the join will be performed as normal.
</UL>
<LI><B>Enhanced Sort Join</B> - the partitioned merge join was replaced with an enhanced sort join. The enhanced sort join will use the actual row counts from each side of the relation to perform a index based join if one side is small enough, a partial sort of the larger side and a repeated merge join if the tuples are unbalanced but one side is not small enough to form an index, or a standard sort merge join if the tuples are balanced.
@@ -55,7 +55,7 @@
<LI><B>Security Improvements</B> - UDF and pushdown functions can now be protected with data roles. Also the CommandContext can provide the Subject for custom security checks in UDFs.
<LI><B>Cache Invalidation</B> - Prepared plan and result set caches can have a maxStaleness value, which will invalidate entries based upon metadata and data changes respectively. See the Admin Guide for more.
<LI><B>Runtime-updates of Metadata</B> - Alter statements have been added to change view/procedure/INSTEAD OF trigger (update procedure) definitions have been added. A create statement was also added to add INSTEAD OF trigger (update procedures) to views.
- System procedures were added to set extension metadata and stat values. By default all effects of metadata updates happen only on running vdbs across the cluster. To make the changes persistent see the Developers Guide Runtime Updates section.
+ System procedures were added to set extension metadata and stat values. By default all effects of metadata updates happen only on running vdbs across the cluster. To make the changes persistent see the Developers Guide Runtime Updates section.
</UL>
<h2><a name="Compatibility">Compatibility Issues</a></h2>
Modified: trunk/client/src/main/java/org/teiid/jdbc/BaseDataSource.java
===================================================================
--- trunk/client/src/main/java/org/teiid/jdbc/BaseDataSource.java 2011-05-03 02:38:00 UTC (rev 3136)
+++ trunk/client/src/main/java/org/teiid/jdbc/BaseDataSource.java 2011-05-03 09:43:58 UTC (rev 3137)
@@ -145,6 +145,8 @@
private boolean ansiQuotedIdentifiers = true;
+ private int queryTimeout;
+
/**
* Reference to the logWriter, which is transient and is therefore not serialized with the DataSource.
*/
@@ -220,6 +222,10 @@
if(this.getFetchSize() > 0) {
props.setProperty(ExecutionProperties.PROP_FETCH_SIZE, String.valueOf(this.getFetchSize()));
}
+
+ if (this.getQueryTimeout() > 0) {
+ props.setProperty(ExecutionProperties.QUERYTIMEOUT, String.valueOf(this.getQueryTimeout()));
+ }
if (this.getResultSetCacheMode() != null && this.getResultSetCacheMode().trim().length() != 0) {
props.setProperty(ExecutionProperties.RESULT_SET_CACHE_MODE, this.getResultSetCacheMode());
@@ -300,6 +306,10 @@
if ( reason != null ) {
throw new SQLException(reason);
}
+
+ if (this.queryTimeout < 0) {
+ throw new TeiidSQLException(JDBCPlugin.Util.getString("MMStatement.Bad_timeout_value")); //$NON-NLS-1$
+ }
}
@@ -801,6 +811,14 @@
public boolean isAnsiQuotedIdentifiers() {
return ansiQuotedIdentifiers;
}
+
+ public int getQueryTimeout() {
+ return queryTimeout;
+ }
+
+ public void setQueryTimeout(int queryTimeout) {
+ this.queryTimeout = queryTimeout;
+ }
}
Modified: trunk/client/src/main/java/org/teiid/jdbc/ExecutionProperties.java
===================================================================
--- trunk/client/src/main/java/org/teiid/jdbc/ExecutionProperties.java 2011-05-03 02:38:00 UTC (rev 3136)
+++ trunk/client/src/main/java/org/teiid/jdbc/ExecutionProperties.java 2011-05-03 09:43:58 UTC (rev 3137)
@@ -102,5 +102,7 @@
public static final String NEWINSTANCE = "NEWINSTANCE"; //$NON-NLS-1$
+ public static final String QUERYTIMEOUT = "QUERYTIMEOUT"; //$NON-NLS-1$
+
}
\ No newline at end of file
Modified: trunk/client/src/main/java/org/teiid/jdbc/StatementImpl.java
===================================================================
--- trunk/client/src/main/java/org/teiid/jdbc/StatementImpl.java 2011-05-03 02:38:00 UTC (rev 3136)
+++ trunk/client/src/main/java/org/teiid/jdbc/StatementImpl.java 2011-05-03 09:43:58 UTC (rev 3137)
@@ -195,7 +195,15 @@
} catch(Exception e) {
// silently failover to default
}
- }
+ }
+ String queryTimeoutStr = this.execProps.getProperty(ExecutionProperties.QUERYTIMEOUT);
+ if(queryTimeoutStr != null) {
+ try {
+ this.queryTimeoutMS = Integer.parseInt(fetchSizeStr)*1000;
+ } catch(Exception e) {
+ // silently failover to default
+ }
+ }
}
protected DQP getDQP() {
Modified: trunk/documentation/client-developers-guide/src/main/docbook/en-US/content/jdbc-connection.xml
===================================================================
--- trunk/documentation/client-developers-guide/src/main/docbook/en-US/content/jdbc-connection.xml 2011-05-03 02:38:00 UTC (rev 3136)
+++ trunk/documentation/client-developers-guide/src/main/docbook/en-US/content/jdbc-connection.xml 2011-05-03 09:43:58 UTC (rev 3137)
@@ -224,7 +224,15 @@
if it finds a different security context on the calling thread, it switches the identity on the connection,
if the new user is also eligible to log in to Teiid otherwise connection fails to execute.</entry>
</row>
-
+ <row>
+ <entry>
+ <code>QueryTimeout</code>
+ </entry>
+ <entry>
+ <code>integer</code>
+ </entry>
+ <entry>Default query timeout in seconds. Must be >= 0. 0 indicates no timeout. Can be overriden by <code>Statement.setQueryTimeout</code>. Default 0.</entry>
+ </row>
</tbody>
</tgroup>
</table>
14 years, 7 months
teiid SVN: r3136 - in trunk: engine/src/main/java/org/teiid/dqp/internal/process and 13 other directories.
by teiid-commits@lists.jboss.org
Author: shawkins
Date: 2011-05-02 22:38:00 -0400 (Mon, 02 May 2011)
New Revision: 3136
Added:
trunk/engine/src/main/java/org/teiid/query/sql/lang/TargetedCommand.java
Modified:
trunk/api/src/main/java/org/teiid/metadata/AbstractMetadataRecord.java
trunk/api/src/main/java/org/teiid/metadata/Procedure.java
trunk/api/src/main/java/org/teiid/metadata/Table.java
trunk/engine/src/main/java/org/teiid/dqp/internal/process/AccessInfo.java
trunk/engine/src/main/java/org/teiid/dqp/internal/process/CachedResults.java
trunk/engine/src/main/java/org/teiid/dqp/internal/process/DataTierManagerImpl.java
trunk/engine/src/main/java/org/teiid/dqp/internal/process/PreparedPlan.java
trunk/engine/src/main/java/org/teiid/dqp/internal/process/RequestWorkItem.java
trunk/engine/src/main/java/org/teiid/query/metadata/BasicQueryMetadata.java
trunk/engine/src/main/java/org/teiid/query/metadata/BasicQueryMetadataWrapper.java
trunk/engine/src/main/java/org/teiid/query/metadata/QueryMetadataInterface.java
trunk/engine/src/main/java/org/teiid/query/metadata/TempMetadataAdapter.java
trunk/engine/src/main/java/org/teiid/query/metadata/TempMetadataID.java
trunk/engine/src/main/java/org/teiid/query/optimizer/QueryOptimizer.java
trunk/engine/src/main/java/org/teiid/query/optimizer/relational/RelationalPlanner.java
trunk/engine/src/main/java/org/teiid/query/processor/BatchedUpdatePlan.java
trunk/engine/src/main/java/org/teiid/query/processor/DdlPlan.java
trunk/engine/src/main/java/org/teiid/query/processor/ProcessorPlan.java
trunk/engine/src/main/java/org/teiid/query/processor/proc/ForEachRowPlan.java
trunk/engine/src/main/java/org/teiid/query/processor/proc/ProcedurePlan.java
trunk/engine/src/main/java/org/teiid/query/processor/relational/RelationalPlan.java
trunk/engine/src/main/java/org/teiid/query/processor/xml/XMLPlan.java
trunk/engine/src/main/java/org/teiid/query/sql/lang/Create.java
trunk/engine/src/main/java/org/teiid/query/sql/lang/Drop.java
trunk/engine/src/main/java/org/teiid/query/sql/lang/ProcedureContainer.java
trunk/engine/src/main/java/org/teiid/query/tempdata/TempTableDataManager.java
trunk/engine/src/main/java/org/teiid/query/util/CommandContext.java
trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestCachedResults.java
trunk/engine/src/test/java/org/teiid/query/optimizer/relational/rules/TestRuleAccessPatternValidation.java
trunk/engine/src/test/java/org/teiid/query/optimizer/relational/rules/TestRulePushSelectCriteria.java
trunk/engine/src/test/java/org/teiid/query/processor/FakeProcessorPlan.java
Log:
TEIID-1507 more general collection of groups/procedures used during planning and execution.
Modified: trunk/api/src/main/java/org/teiid/metadata/AbstractMetadataRecord.java
===================================================================
--- trunk/api/src/main/java/org/teiid/metadata/AbstractMetadataRecord.java 2011-05-02 18:34:41 UTC (rev 3135)
+++ trunk/api/src/main/java/org/teiid/metadata/AbstractMetadataRecord.java 2011-05-03 02:38:00 UTC (rev 3136)
@@ -37,6 +37,14 @@
*/
public abstract class AbstractMetadataRecord implements Serializable {
+ public interface Modifiable {
+ long getLastModified();
+ }
+
+ public interface DataModifiable {
+ long getLastDataModification();
+ }
+
private static final long serialVersionUID = 564092984812414058L;
public final static char NAME_DELIM_CHAR = '.';
Modified: trunk/api/src/main/java/org/teiid/metadata/Procedure.java
===================================================================
--- trunk/api/src/main/java/org/teiid/metadata/Procedure.java 2011-05-02 18:34:41 UTC (rev 3135)
+++ trunk/api/src/main/java/org/teiid/metadata/Procedure.java 2011-05-03 02:38:00 UTC (rev 3136)
@@ -25,11 +25,13 @@
import java.util.LinkedList;
import java.util.List;
+import org.teiid.metadata.AbstractMetadataRecord.Modifiable;
+
/**
* ProcedureRecordImpl
*/
-public class Procedure extends AbstractMetadataRecord {
+public class Procedure extends AbstractMetadataRecord implements Modifiable {
private static final long serialVersionUID = 7714869437683360834L;
Modified: trunk/api/src/main/java/org/teiid/metadata/Table.java
===================================================================
--- trunk/api/src/main/java/org/teiid/metadata/Table.java 2011-05-02 18:34:41 UTC (rev 3135)
+++ trunk/api/src/main/java/org/teiid/metadata/Table.java 2011-05-03 02:38:00 UTC (rev 3136)
@@ -27,8 +27,10 @@
import java.util.List;
import org.teiid.core.types.DataTypeManager;
+import org.teiid.metadata.AbstractMetadataRecord.DataModifiable;
+import org.teiid.metadata.AbstractMetadataRecord.Modifiable;
-public class Table extends ColumnSet<Schema> {
+public class Table extends ColumnSet<Schema> implements Modifiable, DataModifiable {
private static final long serialVersionUID = 4891356771125218672L;
Modified: trunk/engine/src/main/java/org/teiid/dqp/internal/process/AccessInfo.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/dqp/internal/process/AccessInfo.java 2011-05-02 18:34:41 UTC (rev 3135)
+++ trunk/engine/src/main/java/org/teiid/dqp/internal/process/AccessInfo.java 2011-05-03 02:38:00 UTC (rev 3136)
@@ -35,13 +35,12 @@
import org.teiid.api.exception.query.QueryValidatorException;
import org.teiid.core.TeiidComponentException;
import org.teiid.metadata.AbstractMetadataRecord;
-import org.teiid.metadata.Procedure;
-import org.teiid.metadata.Table;
+import org.teiid.metadata.Schema;
+import org.teiid.metadata.AbstractMetadataRecord.DataModifiable;
+import org.teiid.metadata.AbstractMetadataRecord.Modifiable;
import org.teiid.query.metadata.TempMetadataID;
import org.teiid.query.metadata.TransformationMetadata;
import org.teiid.query.optimizer.relational.RelationalPlanner;
-import org.teiid.query.processor.ProcessorPlan;
-import org.teiid.query.sql.symbol.GroupSymbol;
import org.teiid.query.tempdata.TempTableStore;
import org.teiid.query.util.CommandContext;
@@ -52,20 +51,14 @@
private static final long serialVersionUID = -2608267960584191359L;
- private transient Set<Table> viewsAccessed;
- private transient Set<Procedure> proceduresAccessed;
- private transient Set<Object> tablesAccessed;
+ private transient Set<Object> objectsAccessed;
- private List<List<String>> externalTableNames;
- private List<List<String>> externalViewNames;
- private List<List<String>> externalProcedureNames;
+ private List<List<String>> externalNames;
private transient long creationTime = System.currentTimeMillis();
private void writeObject(java.io.ObjectOutputStream out) throws IOException {
- externalTableNames = initExternalList(externalTableNames, tablesAccessed);
- externalViewNames = initExternalList(externalViewNames, viewsAccessed);
- externalProcedureNames = initExternalList(externalProcedureNames, proceduresAccessed);
+ externalNames = initExternalList(externalNames, objectsAccessed);
out.defaultWriteObject();
}
@@ -74,7 +67,7 @@
this.creationTime = System.currentTimeMillis();
}
- private List<List<String>> initExternalList(List<List<String>> externalNames, Set<? extends Object> accessed) {
+ private static List<List<String>> initExternalList(List<List<String>> externalNames, Set<? extends Object> accessed) {
if (externalNames == null) {
externalNames = new ArrayList<List<String>>(accessed.size());
for (Object object : accessed) {
@@ -90,63 +83,44 @@
return externalNames;
}
- public Set<Procedure> getProceduresAccessed() {
- return proceduresAccessed;
+ public Set<Object> getObjectsAccessed() {
+ return objectsAccessed;
}
-
- public Set<Table> getViewsAccessed() {
- return viewsAccessed;
- }
- public Set<Object> getTablesAccessed() {
- return tablesAccessed;
- }
-
public long getCreationTime() {
return creationTime;
}
- void populate(ProcessorPlan plan, CommandContext context) {
- List<GroupSymbol> groups = new ArrayList<GroupSymbol>();
- plan.getAccessedGroups(groups);
- if (!groups.isEmpty()) {
- tablesAccessed = new HashSet<Object>();
- for (GroupSymbol groupSymbol : groups) {
- tablesAccessed.add(groupSymbol.getMetadataID());
- }
+ void populate(CommandContext context, boolean data) {
+ Set<Object> objects = null;
+ if (data) {
+ objects = context.getDataObjects();
} else {
- tablesAccessed = Collections.emptySet();
+ objects = context.getPlanningObjects();
}
- if (!context.getViewsAccessed().isEmpty()) {
- this.viewsAccessed = new HashSet<Table>(context.getViewsAccessed());
+ if (objects == null || objects.isEmpty()) {
+ this.objectsAccessed = Collections.emptySet();
} else {
- this.viewsAccessed = Collections.emptySet();
+ this.objectsAccessed = objects;
}
- if (!context.getProceduresAccessed().isEmpty()) {
- this.proceduresAccessed = new HashSet<Procedure>(context.getProceduresAccessed());
- } else {
- this.proceduresAccessed = Collections.emptySet();
- }
}
+ /**
+ * Restore reconnects to the live metadata objects
+ * @throws QueryResolverException
+ * @throws QueryValidatorException
+ * @throws TeiidComponentException
+ */
void restore() throws QueryResolverException, QueryValidatorException, TeiidComponentException {
- if (this.viewsAccessed != null) {
+ if (this.objectsAccessed != null) {
return;
}
VDBMetaData vdb = DQPWorkContext.getWorkContext().getVDB();
TransformationMetadata tm = vdb.getAttachment(TransformationMetadata.class);
TempTableStore globalStore = vdb.getAttachment(TempTableStore.class);
- if (!externalViewNames.isEmpty()) {
- this.viewsAccessed = new HashSet<Table>();
- for (List<String> key : this.externalViewNames) {
- this.viewsAccessed.add(tm.getMetadataStore().getSchema(key.get(0).toUpperCase()).getTables().get(key.get(1).toUpperCase()));
- }
- } else {
- this.viewsAccessed = Collections.emptySet();
- }
- this.externalViewNames = null;
- if (!externalTableNames.isEmpty()) {
- for (List<String> key : this.externalTableNames) {
+ if (!externalNames.isEmpty()) {
+ this.objectsAccessed = new HashSet<Object>(externalNames.size());
+ for (List<String> key : this.externalNames) {
if (key.size() == 1) {
String matTableName = key.get(0);
TempMetadataID id = globalStore.getMetadataStore().getTempGroupID(matTableName);
@@ -155,54 +129,37 @@
String viewFullName = matTableName.substring(RelationalPlanner.MAT_PREFIX.length());
id = globalStore.getGlobalTempTableMetadataId(tm.getGroupID(viewFullName), tm);
}
- this.tablesAccessed.add(id);
+ this.objectsAccessed.add(id);
} else {
- this.tablesAccessed.add(tm.getMetadataStore().getSchema(key.get(0).toUpperCase()).getTables().get(key.get(1).toUpperCase()));
+ Schema s = tm.getMetadataStore().getSchema(key.get(0).toUpperCase());
+ Modifiable m = s.getTables().get(key.get(1).toUpperCase());
+ if (m == null) {
+ m = s.getProcedures().get(key.get(1).toUpperCase());
+ }
+ if (m != null) {
+ this.objectsAccessed.add(m);
+ }
}
}
} else {
- this.tablesAccessed = Collections.emptySet();
+ this.objectsAccessed = Collections.emptySet();
}
- this.externalTableNames = null;
- if (!externalProcedureNames.isEmpty()) {
- for (List<String> key : this.externalProcedureNames) {
- this.proceduresAccessed.add(tm.getMetadataStore().getSchema(key.get(0).toUpperCase()).getProcedures().get(key.get(1).toUpperCase()));
- }
- } else {
- this.proceduresAccessed = Collections.emptySet();
- }
- this.externalProcedureNames = null;
+ this.externalNames = null;
}
boolean validate(boolean data, long modTime) {
- if (this.tablesAccessed == null || modTime < 0) {
+ if (this.objectsAccessed == null || modTime < 0) {
return true;
}
- if (!data) {
- for (Table t : getViewsAccessed()) {
- if (t.getLastModified() - modTime > this.creationTime) {
+ for (Object o : this.objectsAccessed) {
+ if (!data) {
+ if (o instanceof Modifiable && ((Modifiable)o).getLastModified() - modTime > this.creationTime) {
return false;
}
+ } else if (o instanceof DataModifiable && ((DataModifiable)o).getLastDataModification() - modTime > this.creationTime) {
+ return false;
}
- for (Procedure p : getProceduresAccessed()) {
- if (p.getLastModified() - modTime > this.creationTime) {
- return false;
- }
- }
}
- for (Object o : getTablesAccessed()) {
- if (o instanceof Table) {
- Table t = (Table)o;
- if ((data?t.getLastDataModification():t.getLastModified()) - modTime > this.creationTime) {
- return false;
- }
- } else if (o instanceof TempMetadataID) {
- TempMetadataID tid = (TempMetadataID)o;
- if ((data?tid.getTableData().getLastDataModification():tid.getTableData().getLastModified()) - modTime > this.creationTime) {
- return false;
- }
- }
- }
return true;
}
Modified: trunk/engine/src/main/java/org/teiid/dqp/internal/process/CachedResults.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/dqp/internal/process/CachedResults.java 2011-05-02 18:34:41 UTC (rev 3135)
+++ trunk/engine/src/main/java/org/teiid/dqp/internal/process/CachedResults.java 2011-05-03 02:38:00 UTC (rev 3136)
@@ -92,7 +92,7 @@
this.rowCount = results.getRowCount();
this.uuid = results.getId();
this.hasLobs = results.isLobs();
- this.accessInfo.populate(plan, plan.getContext());
+ this.accessInfo.populate(plan.getContext(), true);
}
public void setCommand(Command command) {
Modified: trunk/engine/src/main/java/org/teiid/dqp/internal/process/DataTierManagerImpl.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/dqp/internal/process/DataTierManagerImpl.java 2011-05-02 18:34:41 UTC (rev 3135)
+++ trunk/engine/src/main/java/org/teiid/dqp/internal/process/DataTierManagerImpl.java 2011-05-03 02:38:00 UTC (rev 3136)
@@ -85,6 +85,7 @@
import org.teiid.query.sql.lang.UnaryFromClause;
import org.teiid.query.sql.symbol.Constant;
import org.teiid.query.sql.symbol.GroupSymbol;
+import org.teiid.query.sql.visitor.GroupCollectorVisitor;
import org.teiid.query.tempdata.TempTableStore;
import org.teiid.query.tempdata.TempTableStore.MatTableInfo;
import org.teiid.query.util.CommandContext;
@@ -170,6 +171,11 @@
if (limit > 0) {
aqr.setFetchSize(Math.min(limit, aqr.getFetchSize()));
}
+ if (context.getDataObjects() != null) {
+ for (GroupSymbol gs : GroupCollectorVisitor.getGroupsIgnoreInlineViews(command, false)) {
+ context.accessedDataObject(gs.getMetadataID());
+ }
+ }
ConnectorManagerRepository cmr = workItem.getDqpWorkContext().getVDB().getAttachment(ConnectorManagerRepository.class);
ConnectorWork work = cmr.getConnectorManager(aqr.getConnectorName()).registerRequest(aqr);
return new DataTierTupleSource(aqr, workItem, work, this, limit);
Modified: trunk/engine/src/main/java/org/teiid/dqp/internal/process/PreparedPlan.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/dqp/internal/process/PreparedPlan.java 2011-05-02 18:34:41 UTC (rev 3135)
+++ trunk/engine/src/main/java/org/teiid/dqp/internal/process/PreparedPlan.java 2011-05-03 02:38:00 UTC (rev 3136)
@@ -76,7 +76,7 @@
*/
public void setPlan(ProcessorPlan planValue, CommandContext context){
plan = planValue;
- this.accessInfo.populate(planValue, context);
+ this.accessInfo.populate(context, false);
}
/**
Modified: trunk/engine/src/main/java/org/teiid/dqp/internal/process/RequestWorkItem.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/dqp/internal/process/RequestWorkItem.java 2011-05-02 18:34:41 UTC (rev 3135)
+++ trunk/engine/src/main/java/org/teiid/dqp/internal/process/RequestWorkItem.java 2011-05-03 02:38:00 UTC (rev 3136)
@@ -25,6 +25,7 @@
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
@@ -425,6 +426,8 @@
originalCommand = request.userCommand;
if (cachable && (requestMsg.useResultSetCache() || originalCommand.getCacheHint() != null) && rsCache != null && originalCommand.areResultsCachable()) {
this.cid = cacheId;
+ //turn on the collection of data objects used
+ request.processor.getContext().setDataObjects(new HashSet<Object>(4));
}
processor = request.processor;
collector = new BatchCollector(processor, processor.getBufferManager(), this.request.context, isForwardOnly()) {
Modified: trunk/engine/src/main/java/org/teiid/query/metadata/BasicQueryMetadata.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/metadata/BasicQueryMetadata.java 2011-05-02 18:34:41 UTC (rev 3135)
+++ trunk/engine/src/main/java/org/teiid/query/metadata/BasicQueryMetadata.java 2011-05-03 02:38:00 UTC (rev 3136)
@@ -508,5 +508,10 @@
QueryMetadataException {
return null;
}
+
+ @Override
+ public QueryMetadataInterface getSessionMetadata() {
+ return null;
+ }
}
Modified: trunk/engine/src/main/java/org/teiid/query/metadata/BasicQueryMetadataWrapper.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/metadata/BasicQueryMetadataWrapper.java 2011-05-02 18:34:41 UTC (rev 3135)
+++ trunk/engine/src/main/java/org/teiid/query/metadata/BasicQueryMetadataWrapper.java 2011-05-03 02:38:00 UTC (rev 3136)
@@ -382,5 +382,10 @@
QueryMetadataException {
return actualMetadata.getName(metadataID);
}
+
+ @Override
+ public QueryMetadataInterface getSessionMetadata() {
+ return actualMetadata.getSessionMetadata();
+ }
}
Modified: trunk/engine/src/main/java/org/teiid/query/metadata/QueryMetadataInterface.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/metadata/QueryMetadataInterface.java 2011-05-02 18:34:41 UTC (rev 3135)
+++ trunk/engine/src/main/java/org/teiid/query/metadata/QueryMetadataInterface.java 2011-05-03 02:38:00 UTC (rev 3136)
@@ -677,4 +677,6 @@
* @throws TeiidComponentException
*/
boolean hasProcedure(String name) throws TeiidComponentException;
+
+ QueryMetadataInterface getSessionMetadata();
}
Modified: trunk/engine/src/main/java/org/teiid/query/metadata/TempMetadataAdapter.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/metadata/TempMetadataAdapter.java 2011-05-02 18:34:41 UTC (rev 3135)
+++ trunk/engine/src/main/java/org/teiid/query/metadata/TempMetadataAdapter.java 2011-05-03 02:38:00 UTC (rev 3136)
@@ -80,6 +80,15 @@
this.session = session;
}
+ public QueryMetadataInterface getSessionMetadata() {
+ if (isSession()) {
+ TempMetadataAdapter tma = new TempMetadataAdapter(new BasicQueryMetadata(), this.tempStore);
+ tma.session = true;
+ return tma;
+ }
+ return this.actualMetadata.getSessionMetadata();
+ }
+
public QueryMetadataInterface getDesignTimeMetadata() {
if (isSession()) {
return this.actualMetadata.getDesignTimeMetadata();
Modified: trunk/engine/src/main/java/org/teiid/query/metadata/TempMetadataID.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/metadata/TempMetadataID.java 2011-05-02 18:34:41 UTC (rev 3135)
+++ trunk/engine/src/main/java/org/teiid/query/metadata/TempMetadataID.java 2011-05-03 02:38:00 UTC (rev 3136)
@@ -29,6 +29,8 @@
import java.util.List;
import org.teiid.core.util.LRUCache;
+import org.teiid.metadata.AbstractMetadataRecord.DataModifiable;
+import org.teiid.metadata.AbstractMetadataRecord.Modifiable;
import org.teiid.query.mapping.relational.QueryNode;
import org.teiid.query.sql.lang.CacheHint;
import org.teiid.query.sql.symbol.SingleElementSymbol;
@@ -42,7 +44,7 @@
* TODO: we should be using the real metadata objects, but internal and
* designer legacy keep us on the temp framework
*/
-public class TempMetadataID implements Serializable {
+public class TempMetadataID implements Serializable, Modifiable, DataModifiable {
private static final long serialVersionUID = -1879211827339120135L;
private static final int LOCAL_CACHE_SIZE = 8;
@@ -156,6 +158,16 @@
this.type = type;
this.originalMetadataID = metadataID;
}
+
+ @Override
+ public long getLastDataModification() {
+ return getTableData().getLastDataModification();
+ }
+
+ @Override
+ public long getLastModified() {
+ return getTableData().getLastModified();
+ }
/**
* Get ID value
Modified: trunk/engine/src/main/java/org/teiid/query/optimizer/QueryOptimizer.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/optimizer/QueryOptimizer.java 2011-05-02 18:34:41 UTC (rev 3135)
+++ trunk/engine/src/main/java/org/teiid/query/optimizer/QueryOptimizer.java 2011-05-03 02:38:00 UTC (rev 3136)
@@ -37,7 +37,6 @@
import org.teiid.core.id.IntegerIDFactory;
import org.teiid.dqp.internal.process.PreparedPlan;
import org.teiid.metadata.Procedure;
-import org.teiid.metadata.Table;
import org.teiid.metadata.FunctionMethod.Determinism;
import org.teiid.query.analysis.AnalysisRecord;
import org.teiid.query.metadata.QueryMetadataInterface;
@@ -130,7 +129,7 @@
ProcessorPlan plan = planProcedure(command, metadata, idGenerator, capFinder, analysisRecord, clone);
//note that this is not a full prepared plan. It is not usable by user queries.
if (pid instanceof Procedure) {
- clone.accessedProcedure((Procedure)pid);
+ clone.accessedPlanningObject(pid);
}
pp = new PreparedPlan();
pp.setPlan(plan, clone);
@@ -138,12 +137,9 @@
context.setDeterminismLevel(determinismLevel);
}
result = pp.getPlan().clone();
- for (Table t : pp.getAccessInfo().getViewsAccessed()) {
- context.accessedView(t);
+ for (Object id : pp.getAccessInfo().getObjectsAccessed()) {
+ context.accessedPlanningObject(id);
}
- for (Procedure p : pp.getAccessInfo().getProceduresAccessed()) {
- context.accessedProcedure(p);
- }
}
// propagate procedure parameters to the plan to allow runtime type checking
ProcedureContainer container = (ProcedureContainer)cupc.getUserCommand();
Modified: trunk/engine/src/main/java/org/teiid/query/optimizer/relational/RelationalPlanner.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/optimizer/relational/RelationalPlanner.java 2011-05-02 18:34:41 UTC (rev 3135)
+++ trunk/engine/src/main/java/org/teiid/query/optimizer/relational/RelationalPlanner.java 2011-05-03 02:38:00 UTC (rev 3136)
@@ -42,7 +42,6 @@
import org.teiid.dqp.internal.process.Request;
import org.teiid.language.SQLConstants;
import org.teiid.metadata.Procedure;
-import org.teiid.metadata.Table;
import org.teiid.query.QueryPlugin;
import org.teiid.query.analysis.AnalysisRecord;
import org.teiid.query.mapping.relational.QueryNode;
@@ -96,6 +95,7 @@
import org.teiid.query.sql.lang.SubqueryContainer;
import org.teiid.query.sql.lang.SubqueryFromClause;
import org.teiid.query.sql.lang.TableFunctionReference;
+import org.teiid.query.sql.lang.TargetedCommand;
import org.teiid.query.sql.lang.TranslatableProcedureContainer;
import org.teiid.query.sql.lang.UnaryFromClause;
import org.teiid.query.sql.lang.Update;
@@ -114,7 +114,6 @@
import org.teiid.query.sql.util.SymbolMap;
import org.teiid.query.sql.visitor.AggregateSymbolCollectorVisitor;
import org.teiid.query.sql.visitor.CorrelatedReferenceCollectorVisitor;
-import org.teiid.query.sql.visitor.GroupCollectorVisitor;
import org.teiid.query.sql.visitor.GroupsUsedByElementsVisitor;
import org.teiid.query.sql.visitor.ValueIteratorProviderCollectorVisitor;
import org.teiid.query.util.CommandContext;
@@ -522,9 +521,6 @@
// Create top project node - define output columns for stored query / procedure
PlanNode projectNode = NodeFactory.getNewNode(NodeConstants.Types.PROJECT);
- Collection<GroupSymbol> groups = GroupCollectorVisitor.getGroups(command, false);
- projectNode.addGroups(groups);
-
// Set output columns
List<SingleElementSymbol> cols = command.getProjectedSymbols();
projectNode.setProperty(NodeConstants.Info.PROJECT_COLS, cols);
@@ -538,8 +534,12 @@
ProcedureContainer container = (ProcedureContainer)command;
usingTriggerAction = addNestedProcedure(sourceNode, container, container.getGroup().getMetadataID());
}
- sourceNode.addGroups(groups);
-
+ GroupSymbol target = ((TargetedCommand)command).getGroup();
+ sourceNode.addGroup(target);
+ Object id = getTrackableGroup(target, metadata);
+ if (id != null) {
+ context.accessedPlanningObject(id);
+ }
attachLast(projectNode, sourceNode);
//for INTO query, attach source and project nodes
@@ -559,6 +559,12 @@
private boolean addNestedProcedure(PlanNode sourceNode,
ProcedureContainer container, Object metadataId) throws TeiidComponentException,
QueryMetadataException, TeiidProcessingException {
+ if (container instanceof StoredProcedure) {
+ StoredProcedure sp = (StoredProcedure)container;
+ if (sp.getProcedureID() instanceof Procedure) {
+ context.accessedPlanningObject(sp.getProcedureID());
+ }
+ }
String cacheString = "transformation/" + container.getClass().getSimpleName().toUpperCase(); //$NON-NLS-1$
Command c = (Command)metadata.getFromMetadataCache(metadataId, cacheString);
if (c == null) {
@@ -599,12 +605,6 @@
//skip the rewrite here, we'll do that in the optimizer
//so that we know what the determinism level is.
addNestedCommand(sourceNode, container.getGroup(), container, c, false);
- if (container instanceof StoredProcedure) {
- StoredProcedure sp = (StoredProcedure)container;
- if (sp.getProcedureID() instanceof Procedure) {
- context.accessedProcedure((Procedure)sp.getProcedureID());
- }
- }
} else if (!container.getGroup().isTempTable() && //we hope for the best, and do a specific validation for subqueries below
container instanceof TranslatableProcedureContainer //we force the evaluation of procedure params - TODO: inserts are fine except for nonpushdown functions on columns
&& !CriteriaCapabilityValidatorVisitor.canPushLanguageObject(container, metadata.getModelID(container.getGroup().getMetadataID()), metadata, capFinder, analysisRecord)) {
@@ -790,11 +790,14 @@
hints.hasVirtualGroups = true;
}
Command nestedCommand = ufc.getExpandedCommand();
- if (nestedCommand == null && !group.isTempGroupSymbol() && !group.isProcedure()
- && (!(group.getMetadataID() instanceof TempMetadataID) || metadata.getVirtualPlan(group.getMetadataID()) != null)
- && (metadata.isVirtualGroup(group.getMetadataID()))) {
- //must be a view layer
- nestedCommand = resolveVirtualGroup(group);
+ if (nestedCommand == null && !group.isProcedure()) {
+ Object id = getTrackableGroup(group, metadata);
+ if (id != null) {
+ context.accessedPlanningObject(id);
+ }
+ if (!group.isTempGroupSymbol() && metadata.isVirtualGroup(group.getMetadataID())) {
+ nestedCommand = resolveVirtualGroup(group);
+ }
}
node = NodeFactory.getNewNode(NodeConstants.Types.SOURCE);
if (group.getModelMetadataId() != null) {
@@ -875,6 +878,24 @@
}
}
+ public static Object getTrackableGroup(GroupSymbol group, QueryMetadataInterface metadata)
+ throws TeiidComponentException, QueryMetadataException {
+ if (group.isTempGroupSymbol()) {
+ QueryMetadataInterface qmi = metadata.getSessionMetadata();
+ try {
+ //exclude proc scoped temp tables
+ if (group.isGlobalTable() || (qmi != null && qmi.getGroupID(group.getNonCorrelationName()) == group.getMetadataID())) {
+ return group.getMetadataID();
+ }
+ } catch (QueryMetadataException e) {
+ //not a session table
+ }
+ } else {
+ return group.getMetadataID();
+ }
+ return null;
+ }
+
private SymbolMap getCorrelatedReferences(PlanNode parent, PlanNode node,
LanguageObject lo) {
PlanNode rootJoin = parent;
@@ -1111,6 +1132,7 @@
//TODO: update the table for defaultMat
recordAnnotation(analysisRecord, Annotation.MATERIALIZED_VIEW, Priority.LOW, "SimpleQueryResolver.materialized_table_not_used", virtualGroup, matTableName); //$NON-NLS-1$
}else{
+ this.context.accessedPlanningObject(matMetadataId);
qnode = new QueryNode(null);
Query query = createMatViewQuery(matMetadataId, matTableName, Arrays.asList(new AllSymbol()), isImplicitGlobal);
query.setCacheHint(hint);
@@ -1121,9 +1143,6 @@
} else {
// Not a materialized view - query the primary transformation
qnode = metadata.getVirtualPlan(metadataID);
- if (metadataID instanceof Table) {
- this.context.accessedView((Table)metadataID);
- }
}
Command result = (Command)QueryResolver.resolveView(virtualGroup, qnode, cacheString, metadata).getCommand().clone();
Modified: trunk/engine/src/main/java/org/teiid/query/processor/BatchedUpdatePlan.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/processor/BatchedUpdatePlan.java 2011-05-02 18:34:41 UTC (rev 3135)
+++ trunk/engine/src/main/java/org/teiid/query/processor/BatchedUpdatePlan.java 2011-05-03 02:38:00 UTC (rev 3136)
@@ -33,7 +33,6 @@
import org.teiid.core.TeiidComponentException;
import org.teiid.core.TeiidProcessingException;
import org.teiid.query.sql.lang.Command;
-import org.teiid.query.sql.symbol.GroupSymbol;
import org.teiid.query.sql.util.VariableContext;
import org.teiid.query.util.CommandContext;
@@ -239,11 +238,4 @@
return true;
}
- @Override
- public void getAccessedGroups(List<GroupSymbol> groups) {
- for (int i = 0; i < getPlanCount(); i++) {
- updatePlans[i].getAccessedGroups(groups);
- }
- }
-
}
Modified: trunk/engine/src/main/java/org/teiid/query/processor/DdlPlan.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/processor/DdlPlan.java 2011-05-02 18:34:41 UTC (rev 3135)
+++ trunk/engine/src/main/java/org/teiid/query/processor/DdlPlan.java 2011-05-03 02:38:00 UTC (rev 3136)
@@ -48,7 +48,6 @@
import org.teiid.query.sql.lang.AlterView;
import org.teiid.query.sql.lang.Command;
import org.teiid.query.sql.lang.StoredProcedure;
-import org.teiid.query.sql.symbol.GroupSymbol;
import org.teiid.query.util.CommandContext;
public class DdlPlan extends ProcessorPlan {
@@ -226,9 +225,4 @@
return props;
}
- @Override
- public void getAccessedGroups(List<GroupSymbol> groups) {
-
- }
-
}
Modified: trunk/engine/src/main/java/org/teiid/query/processor/ProcessorPlan.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/processor/ProcessorPlan.java 2011-05-02 18:34:41 UTC (rev 3135)
+++ trunk/engine/src/main/java/org/teiid/query/processor/ProcessorPlan.java 2011-05-03 02:38:00 UTC (rev 3136)
@@ -37,7 +37,6 @@
import org.teiid.core.TeiidProcessingException;
import org.teiid.query.analysis.AnalysisRecord;
import org.teiid.query.processor.BatchCollector.BatchProducer;
-import org.teiid.query.sql.symbol.GroupSymbol;
import org.teiid.query.util.CommandContext;
@@ -177,6 +176,4 @@
return false;
}
- public abstract void getAccessedGroups(List<GroupSymbol> groups);
-
}
Modified: trunk/engine/src/main/java/org/teiid/query/processor/proc/ForEachRowPlan.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/processor/proc/ForEachRowPlan.java 2011-05-02 18:34:41 UTC (rev 3135)
+++ trunk/engine/src/main/java/org/teiid/query/processor/proc/ForEachRowPlan.java 2011-05-03 02:38:00 UTC (rev 3136)
@@ -39,7 +39,6 @@
import org.teiid.query.sql.lang.Command;
import org.teiid.query.sql.symbol.ElementSymbol;
import org.teiid.query.sql.symbol.Expression;
-import org.teiid.query.sql.symbol.GroupSymbol;
import org.teiid.query.sql.symbol.SingleElementSymbol;
import org.teiid.query.util.CommandContext;
@@ -163,10 +162,4 @@
return true;
}
- @Override
- public void getAccessedGroups(List<GroupSymbol> groups) {
- this.queryPlan.getAccessedGroups(groups);
- this.rowProcedure.getAccessedGroups(groups);
- }
-
}
Modified: trunk/engine/src/main/java/org/teiid/query/processor/proc/ProcedurePlan.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/processor/proc/ProcedurePlan.java 2011-05-02 18:34:41 UTC (rev 3135)
+++ trunk/engine/src/main/java/org/teiid/query/processor/proc/ProcedurePlan.java 2011-05-03 02:38:00 UTC (rev 3136)
@@ -65,7 +65,6 @@
import org.teiid.query.sql.lang.Criteria;
import org.teiid.query.sql.symbol.ElementSymbol;
import org.teiid.query.sql.symbol.Expression;
-import org.teiid.query.sql.symbol.GroupSymbol;
import org.teiid.query.sql.symbol.Reference;
import org.teiid.query.sql.util.VariableContext;
import org.teiid.query.tempdata.TempTableStore;
@@ -714,20 +713,4 @@
return requiresTransaction || transactionalReads;
}
- @Override
- public void getAccessedGroups(List<GroupSymbol> groups) {
- ArrayList<ProcessorPlan> plans = new ArrayList<ProcessorPlan>();
- this.originalProgram.getChildPlans(plans);
- LinkedList<GroupSymbol> tempGroups = new LinkedList<GroupSymbol>();
- for (ProcessorPlan processorPlan : plans) {
- processorPlan.getAccessedGroups(tempGroups);
- }
- for (GroupSymbol groupSymbol : tempGroups) {
- if (groupSymbol.isTempTable() && !groupSymbol.isGlobalTable()) {
- continue;
- }
- groups.add(groupSymbol);
- }
- }
-
}
Modified: trunk/engine/src/main/java/org/teiid/query/processor/relational/RelationalPlan.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/processor/relational/RelationalPlan.java 2011-05-02 18:34:41 UTC (rev 3135)
+++ trunk/engine/src/main/java/org/teiid/query/processor/relational/RelationalPlan.java 2011-05-03 02:38:00 UTC (rev 3136)
@@ -41,13 +41,10 @@
import org.teiid.query.processor.QueryProcessor;
import org.teiid.query.processor.relational.ProjectIntoNode.Mode;
import org.teiid.query.sql.LanguageObject;
-import org.teiid.query.sql.lang.Command;
import org.teiid.query.sql.lang.Create;
import org.teiid.query.sql.lang.Insert;
import org.teiid.query.sql.lang.QueryCommand;
import org.teiid.query.sql.lang.WithQueryCommand;
-import org.teiid.query.sql.symbol.GroupSymbol;
-import org.teiid.query.sql.visitor.GroupCollectorVisitor;
import org.teiid.query.tempdata.TempTableStore;
import org.teiid.query.util.CommandContext;
@@ -291,29 +288,6 @@
}
@Override
- public void getAccessedGroups(List<GroupSymbol> groups) {
- getAccessedGroups(groups, this.root);
- }
-
- void getAccessedGroups(List<GroupSymbol> groups, RelationalNode node) {
- if (node instanceof AccessNode) {
- Command c = ((AccessNode)node).getCommand();
- if (c instanceof QueryCommand) {
- QueryCommand qc = (QueryCommand)c;
- groups.addAll(GroupCollectorVisitor.getGroupsIgnoreInlineViews(qc, true));
- }
- } else if (node instanceof PlanExecutionNode) {
- PlanExecutionNode pen = (PlanExecutionNode)node;
- pen.getProcessorPlan().getAccessedGroups(groups);
- }
- for (RelationalNode child : node.getChildren()) {
- if (child != null) {
- getAccessedGroups(groups, child);
- }
- }
- }
-
- @Override
public TupleBuffer getFinalBuffer() throws BlockedException, TeiidComponentException, TeiidProcessingException {
return root.getFinalBuffer();
}
Modified: trunk/engine/src/main/java/org/teiid/query/processor/xml/XMLPlan.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/processor/xml/XMLPlan.java 2011-05-02 18:34:41 UTC (rev 3135)
+++ trunk/engine/src/main/java/org/teiid/query/processor/xml/XMLPlan.java 2011-05-03 02:38:00 UTC (rev 3136)
@@ -479,8 +479,4 @@
return this.originalProgram;
}
- @Override
- public void getAccessedGroups(List<GroupSymbol> groups) {
- //TODO: add support
- }
}
\ No newline at end of file
Modified: trunk/engine/src/main/java/org/teiid/query/sql/lang/Create.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/sql/lang/Create.java 2011-05-02 18:34:41 UTC (rev 3135)
+++ trunk/engine/src/main/java/org/teiid/query/sql/lang/Create.java 2011-05-03 02:38:00 UTC (rev 3136)
@@ -39,7 +39,7 @@
/**
* @since 5.5
*/
-public class Create extends Command {
+public class Create extends Command implements TargetedCommand {
/** Identifies the table to be created. */
private GroupSymbol table;
private List<ElementSymbol> primaryKey = new ArrayList<ElementSymbol>();
@@ -49,6 +49,11 @@
public GroupSymbol getTable() {
return table;
}
+
+ @Override
+ public GroupSymbol getGroup() {
+ return table;
+ }
public void setTable(GroupSymbol table) {
this.table = table;
Modified: trunk/engine/src/main/java/org/teiid/query/sql/lang/Drop.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/sql/lang/Drop.java 2011-05-02 18:34:41 UTC (rev 3135)
+++ trunk/engine/src/main/java/org/teiid/query/sql/lang/Drop.java 2011-05-03 02:38:00 UTC (rev 3136)
@@ -24,10 +24,8 @@
import java.util.List;
-import org.teiid.core.TeiidComponentException;
import org.teiid.core.util.EquivalenceUtil;
import org.teiid.core.util.HashCodeUtil;
-import org.teiid.query.metadata.QueryMetadataInterface;
import org.teiid.query.sql.LanguageVisitor;
import org.teiid.query.sql.symbol.GroupSymbol;
import org.teiid.query.sql.visitor.SQLStringVisitor;
@@ -37,13 +35,18 @@
/**
* @since 5.5
*/
-public class Drop extends Command {
+public class Drop extends Command implements TargetedCommand {
/** Identifies the table to be dropped. */
private GroupSymbol table;
public GroupSymbol getTable() {
return table;
}
+
+ @Override
+ public GroupSymbol getGroup() {
+ return table;
+ }
public void setTable(GroupSymbol table) {
this.table = table;
Modified: trunk/engine/src/main/java/org/teiid/query/sql/lang/ProcedureContainer.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/sql/lang/ProcedureContainer.java 2011-05-02 18:34:41 UTC (rev 3135)
+++ trunk/engine/src/main/java/org/teiid/query/sql/lang/ProcedureContainer.java 2011-05-03 02:38:00 UTC (rev 3136)
@@ -26,17 +26,14 @@
import org.teiid.query.sql.symbol.ElementSymbol;
import org.teiid.query.sql.symbol.Expression;
-import org.teiid.query.sql.symbol.GroupSymbol;
import org.teiid.query.validator.UpdateValidator.UpdateInfo;
-public abstract class ProcedureContainer extends Command {
+public abstract class ProcedureContainer extends Command implements TargetedCommand {
private int updateCount = -1;
private UpdateInfo updateInfo;
- public abstract GroupSymbol getGroup();
-
protected void copyMetadataState(ProcedureContainer copy) {
super.copyMetadataState(copy);
copy.setUpdateInfo(this.getUpdateInfo());
Added: trunk/engine/src/main/java/org/teiid/query/sql/lang/TargetedCommand.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/sql/lang/TargetedCommand.java (rev 0)
+++ trunk/engine/src/main/java/org/teiid/query/sql/lang/TargetedCommand.java 2011-05-03 02:38:00 UTC (rev 3136)
@@ -0,0 +1,30 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership. Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301 USA.
+ */
+
+package org.teiid.query.sql.lang;
+
+import org.teiid.query.sql.symbol.GroupSymbol;
+
+public interface TargetedCommand {
+
+ GroupSymbol getGroup();
+}
Property changes on: trunk/engine/src/main/java/org/teiid/query/sql/lang/TargetedCommand.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified: trunk/engine/src/main/java/org/teiid/query/tempdata/TempTableDataManager.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/tempdata/TempTableDataManager.java 2011-05-02 18:34:41 UTC (rev 3135)
+++ trunk/engine/src/main/java/org/teiid/query/tempdata/TempTableDataManager.java 2011-05-03 02:38:00 UTC (rev 3136)
@@ -286,6 +286,7 @@
Determinism determinismLevel = context.resetDeterminismLevel();
QueryProcessor qp = context.getQueryProcessorFactory().createQueryProcessor(proc.toString(), fullName.toUpperCase(), context);
qp.setNonBlocking(true);
+ qp.getContext().setDataObjects(null);
BatchCollector bc = qp.createBatchCollector();
TupleBuffer tb = bc.collectTuples();
CachedResults cr = new CachedResults();
@@ -352,6 +353,7 @@
metadata.getFullName(ids.iterator().next()) + " = ?" + ' ' + Reserved.OPTION + ' ' + Reserved.NOCACHE; //$NON-NLS-1$
QueryProcessor qp = context.getQueryProcessorFactory().createQueryProcessor(queryString, matViewName.toUpperCase(), context, key.getValue());
qp.setNonBlocking(true);
+ qp.getContext().setDataObjects(null);
TupleSource ts = new BatchCollector.BatchProducerTupleSource(qp);
List<?> tuple = ts.nextTuple();
boolean delete = false;
@@ -430,8 +432,15 @@
}
}
table = globalStore.getOrCreateTempTable(tableName, query, bufferManager, false);
+ context.accessedDataObject(group.getMetadataID());
} else {
table = contextStore.getOrCreateTempTable(tableName, query, bufferManager, true);
+ if (context.getDataObjects() != null) {
+ Object id = RelationalPlanner.getTrackableGroup(group, context.getMetadata());
+ if (id != null) {
+ context.accessedDataObject(group.getMetadataID());
+ }
+ }
}
if (remapColumns) {
//convert to the actual table symbols (this is typically handled by the languagebridgefactory
@@ -516,7 +525,7 @@
String transformation = metadata.getVirtualPlan(group.getMetadataID()).getQuery();
QueryProcessor qp = context.getQueryProcessorFactory().createQueryProcessor(transformation, fullName, context);
qp.setNonBlocking(true);
-
+ qp.getContext().setDataObjects(null);
if (distributedCache != null) {
CachedResults cr = new CachedResults();
BatchCollector bc = qp.createBatchCollector();
Modified: trunk/engine/src/main/java/org/teiid/query/util/CommandContext.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/util/CommandContext.java 2011-05-02 18:34:41 UTC (rev 3135)
+++ trunk/engine/src/main/java/org/teiid/query/util/CommandContext.java 2011-05-03 02:38:00 UTC (rev 3136)
@@ -40,8 +40,6 @@
import org.teiid.dqp.internal.process.PreparedPlan;
import org.teiid.dqp.internal.process.SessionAwareCache;
import org.teiid.dqp.internal.process.SessionAwareCache.CacheID;
-import org.teiid.metadata.Procedure;
-import org.teiid.metadata.Table;
import org.teiid.metadata.FunctionMethod.Determinism;
import org.teiid.query.QueryPlugin;
import org.teiid.query.eval.SecurityFunctionEvaluator;
@@ -118,6 +116,7 @@
private int userRequestSourceConcurrency;
private Subject subject;
+ private HashSet<Object> dataObjects;
}
private GlobalState globalState = new GlobalState();
@@ -126,8 +125,8 @@
private TempTableStore tempTableStore;
private LinkedList<String> recursionStack;
private boolean nonBlocking;
- private HashSet<Table> viewsAccessed;
- private HashSet<Procedure> proceduresAccessed;
+ private HashSet<Object> planningObjects;
+ private HashSet<Object> dataObjects = this.globalState.dataObjects;
/**
* Construct a new context.
@@ -160,6 +159,7 @@
private CommandContext(GlobalState state) {
this.globalState = state;
+ this.dataObjects = this.globalState.dataObjects;
}
public Determinism getDeterminismLevel() {
@@ -539,32 +539,32 @@
this.globalState.subject = subject;
}
- public void accessedView(Table id) {
- if (this.viewsAccessed == null) {
- this.viewsAccessed = new HashSet<Table>();
+ public void accessedPlanningObject(Object id) {
+ if (this.planningObjects == null) {
+ this.planningObjects = new HashSet<Object>();
}
- this.viewsAccessed.add(id);
+ this.planningObjects.add(id);
}
- public Set<Table> getViewsAccessed() {
- if (this.viewsAccessed == null) {
+ public Set<Object> getPlanningObjects() {
+ if (this.planningObjects == null) {
return Collections.emptySet();
}
- return viewsAccessed;
+ return planningObjects;
}
- public void accessedProcedure(Procedure id) {
- if (this.proceduresAccessed == null) {
- this.proceduresAccessed = new HashSet<Procedure>();
+ public void accessedDataObject(Object id) {
+ if (this.dataObjects != null) {
+ this.dataObjects.add(id);
}
- this.proceduresAccessed.add(id);
}
- public Set<Procedure> getProceduresAccessed() {
- if (this.proceduresAccessed == null) {
- return Collections.emptySet();
- }
- return proceduresAccessed;
+ public Set<Object> getDataObjects() {
+ return dataObjects;
}
+ public void setDataObjects(HashSet<Object> dataObjectsAccessed) {
+ this.dataObjects = dataObjectsAccessed;
+ }
+
}
Modified: trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestCachedResults.java
===================================================================
--- trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestCachedResults.java 2011-05-02 18:34:41 UTC (rev 3135)
+++ trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestCachedResults.java 2011-05-03 02:38:00 UTC (rev 3136)
@@ -75,7 +75,7 @@
ProcessorPlan plan = new FakeProcessorPlan(0);
CommandContext cc = new CommandContext();
Table t = RealMetadataFactory.exampleBQT().getGroupID("bqt1.smalla");
- cc.accessedView(t);
+ cc.accessedDataObject(t);
plan.setContext(cc);
results.setResults(tb, plan);
results.setCommand(new Query());
Modified: trunk/engine/src/test/java/org/teiid/query/optimizer/relational/rules/TestRuleAccessPatternValidation.java
===================================================================
--- trunk/engine/src/test/java/org/teiid/query/optimizer/relational/rules/TestRuleAccessPatternValidation.java 2011-05-02 18:34:41 UTC (rev 3135)
+++ trunk/engine/src/test/java/org/teiid/query/optimizer/relational/rules/TestRuleAccessPatternValidation.java 2011-05-03 02:38:00 UTC (rev 3136)
@@ -85,7 +85,7 @@
//Generate canonical plan
RelationalPlanner p = new RelationalPlanner();
- p.initialize(query, null, METADATA, FINDER, null, null);
+ p.initialize(query, null, METADATA, FINDER, null, new CommandContext());
PlanNode planNode = p.generatePlan(query);
RelationalPlanner planner = new RelationalPlanner();
final RuleStack rules = planner.buildRules();
Modified: trunk/engine/src/test/java/org/teiid/query/optimizer/relational/rules/TestRulePushSelectCriteria.java
===================================================================
--- trunk/engine/src/test/java/org/teiid/query/optimizer/relational/rules/TestRulePushSelectCriteria.java 2011-05-02 18:34:41 UTC (rev 3135)
+++ trunk/engine/src/test/java/org/teiid/query/optimizer/relational/rules/TestRulePushSelectCriteria.java 2011-05-03 02:38:00 UTC (rev 3136)
@@ -43,7 +43,6 @@
import org.teiid.query.optimizer.relational.plantree.NodeFactory;
import org.teiid.query.optimizer.relational.plantree.PlanNode;
import org.teiid.query.optimizer.relational.plantree.NodeConstants.Info;
-import org.teiid.query.optimizer.relational.rules.RulePushSelectCriteria;
import org.teiid.query.parser.QueryParser;
import org.teiid.query.sql.lang.Command;
import org.teiid.query.sql.symbol.ElementSymbol;
@@ -72,7 +71,8 @@
Command command = TestOptimizer.helpGetCommand("select * from (select * from pm1.g1 union select * from pm1.g2) x where e1 = 1", metadata, null); //$NON-NLS-1$
Command subCommand = TestOptimizer.helpGetCommand("select * from pm1.g1 union select * from pm1.g2", metadata, null); //$NON-NLS-1$
RelationalPlanner p = new RelationalPlanner();
- p.initialize(command, null, metadata, null, null, null);
+ CommandContext cc = new CommandContext();
+ p.initialize(command, null, metadata, null, null, cc);
PlanNode root = p.generatePlan(command);
PlanNode child = p.generatePlan(subCommand);
PlanNode sourceNode = NodeEditor.findNodePreOrder(root, NodeConstants.Types.SOURCE);
@@ -83,7 +83,7 @@
accessNode.addGroups(child.getFirstChild().getGroups());
child.getFirstChild().addAsParent(accessNode);
- new RulePushSelectCriteria().execute(root, metadata, new DefaultCapabilitiesFinder(), new RuleStack(), AnalysisRecord.createNonRecordingRecord(), new CommandContext());
+ new RulePushSelectCriteria().execute(root, metadata, new DefaultCapabilitiesFinder(), new RuleStack(), AnalysisRecord.createNonRecordingRecord(), cc);
// the select node should still be above the access node
accessNode = NodeEditor.findNodePreOrder(root, NodeConstants.Types.ACCESS);
assertEquals(NodeConstants.Types.SELECT, accessNode.getParent().getType());
Modified: trunk/engine/src/test/java/org/teiid/query/processor/FakeProcessorPlan.java
===================================================================
--- trunk/engine/src/test/java/org/teiid/query/processor/FakeProcessorPlan.java 2011-05-02 18:34:41 UTC (rev 3135)
+++ trunk/engine/src/test/java/org/teiid/query/processor/FakeProcessorPlan.java 2011-05-03 02:38:00 UTC (rev 3136)
@@ -33,7 +33,6 @@
import org.teiid.common.buffer.TupleBatch;
import org.teiid.core.TeiidComponentException;
import org.teiid.query.sql.lang.Command;
-import org.teiid.query.sql.symbol.GroupSymbol;
import org.teiid.query.util.CommandContext;
@@ -141,8 +140,4 @@
return this.outputElements;
}
- @Override
- public void getAccessedGroups(List<GroupSymbol> groups) {
- }
-
}
14 years, 7 months
teiid SVN: r3135 - in trunk: client/src/main/java/org/teiid/adminapi/impl and 8 other directories.
by teiid-commits@lists.jboss.org
Author: shawkins
Date: 2011-05-02 14:34:41 -0400 (Mon, 02 May 2011)
New Revision: 3135
Modified:
trunk/client/src/main/java/org/teiid/adminapi/DataPolicy.java
trunk/client/src/main/java/org/teiid/adminapi/impl/DataPolicyMetadata.java
trunk/client/src/main/resources/vdb-deployer.xsd
trunk/documentation/reference/src/main/docbook/en-US/content/dataroles.xml
trunk/engine/src/main/java/org/teiid/dqp/internal/process/AuthorizationValidationVisitor.java
trunk/engine/src/main/java/org/teiid/query/sql/navigator/PreOrPostOrderNavigator.java
trunk/engine/src/main/java/org/teiid/query/sql/visitor/CommandCollectorVisitor.java
trunk/engine/src/main/java/org/teiid/query/validator/AbstractValidationVisitor.java
trunk/engine/src/main/java/org/teiid/query/validator/ValidationVisitor.java
trunk/engine/src/main/java/org/teiid/query/validator/Validator.java
trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestAuthorizationValidationVisitor.java
trunk/engine/src/test/java/org/teiid/query/validator/TestAlterValidation.java
Log:
TEIID-1574 adding permissions for alter/execute
Modified: trunk/client/src/main/java/org/teiid/adminapi/DataPolicy.java
===================================================================
--- trunk/client/src/main/java/org/teiid/adminapi/DataPolicy.java 2011-05-02 17:02:28 UTC (rev 3134)
+++ trunk/client/src/main/java/org/teiid/adminapi/DataPolicy.java 2011-05-02 18:34:41 UTC (rev 3135)
@@ -25,7 +25,7 @@
public interface DataPolicy {
- public enum PermissionType {CREATE, READ, UPDATE, DELETE};
+ public enum PermissionType {CREATE, READ, UPDATE, DELETE, ALTER, EXECUTE};
/**
* Get the Name of the Data Policy
@@ -92,6 +92,18 @@
* Is "DELETE" allowed?
* @return
*/
- Boolean getAllowDelete();
+ Boolean getAllowDelete();
+
+ /**
+ * Is "ALTER" allowed?
+ * @return
+ */
+ Boolean getAllowAlter();
+
+ /**
+ * Is "EXECUTE" allowed?
+ * @return
+ */
+ Boolean getAllowExecute();
}
}
Modified: trunk/client/src/main/java/org/teiid/adminapi/impl/DataPolicyMetadata.java
===================================================================
--- trunk/client/src/main/java/org/teiid/adminapi/impl/DataPolicyMetadata.java 2011-05-02 17:02:28 UTC (rev 3134)
+++ trunk/client/src/main/java/org/teiid/adminapi/impl/DataPolicyMetadata.java 2011-05-02 18:34:41 UTC (rev 3135)
@@ -146,7 +146,9 @@
"allowCreate",
"allowRead",
"allowUpdate",
- "allowDelete"
+ "allowDelete",
+ "allowExecute",
+ "allowAlter"
})
@ManagementObject(properties=ManagementProperties.EXPLICIT)
public static class PermissionMetaData implements DataPermission, Serializable {
@@ -162,6 +164,10 @@
protected Boolean allowUpdate;
@XmlElement(name = "allow-delete")
protected Boolean allowDelete;
+ @XmlElement(name = "allow-execute")
+ protected Boolean allowExecute;
+ @XmlElement(name = "allow-alter")
+ protected Boolean allowAlter;
@Override
@ManagementProperty(description="Resource Name, for which permission defined")
@@ -229,13 +235,25 @@
if (Boolean.TRUE.equals(getAllowDelete())) {
sb.append("D");//$NON-NLS-1$
}
+ if (Boolean.TRUE.equals(getAllowExecute())) {
+ sb.append("E");//$NON-NLS-1$
+ }
+ if (Boolean.TRUE.equals(getAllowAlter())) {
+ sb.append("A");//$NON-NLS-1$
+ }
return sb.toString();
}
public Boolean allows(PermissionType type) {
switch (type) {
+ case ALTER:
+ return getAllowAlter();
case CREATE:
return getAllowCreate();
+ case EXECUTE:
+ if (getAllowExecute() != null) {
+ return getAllowExecute();
+ }
case READ:
return getAllowRead();
case UPDATE:
@@ -246,7 +264,27 @@
throw new AssertionError();
}
- public String toString() {
+ @Override
+ @ManagementProperty(description="Allows Alter")
+ public Boolean getAllowAlter() {
+ return allowAlter;
+ }
+
+ @Override
+ @ManagementProperty(description="Allows Execute")
+ public Boolean getAllowExecute() {
+ return allowExecute;
+ }
+
+ public void setAllowAlter(Boolean allowAlter) {
+ this.allowAlter = allowAlter;
+ }
+
+ public void setAllowExecute(Boolean allowExecute) {
+ this.allowExecute = allowExecute;
+ }
+
+ public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(getResourceName());
sb.append("["); //$NON-NLS-1$
Modified: trunk/client/src/main/resources/vdb-deployer.xsd
===================================================================
--- trunk/client/src/main/resources/vdb-deployer.xsd 2011-05-02 17:02:28 UTC (rev 3134)
+++ trunk/client/src/main/resources/vdb-deployer.xsd 2011-05-02 18:34:41 UTC (rev 3135)
@@ -93,6 +93,8 @@
<xs:element name="allow-read" type="xs:boolean" minOccurs="0"/>
<xs:element name="allow-update" type="xs:boolean" minOccurs="0"/>
<xs:element name="allow-delete" type="xs:boolean" minOccurs="0"/>
+ <xs:element name="allow-execute" type="xs:boolean" minOccurs="0"/>
+ <xs:element name="allow-alter" type="xs:boolean" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
Modified: trunk/documentation/reference/src/main/docbook/en-US/content/dataroles.xml
===================================================================
--- trunk/documentation/reference/src/main/docbook/en-US/content/dataroles.xml 2011-05-02 17:02:28 UTC (rev 3134)
+++ trunk/documentation/reference/src/main/docbook/en-US/content/dataroles.xml 2011-05-02 18:34:41 UTC (rev 3135)
@@ -73,16 +73,20 @@
</orderedlist>
<orderedlist>
- <para>To process a <emphasis>EXEC</emphasis> statement, the user account requires the following access rights:</para>
- <listitem> <para><emphasis>READ</emphasis> - on the Procedure being executed.</para></listitem>
+ <para>To process a <emphasis>EXEC/CALL</emphasis> statement, the user account requires the following access rights:</para>
+ <listitem> <para><emphasis>EXECUTE (or READ)</emphasis> - on the Procedure being executed.</para></listitem>
</orderedlist>
<orderedlist>
<para>To process any function, the user account requires the following access rights:</para>
- <listitem> <para><emphasis>READ</emphasis> - on the Function being called.</para> </listitem>
- <note><para>For backwards compatibility RuntimeEngineDeployer.allowFunctionCallsByDefault located in the &jboss-beans; file in the <code>RuntimeEngineDeployer</code> section defaults to true.
- This means that to actually require permissions for functions, you need to set this property to false.</para></note>
+ <listitem> <para><emphasis>EXECUTE (or READ)</emphasis> - on the Function being called.</para> <note><para>For backwards compatibility RuntimeEngineDeployer.allowFunctionCallsByDefault located in the &jboss-beans; file in the <code>RuntimeEngineDeployer</code> section defaults to true.
+ This means that to actually require permissions for functions, you need to set this property to false.</para></note></listitem>
</orderedlist>
+
+ <orderedlist>
+ <para>To process any ALTER or CREATE TRIGGER statement, the user account requires the following access rights:</para>
+ <listitem> <para><emphasis>ALTER</emphasis> - on the view or procedure that is effected. INSTEAD OF Triggers (update procedures) are not yet treated as full schema objects and are instead treated as attributes of the view.</para></listitem>
+ </orderedlist>
</section>
Modified: trunk/engine/src/main/java/org/teiid/dqp/internal/process/AuthorizationValidationVisitor.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/dqp/internal/process/AuthorizationValidationVisitor.java 2011-05-02 17:02:28 UTC (rev 3134)
+++ trunk/engine/src/main/java/org/teiid/dqp/internal/process/AuthorizationValidationVisitor.java 2011-05-02 18:34:41 UTC (rev 3135)
@@ -51,6 +51,9 @@
import org.teiid.query.metadata.TempMetadataID;
import org.teiid.query.resolver.util.ResolverUtil;
import org.teiid.query.sql.LanguageObject;
+import org.teiid.query.sql.lang.AlterProcedure;
+import org.teiid.query.sql.lang.AlterTrigger;
+import org.teiid.query.sql.lang.AlterView;
import org.teiid.query.sql.lang.Create;
import org.teiid.query.sql.lang.Delete;
import org.teiid.query.sql.lang.Drop;
@@ -78,6 +81,7 @@
UPDATE,
DELETE,
FUNCTION,
+ ALTER,
STORED_PROCEDURE;
}
@@ -108,6 +112,21 @@
Collection<GroupSymbol> symbols = Arrays.asList(obj.getTable());
validateTemp(resources, symbols, Context.CREATE);
}
+
+ @Override
+ public void visit(AlterProcedure obj) {
+ validateEntitlements(Arrays.asList(obj.getTarget()), DataPolicy.PermissionType.ALTER, Context.ALTER);
+ }
+
+ @Override
+ public void visit(AlterTrigger obj) {
+ validateEntitlements(Arrays.asList(obj.getTarget()), DataPolicy.PermissionType.ALTER, obj.isCreate()?Context.CREATE:Context.ALTER);
+ }
+
+ @Override
+ public void visit(AlterView obj) {
+ validateEntitlements(Arrays.asList(obj.getTarget()), DataPolicy.PermissionType.ALTER, Context.ALTER);
+ }
private void validateTemp(Set<String> resources,
Collection<GroupSymbol> symbols, Context context) {
@@ -190,7 +209,7 @@
if (schema != null && !isSystemSchema(schema)) {
Map<String, Function> map = new HashMap<String, Function>();
map.put(schema + '.' + obj.getFunctionDescriptor().getName(), obj);
- validateEntitlements(PermissionType.READ, Context.FUNCTION, map);
+ validateEntitlements(PermissionType.EXECUTE, Context.FUNCTION, map);
}
}
}
@@ -212,12 +231,15 @@
*/
protected void validateEntitlements(Update obj) {
// Check that all elements used in criteria have read permission
+ HashSet<ElementSymbol> elements = new HashSet<ElementSymbol>();
+ ElementCollectorVisitor.getElements(obj.getChangeList().getClauseMap().values(), elements);
if (obj.getCriteria() != null) {
- validateEntitlements(
- ElementCollectorVisitor.getElements(obj.getCriteria(), true),
+ ElementCollectorVisitor.getElements(obj.getCriteria(), elements);
+ }
+ validateEntitlements(
+ elements,
DataPolicy.PermissionType.READ,
Context.UPDATE);
- }
// The variables from the changes must be checked for UPDATE entitlement
// validateEntitlements on all the variables used in the update.
@@ -278,7 +300,7 @@
* Validate query entitlements
*/
protected void validateEntitlements(StoredProcedure obj) {
- validateEntitlements(Arrays.asList(obj.getGroup()), DataPolicy.PermissionType.READ, Context.STORED_PROCEDURE);
+ validateEntitlements(Arrays.asList(obj.getGroup()), DataPolicy.PermissionType.EXECUTE, Context.STORED_PROCEDURE);
}
/**
Modified: trunk/engine/src/main/java/org/teiid/query/sql/navigator/PreOrPostOrderNavigator.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/sql/navigator/PreOrPostOrderNavigator.java 2011-05-02 17:02:28 UTC (rev 3134)
+++ trunk/engine/src/main/java/org/teiid/query/sql/navigator/PreOrPostOrderNavigator.java 2011-05-02 18:34:41 UTC (rev 3135)
@@ -674,7 +674,9 @@
public void visit(AlterProcedure obj) {
preVisitVisitor(obj);
visitNode(obj.getTarget());
- visitNode(obj.getDefinition());
+ if (deep) {
+ visitNode(obj.getDefinition());
+ }
postVisitVisitor(obj);
}
@@ -682,7 +684,9 @@
public void visit(AlterTrigger obj) {
preVisitVisitor(obj);
visitNode(obj.getTarget());
- visitNode(obj.getDefinition());
+ if (deep) {
+ visitNode(obj.getDefinition());
+ }
postVisitVisitor(obj);
}
@@ -690,7 +694,9 @@
public void visit(AlterView obj) {
preVisitVisitor(obj);
visitNode(obj.getTarget());
- visitNode(obj.getDefinition());
+ if (deep) {
+ visitNode(obj.getDefinition());
+ }
postVisitVisitor(obj);
}
Modified: trunk/engine/src/main/java/org/teiid/query/sql/visitor/CommandCollectorVisitor.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/sql/visitor/CommandCollectorVisitor.java 2011-05-02 17:02:28 UTC (rev 3134)
+++ trunk/engine/src/main/java/org/teiid/query/sql/visitor/CommandCollectorVisitor.java 2011-05-02 18:34:41 UTC (rev 3135)
@@ -27,9 +27,6 @@
import org.teiid.query.sql.LanguageObject;
import org.teiid.query.sql.LanguageVisitor;
-import org.teiid.query.sql.lang.AlterProcedure;
-import org.teiid.query.sql.lang.AlterTrigger;
-import org.teiid.query.sql.lang.AlterView;
import org.teiid.query.sql.lang.BatchedUpdateCommand;
import org.teiid.query.sql.lang.Command;
import org.teiid.query.sql.lang.ExistsCriteria;
@@ -119,23 +116,6 @@
this.commands.addAll(obj.getUpdateCommands());
}
- @Override
- public void visit(AlterProcedure alterProcedure) {
- this.commands.add(alterProcedure.getDefinition());
- }
-
- @Override
- public void visit(AlterTrigger alterTrigger) {
- if (alterTrigger.getDefinition() != null) {
- this.commands.add(alterTrigger.getDefinition());
- }
- }
-
- @Override
- public void visit(AlterView alterView) {
- this.commands.add(alterView.getDefinition());
- }
-
/**
* Helper to quickly get the commands from obj
* @param obj Language object
Modified: trunk/engine/src/main/java/org/teiid/query/validator/AbstractValidationVisitor.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/validator/AbstractValidationVisitor.java 2011-05-02 17:02:28 UTC (rev 3134)
+++ trunk/engine/src/main/java/org/teiid/query/validator/AbstractValidationVisitor.java 2011-05-02 18:34:41 UTC (rev 3135)
@@ -45,7 +45,7 @@
private LanguageObject exceptionObject;
// Validation error handling
- private ValidatorReport report;
+ protected ValidatorReport report;
private QueryMetadataInterface metadata;
Modified: trunk/engine/src/main/java/org/teiid/query/validator/ValidationVisitor.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/validator/ValidationVisitor.java 2011-05-02 17:02:28 UTC (rev 3134)
+++ trunk/engine/src/main/java/org/teiid/query/validator/ValidationVisitor.java 2011-05-02 18:34:41 UTC (rev 3135)
@@ -1434,6 +1434,7 @@
public void visit(AlterView obj) {
try {
QueryResolver.validateProjectedSymbols(obj.getTarget(), getMetadata(), obj.getDefinition());
+ Validator.validate(obj.getDefinition(), getMetadata(), this);
} catch (QueryValidatorException e) {
handleValidationError(e.getMessage(), obj.getDefinition());
} catch (TeiidComponentException e) {
@@ -1449,6 +1450,7 @@
handleValidationError(QueryPlugin.Util.getString("ValidationVisitor.not_a_procedure", gs), gs); //$NON-NLS-1$
return;
}
+ Validator.validate(obj.getDefinition(), getMetadata(), this);
StoredProcedureInfo info = getMetadata().getStoredProcedureInfoForProcedure(gs.getName());
for (SPParameter param : info.getParameters()) {
if (param.getParameterType() == SPParameter.RESULT_SET) {
@@ -1466,6 +1468,13 @@
@Override
public void visit(AlterTrigger obj) {
validateGroupSupportsUpdate(obj.getTarget());
+ try {
+ if (obj.getDefinition() != null) {
+ Validator.validate(obj.getDefinition(), getMetadata(), this);
+ }
+ } catch (TeiidComponentException e) {
+ handleException(e);
+ }
}
//TODO: it may be simpler to catch this in the parser
Modified: trunk/engine/src/main/java/org/teiid/query/validator/Validator.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/validator/Validator.java 2011-05-02 17:02:28 UTC (rev 3134)
+++ trunk/engine/src/main/java/org/teiid/query/validator/Validator.java 2011-05-02 18:34:41 UTC (rev 3135)
@@ -51,9 +51,9 @@
// Construct combined runtime / query metadata if necessary
if(object instanceof Command) {
// Recursively validate subcommands
- Iterator iter = CommandCollectorVisitor.getCommands((Command)object).iterator();
+ Iterator<Command> iter = CommandCollectorVisitor.getCommands((Command)object).iterator();
while(iter.hasNext()) {
- Command subCommand = (Command) iter.next();
+ Command subCommand = iter.next();
validate(subCommand, metadata, visitor);
}
}
Modified: trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestAuthorizationValidationVisitor.java
===================================================================
--- trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestAuthorizationValidationVisitor.java 2011-05-02 17:02:28 UTC (rev 3134)
+++ trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestAuthorizationValidationVisitor.java 2011-05-02 18:34:41 UTC (rev 3135)
@@ -51,6 +51,7 @@
import org.teiid.query.sql.symbol.ElementSymbol;
import org.teiid.query.unittest.FakeMetadataFacade;
import org.teiid.query.unittest.FakeMetadataFactory;
+import org.teiid.query.unittest.RealMetadataFactory;
import org.teiid.query.validator.Validator;
import org.teiid.query.validator.ValidatorFailure;
import org.teiid.query.validator.ValidatorReport;
@@ -76,6 +77,12 @@
case UPDATE:
p.setAllowUpdate(flag);
break;
+ case ALTER:
+ p.setAllowAlter(flag);
+ break;
+ case EXECUTE:
+ p.setAllowExecute(flag);
+ break;
}
return p;
}
@@ -149,6 +156,13 @@
svc.setAllowCreateTemporaryTables(false);
return svc;
}
+
+ private DataPolicyMetadata examplePolicyBQT() {
+ DataPolicyMetadata svc = new DataPolicyMetadata();
+ svc.setName("test"); //$NON-NLS-1$
+ svc.addPermission(addResource(DataPolicy.PermissionType.ALTER, "VQT.SmallA_2589")); //$NON-NLS-1$
+ return svc;
+ }
private void helpTest(DataPolicyMetadata policy, String sql, QueryMetadataInterface metadata, String[] expectedInaccesible, VDBMetaData vdb) throws QueryParserException, QueryResolverException, TeiidComponentException {
QueryParser parser = QueryParser.getQueryParser();
@@ -236,6 +250,10 @@
@Test public void testUpdateCriteriaInaccessibleForRead() throws Exception {
helpTest(exampleAuthSvc1(), "UPDATE pm1.g2 SET e2 = 5 WHERE e1 = 'x'", FakeMetadataFactory.example1Cached(), new String[] {"pm1.g2.e1"}, FakeMetadataFactory.example1VDB()); //$NON-NLS-1$ //$NON-NLS-2$
}
+
+ @Test public void testUpdateCriteriaInaccessibleForRead1() throws Exception {
+ helpTest(exampleAuthSvc1(), "UPDATE pm1.g2 SET e2 = cast(e1 as integer)", FakeMetadataFactory.example1Cached(), new String[] {"pm1.g2.e1"}, FakeMetadataFactory.example1VDB()); //$NON-NLS-1$ //$NON-NLS-2$
+ }
@Test public void testUpdateElementInaccessibleForUpdate() throws Exception {
helpTest(exampleAuthSvc1(), "UPDATE pm1.g1 SET e1 = 5 WHERE e1 = 'x'", FakeMetadataFactory.example1Cached(), new String[] {"pm1.g1.e1"}, FakeMetadataFactory.example1VDB()); //$NON-NLS-1$ //$NON-NLS-2$
@@ -293,6 +311,14 @@
helpTest(exampleAuthSvc1(), "select * from xmltest.doc1", FakeMetadataFactory.example1Cached(), new String[] {"xmltest.doc1"}, FakeMetadataFactory.example1VDB()); //$NON-NLS-1$ //$NON-NLS-2$
}
+ @Test public void testAlter() throws Exception {
+ helpTest(exampleAuthSvc1(), "alter view SmallA_2589 as select * from bqt1.smalla", RealMetadataFactory.exampleBQTCached(), new String[] {"SmallA_2589"}, FakeMetadataFactory.exampleBQTVDB()); //$NON-NLS-1$ //$NON-NLS-2$
+ helpTest(examplePolicyBQT(), "alter view SmallA_2589 as select * from bqt1.smalla", RealMetadataFactory.exampleBQTCached(), new String[] {}, FakeMetadataFactory.exampleBQTVDB()); //$NON-NLS-1$ //$NON-NLS-2$
+
+ helpTest(exampleAuthSvc1(), "alter trigger on SmallA_2589 INSTEAD OF UPDATE enabled", RealMetadataFactory.exampleBQTCached(), new String[] {"SmallA_2589"}, FakeMetadataFactory.exampleBQTVDB()); //$NON-NLS-1$ //$NON-NLS-2$
+ helpTest(examplePolicyBQT(), "alter trigger on SmallA_2589 INSTEAD OF UPDATE enabled", RealMetadataFactory.exampleBQTCached(), new String[] {}, FakeMetadataFactory.exampleBQTVDB()); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
private void helpTestLookupVisibility(boolean visible) throws QueryParserException, QueryValidatorException, TeiidComponentException {
VDBMetaData vdb = FakeMetadataFactory.example1VDB();
vdb.getModel("pm1").setVisible(visible); //$NON-NLS-1$
Modified: trunk/engine/src/test/java/org/teiid/query/validator/TestAlterValidation.java
===================================================================
--- trunk/engine/src/test/java/org/teiid/query/validator/TestAlterValidation.java 2011-05-02 17:02:28 UTC (rev 3134)
+++ trunk/engine/src/test/java/org/teiid/query/validator/TestAlterValidation.java 2011-05-02 18:34:41 UTC (rev 3135)
@@ -31,10 +31,15 @@
@Test public void testValidateAlterView() {
TestValidator.helpValidate("alter view SmallA_2589 as select 2", new String[] {"SELECT 2"}, RealMetadataFactory.exampleBQTCached());
TestValidator.helpValidate("alter view Defect15355 as select 'a', 1", new String[] {"SELECT 'a', 1"}, RealMetadataFactory.exampleBQTCached());
+ TestValidator.helpValidate("alter view Defect15355 as select 'a', cast(1 as biginteger)", new String[] {}, RealMetadataFactory.exampleBQTCached());
TestValidator.helpValidate("alter view SmallA_2589 as select * from bqt1.smalla", new String[] {}, RealMetadataFactory.exampleBQTCached());
}
+ @Test public void testValidateAlterViewDeep() {
+ TestValidator.helpValidate("alter view Defect15355 as select xpathvalue('a', ':'), cast(1 as biginteger)", new String[] {"xpathvalue('a', ':')"}, RealMetadataFactory.exampleBQTCached());
+ }
+
@Test public void testValidateAlterTrigger() {
TestValidator.helpValidate("alter trigger on SmallA_2589 instead of insert as for each row select 1;", new String[] {"SmallA_2589"}, RealMetadataFactory.exampleBQTCached());
}
14 years, 7 months
teiid SVN: r3134 - in trunk: api/src/main/java/org/teiid/events and 36 other directories.
by teiid-commits@lists.jboss.org
Author: shawkins
Date: 2011-05-02 13:02:28 -0400 (Mon, 02 May 2011)
New Revision: 3134
Added:
trunk/documentation/reference/src/main/docbook/en-US/content/ddl_support.xml
trunk/engine/src/main/java/org/teiid/query/optimizer/DdlPlanner.java
trunk/engine/src/main/java/org/teiid/query/processor/DdlPlan.java
Modified:
trunk/adminshell/src/main/java/org/teiid/script/io/ResultSetReader.java
trunk/api/src/main/java/org/teiid/events/EventDistributor.java
trunk/api/src/main/java/org/teiid/language/SQLConstants.java
trunk/api/src/main/java/org/teiid/metadata/AbstractMetadataRecord.java
trunk/api/src/main/java/org/teiid/metadata/MetadataRepository.java
trunk/api/src/main/java/org/teiid/metadata/Table.java
trunk/build/kits/jboss-container/deploy/teiid/teiid-jboss-beans.xml
trunk/build/kits/jboss-container/teiid-releasenotes.html
trunk/client/src/test/java/org/teiid/jdbc/util/ResultSetUtil.java
trunk/console/src/main/resources/META-INF/rhq-plugin.xml
trunk/documentation/admin-guide/src/main/docbook/en-US/content/performance.xml
trunk/documentation/docbook/custom.dtd
trunk/documentation/reference/src/main/docbook/en-US/Reference.xml
trunk/documentation/reference/src/main/docbook/en-US/content/procedures.xml
trunk/documentation/reference/src/main/docbook/en-US/content/sql_support.xml
trunk/documentation/reference/src/main/docbook/en-US/content/system_schema.xml
trunk/engine/src/main/java/org/teiid/cache/CacheConfiguration.java
trunk/engine/src/main/java/org/teiid/dqp/internal/process/DataTierManagerImpl.java
trunk/engine/src/main/java/org/teiid/dqp/internal/process/Request.java
trunk/engine/src/main/java/org/teiid/query/metadata/TransformationMetadata.java
trunk/engine/src/main/java/org/teiid/query/optimizer/QueryOptimizer.java
trunk/engine/src/main/java/org/teiid/query/optimizer/relational/RelationalPlanner.java
trunk/engine/src/main/java/org/teiid/query/processor/ProcessorDataManager.java
trunk/engine/src/main/java/org/teiid/query/resolver/QueryResolver.java
trunk/engine/src/main/java/org/teiid/query/resolver/command/AlterResolver.java
trunk/engine/src/main/java/org/teiid/query/sql/lang/Alter.java
trunk/engine/src/main/java/org/teiid/query/sql/lang/AlterTrigger.java
trunk/engine/src/main/java/org/teiid/query/sql/visitor/CommandCollectorVisitor.java
trunk/engine/src/main/java/org/teiid/query/sql/visitor/SQLStringVisitor.java
trunk/engine/src/main/java/org/teiid/query/tempdata/TempTableDataManager.java
trunk/engine/src/main/java/org/teiid/query/tempdata/TempTableStore.java
trunk/engine/src/main/javacc/org/teiid/query/parser/SQLParser.jj
trunk/engine/src/main/resources/org/teiid/query/i18n.properties
trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestDQPCore.java
trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestRequest.java
trunk/engine/src/test/java/org/teiid/query/optimizer/proc/TestProcedurePlanner.java
trunk/engine/src/test/java/org/teiid/query/parser/TestParseAlter.java
trunk/engine/src/test/java/org/teiid/query/processor/FakeDataManager.java
trunk/engine/src/test/java/org/teiid/query/processor/HardcodedDataManager.java
trunk/engine/src/test/java/org/teiid/query/processor/relational/TestBatchedUpdateNode.java
trunk/engine/src/test/java/org/teiid/query/processor/relational/TestProjectIntoNode.java
trunk/jboss-integration/src/main/java/org/teiid/jboss/deployers/RuntimeEngineDeployer.java
trunk/metadata/src/main/resources/System.vdb
trunk/runtime/src/main/java/org/teiid/deployers/VDBRepository.java
trunk/test-integration/common/src/test/java/org/teiid/systemmodel/TestMetadataUpdates.java
trunk/test-integration/common/src/test/java/org/teiid/systemmodel/TestSystemVirtualModel.java
trunk/test-integration/common/src/test/resources/TestMMDatabaseMetaData/testGetColumns.expected
trunk/test-integration/common/src/test/resources/TestMMDatabaseMetaData/testGetProcedureColumns.expected
trunk/test-integration/common/src/test/resources/TestMMDatabaseMetaData/testGetProcedures.expected
trunk/test-integration/common/src/test/resources/TestMMDatabaseMetaData/testGetProceduresWithEscape.expected
trunk/test-integration/common/src/test/resources/TestODBCSchema/test_PG_ATTRIBUTE.expected
trunk/test-integration/common/src/test/resources/TestPartsDatabaseMetadata/testColumns.expected
trunk/test-integration/common/src/test/resources/TestPartsDatabaseMetadata/testProcedureColumns.expected
trunk/test-integration/common/src/test/resources/TestPartsDatabaseMetadata/testProcedures.expected
trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testColumns.expected
trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testProcedureParams.expected
trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testProcedures.expected
Log:
TEIID-1326 adding alter commands for runtime update of metadata
Modified: trunk/adminshell/src/main/java/org/teiid/script/io/ResultSetReader.java
===================================================================
--- trunk/adminshell/src/main/java/org/teiid/script/io/ResultSetReader.java 2011-04-29 18:34:21 UTC (rev 3133)
+++ trunk/adminshell/src/main/java/org/teiid/script/io/ResultSetReader.java 2011-05-02 17:02:28 UTC (rev 3134)
@@ -111,7 +111,7 @@
for (int col = 1; col <= columnCount; col++) {
Object anObj = source.getObject(col);
if (columnTypes[col-1] == Types.CLOB) {
- sb.append(anObj != null ? anObj : "null"); //$NON-NLS-1$
+ sb.append(anObj != null ? source.getString(col) : "null"); //$NON-NLS-1$
}
else if (columnTypes[col-1] == Types.BLOB) {
sb.append(anObj != null ? "BLOB" : "null"); //$NON-NLS-1$ //$NON-NLS-2$
Modified: trunk/api/src/main/java/org/teiid/events/EventDistributor.java
===================================================================
--- trunk/api/src/main/java/org/teiid/events/EventDistributor.java 2011-04-29 18:34:21 UTC (rev 3133)
+++ trunk/api/src/main/java/org/teiid/events/EventDistributor.java 2011-05-02 17:02:28 UTC (rev 3134)
@@ -25,6 +25,7 @@
import java.util.List;
import org.teiid.metadata.ColumnStats;
+import org.teiid.metadata.Table;
import org.teiid.metadata.TableStats;
/**
@@ -47,15 +48,6 @@
void updateMatViewRow(String vdbName, int vdbVersion, String schema, String viewName, List<?> tuple, boolean delete);
/**
- * Notify that the metadata has been changed for the given table or view.
- * @param vdbName
- * @param vdbVersion
- * @param schema
- * @param objectNames
- */
- void schemaModification(String vdbName, int vdbVersion, String schema, String... objectNames);
-
- /**
* Notify that the table data has changed.
* @param vdbName
* @param vdbVersion
@@ -64,10 +56,69 @@
*/
void dataModification(String vdbName, int vdbVersion, String schema, String... tableNames);
+ /**
+ * Set the column stats
+ * @param vdbName
+ * @param vdbVersion
+ * @param schemaName
+ * @param tableName
+ * @param columnName
+ * @param stats
+ */
void setColumnStats(String vdbName, int vdbVersion, String schemaName,
String tableName, String columnName, ColumnStats stats);
+ /**
+ * Set the table stats
+ * @param vdbName
+ * @param vdbVersion
+ * @param schemaName
+ * @param tableName
+ * @param stats
+ */
void setTableStats(String vdbName, int vdbVersion, String schemaName,
String tableName, TableStats stats);
+ /**
+ * Set the given property value
+ * @param vdbName
+ * @param vdbVersion
+ * @param uuid
+ * @param name
+ * @param value
+ */
+ void setProperty(String vdbName, int vdbVersion, String uuid, String name, String value);
+
+ /**
+ * Set the instead of trigger definition. Only one of either the triggerDefinition or enabled should be specified.
+ * @param vdbName
+ * @param vdbVersion
+ * @param schema
+ * @param viewName
+ * @param triggerEvent
+ * @param triggerDefinition
+ * @param enabled
+ */
+ void setInsteadOfTriggerDefinition(String vdbName, int vdbVersion, String schema, String viewName, Table.TriggerEvent triggerEvent, String triggerDefinition, Boolean enabled);
+
+ /**
+ * Set the procedure definition
+ * @param vdbName
+ * @param vdbVersion
+ * @param schema
+ * @param procName
+ * @param definition
+ */
+ void setProcedureDefinition(String vdbName, int vdbVersion, String schema, String procName, String definition);
+
+ /**
+ * Set the view definition
+ * @param vdbName
+ * @param vdbVersion
+ * @param schema
+ * @param viewName
+ * @param definition
+ */
+ void setViewDefinition(String vdbName, int vdbVersion, String schema, String viewName, String definition);
+
}
Modified: trunk/api/src/main/java/org/teiid/language/SQLConstants.java
===================================================================
--- trunk/api/src/main/java/org/teiid/language/SQLConstants.java 2011-04-29 18:34:21 UTC (rev 3133)
+++ trunk/api/src/main/java/org/teiid/language/SQLConstants.java 2011-05-02 17:02:28 UTC (rev 3134)
@@ -109,6 +109,8 @@
public static final String VIEW = "VIEW"; //$NON-NLS-1$
public static final String INSTEAD = "INSTEAD"; //$NON-NLS-1$
+ public static final String ENABLED = "ENABLED"; //$NON-NLS-1$
+ public static final String DISABLED = "DISABLED"; //$NON-NLS-1$
}
public interface Reserved {
Modified: trunk/api/src/main/java/org/teiid/metadata/AbstractMetadataRecord.java
===================================================================
--- trunk/api/src/main/java/org/teiid/metadata/AbstractMetadataRecord.java 2011-04-29 18:34:21 UTC (rev 3133)
+++ trunk/api/src/main/java/org/teiid/metadata/AbstractMetadataRecord.java 2011-05-02 17:02:28 UTC (rev 3134)
@@ -129,13 +129,19 @@
/**
* The preferred setter for extension properties.
* @param key
- * @param value
+ * @param value, if null the property will be removed
*/
- public void setProperty(String key, String value) {
+ public String setProperty(String key, String value) {
+ if (value == null) {
+ if (this.properties == null) {
+ return null;
+ }
+ return this.properties.remove(key);
+ }
if (this.properties == null) {
this.properties = new LinkedHashMap<String, String>();
}
- this.properties.put(DataTypeManager.getCanonicalString(key), DataTypeManager.getCanonicalString(value));
+ return this.properties.put(DataTypeManager.getCanonicalString(key), DataTypeManager.getCanonicalString(value));
}
public void setProperties(LinkedHashMap<String, String> properties) {
Modified: trunk/api/src/main/java/org/teiid/metadata/MetadataRepository.java
===================================================================
--- trunk/api/src/main/java/org/teiid/metadata/MetadataRepository.java 2011-04-29 18:34:21 UTC (rev 3133)
+++ trunk/api/src/main/java/org/teiid/metadata/MetadataRepository.java 2011-05-02 17:02:28 UTC (rev 3134)
@@ -21,6 +21,7 @@
*/
package org.teiid.metadata;
+import java.util.LinkedHashMap;
/**
* A hook for externalizing view, procedure, and other metadata.
@@ -46,7 +47,7 @@
* Returns an updated trigger definition (FOR EACH ROW ...) or null if the current view definition should be used
* should be used.
*/
- String getInsteadOfTriggerDefinition(String vdbName, int vdbVersion, Table table, Table.TriggerOperation triggerOperation);
+ String getInsteadOfTriggerDefinition(String vdbName, int vdbVersion, Table table, Table.TriggerEvent triggerOperation);
/**
*
@@ -56,9 +57,29 @@
* @param triggerOperation
* @param triggerDefinition
*/
- void setInsteadOfTriggerDefinition(String vdbName, int vdbVersion, Table table, Table.TriggerOperation triggerOperation, String triggerDefinition);
+ void setInsteadOfTriggerDefinition(String vdbName, int vdbVersion, Table table, Table.TriggerEvent triggerOperation, String triggerDefinition);
+
+ /**
+ * Returns whether the trigger is enabled
+ * @param vdbName
+ * @param vdbVersion
+ * @param table
+ * @param triggerOperation
+ * @return
+ */
+ boolean isInsteadOfTriggerEnabled(String vdbName, int vdbVersion, Table table, Table.TriggerEvent triggerOperation);
/**
+ * Set the given trigger enabled.
+ * @param vdbName
+ * @param vdbVersion
+ * @param table
+ * @param triggerOperation
+ * @param enabled
+ */
+ void setInsteadOfTriggerEnabled(String vdbName, int vdbVersion, Table table, Table.TriggerEvent triggerOperation, boolean enabled);
+
+ /**
* Returns an updated procedure definition (CREATE PROCEDURE ...) or null if the current procedure definition should be used
* should be used.
*/
@@ -71,7 +92,7 @@
* @param table
* @param procedureDefinition
*/
- void setProcedureDefinition(String vdbName, int vdbVersion, Procedure table, String procedureDefinition);
+ void setProcedureDefinition(String vdbName, int vdbVersion, Procedure procedure, String procedureDefinition);
/**
* Get updated {@link TableStats} for the given table
@@ -108,4 +129,23 @@
* @param columnStats
*/
void setColumnStats(String vdbName, int vdbVersion, Column column, ColumnStats columnStats);
+
+ /**
+ * Get the extension metadata for a given record.
+ * @param vdbName
+ * @param vdbVersion
+ * @param record
+ * @return
+ */
+ LinkedHashMap<String, String> getProperties(String vdbName, int vdbVersion, AbstractMetadataRecord record);
+
+ /**
+ * Set an extension metadata property for a given record.
+ * @param vdbName
+ * @param vdbVersion
+ * @param record
+ * @param name
+ * @param value
+ */
+ void setProperty(String vdbName, int vdbVersion, AbstractMetadataRecord record, String name, String value);
}
Modified: trunk/api/src/main/java/org/teiid/metadata/Table.java
===================================================================
--- trunk/api/src/main/java/org/teiid/metadata/Table.java 2011-04-29 18:34:21 UTC (rev 3133)
+++ trunk/api/src/main/java/org/teiid/metadata/Table.java 2011-05-02 17:02:28 UTC (rev 3134)
@@ -41,7 +41,7 @@
MaterializedTable
}
- public static enum TriggerOperation {
+ public static enum TriggerEvent {
INSERT,
UPDATE,
DELETE
@@ -64,6 +64,9 @@
private String insertPlan;
private String updatePlan;
private String deletePlan;
+ private boolean insertPlanEnabled;
+ private boolean updatePlanEnabled;
+ private boolean deletePlanEnabled;
private Table materializedStageTable;
private Table materializedTable;
@@ -179,14 +182,17 @@
public void setInsertPlan(String insertPlan) {
this.insertPlan = DataTypeManager.getCanonicalString(insertPlan);
+ this.insertPlanEnabled = true;
}
public void setUpdatePlan(String updatePlan) {
this.updatePlan = DataTypeManager.getCanonicalString(updatePlan);
+ this.updatePlanEnabled = true;
}
public void setDeletePlan(String deletePlan) {
this.deletePlan = DataTypeManager.getCanonicalString(deletePlan);
+ this.deletePlanEnabled = true;
}
public List<ForeignKey> getForeignKeys() {
@@ -301,4 +307,28 @@
}
}
+ public boolean isDeletePlanEnabled() {
+ return deletePlanEnabled;
+ }
+
+ public boolean isInsertPlanEnabled() {
+ return insertPlanEnabled;
+ }
+
+ public boolean isUpdatePlanEnabled() {
+ return updatePlanEnabled;
+ }
+
+ public void setInsertPlanEnabled(boolean insertPlanEnabled) {
+ this.insertPlanEnabled = insertPlanEnabled;
+ }
+
+ public void setDeletePlanEnabled(boolean deletePlanEnabled) {
+ this.deletePlanEnabled = deletePlanEnabled;
+ }
+
+ public void setUpdatePlanEnabled(boolean updatePlanEnabled) {
+ this.updatePlanEnabled = updatePlanEnabled;
+ }
+
}
\ No newline at end of file
Modified: trunk/build/kits/jboss-container/deploy/teiid/teiid-jboss-beans.xml
===================================================================
--- trunk/build/kits/jboss-container/deploy/teiid/teiid-jboss-beans.xml 2011-04-29 18:34:21 UTC (rev 3133)
+++ trunk/build/kits/jboss-container/deploy/teiid/teiid-jboss-beans.xml 2011-05-02 17:02:28 UTC (rev 3134)
@@ -79,9 +79,9 @@
<property name="maxEntries">512</property>
<!-- Max age in seconds (default 28800 - 8 hours) -->
<property name="maxAgeInSeconds">28800</property>
- <!-- Max staleness in seconds. Modifications are based upon costing updates
- -1 indicates no max. (default 300 - 5 minutes) -->
- <property name="maxStaleness">300</property>
+ <!-- Max staleness in seconds. Modifications are based upon costing/metadata updates
+ -1 indicates no max. (default 0) -->
+ <property name="maxStaleness">0</property>
</bean>
<bean name="RuntimeEngineDeployer" class="org.teiid.jboss.deployers.RuntimeEngineDeployer">
@@ -127,12 +127,14 @@
<property name="queryThresholdInSecs">600</property>
<!-- Maximum rows allowed from a source query. -1 indicates no limit. (default -1)-->
<property name="maxSourceRows">-1</property>
- <!-- Indicates if an exception should be thrown if the specified value for Maximum Source Rows is exceeded; only up to the maximum rows will be consumed. -->
+ <!-- Indicates if an exception should be thrown if the specified value for Maximum Source Rows is exceeded; only up to the maximum rows will be consumed. (default true) -->
<property name="exceptionOnMaxSourceRows">true</property>
<!-- Maximum size of lob allowed through ODBC connection in bytes (default 5MB) -->
<property name="maxODBCLobSizeAllowed">5242880</property>
<!-- The JNDI name of the Teiid Event Distributor -->
<property name="eventDistributorName">teiid/event-distributor</property>
+ <!-- Set to true for the engine to detect local change events. Should be disabled if using external change data capture tools. (default true) -->
+ <property name="detectingChangeEvents">true</property>
</bean>
<!-- JDBC Socket connection properties (SSL see below) -->
Modified: trunk/build/kits/jboss-container/teiid-releasenotes.html
===================================================================
--- trunk/build/kits/jboss-container/teiid-releasenotes.html 2011-04-29 18:34:21 UTC (rev 3133)
+++ trunk/build/kits/jboss-container/teiid-releasenotes.html 2011-05-02 17:02:28 UTC (rev 3134)
@@ -53,6 +53,9 @@
<LI><B>Enhanced Sort Join</B> - the partitioned merge join was replaced with an enhanced sort join. The enhanced sort join will use the actual row counts from each side of the relation to perform a index based join if one side is small enough, a partial sort of the larger side and a repeated merge join if the tuples are unbalanced but one side is not small enough to form an index, or a standard sort merge join if the tuples are balanced.
<LI><B>JDK1.5 JDBC Client JAR</B> - A retro-translated Teiid client JDBC jar now available to use with JDK 1.5 VM. Note only the JDBC API is supported, not the Admin API, or retrieving query plans as XML.
<LI><B>Security Improvements</B> - UDF and pushdown functions can now be protected with data roles. Also the CommandContext can provide the Subject for custom security checks in UDFs.
+ <LI><B>Cache Invalidation</B> - Prepared plan and result set caches can have a maxStaleness value, which will invalidate entries based upon metadata and data changes respectively. See the Admin Guide for more.
+ <LI><B>Runtime-updates of Metadata</B> - Alter statements have been added to change view/procedure/INSTEAD OF trigger (update procedure) definitions have been added. A create statement was also added to add INSTEAD OF trigger (update procedures) to views.
+ System procedures were added to set extension metadata and stat values. By default all effects of metadata updates happen only on running vdbs across the cluster. To make the changes persistent see the Developers Guide Runtime Updates section.
</UL>
<h2><a name="Compatibility">Compatibility Issues</a></h2>
@@ -63,6 +66,7 @@
<h4>from 7.3</h4>
<ul>
+ <li>SYS.PROPERTIES has a new column, ClobValue, to get values exceeding the max string length
<li>SYS.COLUMNS has two new columns to get statistical information: DistinctCount and NullCount
<li>ARRAY_AGG is now a reserved word</li>
<li>The use of an IN procedure parameter with the name "source_name" in a multi-source model, will now be treated the parameter that controls which source
@@ -123,6 +127,7 @@
<h4>from 7.3</h4>
<ul>
+ <LI>The prepared plan cache is now configured via the PreparedPlanCacheConfig bean, rather than through properties on the RuntimeEngineDeployer
<LI>SocketConfiguration.maxSocketThreads will interpret a setting of 0 to mean use the system default of max available processors. Both the ODBC and JDBC transports now default to the 0 setting.
<LI>maxReserveBatchColumns and maxProcessingBatchesColumns will interpret a setting of -1 to mean auto-calculate acceptable values given the max heap and other information. See the admin guide for more.
<LI>The default for org.teiid.useValueCache has changed to false, since typical installations will not greatly benefit from the additional lookup cost.
Modified: trunk/client/src/test/java/org/teiid/jdbc/util/ResultSetUtil.java
===================================================================
--- trunk/client/src/test/java/org/teiid/jdbc/util/ResultSetUtil.java 2011-04-29 18:34:21 UTC (rev 3133)
+++ trunk/client/src/test/java/org/teiid/jdbc/util/ResultSetUtil.java 2011-05-02 17:02:28 UTC (rev 3134)
@@ -46,6 +46,7 @@
/**
* @since 4.2
*/
+@SuppressWarnings("nls")
public class ResultSetUtil {
public static final int DEFAULT_MAX_COL_WIDTH = 29;
Modified: trunk/console/src/main/resources/META-INF/rhq-plugin.xml
===================================================================
--- trunk/console/src/main/resources/META-INF/rhq-plugin.xml 2011-04-29 18:34:21 UTC (rev 3133)
+++ trunk/console/src/main/resources/META-INF/rhq-plugin.xml 2011-05-02 17:02:28 UTC (rev 3134)
@@ -369,7 +369,7 @@
required="false" readOnly="false" />
<c:simple-property name="PreparedPlanCacheConfig.maxStaleness"
displayName="Max Entry Staleness"
- description="The maximum staleness of a prepared plan cache entry in seconds based upon costing modifications. -1 indicates no max. (default 300)"
+ description="The maximum staleness of a prepared plan cache entry in seconds based upon metadata modifications. -1 indicates no max. (default 0)"
required="false" readOnly="false" />
</c:group>
Modified: trunk/documentation/admin-guide/src/main/docbook/en-US/content/performance.xml
===================================================================
--- trunk/documentation/admin-guide/src/main/docbook/en-US/content/performance.xml 2011-04-29 18:34:21 UTC (rev 3133)
+++ trunk/documentation/admin-guide/src/main/docbook/en-US/content/performance.xml 2011-05-02 17:02:28 UTC (rev 3134)
@@ -96,10 +96,15 @@
Even though it is possible to disable or otherwise severely constrain these caches, this would probably never be done in practice as it would lead to poor performance.
</para><para>Cache statistics can be obtained through the Admin Console or Adminshell. The statistics can be used to help tune cache parameters and ensure a hit ratio.</para>
<para>Plans are currently fully held in memory and may have a significant memory footprint. When making extensive use of prepared statements and/or virtual procedures,
- the size of the plan cache may be increased proportionally to number of GB intended for use by Teiid.
+ the size of the plan cache may be increased proportionally to number of gigabytes intended for use by Teiid.
</para><para>While the result cache parameters control the cache result entries (max number, eviction, etc.), the result batches themselves are accessed through the <link linkend="memory_management">BufferManager</link>.
If the size of the result cache is increased, you may need to tune the BufferManager configuration to ensure there is enough buffer space.
</para>
+ <para>Result set and prepared plan caches have their entries invalidated by data and metadata events.
+ By default these events are captured by running commands through Teiid. See the Developers Guide for further customization.
+ Teiid stores compiled forms of update plans or trigger actions with the prepared plan, so it is recommended to leave the maxStaleness of the prepared plan cache set to 0 so that metadata changes, for example disabling a trigger, may take effect immediately.
+ The default staleness for result set caching is 60 seconds to improve efficiency with rapidly changing sources. Consider decreasing this value to make the result set cache more consistent with the underlying data. Even with a setting of 0 full transactional consistency is not guaranteed.
+ </para>
</section>
<section id="socket_transport">
<title>Socket Transports</title>
Modified: trunk/documentation/docbook/custom.dtd
===================================================================
--- trunk/documentation/docbook/custom.dtd 2011-04-29 18:34:21 UTC (rev 3133)
+++ trunk/documentation/docbook/custom.dtd 2011-05-02 17:02:28 UTC (rev 3134)
@@ -6,3 +6,4 @@
<!ENTITY javaDocUrl "http://docs.jboss.org/teiid/&versionNumber;/apidocs">
<!ENTITY desDocUrl "http://www.jboss.org/teiiddesigner/docs.html">
<!ENTITY jboss-beans "<code><jboss-install>/server/<profile>/deploy/teiid/teiid-jboss-beans.xml</code>">
+<!ENTITY metadata-update-note "<note><para>A <code>MetadataRepository</code> must be configured to make a non-temporary metadata update persistent. See the Developers Guide Runtime Updates section for more.</para></note>">
Modified: trunk/documentation/reference/src/main/docbook/en-US/Reference.xml
===================================================================
--- trunk/documentation/reference/src/main/docbook/en-US/Reference.xml 2011-04-29 18:34:21 UTC (rev 3133)
+++ trunk/documentation/reference/src/main/docbook/en-US/Reference.xml 2011-05-02 17:02:28 UTC (rev 3134)
@@ -48,6 +48,7 @@
<toc />
<xi:include href="content/preface.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="content/sql_support.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="content/ddl_support.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="content/xml_queries.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="content/datatypes.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="content/scalar_functions.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
Added: trunk/documentation/reference/src/main/docbook/en-US/content/ddl_support.xml
===================================================================
--- trunk/documentation/reference/src/main/docbook/en-US/content/ddl_support.xml (rev 0)
+++ trunk/documentation/reference/src/main/docbook/en-US/content/ddl_support.xml 2011-05-02 17:02:28 UTC (rev 3134)
@@ -0,0 +1,162 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % CustomDTD SYSTEM "../../../../../../docbook/custom.dtd">
+%CustomDTD;
+]>
+<chapter id="ddl_support">
+ <title>DDL Support</title>
+ <para>Teiid supports a subset of DDL to, create/drop temporary tables and to manipulate procedure and view definitions at runtime.
+ It is not currently possible to arbitrarily drop/create non-temporary metadata entries.</para>
+ &metadata-update-note;
+ <section id="temp_tables">
+ <title>Temp Tables</title>
+ <para>Teiid supports creating temporary,or "temp", tables. Temp tables are dynamically created, but are treated as any other physical table.
+ </para>
+ <para>
+ Temp tables can be defined implicitly by referencing them in a
+ INSERT statement or explicitly with a CREATE TABLE
+ statement. Implicitly created temp tables must have a name that
+ starts with '#'.
+ </para>
+ <itemizedlist>
+ <para>Creation syntax:
+ </para>
+ <listitem>
+ <para>Explicit: CREATE LOCAL TEMPORARY TABLE x (column type [NOT NULL], ... [PRIMARY KEY (column, ...)])
+ </para>
+ </listitem>
+ <listitem>
+ <para>Implicit: INSERT INTO #x (column, ...) VALUES (value, ...)
+ </para>
+ <para>If #x doen't exist, it will be defined using the given column names and types from the value expressions.
+ </para>
+ </listitem>
+ <listitem>
+ <para>Implicit: INSERT INTO #x [(column, ...)] select c1, c2 from t
+ </para>
+ <para>If #x doesn't exist, it will be defined using the target column names (in not supplied, the column names will match the derived column names from the query), and the types from the query derived columns.
+ </para>
+ </listitem>
+ <listitem>
+ <para>Use the SERIAL data type to specify a NOT NULL and auto-incrementing INTEGER column. The starting value of a SERIAL column is 1.</para>
+ </listitem>
+ </itemizedlist>
+ <itemizedlist>
+ <para>Drop syntax:
+ </para>
+ <listitem>
+ <para>DROP TABLE x
+ </para>
+ </listitem>
+ </itemizedlist>
+ <itemizedlist>
+ <para>Primary Key Support</para>
+ <listitem>
+ <para>All key columns must be comparable.</para>
+ </listitem>
+ <listitem>
+ <para>Use of a primary key creates a clustered index that supports search improvements for comparison, in, like, and order by.</para>
+ </listitem>
+ <listitem>
+ <para>Null is an allowable primary key value, but there must be only 1 row that has an all null key.</para>
+ </listitem>
+ </itemizedlist>
+ <itemizedlist>
+ <para>Limitations:
+ </para>
+ <listitem>
+ <para>With the CREATE TABLE syntax only basic table definition (column name and type information) and an optional primary key are supported.
+ </para>
+ </listitem>
+ <listitem>
+ <para>The "ON COMMIT" clause is not supported in the CREATE TABLE statement.
+ </para>
+ </listitem>
+ <listitem>
+ <para>"drop behavior" option is not supported in the drop statement.
+ </para>
+ </listitem>
+ <listitem>
+ <para>Only local temporary tables are supported. This implies that the scope of temp table will be either to the sesssion or the block of a virtual procedure that creates it.
+ </para>
+ </listitem>
+ <listitem>
+ <para>Session level temp tables are not fail-over safe.
+ </para>
+ </listitem>
+ <listitem>
+ <para>Temp tables are non-transactional.
+ </para>
+ </listitem>
+ <listitem>
+ <para>Lob values (xml, clob, blob) are tracked by reference rather than by value in a temporary table.
+ Lob values from external sources that are inserted in a temporary table may become unreadable when the associated statement or connection is closed.
+ </para>
+ </listitem>
+ </itemizedlist>
+ <para>The following example is a series of statements that loads a temporary table with data from 2 sources, and with a manually inserted record, and then uses that temp table in a subsequent query.</para>
+ <programlisting>...
+CREATE LOCAL TEMPORARY TABLE TEMP (a integer, b integer, c integer);
+SELECT * INTO temp FROM Src1; SELECT * INTO temp FROM Src2;
+INSERT INTO temp VALUES (1,2,3);
+SELECT a,b,c FROM Src3, temp WHERE Src3.a = temp.b;
+...</programlisting>
+ <para>
+ See <link linkend="virtual_procedures">virtual procedures</link> for more on temp table usage.
+ </para>
+ </section>
+ <section>
+ <title>Alter View</title>
+ <para>
+ Usage:
+ <synopsis label="Usage">ALTER VIEW name AS queryExpression</synopsis>
+ </para>
+ <itemizedlist>
+ <para>Syntax Rules:</para>
+ <listitem><para>The alter query expression may be prefixed with a cache hint for materialized view definitions. The hint will take effect the next time the materialized view table is loaded.</para></listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Alter Procedure</title>
+ <para>
+ Usage:
+ <synopsis label="Usage">ALTER PROCEDURE name AS block</synopsis>
+ </para>
+ <itemizedlist>
+ <para>Syntax Rules:</para>
+ <listitem><para>The alter block should not include 'CREATE VIRTUAL PROCEDURE'</para></listitem>
+ <listitem><para>The alter block may be prefixed with a cache hint for cached procedures.</para></listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Create Trigger</title>
+ <para>
+ Usage:
+ <synopsis label="Usage">CREATE TRIGGER ON name INSTEAD OF INSERT|UPDATE|DELETE AS FOR EACH ROW block</synopsis>
+ </para>
+ <itemizedlist>
+ <para>Syntax Rules:</para>
+ <listitem><para>The target, name, must be an updatable view.</para></listitem>
+ <listitem><para>An INSTEAD OF TRIGGER must not yet exist for the given event.</para></listitem>
+ <listitem><para>Triggers are not yet true schema objects. They are scoped only to their view and have no name.</para></listitem>
+ </itemizedlist>
+ <itemizedlist>
+ <para>Limitations:</para>
+ <listitem><para>There is no corresponding drop operation. See <xref linkend="alter_trigger"/> for enabling/disabling an existing trigger.</para></listitem>
+ </itemizedlist>
+ </section>
+ <section id="alter_trigger">
+ <title>Alter Trigger</title>
+ <para>
+ Usage:
+ <synopsis label="Usage">ALTER TRIGGER ON name INSTEAD OF INSERT|UPDATE|DELETE (AS FOR EACH ROW block) | (ENABLED|DISABLED)</synopsis>
+ </para>
+ <itemizedlist>
+ <para>Syntax Rules:</para>
+ <listitem><para>The target, name, must be an updatable view.</para></listitem>
+ <listitem><para>Triggers are not yet true schema objects. They are scoped only to their view and have no name.</para></listitem>
+ <listitem><para>An <xref linkend="update_procedures"/> must already exist for the given trigger event.</para></listitem>
+ </itemizedlist>
+ <note><para>If the default inherent update is choosen in Teiid Designer, any SQL associated with update (shown in a greyed out text box) is not part of the VDB and cannot be enabled with an alter trigger statement.</para></note>
+ </section>
+</chapter>
\ No newline at end of file
Property changes on: trunk/documentation/reference/src/main/docbook/en-US/content/ddl_support.xml
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified: trunk/documentation/reference/src/main/docbook/en-US/content/procedures.xml
===================================================================
--- trunk/documentation/reference/src/main/docbook/en-US/content/procedures.xml 2011-04-29 18:34:21 UTC (rev 3133)
+++ trunk/documentation/reference/src/main/docbook/en-US/content/procedures.xml 2011-05-02 17:02:28 UTC (rev 3134)
@@ -458,6 +458,19 @@
<para>A FOR EACH ROW procedure will evaluate its block for each row of the view affected by the update statement.
For UPDATE and DELETE statements this will be every row that passes the WHERE condition. For INSERT statements there will be 1 new row for each set of values from the VALUES or query expression.
The rows updated is reported as this number regardless of the affect of the underlying procedure logic.</para>
+ <para>Teiid FOR EACH ROW update procedures function like INSTEAD OF triggers in traditional databases.
+ There may only be 1 FOR EACH ROW procedure for each INSERT, UPDATE, or DELETE operation against a view. FOR EACH ROW update procedures can also be used to emulate BEFORE/AFTER each row triggers while still retaining the ability to perform an inherent update.
+ This BEFORE/AFTER trigger behavior with an inherent update can be achieved by creating an additional updatable view over the target view with update proceudres of the form:
+ <programlisting lang="sql">FOR EACH ROW
+ BEGIN
+ --before row logic
+
+ --default insert/update/delete against the target view
+ INSERT INTO VW (c1, c2, c3) VALUES (NEW.c1, NEW.c2, NEW.c3);
+
+ --after row logic
+ END</programlisting>
+ </para>
<section>
<title>Definition</title>
<para>
Modified: trunk/documentation/reference/src/main/docbook/en-US/content/sql_support.xml
===================================================================
--- trunk/documentation/reference/src/main/docbook/en-US/content/sql_support.xml 2011-04-29 18:34:21 UTC (rev 3133)
+++ trunk/documentation/reference/src/main/docbook/en-US/content/sql_support.xml 2011-05-02 17:02:28 UTC (rev 3134)
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<chapter id="sql_support">
- <title>SQL Support</title>
+ <title>DML Support</title>
<para>
Teiid supports SQL for issuing queries and for defining view
transformations; see also <link linkend="procedure_language">Procedure Language</link>
@@ -651,103 +651,6 @@
</note>
</section>
</section>
- <section id="temp_tables">
- <title>Temp Tables</title>
- <para>Teiid supports creating temporary,or "temp", tables. Temp tables are dynamically created, but are treated as any other physical table.
- </para>
- <para>
- Temp tables can be defined implicitly by referencing them in a
- INSERT statement or explicitly with a CREATE TABLE
- statement. Implicitly created temp tables must have a name that
- starts with '#'.
- </para>
- <itemizedlist>
- <para>Creation syntax:
- </para>
- <listitem>
- <para>Explicit: CREATE LOCAL TEMPORARY TABLE x (column type [NOT NULL], ... [PRIMARY KEY (column, ...)])
- </para>
- </listitem>
- <listitem>
- <para>Implicit: INSERT INTO #x (column, ...) VALUES (value, ...)
- </para>
- <para>If #x doen't exist, it will be defined using the given column names and types from the value expressions.
- </para>
- </listitem>
- <listitem>
- <para>Implicit: INSERT INTO #x [(column, ...)] select c1, c2 from t
- </para>
- <para>If #x doesn't exist, it will be defined using the target column names (in not supplied, the column names will match the derived column names from the query), and the types from the query derived columns.
- </para>
- </listitem>
- <listitem>
- <para>Use the SERIAL data type to specify a NOT NULL and auto-incrementing INTEGER column. The starting value of a SERIAL column is 1.</para>
- </listitem>
- </itemizedlist>
- <itemizedlist>
- <para>Drop syntax:
- </para>
- <listitem>
- <para>DROP TABLE x
- </para>
- </listitem>
- </itemizedlist>
- <itemizedlist>
- <para>Primary Key Support</para>
- <listitem>
- <para>All key columns must be comparable.</para>
- </listitem>
- <listitem>
- <para>Use of a primary key creates a clustered index that supports search improvements for comparison, in, like, and order by.</para>
- </listitem>
- <listitem>
- <para>Null is an allowable primary key value, but there must be only 1 row that has an all null key.</para>
- </listitem>
- </itemizedlist>
- <itemizedlist>
- <para>Limitations:
- </para>
- <listitem>
- <para>With the CREATE TABLE syntax only basic table definition (column name and type information) and an optional primary key are supported.
- </para>
- </listitem>
- <listitem>
- <para>The "ON COMMIT" clause is not supported in the CREATE TABLE statement.
- </para>
- </listitem>
- <listitem>
- <para>"drop behavior" option is not supported in the drop statement.
- </para>
- </listitem>
- <listitem>
- <para>Only local temporary tables are supported. This implies that the scope of temp table will be either to the sesssion or the block of a virtual procedure that creates it.
- </para>
- </listitem>
- <listitem>
- <para>Session level temp tables are not fail-over safe.
- </para>
- </listitem>
- <listitem>
- <para>Temp tables are non-transactional.
- </para>
- </listitem>
- <listitem>
- <para>Lob values (xml, clob, blob) are tracked by reference rather than by value in a temporary table.
- Lob values from external sources that are inserted in a temporary table may become unreadable when the associated statement or connection is closed.
- </para>
- </listitem>
- </itemizedlist>
- <para>The following example is a series of statements that loads a temporary table with data from 2 sources, and with a manually inserted record, and then uses that temp table in a subsequent query.</para>
- <programlisting>...
-CREATE LOCAL TEMPORARY TABLE TEMP (a integer, b integer, c integer);
-SELECT * INTO temp FROM Src1; SELECT * INTO temp FROM Src2;
-INSERT INTO temp VALUES (1,2,3);
-SELECT a,b,c FROM Src3, temp WHERE Src3.a = temp.b;
-...</programlisting>
- <para>
- See <link linkend="virtual_procedures">virtual procedures</link> for more on temp table usage.
- </para>
- </section>
<section>
<title>SQL Clauses</title>
<para>This section describes the clauses that are used in the various <link linkend="sql_commands">SQL commands</link> described in the previous section. Nearly all these features follow standard SQL syntax and functionality, so any SQL reference can be used for more information.</para>
@@ -1213,10 +1116,10 @@
</section>
<section id="set_operations">
<title>Set Operations</title>
- <para>Teiid supports the UNION, UNION ALL, INTERSECT, EXCEPT set operation as a way of combining the results of commands.</para>
+ <para>Teiid supports the UNION, UNION ALL, INTERSECT, EXCEPT set operation as a way of combining the results of query expressions.</para>
<para>
Usage:
- <synopsis label="Usage">command (UNION|INTERSECT|EXCEPT) [ALL] command [ORDER BY...]</synopsis>
+ <synopsis label="Usage">queryExpression (UNION|INTERSECT|EXCEPT) [ALL] queryExpression [ORDER BY...]</synopsis>
</para>
<itemizedlist>
<para>Syntax Rules:
Modified: trunk/documentation/reference/src/main/docbook/en-US/content/system_schema.xml
===================================================================
--- trunk/documentation/reference/src/main/docbook/en-US/content/system_schema.xml 2011-04-29 18:34:21 UTC (rev 3133)
+++ trunk/documentation/reference/src/main/docbook/en-US/content/system_schema.xml 2011-05-02 17:02:28 UTC (rev 3134)
@@ -1,5 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % CustomDTD SYSTEM "../../../../../../docbook/custom.dtd">
+%CustomDTD;
+]>
<chapter id="system_schema">
<title>System Schema</title>
<para>The built-in SYS and SYSADMIN schemas provide metadata tables and procedures against the current VDB.</para>
@@ -12,6 +15,8 @@
<para>This table provides the current VDB contents.</para>
<informaltable frame="all">
<tgroup cols="3">
+ <colspec colwidth=".6*" />
+ <colspec colwidth=".4*" />
<thead>
<row>
<entry>
@@ -61,6 +66,8 @@
context of a connection).</para>
<informaltable frame="all">
<tgroup cols="3">
+ <colspec colwidth=".6*" />
+ <colspec colwidth=".4*" />
<thead>
<row>
<entry>
@@ -110,6 +117,8 @@
</para>
<informaltable frame="all">
<tgroup cols="3">
+ <colspec colwidth=".6*" />
+ <colspec colwidth=".4*" />
<thead>
<row>
<entry>
@@ -214,7 +223,9 @@
metamodel extensions are being used.</para>
<informaltable frame="all">
<tgroup cols="3">
- <thead>
+ <colspec colwidth=".6*" />
+ <colspec colwidth=".4*" />
+ <thead>
<row>
<entry>
<para>Column Name</para>
@@ -286,6 +297,8 @@
views, documents, etc) in the virtual database.</para>
<informaltable frame="all">
<tgroup cols="3">
+ <colspec colwidth=".6*" />
+ <colspec colwidth=".4*" />
<thead>
<row>
<entry>
@@ -443,6 +456,8 @@
<para>This table supplies information about all the materailized views in the virtual database.</para>
<informaltable frame="all">
<tgroup cols="3">
+ <colspec colwidth=".6*" />
+ <colspec colwidth=".4*" />
<thead>
<row>
<entry>
@@ -566,6 +581,8 @@
(columns, tags, attributes, etc) in the virtual database.</para>
<informaltable frame="all">
<tgroup cols="3">
+ <colspec colwidth=".6*" />
+ <colspec colwidth=".4*" />
<thead>
<row>
<entry>
@@ -958,10 +975,11 @@
<section>
<title>SYS.Keys</title>
<para>This table supplies information about primary, foreign,
- and
- unique keys.</para>
+ and unique keys.</para>
<informaltable frame="all">
<tgroup cols="3">
+ <colspec colwidth=".6*" />
+ <colspec colwidth=".4*" />
<thead>
<row>
<entry>
@@ -1106,10 +1124,11 @@
<section>
<title>SYS.KeyColumns</title>
<para>This table supplies information about the columns
- referenced by
- a key.</para>
+ referenced by a key.</para>
<informaltable frame="all">
<tgroup cols="3">
+ <colspec colwidth=".6*" />
+ <colspec colwidth=".4*" />
<thead>
<row>
<entry>
@@ -1241,16 +1260,15 @@
</section>
</section>
<section>
- <title>
- Procedure Metadata
- </title>
+ <title>Procedure Metadata</title>
<section>
<title>SYS.Procedures</title>
<para>This table supplies information about the procedures in
- the
- virtual database.</para>
+ the virtual database.</para>
<informaltable frame="all">
<tgroup cols="3">
+ <colspec colwidth=".6*" />
+ <colspec colwidth=".4*" />
<thead>
<row>
<entry>
@@ -1363,6 +1381,8 @@
</para>
<informaltable frame="all">
<tgroup cols="3">
+ <colspec colwidth=".6*" />
+ <colspec colwidth=".4*" />
<thead>
<row>
<entry>
@@ -1536,11 +1556,12 @@
<title>SYS.DataTypes</title>
<para>
This table supplies information on
- <link linkend="datatypes">datatypes</link>
- .
+ <link linkend="datatypes">datatypes</link>.
</para>
<informaltable frame="all">
<tgroup cols="3">
+ <colspec colwidth=".6*" />
+ <colspec colwidth=".4*" />
<thead>
<row>
<entry>
@@ -1774,87 +1795,52 @@
</section>
</section>
<warning>
- <para>OID column is is guranteed to be unique only for given version of the VDB. If the VDB is updated and a different version of
- the VDB is deployed, these IDs are not guranteed to be unique across both versions of VDB. UID is unique across different versions
- only if the VDB is generated from Designer and metadata from old models are used(i.e. no re-importing from sources).
- UID column in a Dynamic VDB behaves same as OID column.</para>
+ <para>The OID column is is guranteed to be unique/consistent only for given version running instance of a VDB. If a different version of
+ the VDB is deployed, these IDs are not guranteed to be the same or unique across both versions of the VDB. Dynamic VDB OIDs are not cluster safe.</para>
</warning>
</section>
<section id="system_procedures">
<title>System Procedures</title>
- <informaltable frame="all">
- <tgroup cols="3">
- <thead>
- <row>
- <entry>
- <para>Procedure</para>
- </entry>
- <entry>
- <para>Parameters</para>
- </entry>
- <entry>
- <para>Description</para>
- </entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>
- <para>SYS.getXMLSchemas</para>
- </entry>
- <entry>
- <para>(in string document)</para>
- </entry>
- <entry>
- <para>Returns a resultset with a single column, schema, containing the schemas as clobs.</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>SYSADMIN.refreshMatView</para>
- </entry>
- <entry>
- <para>(in string ViewName, in boolean Invalidate)</para>
- </entry>
- <entry>
- <para>Returns integer RowsUpdated. -1 indicates a load is in progress, otherwise the cardinality of the table is returned. See the Caching Guide for more.</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>SYSADMIN.refreshMatViewRow</para>
- </entry>
- <entry>
- <para>(in string ViewName, in object Key)</para>
- </entry>
- <entry>
- <para>Returns integer RowsUpdated. -1 indicates the materialized table is currently invalid. 0 indicates that the specified row did not exist in the live data query or in the materialized table. See the Caching Guide for more.</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>SYSADMIN.setTableStats</para>
- </entry>
- <entry>
- <para>(in string TableName, in integer Cardinality)</para>
- </entry>
- <entry>
- <para>Set statistics for the given table. A <code>MetadataRepository</code> must be configured to make the update persistent.</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>SYSADMIN.setColumnStats</para>
- </entry>
- <entry>
- <para>(in string TableName, in string ColumnName, in integer DistinctCount, in integer NullCount, in string Max, in string Min)</para>
- </entry>
- <entry>
- <para>Set statistics for the given column. A <code>MetadataRepository</code> must be configured to make the update persistent.</para>
- </entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
+ <section>
+ <title>SYS.getXMLSchemas</title>
+ <para>Returns a resultset with a single column, schema, containing the schemas as clobs.</para>
+ <para><synopsis>SYS.getXMLSchemas(in string document)</synopsis></para>
+ </section>
+ <section>
+ <title>SYSADMIN.refreshMatView</title>
+ <para>Returns integer RowsUpdated. -1 indicates a load is in progress, otherwise the cardinality of the table is returned. See the Caching Guide for more.</para>
+ <para><synopsis>SYSADMIN.refreshMatView(return integer RowsUpdated, in string ViewName, in boolean Invalidate)</synopsis></para>
+ </section>
+ <section>
+ <title>SYSADMIN.refreshMatViewRow</title>
+ <para>Returns integer RowsUpdated. -1 indicates the materialized table is currently invalid. 0 indicates that the specified row did not exist in the live data query or in the materialized table. See the Caching Guide for more.</para>
+ <para><synopsis>SYSADMIN.refreshMatViewRow(return integer RowsUpdated, in string ViewName, in object Key)</synopsis></para>
+ </section>
+ <section>
+ <title>Metadata Procedures</title>
+ &metadata-update-note;
+ <section>
+ <title>SYSADMIN.setTableStats</title>
+ <para>Set statistics for the given table.</para>
+ <para><synopsis>SYSADMIN.setTableStats(in string TableName, in integer Cardinality)</synopsis></para>
+ </section>
+ <section>
+ <title>SYSADMIN.setColumnStats</title>
+ <para>Set statistics for the given column.</para>
+ <para><synopsis>SYSADMIN.setColumnStats(in string TableName, in string ColumnName, in integer DistinctCount, in integer NullCount, in string Max, in string Min)</synopsis></para>
+ <para>Passing a null stat value will leave corresponding metadata value unchanged.</para>
+ </section>
+ <section>
+ <title>SYSADMIN.setProperty</title>
+ <para>Set an extension metadata property for the given record. Extension metadata is typically used by <xref linkend="translators"/>.</para>
+ <para><synopsis>SYSADMIN.setProperty(return clob OldValue, in string Uid, in string Name, in clob Value)</synopsis></para>
+ <para>Setting a value to null will remove the property.</para>
+ <example lang="sql">
+ <title>Example Property Set</title>
+ <programlisting>CALL SYSADMIN.setProperty(uid=>(SELECT uid FROM TABLES WHERE name='tab'), name=>'some name', value=>'some value')</programlisting>
+ <para>This will set the property 'some name'='some value' on table tab.</para>
+ </example>
+ </section>
+ </section>
</section>
</chapter>
\ No newline at end of file
Modified: trunk/engine/src/main/java/org/teiid/cache/CacheConfiguration.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/cache/CacheConfiguration.java 2011-04-29 18:34:21 UTC (rev 3133)
+++ trunk/engine/src/main/java/org/teiid/cache/CacheConfiguration.java 2011-05-02 17:02:28 UTC (rev 3134)
@@ -44,7 +44,7 @@
private String name;
private String location;
- private int maxStaleness = -1;
+ private int maxStaleness = 0;
public CacheConfiguration() {
}
Modified: trunk/engine/src/main/java/org/teiid/dqp/internal/process/DataTierManagerImpl.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/dqp/internal/process/DataTierManagerImpl.java 2011-04-29 18:34:21 UTC (rev 3133)
+++ trunk/engine/src/main/java/org/teiid/dqp/internal/process/DataTierManagerImpl.java 2011-05-02 17:02:28 UTC (rev 3134)
@@ -22,7 +22,10 @@
package org.teiid.dqp.internal.process;
+import java.io.IOException;
+import java.sql.Clob;
import java.sql.DatabaseMetaData;
+import java.sql.SQLException;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Arrays;
@@ -31,6 +34,8 @@
import java.util.List;
import java.util.Map;
+import javax.sql.rowset.serial.SerialClob;
+
import org.teiid.adminapi.impl.ModelMetaData;
import org.teiid.adminapi.impl.VDBMetaData;
import org.teiid.api.exception.query.QueryMetadataException;
@@ -42,9 +47,11 @@
import org.teiid.core.TeiidComponentException;
import org.teiid.core.TeiidProcessingException;
import org.teiid.core.types.BlobType;
+import org.teiid.core.types.ClobType;
import org.teiid.core.types.SQLXMLImpl;
import org.teiid.core.types.XMLType;
import org.teiid.core.util.Assertion;
+import org.teiid.core.util.ObjectConverterUtil;
import org.teiid.core.util.StringUtil;
import org.teiid.dqp.internal.datamgr.ConnectorManager;
import org.teiid.dqp.internal.datamgr.ConnectorManagerRepository;
@@ -88,6 +95,8 @@
*/
public class DataTierManagerImpl implements ProcessorDataManager {
+ private static final int MAX_VALUE_LENGTH = 1 << 21;
+
private enum SystemTables {
VIRTUALDATABASES,
SCHEMAS,
@@ -109,7 +118,8 @@
private enum SystemAdminProcs {
SETTABLESTATS,
- SETCOLUMNSTATS
+ SETCOLUMNSTATS,
+ SETPROPERTY
}
private enum SystemProcs {
@@ -141,6 +151,10 @@
return eventDistributor;
}
+ public MetadataRepository getMetadataRepository() {
+ return metadataRepository;
+ }
+
public void setMetadataRepository(MetadataRepository metadataRepository) {
this.metadataRepository = metadataRepository;
}
@@ -271,27 +285,19 @@
}
break;
case PROPERTIES: //TODO: consider storing separately in the metadatastore
- Collection<AbstractMetadataRecord> records = new LinkedHashSet<AbstractMetadataRecord>();
- records.addAll(metadata.getDatatypes());
- for (Schema schema : getVisibleSchemas(vdb, metadata)) {
- records.add(schema);
- records.addAll(schema.getTables().values());
- for (Table table : schema.getTables().values()) {
- records.add(table);
- records.addAll(table.getColumns());
- records.addAll(table.getAllKeys());
- }
- for (Procedure proc : schema.getProcedures().values()) {
- records.add(proc);
- records.addAll(proc.getParameters());
- if (proc.getResultSet() != null) {
- records.addAll(proc.getResultSet().getColumns());
- }
- }
- }
+ Collection<AbstractMetadataRecord> records = getAllPropertiedObjects(metadata, getVisibleSchemas(vdb, metadata));
for (AbstractMetadataRecord record : records) {
for (Map.Entry<String, String> entry : record.getProperties().entrySet()) {
- rows.add(Arrays.asList(entry.getKey(), entry.getValue(), record.getUUID(), oid++));
+ String value = entry.getValue();
+ Clob clobValue = null;
+ if (value != null) {
+ try {
+ clobValue = new ClobType(new SerialClob(value.toCharArray()));
+ } catch (SQLException e) {
+ throw new TeiidProcessingException(e);
+ }
+ }
+ rows.add(Arrays.asList(entry.getKey(), entry.getValue(), record.getUUID(), oid++, clobValue));
}
}
break;
@@ -348,6 +354,48 @@
StoredProcedure proc = (StoredProcedure)command;
if (StringUtil.startsWithIgnoreCase(proc.getProcedureCallableName(), CoreConstants.SYSTEM_ADMIN_MODEL)) {
final SystemAdminProcs sysProc = SystemAdminProcs.valueOf(proc.getProcedureCallableName().substring(CoreConstants.SYSTEM_ADMIN_MODEL.length() + 1).toUpperCase());
+ switch (sysProc) {
+ case SETPROPERTY:
+ try {
+ String uuid = (String)((Constant)proc.getParameter(2).getExpression()).getValue();
+ String key = (String)((Constant)proc.getParameter(3).getExpression()).getValue();
+ Clob value = (Clob)((Constant)proc.getParameter(4).getExpression()).getValue();
+ String strVal = null;
+ String result = null;
+ if (value != null) {
+ if (value.length() > MAX_VALUE_LENGTH) {
+ throw new TeiidProcessingException(QueryPlugin.Util.getString("DataTierManagerImpl.max_value_length", MAX_VALUE_LENGTH)); //$NON-NLS-1$
+ }
+ strVal = ObjectConverterUtil.convertToString(value.getCharacterStream());
+ }
+ AbstractMetadataRecord target = getByUuid(metadata, uuid);
+ if (target == null) {
+ throw new TeiidProcessingException(QueryPlugin.Util.getString("DataTierManagerImpl.unknown_uuid", uuid)); //$NON-NLS-1$
+ }
+ if (value == null) {
+ result = target.setProperty(key, null);
+ } else {
+ strVal = ObjectConverterUtil.convertToString(value.getCharacterStream());
+ result = target.setProperty(key, strVal);
+ }
+ if (eventDistributor != null) {
+ eventDistributor.setProperty(vdbName, vdbVersion, uuid, key, strVal);
+ }
+ if (this.metadataRepository != null) {
+ this.metadataRepository.setProperty(vdbName, vdbVersion, target, key, strVal);
+ }
+ if (result == null) {
+ rows.add(Arrays.asList((Clob)null));
+ } else {
+ rows.add(Arrays.asList(new ClobType(new SerialClob(result.toCharArray()))));
+ }
+ return new CollectionTupleSource(rows.iterator());
+ } catch (SQLException e) {
+ throw new TeiidProcessingException(e);
+ } catch (IOException e) {
+ throw new TeiidProcessingException(e);
+ }
+ }
Table table = indexMetadata.getGroupID((String)((Constant)proc.getParameter(1).getExpression()).getValue());
switch (sysProc) {
case SETCOLUMNSTATS:
@@ -424,6 +472,38 @@
}
return new CollectionTupleSource(rows.iterator());
}
+
+ //TODO: do better than a linear search
+ public static AbstractMetadataRecord getByUuid(CompositeMetadataStore metadata,
+ String uuid) {
+ for (AbstractMetadataRecord object : getAllPropertiedObjects(metadata, metadata.getSchemas().values())) {
+ if (object.getUUID().equals(uuid)) {
+ return object;
+ }
+ }
+ return null;
+ }
+
+ public static Collection<AbstractMetadataRecord> getAllPropertiedObjects(CompositeMetadataStore metadata, Collection<Schema> schemas) {
+ Collection<AbstractMetadataRecord> records = new LinkedHashSet<AbstractMetadataRecord>();
+ records.addAll(metadata.getDatatypes());
+ for (Schema schema : schemas) {
+ records.add(schema);
+ for (Table table : schema.getTables().values()) {
+ records.add(table);
+ records.addAll(table.getColumns());
+ records.addAll(table.getAllKeys());
+ }
+ for (Procedure proc : schema.getProcedures().values()) {
+ records.add(proc);
+ records.addAll(proc.getParameters());
+ if (proc.getResultSet() != null) {
+ records.addAll(proc.getResultSet().getColumns());
+ }
+ }
+ }
+ return records;
+ }
private List<Schema> getVisibleSchemas(VDBMetaData vdb, CompositeMetadataStore metadata) {
ArrayList<Schema> result = new ArrayList<Schema>();
Modified: trunk/engine/src/main/java/org/teiid/dqp/internal/process/Request.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/dqp/internal/process/Request.java 2011-04-29 18:34:21 UTC (rev 3133)
+++ trunk/engine/src/main/java/org/teiid/dqp/internal/process/Request.java 2011-05-02 17:02:28 UTC (rev 3134)
@@ -64,7 +64,6 @@
import org.teiid.query.metadata.QueryMetadataInterface;
import org.teiid.query.metadata.TempCapabilitiesFinder;
import org.teiid.query.metadata.TempMetadataAdapter;
-import org.teiid.query.metadata.TempMetadataStore;
import org.teiid.query.optimizer.QueryOptimizer;
import org.teiid.query.optimizer.capabilities.CapabilitiesFinder;
import org.teiid.query.parser.ParseInfo;
@@ -201,7 +200,7 @@
this.metadata = new MultiSourceMetadataWrapper(this.metadata, this.multiSourceModels);
}
- TempMetadataAdapter tma = new TempMetadataAdapter(metadata, new TempMetadataStore());
+ TempMetadataAdapter tma = new TempMetadataAdapter(metadata, this.tempTableStore.getMetadataStore());
tma.setSession(true);
this.metadata = tma;
}
@@ -279,9 +278,6 @@
}
protected void resolveCommand(Command command) throws QueryResolverException, TeiidComponentException {
- if (this.tempTableStore != null) {
- QueryResolver.setChildMetadata(command, tempTableStore.getMetadataStore().getData(), null);
- }
//ensure that the user command is distinct from the processing command
//rewrite and planning may alter options, symbols, etc.
QueryResolver.resolveCommand(command, metadata);
Modified: trunk/engine/src/main/java/org/teiid/query/metadata/TransformationMetadata.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/metadata/TransformationMetadata.java 2011-04-29 18:34:21 UTC (rev 3133)
+++ trunk/engine/src/main/java/org/teiid/query/metadata/TransformationMetadata.java 2011-05-02 17:02:28 UTC (rev 3134)
@@ -78,6 +78,18 @@
*/
public class TransformationMetadata extends BasicQueryMetadata implements Serializable {
+ private final class LiveQueryNode extends QueryNode {
+ Procedure p;
+ private LiveQueryNode(Procedure p) {
+ super(null);
+ this.p = p;
+ }
+
+ public String getQuery() {
+ return p.getQueryPlan();
+ }
+ }
+
private final class VirtualFileInputStreamFactory extends
InputStreamFactory {
private final VirtualFile f;
@@ -330,7 +342,7 @@
// if this is a virtual procedure get the procedure plan
if(procRecord.isVirtual()) {
- QueryNode queryNode = new QueryNode(procRecord.getQueryPlan());
+ QueryNode queryNode = new LiveQueryNode(procRecord);
procInfo.setQueryPlan(queryNode);
}
@@ -464,7 +476,7 @@
if (!tableRecordImpl.isVirtual()) {
throw new QueryMetadataException(QueryPlugin.Util.getString("TransformationMetadata.InsertPlan_could_not_be_found_for_physical_group__8")+tableRecordImpl.getFullName()); //$NON-NLS-1$
}
- return ((Table)groupID).getInsertPlan();
+ return tableRecordImpl.isInsertPlanEnabled()?tableRecordImpl.getInsertPlan():null;
}
public String getUpdatePlan(final Object groupID) throws TeiidComponentException, QueryMetadataException {
@@ -473,7 +485,7 @@
if (!tableRecordImpl.isVirtual()) {
throw new QueryMetadataException(QueryPlugin.Util.getString("TransformationMetadata.InsertPlan_could_not_be_found_for_physical_group__10")+tableRecordImpl.getFullName()); //$NON-NLS-1$
}
- return ((Table)groupID).getUpdatePlan();
+ return tableRecordImpl.isUpdatePlanEnabled()?tableRecordImpl.getUpdatePlan():null;
}
public String getDeletePlan(final Object groupID) throws TeiidComponentException, QueryMetadataException {
@@ -482,7 +494,7 @@
if (!tableRecordImpl.isVirtual()) {
throw new QueryMetadataException(QueryPlugin.Util.getString("TransformationMetadata.DeletePlan_could_not_be_found_for_physical_group__12")+tableRecordImpl.getFullName()); //$NON-NLS-1$
}
- return ((Table)groupID).getDeletePlan();
+ return tableRecordImpl.isDeletePlanEnabled()?tableRecordImpl.getDeletePlan():null;
}
public boolean modelSupports(final Object modelID, final int modelConstant)
@@ -1035,8 +1047,7 @@
}
@Override
- public Object addToMetadataCache(Object metadataID, String key, Object value)
- throws TeiidComponentException, QueryMetadataException {
+ public Object addToMetadataCache(Object metadataID, String key, Object value) {
ArgCheck.isInstanceOf(AbstractMetadataRecord.class, metadataID);
boolean groupInfo = key.startsWith(GroupInfo.CACHE_PREFIX);
key = getCacheKey(key, (AbstractMetadataRecord)metadataID);
Added: trunk/engine/src/main/java/org/teiid/query/optimizer/DdlPlanner.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/optimizer/DdlPlanner.java (rev 0)
+++ trunk/engine/src/main/java/org/teiid/query/optimizer/DdlPlanner.java 2011-05-02 17:02:28 UTC (rev 3134)
@@ -0,0 +1,48 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership. Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301 USA.
+ */
+
+package org.teiid.query.optimizer;
+
+import org.teiid.api.exception.query.QueryMetadataException;
+import org.teiid.api.exception.query.QueryPlannerException;
+import org.teiid.core.TeiidComponentException;
+import org.teiid.core.id.IDGenerator;
+import org.teiid.query.analysis.AnalysisRecord;
+import org.teiid.query.metadata.QueryMetadataInterface;
+import org.teiid.query.optimizer.capabilities.CapabilitiesFinder;
+import org.teiid.query.processor.DdlPlan;
+import org.teiid.query.processor.ProcessorPlan;
+import org.teiid.query.sql.lang.Command;
+import org.teiid.query.util.CommandContext;
+
+public class DdlPlanner implements CommandPlanner {
+
+ @Override
+ public ProcessorPlan optimize(Command command, IDGenerator idGenerator,
+ QueryMetadataInterface metadata, CapabilitiesFinder capFinder,
+ AnalysisRecord analysisRecord, CommandContext context)
+ throws QueryPlannerException, QueryMetadataException,
+ TeiidComponentException {
+ return new DdlPlan(command);
+ }
+
+}
Property changes on: trunk/engine/src/main/java/org/teiid/query/optimizer/DdlPlanner.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified: trunk/engine/src/main/java/org/teiid/query/optimizer/QueryOptimizer.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/optimizer/QueryOptimizer.java 2011-04-29 18:34:21 UTC (rev 3133)
+++ trunk/engine/src/main/java/org/teiid/query/optimizer/QueryOptimizer.java 2011-05-02 17:02:28 UTC (rev 3134)
@@ -72,6 +72,7 @@
private static final CommandPlanner XML_PLANNER = new XMLPlanner();
private static final CommandPlanner PROCEDURE_PLANNER = new ProcedurePlanner();
private static final CommandPlanner BATCHED_UPDATE_PLANNER = new BatchedUpdatePlanner();
+ private static final CommandPlanner DDL_PLANNER = new DdlPlanner();
// Can't construct
private QueryOptimizer() {}
@@ -109,18 +110,28 @@
ProcessorPlan result = null;
- if (command.getType() == Command.TYPE_UPDATE_PROCEDURE){
+ switch (command.getType()) {
+ case Command.TYPE_UPDATE_PROCEDURE:
CreateUpdateProcedureCommand cupc = (CreateUpdateProcedureCommand)command;
if (cupc.isUpdateProcedure()) {
result = planProcedure(command, metadata, idGenerator, capFinder, analysisRecord, context);
} else {
- String fullName = metadata.getFullName(cupc.getVirtualGroup().getMetadataID());
+ StoredProcedure c = (StoredProcedure)cupc.getUserCommand();
+ Object pid = cupc.getVirtualGroup().getMetadataID();
+ if (c != null) {
+ pid = c.getProcedureID();
+ }
+ String fullName = metadata.getFullName(pid);
+ fullName = "procedure cache:" + fullName; //$NON-NLS-1$
PreparedPlan pp = context.getPlan(fullName);
if (pp == null) {
Determinism determinismLevel = context.resetDeterminismLevel();
CommandContext clone = context.clone();
ProcessorPlan plan = planProcedure(command, metadata, idGenerator, capFinder, analysisRecord, clone);
//note that this is not a full prepared plan. It is not usable by user queries.
+ if (pid instanceof Procedure) {
+ clone.accessedProcedure((Procedure)pid);
+ }
pp = new PreparedPlan();
pp.setPlan(plan, clone);
context.putPlan(fullName, pp, context.getDeterminismLevel());
@@ -166,9 +177,16 @@
plan.setImplicitParams(((TranslatableProcedureContainer)container).getImplicitParams());
}
}
- } else if (command.getType() == Command.TYPE_BATCHED_UPDATE){
- result = BATCHED_UPDATE_PLANNER.optimize(command, idGenerator, metadata, capFinder, analysisRecord, context);
- } else {
+ break;
+ case Command.TYPE_BATCHED_UPDATE:
+ result = BATCHED_UPDATE_PLANNER.optimize(command, idGenerator, metadata, capFinder, analysisRecord, context);
+ break;
+ case Command.TYPE_ALTER_PROC:
+ case Command.TYPE_ALTER_TRIGGER:
+ case Command.TYPE_ALTER_VIEW:
+ result = DDL_PLANNER.optimize(command, idGenerator, metadata, capFinder, analysisRecord, context);
+ break;
+ default:
try {
if (command.getType() == Command.TYPE_QUERY && command instanceof Query && QueryResolver.isXMLQuery((Query)command, metadata)) {
result = XML_PLANNER.optimize(command, idGenerator, metadata, capFinder, analysisRecord, context);
Modified: trunk/engine/src/main/java/org/teiid/query/optimizer/relational/RelationalPlanner.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/optimizer/relational/RelationalPlanner.java 2011-04-29 18:34:21 UTC (rev 3133)
+++ trunk/engine/src/main/java/org/teiid/query/optimizer/relational/RelationalPlanner.java 2011-05-02 17:02:28 UTC (rev 3134)
@@ -41,6 +41,7 @@
import org.teiid.core.id.IDGenerator;
import org.teiid.dqp.internal.process.Request;
import org.teiid.language.SQLConstants;
+import org.teiid.metadata.Procedure;
import org.teiid.metadata.Table;
import org.teiid.query.QueryPlugin;
import org.teiid.query.analysis.AnalysisRecord;
@@ -535,7 +536,7 @@
boolean usingTriggerAction = false;
if (command instanceof ProcedureContainer) {
ProcedureContainer container = (ProcedureContainer)command;
- usingTriggerAction = addNestedProcedure(sourceNode, container);
+ usingTriggerAction = addNestedProcedure(sourceNode, container, container.getGroup().getMetadataID());
}
sourceNode.addGroups(groups);
@@ -556,15 +557,15 @@
}
private boolean addNestedProcedure(PlanNode sourceNode,
- ProcedureContainer container) throws TeiidComponentException,
+ ProcedureContainer container, Object metadataId) throws TeiidComponentException,
QueryMetadataException, TeiidProcessingException {
- String cacheString = "transformation/" + container.getClass().getSimpleName(); //$NON-NLS-1$
- Command c = (Command)metadata.getFromMetadataCache(container.getGroup().getMetadataID(), cacheString);
+ String cacheString = "transformation/" + container.getClass().getSimpleName().toUpperCase(); //$NON-NLS-1$
+ Command c = (Command)metadata.getFromMetadataCache(metadataId, cacheString);
if (c == null) {
c = QueryResolver.expandCommand(container, metadata, analysisRecord);
if (c != null) {
Request.validateWithVisitor(new ValidationVisitor(), metadata, c);
- metadata.addToMetadataCache(container.getGroup().getMetadataID(), cacheString, c.clone());
+ metadata.addToMetadataCache(metadataId, cacheString, c.clone());
}
} else {
c = (Command)c.clone();
@@ -598,6 +599,12 @@
//skip the rewrite here, we'll do that in the optimizer
//so that we know what the determinism level is.
addNestedCommand(sourceNode, container.getGroup(), container, c, false);
+ if (container instanceof StoredProcedure) {
+ StoredProcedure sp = (StoredProcedure)container;
+ if (sp.getProcedureID() instanceof Procedure) {
+ context.accessedProcedure((Procedure)sp.getProcedureID());
+ }
+ }
} else if (!container.getGroup().isTempTable() && //we hope for the best, and do a specific validation for subqueries below
container instanceof TranslatableProcedureContainer //we force the evaluation of procedure params - TODO: inserts are fine except for nonpushdown functions on columns
&& !CriteriaCapabilityValidatorVisitor.canPushLanguageObject(container, metadata.getModelID(container.getGroup().getMetadataID()), metadata, capFinder, analysisRecord)) {
@@ -653,7 +660,7 @@
// Define source of data for stored query / procedure
PlanNode sourceNode = NodeFactory.getNewNode(NodeConstants.Types.SOURCE);
sourceNode.setProperty(NodeConstants.Info.VIRTUAL_COMMAND, storedProc);
- addNestedProcedure(sourceNode, storedProc);
+ addNestedProcedure(sourceNode, storedProc, storedProc.getProcedureID());
hints.hasRelationalProc |= storedProc.isProcedureRelational();
Added: trunk/engine/src/main/java/org/teiid/query/processor/DdlPlan.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/processor/DdlPlan.java (rev 0)
+++ trunk/engine/src/main/java/org/teiid/query/processor/DdlPlan.java 2011-05-02 17:02:28 UTC (rev 3134)
@@ -0,0 +1,234 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership. Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301 USA.
+ */
+
+package org.teiid.query.processor;
+
+import static org.teiid.query.analysis.AnalysisRecord.*;
+
+import java.util.Arrays;
+import java.util.List;
+
+import org.teiid.adminapi.impl.VDBMetaData;
+import org.teiid.client.plan.PlanNode;
+import org.teiid.common.buffer.BlockedException;
+import org.teiid.common.buffer.BufferManager;
+import org.teiid.common.buffer.TupleBatch;
+import org.teiid.core.TeiidComponentException;
+import org.teiid.core.TeiidProcessingException;
+import org.teiid.core.TeiidRuntimeException;
+import org.teiid.dqp.internal.process.DQPWorkContext;
+import org.teiid.language.SQLConstants;
+import org.teiid.metadata.Procedure;
+import org.teiid.metadata.Table;
+import org.teiid.metadata.Table.TriggerEvent;
+import org.teiid.query.QueryPlugin;
+import org.teiid.query.metadata.TransformationMetadata;
+import org.teiid.query.sql.LanguageVisitor;
+import org.teiid.query.sql.lang.AlterProcedure;
+import org.teiid.query.sql.lang.AlterTrigger;
+import org.teiid.query.sql.lang.AlterView;
+import org.teiid.query.sql.lang.Command;
+import org.teiid.query.sql.lang.StoredProcedure;
+import org.teiid.query.sql.symbol.GroupSymbol;
+import org.teiid.query.util.CommandContext;
+
+public class DdlPlan extends ProcessorPlan {
+
+ class AlterProcessor extends LanguageVisitor {
+ DQPWorkContext workContext = DQPWorkContext.getWorkContext();
+
+ @Override
+ public void visit(AlterView obj) {
+ VDBMetaData vdb = workContext.getVDB();
+ Table t = (Table)obj.getTarget().getMetadataID();
+ String sql = obj.getDefinition().toString();
+ alterView(vdb, t, sql);
+ if (pdm.getEventDistributor() != null) {
+ pdm.getEventDistributor().setViewDefinition(workContext.getVdbName(), workContext.getVdbVersion(), t.getParent().getName(), t.getName(), sql);
+ }
+ if (pdm.getMetadataRepository() != null) {
+ pdm.getMetadataRepository().setViewDefinition(workContext.getVdbName(), workContext.getVdbVersion(), t, sql);
+ }
+ }
+
+ @Override
+ public void visit(AlterProcedure obj) {
+ VDBMetaData vdb = workContext.getVDB();
+ Procedure p = (Procedure)obj.getTarget().getMetadataID();
+ String sql = obj.getDefinition().toString();
+ alterProcedureDefinition(vdb, p, sql);
+ if (pdm.getEventDistributor() != null) {
+ pdm.getEventDistributor().setProcedureDefinition(workContext.getVdbName(), workContext.getVdbVersion(), p.getParent().getName(), p.getName(), sql);
+ }
+ if (pdm.getMetadataRepository() != null) {
+ pdm.getMetadataRepository().setProcedureDefinition(workContext.getVdbName(), workContext.getVdbVersion(), p, sql);
+ }
+ }
+
+ @Override
+ public void visit(AlterTrigger obj) {
+ VDBMetaData vdb = workContext.getVDB();
+ Table t = (Table)obj.getTarget().getMetadataID();
+ String sql = null;
+ TriggerEvent event = obj.getEvent();
+ if (obj.getEnabled() == null) {
+ if (obj.isCreate()) {
+ if (getPlanForEvent(t, event) != null) {
+ throw new TeiidRuntimeException(new TeiidProcessingException(QueryPlugin.Util.getString("DdlPlan.event_already_exists", t.getName(), obj.getEvent()))); //$NON-NLS-1$
+ }
+ } else if (getPlanForEvent(t, event) == null) {
+ throw new TeiidRuntimeException(new TeiidProcessingException(QueryPlugin.Util.getString("DdlPlan.event_not_exists", t.getName(), obj.getEvent()))); //$NON-NLS-1$
+ }
+ sql = obj.getDefinition().toString();
+ } else if (getPlanForEvent(t, event) == null) {
+ throw new TeiidRuntimeException(new TeiidProcessingException(QueryPlugin.Util.getString("DdlPlan.event_not_exists", t.getName(), obj.getEvent()))); //$NON-NLS-1$
+ }
+ alterInsteadOfTrigger(vdb, t, sql, obj.getEnabled(), event);
+ if (pdm.getEventDistributor() != null) {
+ pdm.getEventDistributor().setInsteadOfTriggerDefinition(workContext.getVdbName(), workContext.getVdbVersion(), t.getParent().getName(), t.getName(), obj.getEvent(), sql, obj.getEnabled());
+ }
+ if (pdm.getMetadataRepository() != null) {
+ if (sql != null) {
+ pdm.getMetadataRepository().setInsteadOfTriggerDefinition(workContext.getVdbName(), workContext.getVdbVersion(), t, obj.getEvent(), sql);
+ } else {
+ pdm.getMetadataRepository().setInsteadOfTriggerEnabled(workContext.getVdbName(), workContext.getVdbVersion(), t, obj.getEvent(), obj.getEnabled());
+ }
+ }
+ }
+ }
+
+ public static void alterView(VDBMetaData vdb, Table t, String sql) {
+ t.setSelectTransformation(sql);
+ t.setLastModified(System.currentTimeMillis());
+ TransformationMetadata indexMetadata = vdb.getAttachment(TransformationMetadata.class);
+ indexMetadata.addToMetadataCache(t, "transformation/"+SQLConstants.Reserved.SELECT, null); //$NON-NLS-1$
+ }
+
+ public static void alterProcedureDefinition(VDBMetaData vdb, Procedure p, String sql) {
+ p.setQueryPlan(sql);
+ p.setLastModified(System.currentTimeMillis());
+ TransformationMetadata indexMetadata = vdb.getAttachment(TransformationMetadata.class);
+ indexMetadata.addToMetadataCache(p, "transformation/"+StoredProcedure.class.getSimpleName().toUpperCase(), null); //$NON-NLS-1$
+ }
+
+ public static void alterInsteadOfTrigger(VDBMetaData vdb, Table t,
+ String sql, Boolean enabled, TriggerEvent event) {
+ switch (event) {
+ case DELETE:
+ if (sql != null) {
+ t.setDeletePlan(sql);
+ } else {
+ t.setDeletePlanEnabled(enabled);
+ }
+ break;
+ case INSERT:
+ if (sql != null) {
+ t.setInsertPlan(sql);
+ } else {
+ t.setInsertPlanEnabled(enabled);
+ }
+ break;
+ case UPDATE:
+ if (sql != null) {
+ t.setUpdatePlan(sql);
+ } else {
+ t.setUpdatePlanEnabled(enabled);
+ }
+ break;
+ }
+ TransformationMetadata indexMetadata = vdb.getAttachment(TransformationMetadata.class);
+ indexMetadata.addToMetadataCache(t, "transformation/"+event, null); //$NON-NLS-1$
+ t.setLastModified(System.currentTimeMillis());
+ }
+
+ private static String getPlanForEvent(Table t, TriggerEvent event) {
+ switch (event) {
+ case DELETE:
+ return t.getDeletePlan();
+ case INSERT:
+ return t.getInsertPlan();
+ case UPDATE:
+ return t.getUpdatePlan();
+ }
+ throw new AssertionError();
+ }
+
+ private Command command;
+ private ProcessorDataManager pdm;
+
+ public DdlPlan(Command command) {
+ this.command = command;
+ }
+
+ @Override
+ public ProcessorPlan clone() {
+ return new DdlPlan(command);
+ }
+
+ @Override
+ public void close() throws TeiidComponentException {
+ }
+
+ @Override
+ public List getOutputElements() {
+ return command.getProjectedSymbols();
+ }
+
+ @Override
+ public void initialize(CommandContext context,
+ ProcessorDataManager dataMgr, BufferManager bufferMgr) {
+ this.setContext(context);
+ this.pdm = dataMgr;
+ }
+
+ @Override
+ public TupleBatch nextBatch() throws BlockedException,
+ TeiidComponentException, TeiidProcessingException {
+ TupleBatch tupleBatch = new TupleBatch(1, new List[] {Arrays.asList(0)});
+ tupleBatch.setTerminationFlag(true);
+ return tupleBatch;
+ }
+
+ @Override
+ public void open() throws TeiidComponentException, TeiidProcessingException {
+ AlterProcessor ap = new AlterProcessor();
+ ap.workContext = DQPWorkContext.getWorkContext();
+ try {
+ command.acceptVisitor(ap);
+ } catch (TeiidRuntimeException e) {
+ throw (TeiidProcessingException)e.getCause();
+ }
+ }
+
+ @Override
+ public PlanNode getDescriptionProperties() {
+ PlanNode props = super.getDescriptionProperties();
+ props.addProperty(PROP_SQL, this.command.toString());
+ return props;
+ }
+
+ @Override
+ public void getAccessedGroups(List<GroupSymbol> groups) {
+
+ }
+
+}
Property changes on: trunk/engine/src/main/java/org/teiid/query/processor/DdlPlan.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified: trunk/engine/src/main/java/org/teiid/query/processor/ProcessorDataManager.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/processor/ProcessorDataManager.java 2011-04-29 18:34:21 UTC (rev 3133)
+++ trunk/engine/src/main/java/org/teiid/query/processor/ProcessorDataManager.java 2011-05-02 17:02:28 UTC (rev 3134)
@@ -26,6 +26,8 @@
import org.teiid.common.buffer.TupleSource;
import org.teiid.core.TeiidComponentException;
import org.teiid.core.TeiidProcessingException;
+import org.teiid.events.EventDistributor;
+import org.teiid.metadata.MetadataRepository;
import org.teiid.query.sql.lang.Command;
import org.teiid.query.util.CommandContext;
@@ -47,5 +49,9 @@
String keyElementName,
Object keyValue) throws BlockedException,
TeiidComponentException, TeiidProcessingException;
+
+ EventDistributor getEventDistributor();
+
+ MetadataRepository getMetadataRepository();
}
Modified: trunk/engine/src/main/java/org/teiid/query/resolver/QueryResolver.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/resolver/QueryResolver.java 2011-04-29 18:34:21 UTC (rev 3133)
+++ trunk/engine/src/main/java/org/teiid/query/resolver/QueryResolver.java 2011-05-02 17:02:28 UTC (rev 3134)
@@ -439,9 +439,7 @@
qmi = qmi.getDesignTimeMetadata();
cacheString = "transformation/" + cacheString; //$NON-NLS-1$
QueryNode cachedNode = (QueryNode)qmi.getFromMetadataCache(virtualGroup.getMetadataID(), cacheString);
- if (cachedNode == null
- || (qnode.getQuery() != null && !cachedNode.getQuery().equals(qnode.getQuery()))
- || (qnode.getCommand() != null && !cachedNode.getCommand().equals(qnode.getCommand()))) {
+ if (cachedNode == null) {
Command result = qnode.getCommand();
List bindings = null;
if (result == null) {
Modified: trunk/engine/src/main/java/org/teiid/query/resolver/command/AlterResolver.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/resolver/command/AlterResolver.java 2011-04-29 18:34:21 UTC (rev 3133)
+++ trunk/engine/src/main/java/org/teiid/query/resolver/command/AlterResolver.java 2011-05-02 17:02:28 UTC (rev 3134)
@@ -25,7 +25,7 @@
import org.teiid.api.exception.query.QueryMetadataException;
import org.teiid.api.exception.query.QueryResolverException;
import org.teiid.core.TeiidComponentException;
-import org.teiid.metadata.Table.TriggerOperation;
+import org.teiid.metadata.Table.TriggerEvent;
import org.teiid.query.QueryPlugin;
import org.teiid.query.metadata.TempMetadataAdapter;
import org.teiid.query.resolver.CommandResolver;
@@ -47,8 +47,8 @@
int type = Command.TYPE_QUERY;
boolean viewTarget = true;
if (alter instanceof AlterTrigger) {
- TriggerOperation op = ((AlterTrigger)alter).getOperation();
- switch (op) {
+ TriggerEvent event = ((AlterTrigger)alter).getEvent();
+ switch (event) {
case DELETE:
type = Command.TYPE_DELETE;
break;
@@ -66,7 +66,9 @@
if (viewTarget && !QueryResolver.isView(alter.getTarget(), metadata)) {
throw new QueryResolverException(QueryPlugin.Util.getString("AlterResolver.not_a_view", alter.getTarget())); //$NON-NLS-1$
}
- QueryResolver.resolveCommand(alter.getDefinition(), alter.getTarget(), type, metadata.getDesignTimeMetadata());
+ if (alter.getDefinition() != null) {
+ QueryResolver.resolveCommand(alter.getDefinition(), alter.getTarget(), type, metadata.getDesignTimeMetadata());
+ }
}
}
Modified: trunk/engine/src/main/java/org/teiid/query/sql/lang/Alter.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/sql/lang/Alter.java 2011-04-29 18:34:21 UTC (rev 3133)
+++ trunk/engine/src/main/java/org/teiid/query/sql/lang/Alter.java 2011-05-02 17:02:28 UTC (rev 3134)
@@ -62,7 +62,9 @@
public void cloneOnTo(Alter<T> clone) {
copyMetadataState(clone);
- clone.setDefinition((T)getDefinition().clone());
+ if (this.definition != null) {
+ clone.setDefinition((T)this.definition.clone());
+ }
clone.setTarget(getTarget().clone());
}
Modified: trunk/engine/src/main/java/org/teiid/query/sql/lang/AlterTrigger.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/sql/lang/AlterTrigger.java 2011-04-29 18:34:21 UTC (rev 3133)
+++ trunk/engine/src/main/java/org/teiid/query/sql/lang/AlterTrigger.java 2011-05-02 17:02:28 UTC (rev 3134)
@@ -22,20 +22,23 @@
package org.teiid.query.sql.lang;
+import org.teiid.core.util.EquivalenceUtil;
import org.teiid.metadata.Table;
import org.teiid.query.sql.LanguageVisitor;
import org.teiid.query.sql.proc.TriggerAction;
public class AlterTrigger extends Alter<TriggerAction> {
- private Table.TriggerOperation operation;
+ private Table.TriggerEvent event;
+ private Boolean enabled;
+ private boolean create;
- public Table.TriggerOperation getOperation() {
- return operation;
+ public Table.TriggerEvent getEvent() {
+ return event;
}
- public void setOperation(Table.TriggerOperation operation) {
- this.operation = operation;
+ public void setEvent(Table.TriggerEvent operation) {
+ this.event = operation;
}
@Override
@@ -47,7 +50,9 @@
public AlterTrigger clone() {
AlterTrigger clone = new AlterTrigger();
cloneOnTo(clone);
- clone.operation = operation;
+ clone.event = event;
+ clone.enabled = this.enabled;
+ clone.create = this.create;
return clone;
}
@@ -65,6 +70,24 @@
return true;
}
AlterTrigger other = (AlterTrigger)obj;
- return other.operation == this.operation;
+ return EquivalenceUtil.areEqual(this.enabled, other.enabled)
+ && this.create == other.create
+ && other.event == this.event;
}
+
+ public void setEnabled(Boolean enabled) {
+ this.enabled = enabled;
+ }
+
+ public Boolean getEnabled() {
+ return enabled;
+ }
+
+ public boolean isCreate() {
+ return create;
+ }
+
+ public void setCreate(boolean create) {
+ this.create = create;
+ }
}
Modified: trunk/engine/src/main/java/org/teiid/query/sql/visitor/CommandCollectorVisitor.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/sql/visitor/CommandCollectorVisitor.java 2011-04-29 18:34:21 UTC (rev 3133)
+++ trunk/engine/src/main/java/org/teiid/query/sql/visitor/CommandCollectorVisitor.java 2011-05-02 17:02:28 UTC (rev 3134)
@@ -126,7 +126,9 @@
@Override
public void visit(AlterTrigger alterTrigger) {
- this.commands.add(alterTrigger.getDefinition());
+ if (alterTrigger.getDefinition() != null) {
+ this.commands.add(alterTrigger.getDefinition());
+ }
}
@Override
Modified: trunk/engine/src/main/java/org/teiid/query/sql/visitor/SQLStringVisitor.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/sql/visitor/SQLStringVisitor.java 2011-04-29 18:34:21 UTC (rev 3133)
+++ trunk/engine/src/main/java/org/teiid/query/sql/visitor/SQLStringVisitor.java 2011-05-02 17:02:28 UTC (rev 3134)
@@ -1974,7 +1974,11 @@
@Override
public void visit(AlterTrigger alterTrigger) {
- append(ALTER);
+ if (alterTrigger.isCreate()) {
+ append(CREATE);
+ } else {
+ append(ALTER);
+ }
append(SPACE);
append(TRIGGER);
append(SPACE);
@@ -1986,12 +1990,17 @@
append(SPACE);
append(OF);
append(SPACE);
- append(alterTrigger.getOperation());
- beginClause(0);
- append(AS);
- append("\n"); //$NON-NLS-1$
- addTabs(0);
- append(alterTrigger.getDefinition());
+ append(alterTrigger.getEvent());
+ if (alterTrigger.getDefinition() != null) {
+ beginClause(0);
+ append(AS);
+ append("\n"); //$NON-NLS-1$
+ addTabs(0);
+ append(alterTrigger.getDefinition());
+ } else {
+ append(SPACE);
+ append(alterTrigger.getEnabled()?NonReserved.ENABLED:NonReserved.DISABLED);
+ }
}
@Override
Modified: trunk/engine/src/main/java/org/teiid/query/tempdata/TempTableDataManager.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/tempdata/TempTableDataManager.java 2011-04-29 18:34:21 UTC (rev 3133)
+++ trunk/engine/src/main/java/org/teiid/query/tempdata/TempTableDataManager.java 2011-05-02 17:02:28 UTC (rev 3134)
@@ -58,6 +58,7 @@
import org.teiid.language.SQLConstants.Reserved;
import org.teiid.logging.LogConstants;
import org.teiid.logging.LogManager;
+import org.teiid.metadata.MetadataRepository;
import org.teiid.metadata.FunctionMethod.Determinism;
import org.teiid.query.QueryPlugin;
import org.teiid.query.eval.Evaluator;
@@ -486,7 +487,7 @@
if (hint != null) {
table.setPreferMemory(hint.getPrefersMemory());
if (hint.getTtl() != null) {
- info.setTtl(table.getCacheHint().getTtl());
+ info.setTtl(hint.getTtl());
}
if (pk != null) {
updatable = hint.isUpdatable();
@@ -620,4 +621,14 @@
return result;
}
+ @Override
+ public EventDistributor getEventDistributor() {
+ return this.eventDistributor;
+ }
+
+ @Override
+ public MetadataRepository getMetadataRepository() {
+ return this.processorDataManager.getMetadataRepository();
+ }
+
}
Modified: trunk/engine/src/main/java/org/teiid/query/tempdata/TempTableStore.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/tempdata/TempTableStore.java 2011-04-29 18:34:21 UTC (rev 3133)
+++ trunk/engine/src/main/java/org/teiid/query/tempdata/TempTableStore.java 2011-05-02 17:02:28 UTC (rev 3134)
@@ -275,14 +275,22 @@
for (Object index : indexes) {
id.addIndex(resolveIndex(metadata, id, index));
}
- Command c = (Command)QueryResolver.resolveView(group, metadata.getVirtualPlan(viewId), SQLConstants.Reserved.SELECT, metadata).getCommand().clone();
- CacheHint hint = c.getCacheHint();
- id.setCacheHint(hint);
}
}
}
+ updateCacheHint(viewId, metadata, group, id);
return id;
}
+
+ private void updateCacheHint(Object viewId,
+ QueryMetadataInterface metadata, GroupSymbol group,
+ TempMetadataID id) throws TeiidComponentException,
+ QueryMetadataException, QueryResolverException,
+ QueryValidatorException {
+ Command c = QueryResolver.resolveView(group, metadata.getVirtualPlan(viewId), SQLConstants.Reserved.SELECT, metadata).getCommand();
+ CacheHint hint = c.getCacheHint();
+ id.setCacheHint(hint);
+ }
static ArrayList<TempMetadataID> resolveIndex(
QueryMetadataInterface metadata, TempMetadataID id, Object pk)
Modified: trunk/engine/src/main/javacc/org/teiid/query/parser/SQLParser.jj
===================================================================
--- trunk/engine/src/main/javacc/org/teiid/query/parser/SQLParser.jj 2011-04-29 18:34:21 UTC (rev 3133)
+++ trunk/engine/src/main/javacc/org/teiid/query/parser/SQLParser.jj 2011-05-02 17:02:28 UTC (rev 3134)
@@ -478,13 +478,34 @@
}
{
(command = createUpdateProcedure(info) |
- command = triggerAction(info))
+ command = forEachRowTriggerAction(info))
<EOF>
{
return command;
}
}
+Command createTrigger(ParseInfo info) :
+{
+ String target = null;
+ TriggerAction triggerAction = null;
+ Token event = null;
+
+}
+{
+ <CREATE> <TRIGGER> <ON> target = id() nonReserved("INSTEAD") <OF>
+ (event = <INSERT> | event = <UPDATE> | event = <DELETE>)
+ <AS> triggerAction = forEachRowTriggerAction(info)
+ {
+ AlterTrigger alterTrigger = new AlterTrigger();
+ alterTrigger.setTarget(new GroupSymbol(target));
+ alterTrigger.setDefinition(triggerAction);
+ alterTrigger.setEvent(Table.TriggerEvent.valueOf(event.image.toUpperCase()));
+ alterTrigger.setCreate(true);
+ return alterTrigger;
+ }
+}
+
Command alter(ParseInfo info) :
{
String target = null;
@@ -492,7 +513,8 @@
Block block = null;
TriggerAction triggerAction = null;
Token comment = null;
- Table.TriggerOperation op = null;
+ Token event = null;
+ String enabled = null;
}
{
<ALTER>
@@ -520,19 +542,23 @@
return alterProc;
}
| (<TRIGGER> <ON> target = id() nonReserved("INSTEAD") <OF>
- (<INSERT> {op = Table.TriggerOperation.INSERT;} |<UPDATE> {op = Table.TriggerOperation.UPDATE;}|<DELETE> {op = Table.TriggerOperation.DELETE;})
- <AS> triggerAction = triggerAction(info))
+ (event = <INSERT> | event = <UPDATE> | event = <DELETE>)
+ ((<AS> triggerAction = forEachRowTriggerAction(info))
+ |enabled = nonReserved("ENABLED","DISABLED")))
{
AlterTrigger alterTrigger = new AlterTrigger();
alterTrigger.setTarget(new GroupSymbol(target));
alterTrigger.setDefinition(triggerAction);
- alterTrigger.setOperation(op);
+ alterTrigger.setEvent(Table.TriggerEvent.valueOf(event.image.toUpperCase()));
+ if (enabled != null) {
+ alterTrigger.setEnabled(enabled.equalsIgnoreCase("ENABLED"));
+ }
return alterTrigger;
}
)
}
-TriggerAction triggerAction(ParseInfo info) :
+TriggerAction forEachRowTriggerAction(ParseInfo info) :
{
Block b = null;
}
@@ -555,8 +581,9 @@
command = update(info) |
command = delete(info) |
command = dropTable(info) |
- command = createTempTable(info) |
- command = alter(info)
+ LOOKAHEAD(2) command = createTempTable(info) |
+ command = alter(info) |
+ command = createTrigger(info)
)
{
return command;
Modified: trunk/engine/src/main/resources/org/teiid/query/i18n.properties
===================================================================
--- trunk/engine/src/main/resources/org/teiid/query/i18n.properties 2011-04-29 18:34:21 UTC (rev 3133)
+++ trunk/engine/src/main/resources/org/teiid/query/i18n.properties 2011-05-02 17:02:28 UTC (rev 3134)
@@ -831,8 +831,9 @@
DataTierManager.could_not_obtain_connector_binding=Could not obtain connection factory for model {0} in VDB name= {1}, version {2}
+DataTierManagerImpl.max_value_length=Property value length exceeds max of {0}.
+DataTierManagerImpl.unknown_uuid=Could not find a metadata record with uuid {0}.
-
DQPCore.Unable_to_load_metadata_for_VDB_name__{0},_version__{1}=Unable to load metadata for VDB name= {0}, version= {1}
DQPCore.Unknown_query_metadata_exception_while_registering_query__{0}.=Unknown query metadata exception while registering query: {0}.
DQPCore.Clearing_prepared_plan_cache=Clearing prepared plan cache
@@ -912,4 +913,7 @@
ArrayTableNode.conversion_error=Could not convert value for column: {0}
AlterResolver.not_a_view={0} is not a valid view.
-ValidationVisitor.not_a_procedure={0} is not a valid virtual procedure.
\ No newline at end of file
+ValidationVisitor.not_a_procedure={0} is not a valid virtual procedure.
+
+DdlPlan.event_not_exists={0} does not have an INSTEAD OF trigger defined for {1}.
+DdlPlan.event_already_exists={0} already has an INSTEAD OF trigger defined for {1}.
\ No newline at end of file
Modified: trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestDQPCore.java
===================================================================
--- trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestDQPCore.java 2011-04-29 18:34:21 UTC (rev 3133)
+++ trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestDQPCore.java 2011-05-02 17:02:28 UTC (rev 3134)
@@ -364,7 +364,7 @@
assertEquals(2, this.core.getPrepPlanCache().getCacheHitCount());
- //perform a minor update, we will purge the plan
+ //perform a major update, we will purge the plan
sql = "delete from #temp"; //$NON-NLS-1$
reqMsg = exampleRequestMessage(sql);
rm = execute(userName, sessionid, reqMsg);
Modified: trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestRequest.java
===================================================================
--- trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestRequest.java 2011-04-29 18:34:21 UTC (rev 3133)
+++ trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestRequest.java 2011-05-02 17:02:28 UTC (rev 3134)
@@ -40,6 +40,7 @@
import org.teiid.query.processor.FakeDataManager;
import org.teiid.query.resolver.QueryResolver;
import org.teiid.query.sql.lang.Command;
+import org.teiid.query.tempdata.TempTableStore;
import org.teiid.query.unittest.FakeMetadataFactory;
import org.teiid.query.util.ContextProperties;
@@ -50,7 +51,8 @@
*/
public class TestRequest extends TestCase {
- private final static String QUERY = "SELECT * FROM pm1.g1"; //$NON-NLS-1$
+ private static final TempTableStore TEMP_TABLE_STORE = new TempTableStore("1"); //$NON-NLS-1$
+ private final static String QUERY = "SELECT * FROM pm1.g1"; //$NON-NLS-1$
/**
* Constructor for TestRequest.
@@ -77,7 +79,7 @@
RequestMessage message = new RequestMessage();
DQPWorkContext workContext = FakeMetadataFactory.buildWorkContext(metadata, FakeMetadataFactory.example1VDB());
- request.initialize(message, null, null,new FakeTransactionService(),null, workContext, null);
+ request.initialize(message, null, null,new FakeTransactionService(), TEMP_TABLE_STORE, workContext, null);
request.initMetadata();
request.setAuthorizationValidator(new DataRoleAuthorizationValidator(true, true, true));
request.validateAccess(command);
@@ -132,15 +134,12 @@
Mockito.stub(repo.getConnectorManager(Mockito.anyString())).toReturn(new AutoGenDataService());
request.initialize(message, Mockito.mock(BufferManager.class),
- new FakeDataManager(), new FakeTransactionService(), null, workContext, null);
+ new FakeDataManager(), new FakeTransactionService(), TEMP_TABLE_STORE, workContext, null);
request.setAuthorizationValidator(new DataRoleAuthorizationValidator(false, true, true));
request.processRequest();
return request;
}
-
-
-
/**
* Test PreparedStatementRequest.processRequest().
* Test processing the same query twice, and make sure that doesn't cause problems.
Modified: trunk/engine/src/test/java/org/teiid/query/optimizer/proc/TestProcedurePlanner.java
===================================================================
--- trunk/engine/src/test/java/org/teiid/query/optimizer/proc/TestProcedurePlanner.java 2011-04-29 18:34:21 UTC (rev 3133)
+++ trunk/engine/src/test/java/org/teiid/query/optimizer/proc/TestProcedurePlanner.java 2011-05-02 17:02:28 UTC (rev 3134)
@@ -71,7 +71,7 @@
ValidatorReport report = Validator.validate(userCommand, metadata);
if (report.hasItems()) {
- ValidatorFailure firstFailure = (ValidatorFailure) report.getItems().iterator().next();
+ ValidatorFailure firstFailure = report.getItems().iterator().next();
throw new QueryValidatorException(firstFailure.getMessage());
}
userCommand = QueryRewriter.rewrite(userCommand, metadata, null);
Modified: trunk/engine/src/test/java/org/teiid/query/parser/TestParseAlter.java
===================================================================
--- trunk/engine/src/test/java/org/teiid/query/parser/TestParseAlter.java 2011-04-29 18:34:21 UTC (rev 3133)
+++ trunk/engine/src/test/java/org/teiid/query/parser/TestParseAlter.java 2011-05-02 17:02:28 UTC (rev 3134)
@@ -25,7 +25,7 @@
import static org.teiid.query.parser.TestParser.*;
import org.junit.Test;
-import org.teiid.metadata.Table.TriggerOperation;
+import org.teiid.metadata.Table.TriggerEvent;
import org.teiid.query.sql.lang.AlterTrigger;
import org.teiid.query.sql.lang.AlterView;
import org.teiid.query.sql.lang.QueryCommand;
@@ -52,9 +52,26 @@
@Test public void testAlterTrigger() throws Exception {
AlterTrigger alterTrigger = new AlterTrigger();
alterTrigger.setTarget(new GroupSymbol("x"));
- alterTrigger.setOperation(TriggerOperation.UPDATE);
+ alterTrigger.setEvent(TriggerEvent.UPDATE);
alterTrigger.setDefinition((TriggerAction) QueryParser.getQueryParser().parseUpdateProcedure("for each row begin end"));
helpTest("alter trigger on x instead of update as for each row begin end", "ALTER TRIGGER ON x INSTEAD OF UPDATE AS\nFOR EACH ROW\nBEGIN\nEND", alterTrigger);
}
+ @Test public void testAlterDisabled() throws Exception {
+ AlterTrigger alterTrigger = new AlterTrigger();
+ alterTrigger.setTarget(new GroupSymbol("x"));
+ alterTrigger.setEvent(TriggerEvent.UPDATE);
+ alterTrigger.setEnabled(false);
+ helpTest("alter trigger on x instead of update disabled", "ALTER TRIGGER ON x INSTEAD OF UPDATE DISABLED", alterTrigger);
+ }
+
+ @Test public void testCreateTrigger() throws Exception {
+ AlterTrigger alterTrigger = new AlterTrigger();
+ alterTrigger.setCreate(true);
+ alterTrigger.setTarget(new GroupSymbol("x"));
+ alterTrigger.setEvent(TriggerEvent.UPDATE);
+ alterTrigger.setDefinition((TriggerAction) QueryParser.getQueryParser().parseUpdateProcedure("for each row begin end"));
+ helpTest("create trigger on x instead of update as for each row begin end", "CREATE TRIGGER ON x INSTEAD OF UPDATE AS\nFOR EACH ROW\nBEGIN\nEND", alterTrigger);
+ }
+
}
Modified: trunk/engine/src/test/java/org/teiid/query/processor/FakeDataManager.java
===================================================================
--- trunk/engine/src/test/java/org/teiid/query/processor/FakeDataManager.java 2011-04-29 18:34:21 UTC (rev 3133)
+++ trunk/engine/src/test/java/org/teiid/query/processor/FakeDataManager.java 2011-05-02 17:02:28 UTC (rev 3134)
@@ -34,7 +34,9 @@
import org.teiid.common.buffer.BlockedException;
import org.teiid.common.buffer.TupleSource;
import org.teiid.core.TeiidComponentException;
+import org.teiid.events.EventDistributor;
import org.teiid.logging.LogManager;
+import org.teiid.metadata.MetadataRepository;
import org.teiid.query.eval.Evaluator;
import org.teiid.query.metadata.QueryMetadataInterface;
import org.teiid.query.metadata.TempMetadataID;
@@ -389,4 +391,16 @@
this.registerTuples(group.getMetadataID(), elementSymbols, tuples);
}
+ @Override
+ public EventDistributor getEventDistributor() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public MetadataRepository getMetadataRepository() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
}
\ No newline at end of file
Modified: trunk/engine/src/test/java/org/teiid/query/processor/HardcodedDataManager.java
===================================================================
--- trunk/engine/src/test/java/org/teiid/query/processor/HardcodedDataManager.java 2011-04-29 18:34:21 UTC (rev 3133)
+++ trunk/engine/src/test/java/org/teiid/query/processor/HardcodedDataManager.java 2011-05-02 17:02:28 UTC (rev 3134)
@@ -32,6 +32,8 @@
import org.teiid.common.buffer.TupleSource;
import org.teiid.core.TeiidComponentException;
import org.teiid.dqp.internal.datamgr.LanguageBridgeFactory;
+import org.teiid.events.EventDistributor;
+import org.teiid.metadata.MetadataRepository;
import org.teiid.query.metadata.QueryMetadataInterface;
import org.teiid.query.sql.lang.Command;
import org.teiid.query.util.CommandContext;
@@ -168,4 +170,16 @@
}
+ @Override
+ public EventDistributor getEventDistributor() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public MetadataRepository getMetadataRepository() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
}
Modified: trunk/engine/src/test/java/org/teiid/query/processor/relational/TestBatchedUpdateNode.java
===================================================================
--- trunk/engine/src/test/java/org/teiid/query/processor/relational/TestBatchedUpdateNode.java 2011-04-29 18:34:21 UTC (rev 3133)
+++ trunk/engine/src/test/java/org/teiid/query/processor/relational/TestBatchedUpdateNode.java 2011-05-02 17:02:28 UTC (rev 3134)
@@ -36,6 +36,8 @@
import org.teiid.common.buffer.TupleBatch;
import org.teiid.common.buffer.TupleSource;
import org.teiid.core.TeiidComponentException;
+import org.teiid.events.EventDistributor;
+import org.teiid.metadata.MetadataRepository;
import org.teiid.query.metadata.QueryMetadataInterface;
import org.teiid.query.optimizer.TestBatchedUpdatePlanner;
import org.teiid.query.processor.ProcessorDataManager;
@@ -219,6 +221,16 @@
actualCommands.add(command);
return new FakeTupleSource(numExecutedCommands);
}
+ @Override
+ public EventDistributor getEventDistributor() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+ @Override
+ public MetadataRepository getMetadataRepository() {
+ // TODO Auto-generated method stub
+ return null;
+ }
}
private static final class FakeTupleSource implements TupleSource {
private int currentTuple = 0;
Modified: trunk/engine/src/test/java/org/teiid/query/processor/relational/TestProjectIntoNode.java
===================================================================
--- trunk/engine/src/test/java/org/teiid/query/processor/relational/TestProjectIntoNode.java 2011-04-29 18:34:21 UTC (rev 3133)
+++ trunk/engine/src/test/java/org/teiid/query/processor/relational/TestProjectIntoNode.java 2011-05-02 17:02:28 UTC (rev 3134)
@@ -36,6 +36,8 @@
import org.teiid.common.buffer.TupleSource;
import org.teiid.core.TeiidComponentException;
import org.teiid.core.TeiidProcessingException;
+import org.teiid.events.EventDistributor;
+import org.teiid.metadata.MetadataRepository;
import org.teiid.query.eval.Evaluator;
import org.teiid.query.processor.FakeTupleSource;
import org.teiid.query.processor.ProcessorDataManager;
@@ -184,6 +186,16 @@
Object val = row.get(0);
assertEquals(new Integer(value), val);
}
+ @Override
+ public EventDistributor getEventDistributor() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+ @Override
+ public MetadataRepository getMetadataRepository() {
+ // TODO Auto-generated method stub
+ return null;
+ }
}
private static final class FakeDataTupleSource implements TupleSource {
Modified: trunk/jboss-integration/src/main/java/org/teiid/jboss/deployers/RuntimeEngineDeployer.java
===================================================================
--- trunk/jboss-integration/src/main/java/org/teiid/jboss/deployers/RuntimeEngineDeployer.java 2011-04-29 18:34:21 UTC (rev 3133)
+++ trunk/jboss-integration/src/main/java/org/teiid/jboss/deployers/RuntimeEngineDeployer.java 2011-05-02 17:02:28 UTC (rev 3134)
@@ -70,7 +70,6 @@
import org.teiid.adminapi.impl.VDBMetaData;
import org.teiid.adminapi.impl.WorkerPoolStatisticsMetadata;
import org.teiid.adminapi.jboss.AdminProvider;
-import org.teiid.api.exception.query.QueryMetadataException;
import org.teiid.cache.CacheFactory;
import org.teiid.client.DQP;
import org.teiid.client.RequestMessage;
@@ -90,6 +89,7 @@
import org.teiid.dqp.internal.process.DQPConfiguration;
import org.teiid.dqp.internal.process.DQPCore;
import org.teiid.dqp.internal.process.DQPWorkContext;
+import org.teiid.dqp.internal.process.DataTierManagerImpl;
import org.teiid.dqp.internal.process.TransactionServerImpl;
import org.teiid.dqp.service.BufferService;
import org.teiid.dqp.service.SessionService;
@@ -102,16 +102,20 @@
import org.teiid.logging.LogConstants;
import org.teiid.logging.LogManager;
import org.teiid.logging.MessageLevel;
+import org.teiid.metadata.AbstractMetadataRecord;
import org.teiid.metadata.Column;
import org.teiid.metadata.ColumnStats;
import org.teiid.metadata.MetadataRepository;
+import org.teiid.metadata.Procedure;
import org.teiid.metadata.Schema;
import org.teiid.metadata.Table;
import org.teiid.metadata.TableStats;
+import org.teiid.metadata.Table.TriggerEvent;
import org.teiid.net.TeiidURL;
import org.teiid.query.QueryPlugin;
import org.teiid.query.metadata.TransformationMetadata;
import org.teiid.query.optimizer.relational.RelationalPlanner;
+import org.teiid.query.processor.DdlPlan;
import org.teiid.query.tempdata.TempTableStore;
import org.teiid.security.SecurityHelper;
import org.teiid.transport.ClientServiceRegistry;
@@ -672,38 +676,23 @@
updateModified(true, vdbName, vdbVersion, schema, tableNames);
}
- @Override
- public void schemaModification(String vdbName, int vdbVersion,
- String schema, String... objectNames) {
- updateModified(false, vdbName, vdbVersion, schema, objectNames);
- }
-
private void updateModified(boolean data, String vdbName, int vdbVersion, String schema,
String... objectNames) {
- VDBMetaData vdb = this.vdbRepository.getVDB(vdbName, vdbVersion);
- if (vdb == null) {
+ Schema s = getSchema(vdbName, vdbVersion, schema);
+ if (s == null) {
return;
}
- TransformationMetadata tm = vdb.getAttachment(TransformationMetadata.class);
- if (tm == null) {
- return;
- }
- try {
- Schema s = tm.getMetadataStore().getSchema(schema.toUpperCase());
- long ts = System.currentTimeMillis();
- for (String name:objectNames) {
- Table table = s.getTables().get(name);
- if (table == null) {
- continue;
- }
- if (data) {
- table.setLastDataModification(ts);
- } else {
- table.setLastModified(ts);
- }
+ long ts = System.currentTimeMillis();
+ for (String name:objectNames) {
+ Table table = s.getTables().get(name);
+ if (table == null) {
+ continue;
}
- } catch (TeiidException e) {
- LogManager.logError(LogConstants.CTX_DQP, e, QueryPlugin.Util.getString("DQPCore.unable_to_process_event")); //$NON-NLS-1$
+ if (data) {
+ table.setLastDataModification(ts);
+ } else {
+ table.setLastModified(ts);
+ }
}
}
@@ -737,6 +726,14 @@
private Table getTable(String vdbName, int vdbVersion, String schemaName,
String tableName) {
+ Schema s = getSchema(vdbName, vdbVersion, schemaName);
+ if (s == null) {
+ return null;
+ }
+ return s.getTables().get(tableName.toUpperCase());
+ }
+
+ private Schema getSchema(String vdbName, int vdbVersion, String schemaName) {
VDBMetaData vdb = this.vdbRepository.getVDB(vdbName, vdbVersion);
if (vdb == null) {
return null;
@@ -745,17 +742,62 @@
if (tm == null) {
return null;
}
- Schema s;
- try {
- s = tm.getMetadataStore().getSchema(schemaName.toUpperCase());
- } catch (QueryMetadataException e) {
- LogManager.logError(LogConstants.CTX_DQP, e, QueryPlugin.Util.getString("DQPCore.unable_to_process_event")); //$NON-NLS-1$
- return null;
+ return tm.getMetadataStore().getSchemas().get(schemaName.toUpperCase());
+ }
+
+ @Override
+ public void setInsteadOfTriggerDefinition(String vdbName, int vdbVersion,
+ String schema, String viewName, TriggerEvent triggerEvent,
+ String triggerDefinition, Boolean enabled) {
+ Table t = getTable(vdbName, vdbVersion, schema, viewName);
+ if (t == null) {
+ return;
}
- return s.getTables().get(tableName.toUpperCase());
+ DdlPlan.alterInsteadOfTrigger(this.vdbRepository.getVDB(vdbName, vdbVersion), t, triggerDefinition, enabled, triggerEvent);
}
@Override
+ public void setProcedureDefinition(String vdbName, int vdbVersion,
+ String schema, String procName, String definition) {
+ Schema s = getSchema(vdbName, vdbVersion, schema);
+ if (s == null) {
+ return;
+ }
+ Procedure p = s.getProcedures().get(procName.toUpperCase());
+ if (p == null) {
+ return;
+ }
+ DdlPlan.alterProcedureDefinition(this.vdbRepository.getVDB(vdbName, vdbVersion), p, definition);
+ }
+
+ @Override
+ public void setViewDefinition(String vdbName, int vdbVersion,
+ String schema, String viewName, String definition) {
+ Table t = getTable(vdbName, vdbVersion, schema, viewName);
+ if (t == null) {
+ return;
+ }
+ DdlPlan.alterView(this.vdbRepository.getVDB(vdbName, vdbVersion), t, definition);
+ }
+
+ @Override
+ public void setProperty(String vdbName, int vdbVersion, String uuid,
+ String name, String value) {
+ VDBMetaData vdb = this.vdbRepository.getVDB(vdbName, vdbVersion);
+ if (vdb == null) {
+ return;
+ }
+ TransformationMetadata tm = vdb.getAttachment(TransformationMetadata.class);
+ if (tm == null) {
+ return;
+ }
+ AbstractMetadataRecord record = DataTierManagerImpl.getByUuid(tm.getMetadataStore(), uuid);
+ if (record != null) {
+ record.setProperty(name, value);
+ }
+ }
+
+ @Override
public EventDistributor getEventDistributor() {
if (this.eventDistributor != null) {
return eventDistributor;
Modified: trunk/metadata/src/main/resources/System.vdb
===================================================================
(Binary files differ)
Modified: trunk/runtime/src/main/java/org/teiid/deployers/VDBRepository.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/deployers/VDBRepository.java 2011-04-29 18:34:21 UTC (rev 3133)
+++ trunk/runtime/src/main/java/org/teiid/deployers/VDBRepository.java 2011-05-02 17:02:28 UTC (rev 3134)
@@ -27,6 +27,7 @@
import java.util.Collection;
import java.util.HashMap;
import java.util.LinkedHashMap;
+import java.util.LinkedHashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
@@ -44,6 +45,7 @@
import org.teiid.dqp.internal.datamgr.ConnectorManagerRepository;
import org.teiid.logging.LogConstants;
import org.teiid.logging.LogManager;
+import org.teiid.metadata.AbstractMetadataRecord;
import org.teiid.metadata.Column;
import org.teiid.metadata.ColumnStats;
import org.teiid.metadata.Datatype;
@@ -113,8 +115,13 @@
LinkedList<MetadataStore> allStores = new LinkedList<MetadataStore>(stores.getStores());
allStores.addAll(Arrays.asList(cvdb.getAdditionalStores()));
for (MetadataStore metadataStore : allStores) {
+ Collection<AbstractMetadataRecord> records = new LinkedHashSet<AbstractMetadataRecord>();
for (Schema schema : metadataStore.getSchemas().values()) {
+ records.add(schema);
for (Table t : schema.getTables().values()) {
+ records.add(t);
+ records.addAll(t.getColumns());
+ records.addAll(t.getAllKeys());
if (t.isPhysical()) {
TableStats stats = metadataRepository.getTableStats(vdbName, vdbVersion, t);
if (stats != null) {
@@ -132,22 +139,39 @@
t.setSelectTransformation(def);
}
if (t.supportsUpdate()) {
- def = metadataRepository.getInsteadOfTriggerDefinition(vdbName, vdbVersion, t, Table.TriggerOperation.INSERT);
+ def = metadataRepository.getInsteadOfTriggerDefinition(vdbName, vdbVersion, t, Table.TriggerEvent.INSERT);
if (def != null) {
t.setInsertPlan(def);
}
- def = metadataRepository.getInsteadOfTriggerDefinition(vdbName, vdbVersion, t, Table.TriggerOperation.UPDATE);
+ Boolean enabled = metadataRepository.isInsteadOfTriggerEnabled(vdbName, vdbVersion, t, Table.TriggerEvent.INSERT);
+ if (enabled != null) {
+ t.setInsertPlanEnabled(enabled);
+ }
+ def = metadataRepository.getInsteadOfTriggerDefinition(vdbName, vdbVersion, t, Table.TriggerEvent.UPDATE);
if (def != null) {
t.setUpdatePlan(def);
}
- def = metadataRepository.getInsteadOfTriggerDefinition(vdbName, vdbVersion, t, Table.TriggerOperation.DELETE);
+ enabled = metadataRepository.isInsteadOfTriggerEnabled(vdbName, vdbVersion, t, Table.TriggerEvent.UPDATE);
+ if (enabled != null) {
+ t.setUpdatePlanEnabled(enabled);
+ }
+ def = metadataRepository.getInsteadOfTriggerDefinition(vdbName, vdbVersion, t, Table.TriggerEvent.DELETE);
if (def != null) {
t.setDeletePlan(def);
}
+ enabled = metadataRepository.isInsteadOfTriggerEnabled(vdbName, vdbVersion, t, Table.TriggerEvent.DELETE);
+ if (enabled != null) {
+ t.setDeletePlanEnabled(enabled);
+ }
}
}
}
for (Procedure p : schema.getProcedures().values()) {
+ records.add(p);
+ records.addAll(p.getParameters());
+ if (p.getResultSet() != null) {
+ records.addAll(p.getResultSet().getColumns());
+ }
if (p.isVirtual() && !p.isFunction()) {
String proc = metadataRepository.getProcedureDefinition(vdbName, vdbVersion, p);
if (proc != null) {
@@ -156,6 +180,12 @@
}
}
}
+ for (AbstractMetadataRecord abstractMetadataRecord : records) {
+ LinkedHashMap<String, String> p = metadataRepository.getProperties(vdbName, vdbVersion, abstractMetadataRecord);
+ if (p != null) {
+ abstractMetadataRecord.setProperties(p);
+ }
+ }
}
}
Modified: trunk/test-integration/common/src/test/java/org/teiid/systemmodel/TestMetadataUpdates.java
===================================================================
--- trunk/test-integration/common/src/test/java/org/teiid/systemmodel/TestMetadataUpdates.java 2011-04-29 18:34:21 UTC (rev 3133)
+++ trunk/test-integration/common/src/test/java/org/teiid/systemmodel/TestMetadataUpdates.java 2011-05-02 17:02:28 UTC (rev 3134)
@@ -23,6 +23,7 @@
import static org.junit.Assert.*;
+import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
@@ -39,7 +40,6 @@
import org.teiid.metadata.MetadataRepository;
import org.teiid.metadata.Procedure;
import org.teiid.metadata.Table;
-import org.teiid.metadata.Table.TriggerOperation;
@SuppressWarnings("nls")
public class TestMetadataUpdates {
@@ -72,12 +72,18 @@
return null;
}
});
- Mockito.stub(repo.getInsteadOfTriggerDefinition(Mockito.anyString(), Mockito.anyInt(), (Table)Mockito.anyObject(), (Table.TriggerOperation) Mockito.anyObject())).toAnswer(new Answer<String>() {
+ Mockito.stub(repo.getInsteadOfTriggerDefinition(Mockito.anyString(), Mockito.anyInt(), (Table)Mockito.anyObject(), (Table.TriggerEvent) Mockito.anyObject())).toAnswer(new Answer<String>() {
@Override
public String answer(InvocationOnMock invocation) throws Throwable {
- return "for each row select 1/0; begin end";
+ return "for each row select 1/0;";
}
});
+ Mockito.stub(repo.isInsteadOfTriggerEnabled(Mockito.anyString(), Mockito.anyInt(), (Table)Mockito.anyObject(), (Table.TriggerEvent) Mockito.anyObject())).toAnswer(new Answer<Boolean>() {
+ @Override
+ public Boolean answer(InvocationOnMock invocation) throws Throwable {
+ return Boolean.TRUE;
+ }
+ });
server.deployVDB(VDB, UnitTestUtil.getTestDataPath() + "/metadata.vdb");
connection = server.createConnection("jdbc:teiid:" + VDB); //$NON-NLS-1$ //$NON-NLS-2$
}
@@ -105,4 +111,110 @@
assertEquals(2011, rs.getInt(1));
}
+ @Test public void testSetProperty() throws Exception {
+ CallableStatement s = connection.prepareCall("{? = call sysadmin.setProperty((select uid from tables where name='vw'), 'foo', 'bar')}");
+ assertFalse(s.execute());
+ assertNull(s.getClob(1));
+
+ Statement stmt = connection.createStatement();
+ ResultSet rs = stmt.executeQuery("select name, \"value\" from properties where uid = (select uid from tables where name='vw')");
+ rs.next();
+ assertEquals("foo", rs.getString(1));
+ assertEquals("bar", rs.getString(2));
+ }
+
+ @Test(expected=SQLException.class) public void testSetProperty_Invalid() throws Exception {
+ CallableStatement s = connection.prepareCall("{? = call sysadmin.setProperty('ah', 'foo', 'bar')}");
+ s.execute();
+ }
+
+ @Test public void testAlterView() throws Exception {
+ Statement s = connection.createStatement();
+ ResultSet rs = s.executeQuery("select * from vw");
+ rs.next();
+ assertEquals(2011, rs.getInt(1));
+
+ assertFalse(s.execute("alter view vw as select '2012'"));
+
+ rs = s.executeQuery("select * from vw");
+ rs.next();
+ assertEquals(2012, rs.getInt(1));
+ }
+
+ @Test public void testAlterProcedure() throws Exception {
+ Statement s = connection.createStatement();
+ ResultSet rs = s.executeQuery("call proc(1)");
+ rs.next();
+ assertEquals(2011, rs.getInt(1));
+
+ assertFalse(s.execute("alter procedure proc as begin select '2012'; end"));
+
+ //the sleep is needed to ensure that the plan is invalidated
+ Thread.sleep(100);
+
+ rs = s.executeQuery("call proc(1)");
+ rs.next();
+ assertEquals(2012, rs.getInt(1));
+ }
+
+ @Test public void testAlterTriggerActionUpdate() throws Exception {
+ Statement s = connection.createStatement();
+ try {
+ s.execute("update vw set x = 1");
+ fail();
+ } catch (SQLException e) {
+ }
+
+ assertFalse(s.execute("alter trigger on vw instead of update as for each row select 1;"));
+
+ s.execute("update vw set x = 1");
+ assertEquals(1, s.getUpdateCount());
+ }
+
+ @Test public void testAlterTriggerActionInsert() throws Exception {
+ Statement s = connection.createStatement();
+ try {
+ s.execute("insert into vw (x) values ('a')");
+ fail();
+ } catch (SQLException e) {
+ }
+
+ assertFalse(s.execute("alter trigger on vw instead of insert as for each row select 1;"));
+
+ s.execute("insert into vw (x) values ('a')");
+ assertEquals(1, s.getUpdateCount());
+ }
+
+ @Test public void testAlterTriggerActionDelete() throws Exception {
+ Statement s = connection.createStatement();
+ try {
+ s.execute("delete from vw");
+ fail();
+ } catch (SQLException e) {
+ }
+
+ assertFalse(s.execute("alter trigger on vw instead of delete as for each row select 1;"));
+
+ s.execute("delete from vw");
+ assertEquals(1, s.getUpdateCount());
+
+ assertFalse(s.execute("alter trigger on vw instead of delete disabled"));
+
+ try {
+ s.execute("delete from vw");
+ fail();
+ } catch (SQLException e) {
+ }
+
+ assertFalse(s.execute("alter trigger on vw instead of delete enabled"));
+
+ s.execute("delete from vw");
+ assertEquals(1, s.getUpdateCount());
+ }
+
+ @Test(expected=SQLException.class) public void testCreateTriggerActionUpdate() throws Exception {
+ Statement s = connection.createStatement();
+ s.execute("create trigger on vw instead of update as for each row select 1;");
+ }
+
}
Modified: trunk/test-integration/common/src/test/java/org/teiid/systemmodel/TestSystemVirtualModel.java
===================================================================
--- trunk/test-integration/common/src/test/java/org/teiid/systemmodel/TestSystemVirtualModel.java 2011-04-29 18:34:21 UTC (rev 3133)
+++ trunk/test-integration/common/src/test/java/org/teiid/systemmodel/TestSystemVirtualModel.java 2011-05-02 17:02:28 UTC (rev 3134)
@@ -84,11 +84,11 @@
}
@Test public void testProperties() {
- String[] expected = { "Name[string] Value[string] UID[string] OID[integer]",
- "pg_type:oid 30 mmuid:ffa4ac73-b549-470e-931f-dc36330cb8c4 1",
- "pg_type:oid 1009 mmuid:d9f36bdc-7b25-4af0-b9f5-a96aac6d3094 2",
- "pg_type:oid 1002 mmuid:bcbed548-176c-4116-a5d6-7638cb0206e1 3",
- "pg_type:oid 1028 mmuid:a385751f-a31a-4d5d-9197-3fbd390b0251 4"
+ String[] expected = { "Name[string] Value[string] UID[string] OID[integer] ClobValue[clob]",
+ "pg_type:oid 30 mmuid:ffa4ac73-b549-470e-931f-dc36330cb8c4 1 30",
+ "pg_type:oid 1009 mmuid:d9f36bdc-7b25-4af0-b9f5-a96aac6d3094 2 1009",
+ "pg_type:oid 1002 mmuid:bcbed548-176c-4116-a5d6-7638cb0206e1 3 1002",
+ "pg_type:oid 1028 mmuid:a385751f-a31a-4d5d-9197-3fbd390b0251 4 1028"
}; //$NON-NLS-1$
executeAndAssertResults("select* from SYS.Properties", expected); //$NON-NLS-1$
Modified: trunk/test-integration/common/src/test/resources/TestMMDatabaseMetaData/testGetColumns.expected
===================================================================
--- trunk/test-integration/common/src/test/resources/TestMMDatabaseMetaData/testGetColumns.expected 2011-04-29 18:34:21 UTC (rev 3133)
+++ trunk/test-integration/common/src/test/resources/TestMMDatabaseMetaData/testGetColumns.expected 2011-05-02 17:02:28 UTC (rev 3134)
@@ -470,6 +470,7 @@
QT_Ora9DS SYS Properties Value 12 string 255 <null> 0 10 0 <null> <null> <null> <null> 255 2 NO <null> <null> <null> !
<null> NO
QT_Ora9DS SYS Properties UID 12 string 50 <null> 0 10 0 <null> <null> <null> <null> 50 3 NO <null> <null> <null> !
<null> NO
QT_Ora9DS SYS Properties OID 4 integer 10 <null> 0 10 0 <null> <null> <null> <null> 10 4 NO <null> <null> <null> !
<null> NO
+QT_Ora9DS SYS Properties ClobValue 2005 clob 2097152 <null> 0 10 1 <null> <null> <null> <null> 2097152 5 YES <null> <null> <null> !
<null> NO
QT_Ora9DS SYS ReferenceKeyColumns PKTABLE_CAT 12 string 255 <null> 0 10 1 <null> <null> <null> <null> 255 1 YES <null> <null> <null> !
<null> NO
QT_Ora9DS SYS ReferenceKeyColumns PKTABLE_SCHEM 12 string 255 <null> 0 10 1 <null> <null> <null> <null> 255 2 YES <null> <null> <null> !
<null> NO
QT_Ora9DS SYS ReferenceKeyColumns PKTABLE_NAME 12 string 255 <null> 0 10 1 <null> <null> <null> <null> 255 3 YES <null> <null> <null> !
<null> NO
@@ -1083,7 +1084,7 @@
QT_Ora9DS XQT xqtFullData BigIntegerValue 2 biginteger 19 <null> 0 10 1 <null> <null> <null> <null> 28 15 YES <null> <null> <null> !
<null> NO
QT_Ora9DS XQT xqtFullData BigDecimalValue 2 bigdecimal 20 <null> 0 10 1 <null> <null> <null> <null> 126 16 YES <null> <null> <null> !
<null> NO
QT_Ora9DS XQT xqtFullData ObjectValue 2000 object 2048 <null> 0 10 1 <null> <null> <null> <null> 2048 17 YES <null> <null> <null> !
<null> NO
-Row Count : 1083
+Row Count : 1084
getColumnName getColumnType getCatalogName getColumnClassName getColumnLabel getColumnTypeName getSchemaName getTableName getColumnDisplaySize getPrecision getScale isAutoIncrement isCaseSensitive isCurrency isDefinitelyWritable isNullable isReadOnly isSearchable isSigned isWritable
VDBName 12 QT_Ora9DS java.lang.String TABLE_CAT string SYS Columns 255 255 0 false false false false 0 true true false false
SchemaName 12 QT_Ora9DS java.lang.String TABLE_SCHEM string SYS Columns 255 255 0 false true false true 1 false true true true
Modified: trunk/test-integration/common/src/test/resources/TestMMDatabaseMetaData/testGetProcedureColumns.expected
===================================================================
--- trunk/test-integration/common/src/test/resources/TestMMDatabaseMetaData/testGetProcedureColumns.expected 2011-04-29 18:34:21 UTC (rev 3133)
+++ trunk/test-integration/common/src/test/resources/TestMMDatabaseMetaData/testGetProcedureColumns.expected 2011-05-02 17:02:28 UTC (rev 3134)
@@ -55,9 +55,13 @@
QT_Ora9DS SYSADMIN setColumnStats nullCount 1 4 integer 10 10 0 10 1 <null> <null> <null> <null> <null> 4 YES setColumnStats
QT_Ora9DS SYSADMIN setColumnStats max 1 12 string 4000 4000 0 10 1 <null> <null> <null> <null> <null> 5 YES setColumnStats
QT_Ora9DS SYSADMIN setColumnStats min 1 12 string 4000 4000 0 10 1 <null> <null> <null> <null> <null> 6 YES setColumnStats
+QT_Ora9DS SYSADMIN setProperty UID 1 12 string 4000 50 0 10 0 <null> <null> <null> <null> <null> 2 NO setProperty
+QT_Ora9DS SYSADMIN setProperty Name 1 12 string 4000 4000 0 10 0 <null> <null> <null> <null> <null> 3 NO setProperty
+QT_Ora9DS SYSADMIN setProperty Value 1 2005 clob 2147483647 2097152 0 10 1 <null> <null> <null> <null> <null> 4 YES setProperty
+QT_Ora9DS SYSADMIN setProperty OldValue 5 2005 clob 2147483647 2097152 0 10 0 <null> <null> <null> <null> <null> 1 NO setProperty
QT_Ora9DS SYSADMIN setTableStats tableName 1 12 string 4000 4000 0 10 0 <null> <null> <null> <null> <null> 1 NO setTableStats
QT_Ora9DS SYSADMIN setTableStats cardinality 1 4 integer 10 10 0 10 0 <null> <null> <null> <null> <null> 2 NO setTableStats
-Row Count : 57
+Row Count : 61
getColumnName getColumnType getCatalogName getColumnClassName getColumnLabel getColumnTypeName getSchemaName getTableName getColumnDisplaySize getPrecision getScale isAutoIncrement isCaseSensitive isCurrency isDefinitelyWritable isNullable isReadOnly isSearchable isSigned isWritable
VDBName 12 QT_Ora9DS java.lang.String PROCEDURE_CAT string SYS ProcedureParams 255 255 0 false false false false 0 true true false false
SchemaName 12 QT_Ora9DS java.lang.String PROCEDURE_SCHEM string SYS ProcedureParams 255 255 0 false true false true 1 false true true true
Modified: trunk/test-integration/common/src/test/resources/TestMMDatabaseMetaData/testGetProcedures.expected
===================================================================
--- trunk/test-integration/common/src/test/resources/TestMMDatabaseMetaData/testGetProcedures.expected 2011-04-29 18:34:21 UTC (rev 3133)
+++ trunk/test-integration/common/src/test/resources/TestMMDatabaseMetaData/testGetProcedures.expected 2011-05-02 17:02:28 UTC (rev 3134)
@@ -8,8 +8,9 @@
QT_Ora9DS SYSADMIN refreshMatView <null> <null> <null> <null> 1 refreshMatView
QT_Ora9DS SYSADMIN refreshMatViewRow <null> <null> <null> <null> 1 refreshMatViewRow
QT_Ora9DS SYSADMIN setColumnStats <null> <null> <null> <null> 1 setColumnStats
+QT_Ora9DS SYSADMIN setProperty <null> <null> <null> <null> 1 setProperty
QT_Ora9DS SYSADMIN setTableStats <null> <null> <null> <null> 1 setTableStats
-Row Count : 9
+Row Count : 10
getColumnName getColumnType getCatalogName getColumnClassName getColumnLabel getColumnTypeName getSchemaName getTableName getColumnDisplaySize getPrecision getScale isAutoIncrement isCaseSensitive isCurrency isDefinitelyWritable isNullable isReadOnly isSearchable isSigned isWritable
VDBName 12 QT_Ora9DS java.lang.String PROCEDURE_CAT string SYS Procedures 255 255 0 false false false false 0 true true false false
SchemaName 12 QT_Ora9DS java.lang.String PROCEDURE_SCHEM string SYS Procedures 255 255 0 false true false true 1 false true true true
Modified: trunk/test-integration/common/src/test/resources/TestMMDatabaseMetaData/testGetProceduresWithEscape.expected
===================================================================
--- trunk/test-integration/common/src/test/resources/TestMMDatabaseMetaData/testGetProceduresWithEscape.expected 2011-04-29 18:34:21 UTC (rev 3133)
+++ trunk/test-integration/common/src/test/resources/TestMMDatabaseMetaData/testGetProceduresWithEscape.expected 2011-05-02 17:02:28 UTC (rev 3134)
@@ -8,8 +8,9 @@
QT_Ora9DS SYSADMIN refreshMatView <null> <null> <null> <null> 1 refreshMatView
QT_Ora9DS SYSADMIN refreshMatViewRow <null> <null> <null> <null> 1 refreshMatViewRow
QT_Ora9DS SYSADMIN setColumnStats <null> <null> <null> <null> 1 setColumnStats
+QT_Ora9DS SYSADMIN setProperty <null> <null> <null> <null> 1 setProperty
QT_Ora9DS SYSADMIN setTableStats <null> <null> <null> <null> 1 setTableStats
-Row Count : 9
+Row Count : 10
getColumnName getColumnType getCatalogName getColumnClassName getColumnLabel getColumnTypeName getSchemaName getTableName getColumnDisplaySize getPrecision getScale isAutoIncrement isCaseSensitive isCurrency isDefinitelyWritable isNullable isReadOnly isSearchable isSigned isWritable
VDBName 12 QT_Ora9DS java.lang.String PROCEDURE_CAT string SYS Procedures 255 255 0 false false false false 0 true true false false
SchemaName 12 QT_Ora9DS java.lang.String PROCEDURE_SCHEM string SYS Procedures 255 255 0 false true false true 1 false true true true
Modified: trunk/test-integration/common/src/test/resources/TestODBCSchema/test_PG_ATTRIBUTE.expected
===================================================================
--- trunk/test-integration/common/src/test/resources/TestODBCSchema/test_PG_ATTRIBUTE.expected 2011-04-29 18:34:21 UTC (rev 3133)
+++ trunk/test-integration/common/src/test/resources/TestODBCSchema/test_PG_ATTRIBUTE.expected 2011-05-02 17:02:28 UTC (rev 3134)
@@ -127,131 +127,132 @@
125 14 Value 1043 -1 2 255 true false false
126 14 UID 1043 -1 3 50 true false false
127 14 OID 23 4 4 10 true false false
-128 15 PKTABLE_CAT 1043 -1 1 255 false false false
-129 15 PKTABLE_SCHEM 1043 -1 2 255 false false false
-130 15 PKTABLE_NAME 1043 -1 3 255 false false false
-131 15 PKCOLUMN_NAME 1043 -1 4 255 false false false
-132 15 FKTABLE_CAT 1043 -1 5 255 false false false
-133 15 FKTABLE_SCHEM 1043 -1 6 255 false false false
-134 15 FKTABLE_NAME 1043 -1 7 255 false false false
-135 15 FKCOLUMN_NAME 1043 -1 8 255 false false false
-136 15 KEY_SEQ 21 2 9 5 false false false
-137 15 UPDATE_RULE 23 4 10 10 false false false
-138 15 DELETE_RULE 23 4 11 10 false false false
-139 15 FK_NAME 1043 -1 12 255 false false false
-140 15 PK_NAME 1043 -1 13 255 false false false
-141 15 DEFERRABILITY 23 4 14 10 false false false
-142 16 VDBName 1043 -1 1 255 false false false
-143 16 Name 1043 -1 2 255 false false false
-144 16 IsPhysical 16 1 3 1 true false false
-145 16 UID 1043 -1 4 50 true false false
-146 16 Description 1043 -1 5 255 false false false
-147 16 PrimaryMetamodelURI 1043 -1 6 255 true false false
-148 16 OID 23 4 7 10 true false false
-149 17 VDBName 1043 -1 1 255 false false false
-150 17 SchemaName 1043 -1 2 255 false false false
-151 17 Name 1043 -1 3 255 true false false
-152 17 Type 1043 -1 4 20 true false false
-153 17 NameInSource 1043 -1 5 255 false false false
-154 17 IsPhysical 16 1 6 1 true false false
-155 17 SupportsUpdates 16 1 7 1 true false false
-156 17 UID 1043 -1 8 50 true false false
-157 17 Cardinality 23 4 9 10 true false false
-158 17 Description 1043 -1 10 255 false false false
-159 17 IsSystem 16 1 11 1 false false false
-160 17 IsMaterialized 16 1 12 0 true false false
-161 17 OID 23 4 13 10 true false false
-162 18 Name 1043 -1 1 255 true false false
-163 18 Version 1043 -1 2 50 true false false
-164 19 oid 23 4 1 0 false false false
-165 19 nspname 1043 -1 2 0 false false false
-166 20 oid 23 4 1 0 false false false
-167 20 relname 1043 -1 2 0 false false false
-168 20 relnamespace 23 4 3 0 false false false
-169 20 relkind 1042 1 4 0 false false false
-170 20 relam 23 4 5 0 false false false
-171 20 reltuples 700 4 6 0 false false false
-172 20 relpages 23 4 7 0 false false false
-173 20 relhasrules 16 1 8 0 false false false
-174 20 relhasoids 16 1 9 0 false false false
-175 21 oid 23 4 1 0 false false false
-176 21 attrelid 23 4 2 0 false false false
-177 21 attname 1043 -1 3 0 false false false
-178 21 atttypid 23 4 4 0 false false false
-179 21 attlen 21 2 5 0 false false false
-180 21 attnum 21 2 6 0 false false false
-181 21 atttypmod 23 4 7 0 false false false
-182 21 attnotnull 16 1 8 0 false false false
-183 21 attisdropped 16 1 9 0 false false false
-184 21 atthasdef 16 1 10 0 false false false
-185 22 oid 23 4 1 0 false false false
-186 22 typname 1043 -1 2 0 false false false
-187 22 typnamespace 23 4 3 0 false false false
-188 22 typlen 21 2 4 0 false false false
-189 22 typtype 1042 1 5 0 false false false
-190 22 typbasetype 23 4 6 0 false false false
-191 22 typtypmod 23 4 7 0 false false false
-192 22 typrelid 23 4 8 0 false false false
-193 22 typelem 23 4 9 0 false false false
-194 23 oid 23 4 1 0 false false false
-195 23 indexrelid 23 4 2 0 false false false
-196 23 indrelid 23 4 3 0 false false false
-197 23 indisclustered 16 1 4 0 false false false
-198 23 indisunique 16 1 5 0 false false false
-199 23 indisprimary 16 1 6 0 false false false
-200 23 indexprs 1043 -1 7 0 false false false
-201 23 indkey 1043 -1 8 0 false false false
-202 24 oid 23 4 1 0 false false false
-203 24 amname 1043 -1 2 0 false false false
-204 25 oid 23 4 1 0 false false false
-205 25 proname 1043 -1 2 0 false false false
-206 25 proretset 16 1 3 0 false false false
-207 25 prorettype 23 4 4 0 false false false
-208 25 pronargs 21 2 5 0 false false false
-209 25 proargtypes <null> <null> 6 0 false false false
-210 25 proargnames <null> <null> 7 0 false false false
-211 25 proargmodes <null> <null> 8 0 false false false
-212 25 proallargtypes <null> <null> 9 0 false false false
-213 25 pronamespace 23 4 10 0 false false false
-214 26 oid 23 4 1 0 false false false
-215 26 tgconstrrelid 23 4 2 0 false false false
-216 26 tgfoid 23 4 3 0 false false false
-217 26 tgargs 23 4 4 0 false false false
-218 26 tgnargs 23 4 5 0 false false false
-219 26 tgdeferrable 16 1 6 0 false false false
-220 26 tginitdeferred 16 1 7 0 false false false
-221 26 tgconstrname 1043 -1 8 0 false false false
-222 26 tgrelid 23 4 9 0 false false false
-223 27 adrelid 23 4 1 0 false false false
-224 27 adnum 23 4 2 0 false false false
-225 27 adbin 1043 -1 3 0 false false false
-226 27 adsrc 1043 -1 4 0 false false false
-227 28 oid 23 4 1 0 false false false
-228 28 datname 1043 -1 2 0 false false false
-229 28 encoding 23 4 3 0 false false false
-230 28 datlastsysoid 23 4 4 0 false false false
-231 28 datallowconn 1042 1 5 0 false false false
-232 28 datconfig <null> <null> 6 0 false false false
-233 28 datacl <null> <null> 7 0 false false false
-234 28 datdba 23 4 8 0 false false false
-235 28 dattablespace 23 4 9 0 false false false
-236 29 oid 23 4 1 0 false false false
-237 29 usename 1043 -1 2 0 false false false
-238 29 usecreatedb 16 1 3 0 false false false
-239 29 usesuper 16 1 4 0 false false false
-240 30 attrelid 23 4 1 0 false false false
-241 30 attnum 21 2 2 0 false false false
-242 30 attname 1043 -1 3 0 false false false
-243 30 relname 1043 -1 4 0 false false false
-244 30 nspname 1043 -1 5 0 false false false
-245 30 autoinc 16 1 6 0 false false false
-246 30 typoid 23 4 7 0 false false false
-247 31 oid 23 4 1 0 false false false
-248 31 typname 1043 -1 2 0 false false false
-249 31 name 1043 -1 3 0 false false false
-250 31 uid 1043 -1 4 0 false false false
-251 31 typlen 21 2 5 0 false false false
-Row Count : 251
+128 14 ClobValue 14939 -1 5 2097152 false false false
+129 15 PKTABLE_CAT 1043 -1 1 255 false false false
+130 15 PKTABLE_SCHEM 1043 -1 2 255 false false false
+131 15 PKTABLE_NAME 1043 -1 3 255 false false false
+132 15 PKCOLUMN_NAME 1043 -1 4 255 false false false
+133 15 FKTABLE_CAT 1043 -1 5 255 false false false
+134 15 FKTABLE_SCHEM 1043 -1 6 255 false false false
+135 15 FKTABLE_NAME 1043 -1 7 255 false false false
+136 15 FKCOLUMN_NAME 1043 -1 8 255 false false false
+137 15 KEY_SEQ 21 2 9 5 false false false
+138 15 UPDATE_RULE 23 4 10 10 false false false
+139 15 DELETE_RULE 23 4 11 10 false false false
+140 15 FK_NAME 1043 -1 12 255 false false false
+141 15 PK_NAME 1043 -1 13 255 false false false
+142 15 DEFERRABILITY 23 4 14 10 false false false
+143 16 VDBName 1043 -1 1 255 false false false
+144 16 Name 1043 -1 2 255 false false false
+145 16 IsPhysical 16 1 3 1 true false false
+146 16 UID 1043 -1 4 50 true false false
+147 16 Description 1043 -1 5 255 false false false
+148 16 PrimaryMetamodelURI 1043 -1 6 255 true false false
+149 16 OID 23 4 7 10 true false false
+150 17 VDBName 1043 -1 1 255 false false false
+151 17 SchemaName 1043 -1 2 255 false false false
+152 17 Name 1043 -1 3 255 true false false
+153 17 Type 1043 -1 4 20 true false false
+154 17 NameInSource 1043 -1 5 255 false false false
+155 17 IsPhysical 16 1 6 1 true false false
+156 17 SupportsUpdates 16 1 7 1 true false false
+157 17 UID 1043 -1 8 50 true false false
+158 17 Cardinality 23 4 9 10 true false false
+159 17 Description 1043 -1 10 255 false false false
+160 17 IsSystem 16 1 11 1 false false false
+161 17 IsMaterialized 16 1 12 0 true false false
+162 17 OID 23 4 13 10 true false false
+163 18 Name 1043 -1 1 255 true false false
+164 18 Version 1043 -1 2 50 true false false
+165 19 oid 23 4 1 0 false false false
+166 19 nspname 1043 -1 2 0 false false false
+167 20 oid 23 4 1 0 false false false
+168 20 relname 1043 -1 2 0 false false false
+169 20 relnamespace 23 4 3 0 false false false
+170 20 relkind 1042 1 4 0 false false false
+171 20 relam 23 4 5 0 false false false
+172 20 reltuples 700 4 6 0 false false false
+173 20 relpages 23 4 7 0 false false false
+174 20 relhasrules 16 1 8 0 false false false
+175 20 relhasoids 16 1 9 0 false false false
+176 21 oid 23 4 1 0 false false false
+177 21 attrelid 23 4 2 0 false false false
+178 21 attname 1043 -1 3 0 false false false
+179 21 atttypid 23 4 4 0 false false false
+180 21 attlen 21 2 5 0 false false false
+181 21 attnum 21 2 6 0 false false false
+182 21 atttypmod 23 4 7 0 false false false
+183 21 attnotnull 16 1 8 0 false false false
+184 21 attisdropped 16 1 9 0 false false false
+185 21 atthasdef 16 1 10 0 false false false
+186 22 oid 23 4 1 0 false false false
+187 22 typname 1043 -1 2 0 false false false
+188 22 typnamespace 23 4 3 0 false false false
+189 22 typlen 21 2 4 0 false false false
+190 22 typtype 1042 1 5 0 false false false
+191 22 typbasetype 23 4 6 0 false false false
+192 22 typtypmod 23 4 7 0 false false false
+193 22 typrelid 23 4 8 0 false false false
+194 22 typelem 23 4 9 0 false false false
+195 23 oid 23 4 1 0 false false false
+196 23 indexrelid 23 4 2 0 false false false
+197 23 indrelid 23 4 3 0 false false false
+198 23 indisclustered 16 1 4 0 false false false
+199 23 indisunique 16 1 5 0 false false false
+200 23 indisprimary 16 1 6 0 false false false
+201 23 indexprs 1043 -1 7 0 false false false
+202 23 indkey 1043 -1 8 0 false false false
+203 24 oid 23 4 1 0 false false false
+204 24 amname 1043 -1 2 0 false false false
+205 25 oid 23 4 1 0 false false false
+206 25 proname 1043 -1 2 0 false false false
+207 25 proretset 16 1 3 0 false false false
+208 25 prorettype 23 4 4 0 false false false
+209 25 pronargs 21 2 5 0 false false false
+210 25 proargtypes <null> <null> 6 0 false false false
+211 25 proargnames <null> <null> 7 0 false false false
+212 25 proargmodes <null> <null> 8 0 false false false
+213 25 proallargtypes <null> <null> 9 0 false false false
+214 25 pronamespace 23 4 10 0 false false false
+215 26 oid 23 4 1 0 false false false
+216 26 tgconstrrelid 23 4 2 0 false false false
+217 26 tgfoid 23 4 3 0 false false false
+218 26 tgargs 23 4 4 0 false false false
+219 26 tgnargs 23 4 5 0 false false false
+220 26 tgdeferrable 16 1 6 0 false false false
+221 26 tginitdeferred 16 1 7 0 false false false
+222 26 tgconstrname 1043 -1 8 0 false false false
+223 26 tgrelid 23 4 9 0 false false false
+224 27 adrelid 23 4 1 0 false false false
+225 27 adnum 23 4 2 0 false false false
+226 27 adbin 1043 -1 3 0 false false false
+227 27 adsrc 1043 -1 4 0 false false false
+228 28 oid 23 4 1 0 false false false
+229 28 datname 1043 -1 2 0 false false false
+230 28 encoding 23 4 3 0 false false false
+231 28 datlastsysoid 23 4 4 0 false false false
+232 28 datallowconn 1042 1 5 0 false false false
+233 28 datconfig <null> <null> 6 0 false false false
+234 28 datacl <null> <null> 7 0 false false false
+235 28 datdba 23 4 8 0 false false false
+236 28 dattablespace 23 4 9 0 false false false
+237 29 oid 23 4 1 0 false false false
+238 29 usename 1043 -1 2 0 false false false
+239 29 usecreatedb 16 1 3 0 false false false
+240 29 usesuper 16 1 4 0 false false false
+241 30 attrelid 23 4 1 0 false false false
+242 30 attnum 21 2 2 0 false false false
+243 30 attname 1043 -1 3 0 false false false
+244 30 relname 1043 -1 4 0 false false false
+245 30 nspname 1043 -1 5 0 false false false
+246 30 autoinc 16 1 6 0 false false false
+247 30 typoid 23 4 7 0 false false false
+248 31 oid 23 4 1 0 false false false
+249 31 typname 1043 -1 2 0 false false false
+250 31 name 1043 -1 3 0 false false false
+251 31 uid 1043 -1 4 0 false false false
+252 31 typlen 21 2 5 0 false false false
+Row Count : 252
getColumnName getColumnType getCatalogName getColumnClassName getColumnLabel getColumnTypeName getSchemaName getTableName getColumnDisplaySize getPrecision getScale isAutoIncrement isCaseSensitive isCurrency isDefinitelyWritable isNullable isReadOnly isSearchable isSigned isWritable
oid 4 PartsSupplier java.lang.Integer oid integer pg_catalog pg_attribute 11 10 0 false false false false 2 true true false false
attrelid 4 PartsSupplier java.lang.Integer attrelid integer pg_catalog pg_attribute 11 10 0 false false false false 2 true true false false
Modified: trunk/test-integration/common/src/test/resources/TestPartsDatabaseMetadata/testColumns.expected
===================================================================
--- trunk/test-integration/common/src/test/resources/TestPartsDatabaseMetadata/testColumns.expected 2011-04-29 18:34:21 UTC (rev 3133)
+++ trunk/test-integration/common/src/test/resources/TestPartsDatabaseMetadata/testColumns.expected 2011-05-02 17:02:28 UTC (rev 3134)
@@ -125,6 +125,7 @@
PartsSupplier SYS Properties Value 12 string 255 <null> 0 10 0 <null> <null> <null> <null> 255 2 NO <null> <null> <null> !
<null> NO
PartsSupplier SYS Properties UID 12 string 50 <null> 0 10 0 <null> <null> <null> <null> 50 3 NO <null> <null> <null> !
<null> NO
PartsSupplier SYS Properties OID 4 integer 10 <null> 0 10 0 <null> <null> <null> <null> 10 4 NO <null> <null> <null> !
<null> NO
+PartsSupplier SYS Properties ClobValue 2005 clob 2097152 <null> 0 10 1 <null> <null> <null> <null> 2097152 5 YES <null> <null> <null> !
<null> NO
PartsSupplier SYS ReferenceKeyColumns PKTABLE_CAT 12 string 255 <null> 0 10 1 <null> <null> <null> <null> 255 1 YES <null> <null> <null> !
<null> NO
PartsSupplier SYS ReferenceKeyColumns PKTABLE_SCHEM 12 string 255 <null> 0 10 1 <null> <null> <null> <null> 255 2 YES <null> <null> <null> !
<null> NO
PartsSupplier SYS ReferenceKeyColumns PKTABLE_NAME 12 string 255 <null> 0 10 1 <null> <null> <null> <null> 255 3 YES <null> <null> <null> !
<null> NO
@@ -251,7 +252,7 @@
PartsSupplier pg_catalog pg_user usename 12 string 4000 <null> 0 0 2 <null> <null> <null> <null> 0 2 <null> <null> <null> !
<null> NO
PartsSupplier pg_catalog pg_user usecreatedb -7 boolean 1 <null> 0 0 2 <null> <null> <null> <null> 0 3 <null> <null> <null> !
<null> NO
PartsSupplier pg_catalog pg_user usesuper -7 boolean 1 <null> 0 0 2 <null> <null> <null> <null> 0 4 <null> <null> <null> !
<null> NO
-Row Count : 251
+Row Count : 252
getColumnName getColumnType getCatalogName getColumnClassName getColumnLabel getColumnTypeName getSchemaName getTableName getColumnDisplaySize getPrecision getScale isAutoIncrement isCaseSensitive isCurrency isDefinitelyWritable isNullable isReadOnly isSearchable isSigned isWritable
VDBName 12 PartsSupplier java.lang.String TABLE_CAT string SYS Columns 255 255 0 false false false false 0 true true false false
SchemaName 12 PartsSupplier java.lang.String TABLE_SCHEM string SYS Columns 255 255 0 false true false true 1 false true true true
Modified: trunk/test-integration/common/src/test/resources/TestPartsDatabaseMetadata/testProcedureColumns.expected
===================================================================
--- trunk/test-integration/common/src/test/resources/TestPartsDatabaseMetadata/testProcedureColumns.expected 2011-04-29 18:34:21 UTC (rev 3133)
+++ trunk/test-integration/common/src/test/resources/TestPartsDatabaseMetadata/testProcedureColumns.expected 2011-05-02 17:02:28 UTC (rev 3134)
@@ -14,9 +14,13 @@
PartsSupplier SYSADMIN setColumnStats nullCount 1 4 integer 10 10 0 10 1 <null> <null> <null> <null> <null> 4 YES setColumnStats
PartsSupplier SYSADMIN setColumnStats max 1 12 string 4000 4000 0 10 1 <null> <null> <null> <null> <null> 5 YES setColumnStats
PartsSupplier SYSADMIN setColumnStats min 1 12 string 4000 4000 0 10 1 <null> <null> <null> <null> <null> 6 YES setColumnStats
+PartsSupplier SYSADMIN setProperty UID 1 12 string 4000 50 0 10 0 <null> <null> <null> <null> <null> 2 NO setProperty
+PartsSupplier SYSADMIN setProperty Name 1 12 string 4000 4000 0 10 0 <null> <null> <null> <null> <null> 3 NO setProperty
+PartsSupplier SYSADMIN setProperty Value 1 2005 clob 2147483647 2097152 0 10 1 <null> <null> <null> <null> <null> 4 YES setProperty
+PartsSupplier SYSADMIN setProperty OldValue 5 2005 clob 2147483647 2097152 0 10 0 <null> <null> <null> <null> <null> 1 NO setProperty
PartsSupplier SYSADMIN setTableStats tableName 1 12 string 4000 4000 0 10 0 <null> <null> <null> <null> <null> 1 NO setTableStats
PartsSupplier SYSADMIN setTableStats cardinality 1 4 integer 10 10 0 10 0 <null> <null> <null> <null> <null> 2 NO setTableStats
-Row Count : 16
+Row Count : 20
getColumnName getColumnType getCatalogName getColumnClassName getColumnLabel getColumnTypeName getSchemaName getTableName getColumnDisplaySize getPrecision getScale isAutoIncrement isCaseSensitive isCurrency isDefinitelyWritable isNullable isReadOnly isSearchable isSigned isWritable
VDBName 12 PartsSupplier java.lang.String PROCEDURE_CAT string SYS ProcedureParams 255 255 0 false false false false 0 true true false false
SchemaName 12 PartsSupplier java.lang.String PROCEDURE_SCHEM string SYS ProcedureParams 255 255 0 false true false true 1 false true true true
Modified: trunk/test-integration/common/src/test/resources/TestPartsDatabaseMetadata/testProcedures.expected
===================================================================
--- trunk/test-integration/common/src/test/resources/TestPartsDatabaseMetadata/testProcedures.expected 2011-04-29 18:34:21 UTC (rev 3133)
+++ trunk/test-integration/common/src/test/resources/TestPartsDatabaseMetadata/testProcedures.expected 2011-05-02 17:02:28 UTC (rev 3134)
@@ -4,8 +4,9 @@
PartsSupplier SYSADMIN refreshMatView <null> <null> <null> <null> 1 refreshMatView
PartsSupplier SYSADMIN refreshMatViewRow <null> <null> <null> <null> 1 refreshMatViewRow
PartsSupplier SYSADMIN setColumnStats <null> <null> <null> <null> 1 setColumnStats
+PartsSupplier SYSADMIN setProperty <null> <null> <null> <null> 1 setProperty
PartsSupplier SYSADMIN setTableStats <null> <null> <null> <null> 1 setTableStats
-Row Count : 5
+Row Count : 6
getColumnName getColumnType getCatalogName getColumnClassName getColumnLabel getColumnTypeName getSchemaName getTableName getColumnDisplaySize getPrecision getScale isAutoIncrement isCaseSensitive isCurrency isDefinitelyWritable isNullable isReadOnly isSearchable isSigned isWritable
VDBName 12 PartsSupplier java.lang.String PROCEDURE_CAT string SYS Procedures 255 255 0 false false false false 0 true true false false
SchemaName 12 PartsSupplier java.lang.String PROCEDURE_SCHEM string SYS Procedures 255 255 0 false true false true 1 false true true true
Modified: trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testColumns.expected
===================================================================
--- trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testColumns.expected 2011-04-29 18:34:21 UTC (rev 3133)
+++ trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testColumns.expected 2011-05-02 17:02:28 UTC (rev 3134)
@@ -2,10 +2,11 @@
VDBName SchemaName TableName Name Position NameInSource DataType Scale Length IsLengthFixed SupportsSelect SupportsUpdates IsCaseSensitive IsSigned IsCurrency IsAutoIncremented NullType MinRange MaxRange DistinctCount NullCount SearchType Format DefaultValue JavaClass Precision CharOctetLength Radix UID !
Description OID
PartsSupplier SYS DataTypes BaseType 17 <null> string 0 64 true true false true true false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.String 64 64 10 mmuuid:03beb57c-968b-!
4821-a6ae-cb1154cfadee <null> 76
PartsSupplier SYSADMIN MatViews Cardinality 9 <null> integer 0 10 false true false true true false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:abe699b0-b6bc-!
4413-9172-0a21ca9664d2 <null> 26
-PartsSupplier SYS Tables Cardinality 9 <null> integer 0 10 false true false true true false false No Nulls <null> <null> -1 -1 All Except Like <null> <null> java.lang.Integer 10 10 10 mmuuid:24cdad3a-e8f7-!
4376-bb32-79f8bc8eeed2 <null> 157
+PartsSupplier SYS Tables Cardinality 9 <null> integer 0 10 false true false true true false false No Nulls <null> <null> -1 -1 All Except Like <null> <null> java.lang.Integer 10 10 10 mmuuid:24cdad3a-e8f7-!
4376-bb32-79f8bc8eeed2 <null> 158
PartsSupplier SYS Columns CharOctetLength 27 <null> integer 0 10 true true false false false false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:de5def94-2804-!
4c91-91ed-26d630ce8afe <null> 55
-PartsSupplier SYS ReferenceKeyColumns DEFERRABILITY 14 <null> integer 0 10 false true true true true false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:88380f55-2cbd-!
4325-b9a3-9dcaa88a690e <null> 141
-PartsSupplier SYS ReferenceKeyColumns DELETE_RULE 11 <null> integer 0 10 false true true true true false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:9207f4df-a5ce-!
43bd-b3b2-fee57e459849 <null> 138
+PartsSupplier SYS Properties ClobValue 5 <null> clob 0 2097152 false true true true true false false Nullable <null> <null> -1 -1 Searchable <null> <null> org.teiid.core.types.ClobType 0 2097152 10 mmuuid:c0b630b2-5f71-!
4bee-8359-07c2629e355b <null> 128
+PartsSupplier SYS ReferenceKeyColumns DEFERRABILITY 14 <null> integer 0 10 false true true true true false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:88380f55-2cbd-!
4325-b9a3-9dcaa88a690e <null> 142
+PartsSupplier SYS ReferenceKeyColumns DELETE_RULE 11 <null> integer 0 10 false true true true true false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:9207f4df-a5ce-!
43bd-b3b2-fee57e459849 <null> 139
PartsSupplier SYS Columns DataType 7 <null> string 0 100 true true false true true false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.String 100 100 10 mmuuid:9a8dc0d5-e65c-!
4032-a066-187f8d2e73ea <null> 35
PartsSupplier SYS ProcedureParams DataType 5 <null> string 0 25 true true false true true false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.String 25 25 10 mmuuid:207a09af-65b8-!
405f-b1cb-537bc8632fa4 <null> 104
PartsSupplier SYS Columns DefaultValue 24 <null> string 0 255 true true false false false false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.String 255 255 10 mmuuid:7e853988-356b-!
4c7c-83d4-a9f015bff279 <null> 52
@@ -14,14 +15,14 @@
PartsSupplier SYS Keys Description 5 <null> string 0 255 true true false false false false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.String 255 255 10 mmuuid:175e21b2-24c3-!
4677-a253-6d7cdb513a9a <null> 93
PartsSupplier SYS ProcedureParams Description 15 <null> string 0 255 false true true true true false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.String 0 255 10 mmuuid:05ac4703-5c2c-!
4410-93b7-19b39d90c803 <null> 114
PartsSupplier SYS Procedures Description 7 <null> string 0 255 false true true true true false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.String 225 255 10 mmuuid:fa0b5db7-acb1-!
4975-8410-d5d27df46040 <null> 122
-PartsSupplier SYS Schemas Description 5 <null> string 0 255 false true true true true false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.String 255 255 10 mmuuid:1cb99300-a527-!
4a26-b4e6-08ebd92a781d <null> 146
-PartsSupplier SYS Tables Description 10 <null> string 0 255 false true true true true false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.String 255 255 10 mmuuid:51605e41-5cb0-!
40ca-8c4a-4eca52780afc <null> 158
-PartsSupplier SYS Columns DistinctCount 20 <null> integer 0 10 false true true true true false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 10 10 mmuuid:0017cd41-d873-!
4fcb-a2e7-15cdac7df3a5 <null> 48
-PartsSupplier SYS ReferenceKeyColumns FKCOLUMN_NAME 8 <null> string 0 255 false true true true true false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.String 255 255 10 mmuuid:f4b2b32c-e411-!
45e6-a236-fec4718f0874 <null> 135
-PartsSupplier SYS ReferenceKeyColumns FKTABLE_CAT 5 <null> string 0 255 false true true true true false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.String 1 255 10 mmuuid:a0095da3-1258-!
44dc-bab9-33eacf886a28 <null> 132
-PartsSupplier SYS ReferenceKeyColumns FKTABLE_NAME 7 <null> string 0 255 false true true true true false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.String 255 255 10 mmuuid:53284aaa-4c07-!
4930-8a0e-5e2aaa2da5cb <null> 134
-PartsSupplier SYS ReferenceKeyColumns FKTABLE_SCHEM 6 <null> string 0 255 false true true true true false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.String 255 255 10 mmuuid:93a35adf-b6b1-!
4d9c-bdef-d336a84f478e <null> 133
-PartsSupplier SYS ReferenceKeyColumns FK_NAME 12 <null> string 0 255 false true true true true false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.String 255 255 10 mmuuid:a9ca7516-6898-!
419d-b1ad-7d174d946d07 <null> 139
+PartsSupplier SYS Schemas Description 5 <null> string 0 255 false true true true true false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.String 255 255 10 mmuuid:1cb99300-a527-!
4a26-b4e6-08ebd92a781d <null> 147
+PartsSupplier SYS Tables Description 10 <null> string 0 255 false true true true true false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.String 255 255 10 mmuuid:51605e41-5cb0-!
40ca-8c4a-4eca52780afc <null> 159
+PartsSupplier SYS Columns DistinctCount 20 <null> integer 0 10 false true true true true false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:0017cd41-d873-!
4fcb-a2e7-15cdac7df3a5 <null> 48
+PartsSupplier SYS ReferenceKeyColumns FKCOLUMN_NAME 8 <null> string 0 255 false true true true true false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.String 255 255 10 mmuuid:f4b2b32c-e411-!
45e6-a236-fec4718f0874 <null> 136
+PartsSupplier SYS ReferenceKeyColumns FKTABLE_CAT 5 <null> string 0 255 false true true true true false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.String 1 255 10 mmuuid:a0095da3-1258-!
44dc-bab9-33eacf886a28 <null> 133
+PartsSupplier SYS ReferenceKeyColumns FKTABLE_NAME 7 <null> string 0 255 false true true true true false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.String 255 255 10 mmuuid:53284aaa-4c07-!
4930-8a0e-5e2aaa2da5cb <null> 135
+PartsSupplier SYS ReferenceKeyColumns FKTABLE_SCHEM 6 <null> string 0 255 false true true true true false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.String 255 255 10 mmuuid:93a35adf-b6b1-!
4d9c-bdef-d336a84f478e <null> 134
+PartsSupplier SYS ReferenceKeyColumns FK_NAME 12 <null> string 0 255 false true true true true false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.String 255 255 10 mmuuid:a9ca7516-6898-!
419d-b1ad-7d174d946d07 <null> 140
PartsSupplier SYS Columns Format 23 <null> string 0 255 true true false false false false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.String 255 255 10 mmuuid:172b133e-5bf1-!
4020-953c-de4446b1e64a <null> 51
PartsSupplier SYS Columns IsAutoIncremented 16 <null> boolean 0 1 true true false false false false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.Boolean 1 1 10 mmuuid:0d41e284-f274-!
4fd1-8576-7696f4b758d0 <null> 44
PartsSupplier SYS DataTypes IsAutoIncremented 10 <null> boolean 0 1 true true false true true false false No Nulls <null> <null> -1 -1 Searchable <null> ('0') java.lang.Boolean 1 1 10 mmuuid:2a1568e2-776a-!
474b-981f-040a6ad63361 <null> 69
@@ -30,17 +31,17 @@
PartsSupplier SYS Columns IsCurrency 15 <null> boolean 0 1 true true false false false false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.Boolean 1 1 10 mmuuid:b28a2963-36e0-!
4b4a-a8f8-a2c06f2b440a <null> 43
PartsSupplier SYS Keys IsIndexed 8 <null> boolean 0 1 true true false false false false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.Boolean 1 1 10 mmuuid:ea96cb7c-2dcf-!
453c-b83a-1aaa921d8f92 <null> 96
PartsSupplier SYS Columns IsLengthFixed 10 <null> boolean 0 1 true true false false false false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.Boolean 1 1 10 mmuuid:571aa4ce-3254-!
4a2b-aa48-1cb23a0c47ed <null> 38
-PartsSupplier SYS Tables IsMaterialized 12 <null> boolean 0 0 false true true false false false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.Boolean 0 0 10 mmuuid:89265cba-ab85-!
48c2-960a-a5a9594ba6d0 <null> 160
+PartsSupplier SYS Tables IsMaterialized 12 <null> boolean 0 0 false true true false false false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.Boolean 0 0 10 mmuuid:89265cba-ab85-!
48c2-960a-a5a9594ba6d0 <null> 161
PartsSupplier SYS DataTypes IsPhysical 3 <null> boolean 0 1 true true false true true false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.Boolean 1 1 10 mmuuid:983714a2-bd0b-!
4fad-b4e8-dfb7832e9c4b <null> 62
-PartsSupplier SYS Schemas IsPhysical 3 <null> boolean 0 1 true true false false false false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.Boolean 1 1 10 mmuuid:bab257d7-cced-!
4605-9b40-8ca6c078aca7 <null> 144
-PartsSupplier SYS Tables IsPhysical 6 <null> boolean 0 1 true true false true false false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.Boolean 1 1 10 mmuuid:e27712f6-a0a6-!
452e-848d-9de77691e939 <null> 154
+PartsSupplier SYS Schemas IsPhysical 3 <null> boolean 0 1 true true false false false false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.Boolean 1 1 10 mmuuid:bab257d7-cced-!
4605-9b40-8ca6c078aca7 <null> 145
+PartsSupplier SYS Tables IsPhysical 6 <null> boolean 0 1 true true false true false false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.Boolean 1 1 10 mmuuid:e27712f6-a0a6-!
452e-848d-9de77691e939 <null> 155
PartsSupplier SYS Columns IsSigned 14 <null> boolean 0 1 true true false false false false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.Boolean 1 1 10 mmuuid:36be2afa-8ebc-!
4af8-acc5-a887cf2b5a86 <null> 42
PartsSupplier SYS DataTypes IsSigned 9 <null> boolean 0 1 true true false true false false false No Nulls <null> <null> -1 -1 Searchable <null> ('0') java.lang.Boolean 1 1 10 mmuuid:235cea48-b2b9-!
41d5-b296-8ab9c649b6e7 <null> 68
PartsSupplier SYS DataTypes IsStandard 2 <null> boolean 0 1 true true false true true false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.Boolean 1 1 10 mmuuid:02f27c5d-af55-!
4677-b91b-8690793671b2 <null> 61
-PartsSupplier SYS Tables IsSystem 11 <null> boolean 0 1 false true true true true false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.Boolean 1 1 10 mmuuid:9fa7987c-7dc8-!
4102-9cc0-5658d5b46382 <null> 159
+PartsSupplier SYS Tables IsSystem 11 <null> boolean 0 1 false true true true true false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.Boolean 1 1 10 mmuuid:9fa7987c-7dc8-!
4102-9cc0-5658d5b46382 <null> 160
PartsSupplier SYS Columns JavaClass 25 <null> string 0 500 true true false true false false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.String 500 500 10 mmuuid:6b8d5df5-7bd2-!
425c-8b2b-e427e026ef66 <null> 53
PartsSupplier SYS DataTypes JavaClass 5 <null> string 0 500 true true false true false false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.String 500 500 10 mmuuid:4c68ef90-8042-!
44ab-896a-bb3890a8fe04 <null> 64
-PartsSupplier SYS ReferenceKeyColumns KEY_SEQ 9 <null> short 0 5 false true true true true false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.Short 5 5 10 mmuuid:4884ac83-84ed-!
4b67-9f1a-bd79c0199269 <null> 136
+PartsSupplier SYS ReferenceKeyColumns KEY_SEQ 9 <null> short 0 5 false true true true true false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.Short 5 5 10 mmuuid:4884ac83-84ed-!
4b67-9f1a-bd79c0199269 <null> 137
PartsSupplier SYS KeyColumns KeyName 5 <null> string 0 255 true true false false false false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.String 255 255 10 mmuuid:da4bef58-83f4-!
4b88-8bb0-2dc8990be539 <null> 83
PartsSupplier SYS KeyColumns KeyType 6 <null> string 0 20 true true false false false false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.String 20 20 10 mmuuid:df9e15e6-ab77-!
486d-bfe0-0adc378aa99d <null> 84
PartsSupplier SYS Columns Length 9 <null> integer 0 10 true true false false false false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:b36ea0f6-cbff-!
4049-bc9c-8ec9928be048 <null> 37
@@ -55,14 +56,14 @@
PartsSupplier SYS ProcedureParams Name 4 <null> string 0 255 true true false false false false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.String 255 255 10 mmuuid:2bf20c6f-5a95-!
436d-8f30-a24d164e77a4 <null> 103
PartsSupplier SYS Procedures Name 3 <null> string 0 255 true true false true false false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.String 255 255 10 mmuuid:bd17e98a-c40a-!
43b1-93ac-88d62937c051 <null> 118
PartsSupplier SYS Properties Name 1 <null> string 0 255 true true false true true false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.String 255 255 10 mmuuid:ba007c56-04b6-!
4981-ab89-3fdd33ff0de8 <null> 124
-PartsSupplier SYS Schemas Name 2 <null> string 0 255 false true true true true false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.String 0 255 10 mmuuid:654112f8-bb4c-!
4453-9e4d-f3a96fba61ec <null> 143
-PartsSupplier SYS Tables Name 3 <null> string 0 255 true true false true false false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.String 255 255 10 mmuuid:ef487cc2-1214-!
439c-af6e-da431df00d2c <null> 151
-PartsSupplier SYS VirtualDatabases Name 1 <null> string 0 255 true true false true false false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.String 255 255 10 mmuuid:42fa1249-8b24-!
4aae-a252-0a347db6ec30 <null> 162
+PartsSupplier SYS Schemas Name 2 <null> string 0 255 false true true true true false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.String 0 255 10 mmuuid:654112f8-bb4c-!
4453-9e4d-f3a96fba61ec <null> 144
+PartsSupplier SYS Tables Name 3 <null> string 0 255 true true false true false false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.String 255 255 10 mmuuid:ef487cc2-1214-!
439c-af6e-da431df00d2c <null> 152
+PartsSupplier SYS VirtualDatabases Name 1 <null> string 0 255 true true false true false false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.String 255 255 10 mmuuid:42fa1249-8b24-!
4aae-a252-0a347db6ec30 <null> 163
PartsSupplier SYS Columns NameInSource 6 <null> string 0 255 true true false false false false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.String 255 255 10 mmuuid:fac72c6e-41dc-!
4a1b-8af3-f0796690d9cc <null> 34
PartsSupplier SYS Keys NameInSource 6 <null> string 0 255 true true false false false false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.String 255 255 10 mmuuid:a52a6169-99e0-!
4b7e-9dc6-3a93ffa6094a <null> 94
PartsSupplier SYS Procedures NameInSource 4 <null> string 0 255 true true false false false false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.String 255 255 10 mmuuid:a4e7a0fd-c340-!
49a9-9ac0-8328caaffda8 <null> 119
-PartsSupplier SYS Tables NameInSource 5 <null> string 0 255 true true false true false false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.String 255 255 10 mmuuid:1f036fb0-b841-!
450c-8462-986cdd57e921 <null> 153
-PartsSupplier SYS Columns NullCount 21 <null> integer 0 10 false true true true true false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 10 10 mmuuid:d00d1104-40ba-!
40be-b684-4c0c803615f8 <null> 49
+PartsSupplier SYS Tables NameInSource 5 <null> string 0 255 true true false true false false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.String 255 255 10 mmuuid:1f036fb0-b841-!
450c-8462-986cdd57e921 <null> 154
+PartsSupplier SYS Columns NullCount 21 <null> integer 0 10 false true true true true false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:d00d1104-40ba-!
40be-b684-4c0c803615f8 <null> 49
PartsSupplier SYS Columns NullType 17 <null> string 0 20 true true false true false false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.String 20 20 10 mmuuid:4d83bdbb-a7ce-!
44cc-a201-021a517d3c1a <null> 45
PartsSupplier SYS DataTypes NullType 8 <null> string 0 20 true true false true false false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.String 20 20 10 mmuuid:278b0534-1164-!
495e-a8c6-de45e0ff53a4 <null> 67
PartsSupplier SYS ProcedureParams NullType 13 <null> string 0 10 true true false false false false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.String 10 10 10 mmuuid:d887c203-6bf5-!
462b-b2f0-f5302e2f4bcd <null> 112
@@ -73,26 +74,26 @@
PartsSupplier SYS ProcedureParams OID 16 <null> integer 0 10 true true false false false false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:72125f93-846f-!
413c-82e1-fa3227fb043f <null> 115
PartsSupplier SYS Procedures OID 8 <null> integer 0 10 true true false false false false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:c80c02d2-7174-!
4cc4-b347-e921a80f568c <null> 123
PartsSupplier SYS Properties OID 4 <null> integer 0 10 true true false false false false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:54c1a7dc-5ca8-!
4d34-8672-e76d63fe3b95 <null> 127
-PartsSupplier SYS Schemas OID 7 <null> integer 0 10 true true false false false false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:31746839-e019-!
4321-90cb-a557e1d4754e <null> 148
-PartsSupplier SYS Tables OID 13 <null> integer 0 10 true true false false false false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:dae79c58-b381-!
4275-8c1c-b299d732d355 <null> 161
+PartsSupplier SYS Schemas OID 7 <null> integer 0 10 true true false false false false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:31746839-e019-!
4321-90cb-a557e1d4754e <null> 149
+PartsSupplier SYS Tables OID 13 <null> integer 0 10 true true false false false false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:dae79c58-b381-!
4275-8c1c-b299d732d355 <null> 162
PartsSupplier SYS ProcedureParams Optional 8 <null> boolean 0 1 true true false false false false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.Boolean 1 1 10 mmuuid:4033f891-5ef5-!
4a75-8a50-bd1d021e43ad <null> 107
PartsSupplier PartsSupplier PARTSSUPPLIER.PARTS PART_COLOR 3 PART_COLOR string 0 30 false true true true true false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.String 0 30 10 mmuuid:015c0d00-73ff-!
1edc-a81c-ecf397b10590 <null> 3
PartsSupplier PartsSupplier PARTSSUPPLIER.PARTS PART_ID 1 PART_ID string 0 4 true true true true true false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.String 0 4 10 mmuuid:fadcd7c0-73fe-!
1edc-a81c-ecf397b10590 <null> 1
PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER_PARTS PART_ID 2 PART_ID string 0 4 true true true true true false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.String 0 4 10 mmuuid:3fc400c0-73ff-!
1edc-a81c-ecf397b10590 <null> 10
PartsSupplier PartsSupplier PARTSSUPPLIER.PARTS PART_NAME 2 PART_NAME string 0 255 false true true true true false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.String 0 255 10 mmuuid:0067e900-73ff-!
1edc-a81c-ecf397b10590 <null> 2
PartsSupplier PartsSupplier PARTSSUPPLIER.PARTS PART_WEIGHT 4 PART_WEIGHT string 0 255 false true true true true false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.String 0 255 10 mmuuid:015c0d01-73ff-!
1edc-a81c-ecf397b10590 <null> 4
-PartsSupplier SYS ReferenceKeyColumns PKCOLUMN_NAME 4 <null> string 0 255 false true true true true false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.String 255 255 10 mmuuid:0125a80a-95f9-!
486f-aa90-debb21cb5f1b <null> 131
-PartsSupplier SYS ReferenceKeyColumns PKTABLE_CAT 1 <null> string 0 255 false true true true true false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.String 1 255 10 mmuuid:f615a661-2c36-!
4ab1-b72b-5e13e99e052c <null> 128
-PartsSupplier SYS ReferenceKeyColumns PKTABLE_NAME 3 <null> string 0 255 false true true true true false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.String 255 255 10 mmuuid:6d420bc2-0f85-!
4da9-833d-d71b428b0743 <null> 130
-PartsSupplier SYS ReferenceKeyColumns PKTABLE_SCHEM 2 <null> string 0 255 false true true true true false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.String 255 255 10 mmuuid:ef7b3b79-fb51-!
42ef-a723-080ed0a6e3bc <null> 129
-PartsSupplier SYS ReferenceKeyColumns PK_NAME 13 <null> string 0 255 false true true true true false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.String 255 255 10 mmuuid:ac210a6d-4de6-!
4d71-aa9b-e3d34baca81a <null> 140
+PartsSupplier SYS ReferenceKeyColumns PKCOLUMN_NAME 4 <null> string 0 255 false true true true true false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.String 255 255 10 mmuuid:0125a80a-95f9-!
486f-aa90-debb21cb5f1b <null> 132
+PartsSupplier SYS ReferenceKeyColumns PKTABLE_CAT 1 <null> string 0 255 false true true true true false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.String 1 255 10 mmuuid:f615a661-2c36-!
4ab1-b72b-5e13e99e052c <null> 129
+PartsSupplier SYS ReferenceKeyColumns PKTABLE_NAME 3 <null> string 0 255 false true true true true false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.String 255 255 10 mmuuid:6d420bc2-0f85-!
4da9-833d-d71b428b0743 <null> 131
+PartsSupplier SYS ReferenceKeyColumns PKTABLE_SCHEM 2 <null> string 0 255 false true true true true false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.String 255 255 10 mmuuid:ef7b3b79-fb51-!
42ef-a723-080ed0a6e3bc <null> 130
+PartsSupplier SYS ReferenceKeyColumns PK_NAME 13 <null> string 0 255 false true true true true false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.String 255 255 10 mmuuid:ac210a6d-4de6-!
4d71-aa9b-e3d34baca81a <null> 141
PartsSupplier SYS Columns Position 5 <null> integer 0 10 true true false false false false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:dbc8cd09-1b47-!
43c5-82ec-aba525b85cc4 <null> 33
PartsSupplier SYS KeyColumns Position 9 <null> integer 0 10 true true true true true false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:92a4849c-ed0e-!
4f5f-a108-d7d71a5aba25 <null> 87
PartsSupplier SYS ProcedureParams Position 6 <null> integer 0 10 true true false false false false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:5fdefd17-65f4-!
4350-9ee0-0ed3c34d10ae <null> 105
PartsSupplier SYS Columns Precision 26 <null> integer 0 10 true true false false false false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:db3d49e2-fe1d-!
438b-8d07-847bf58506ab <null> 54
PartsSupplier SYS DataTypes Precision 12 <null> integer 0 10 true true false false false false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:8673c810-7162-!
4331-ba0b-6fc3530d2d1c <null> 71
PartsSupplier SYS ProcedureParams Precision 9 <null> integer 0 10 true true false false false false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:00fe7cad-0a83-!
42f0-90f2-d6a9584916b2 <null> 108
-PartsSupplier SYS Schemas PrimaryMetamodelURI 6 <null> string 0 255 false true false false false false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.String 255 255 10 mmuuid:eadfaba5-ce44-!
4529-816f-6af94666baec <null> 147
+PartsSupplier SYS Schemas PrimaryMetamodelURI 6 <null> string 0 255 false true false false false false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.String 255 255 10 mmuuid:eadfaba5-ce44-!
4529-816f-6af94666baec <null> 148
PartsSupplier SYS ProcedureParams ProcedureName 3 <null> string 0 255 true true false true false false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.String 255 255 10 mmuuid:8081b3a6-fc79-!
42fd-b7c9-a19d682a1658 <null> 102
PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER_PARTS QUANTITY 3 QUANTITY short 0 0 true true true false true false false Nullable <null> <null> -1 -1 All Except Like <null> <null> java.lang.Short 3 0 10 mmuuid:3fc400c1-73ff-!
1edc-a81c-ecf397b10590 <null> 11
PartsSupplier SYS Columns Radix 28 <null> integer 0 10 true true false false false false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:43a6124c-972f-!
4c4c-af05-24080c2a8ad7 <null> 56
@@ -122,12 +123,12 @@
PartsSupplier SYS Keys SchemaName 2 <null> string 0 255 false true true true true false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.String 0 255 10 mmuuid:4a7fc059-208e-!
4f98-b6ef-cb7c6102a327 <null> 90
PartsSupplier SYS ProcedureParams SchemaName 2 <null> string 0 255 false true true true true false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.String 0 255 10 mmuuid:88497911-619c-!
4ca8-b482-8885d940706a <null> 101
PartsSupplier SYS Procedures SchemaName 2 <null> string 0 255 false true true true true false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.String 0 255 10 mmuuid:53a84865-334e-!
4750-b343-de2411d56e3e <null> 117
-PartsSupplier SYS Tables SchemaName 2 <null> string 0 255 false true true true true false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.String 0 255 10 mmuuid:95bd960c-fd84-!
44c9-9831-692376f69b46 <null> 150
+PartsSupplier SYS Tables SchemaName 2 <null> string 0 255 false true true true true false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.String 0 255 10 mmuuid:95bd960c-fd84-!
44c9-9831-692376f69b46 <null> 151
PartsSupplier SYS Columns SearchType 22 <null> string 0 20 true true false false false false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.String 20 20 10 mmuuid:3037138a-bb20-!
4485-ba01-75bc20b1a532 <null> 50
PartsSupplier SYS DataTypes SearchType 14 <null> string 0 20 true true false false false false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.String 20 20 10 mmuuid:d8494fa3-40e4-!
44cd-b0d8-da5c83685a75 <null> 73
PartsSupplier SYS Columns SupportsSelect 11 <null> boolean 0 1 true true false false false false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.Boolean 1 1 10 mmuuid:c2a50f93-0040-!
41ec-ad7b-e8511296555f <null> 39
PartsSupplier SYS Columns SupportsUpdates 12 <null> boolean 0 1 true true false false false false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.Boolean 1 1 10 mmuuid:fab660d1-36bf-!
4a5b-bbe6-9a543e0ebd76 <null> 40
-PartsSupplier SYS Tables SupportsUpdates 7 <null> boolean 0 1 true true false false false false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.Boolean 1 1 10 mmuuid:5144d230-2b0e-!
4255-b321-65b9f6f6f76c <null> 155
+PartsSupplier SYS Tables SupportsUpdates 7 <null> boolean 0 1 true true false false false false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.Boolean 1 1 10 mmuuid:5144d230-2b0e-!
4255-b321-65b9f6f6f76c <null> 156
PartsSupplier SYS Columns TableName 3 <null> string 0 255 true true false true false false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.String 255 255 10 mmuuid:2c09c9d1-2f25-!
45de-81cf-eeb2a5157d34 <null> 31
PartsSupplier SYS KeyColumns TableName 3 <null> string 0 2048 true true false true false false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.String 2048 2048 10 mmuuid:c24fad72-0c0d-!
4260-96ae-f188ad77b137 <null> 81
PartsSupplier SYS Keys TableName 3 <null> string 0 2048 true true false true false false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.String 2048 2048 10 mmuuid:7d9540bd-b51f-!
4206-8c33-b39c5ba8bb8b <null> 91
@@ -135,7 +136,7 @@
PartsSupplier SYSADMIN MatViews TargetSchemaName 4 <null> string 0 255 false true false true true false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.String 0 255 10 mmuuid:a95dba1c-283e-!
4f48-9671-34cecdb7d0e3 <null> 21
PartsSupplier SYS Keys Type 7 <null> string 0 20 true true false false false false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.String 20 20 10 mmuuid:29e73c18-afec-!
43a9-81ab-7378d6daf20b <null> 95
PartsSupplier SYS ProcedureParams Type 7 <null> string 0 100 true true false false false false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.String 100 100 10 mmuuid:76a1981b-1226-!
4a55-9acf-82a061cc8642 <null> 106
-PartsSupplier SYS Tables Type 4 <null> string 0 20 true true false false false false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.String 20 20 10 mmuuid:4814a0af-4e8f-!
4f55-9b25-3148d90d3d9b <null> 152
+PartsSupplier SYS Tables Type 4 <null> string 0 20 true true false false false false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.String 20 20 10 mmuuid:4814a0af-4e8f-!
4f55-9b25-3148d90d3d9b <null> 153
PartsSupplier SYS DataTypes TypeLength 7 <null> integer 0 10 true true false false false false false No Nulls <null> <null> -1 -1 Searchable <null> (0) java.lang.Integer 10 10 10 mmuuid:0668382a-f9c3-!
4507-8b0f-df65a2ebbf2f <null> 66
PartsSupplier SYS ProcedureParams TypeLength 10 <null> integer 0 10 true true false false false false false No Nulls <null> <null> -1 -1 Searchable <null> (0) java.lang.Integer 10 10 10 mmuuid:791d7a29-8fc5-!
4735-9144-1accc114b58e <null> 109
PartsSupplier SYS DataTypes TypeName 4 <null> string 0 100 true true false false false false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.String 100 100 10 mmuuid:48081cdd-9e90-!
4440-a956-4a32af96d7f4 <null> 63
@@ -146,9 +147,9 @@
PartsSupplier SYS ProcedureParams UID 14 <null> string 0 50 false true true true true false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.String 0 50 10 mmuuid:a278de2e-89f1-!
4281-9e63-54aebb6062ce <null> 113
PartsSupplier SYS Procedures UID 6 <null> string 0 50 true true false false false false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.String 50 50 10 mmuuid:de9df25a-c886-!
46e0-ae3a-8eb6792e43f4 <null> 121
PartsSupplier SYS Properties UID 3 <null> string 0 50 true true false false true false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.String 50 50 10 mmuuid:b333969a-83e0-!
4010-9463-9a0088da6c83 <null> 126
-PartsSupplier SYS Schemas UID 4 <null> string 0 50 true true false false false false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.String 50 50 10 mmuuid:ad232e4d-9c01-!
4d0c-bc57-0459d9db918a <null> 145
-PartsSupplier SYS Tables UID 8 <null> string 0 50 true true false false false false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.String 50 50 10 mmuuid:6afe3737-26f9-!
43a8-88db-86531b5dc66c <null> 156
-PartsSupplier SYS ReferenceKeyColumns UPDATE_RULE 10 <null> integer 0 10 false true true true true false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:30d5ae74-b19e-!
4186-97e1-aeff5801e44f <null> 137
+PartsSupplier SYS Schemas UID 4 <null> string 0 50 true true false false false false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.String 50 50 10 mmuuid:ad232e4d-9c01-!
4d0c-bc57-0459d9db918a <null> 146
+PartsSupplier SYS Tables UID 8 <null> string 0 50 true true false false false false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.String 50 50 10 mmuuid:6afe3737-26f9-!
43a8-88db-86531b5dc66c <null> 157
+PartsSupplier SYS ReferenceKeyColumns UPDATE_RULE 10 <null> integer 0 10 false true true true true false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:30d5ae74-b19e-!
4186-97e1-aeff5801e44f <null> 138
PartsSupplier SYSADMIN MatViews Updated 8 <null> timestamp 0 0 false true false true true false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.sql.Timestamp 0 0 10 mmuuid:33970a66-7ad4-!
411f-a6c4-545746747fe6 <null> 25
PartsSupplier SYSADMIN MatViews VDBName 1 <null> string 0 255 false true false true true false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.String 0 255 10 mmuuid:c1ce9841-e272-!
4839-8c78-777a5f68d241 <null> 18
PartsSupplier SYS Columns VDBName 1 <null> string 0 255 true true false false false false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.String 255 255 10 mmuuid:83f19a81-1243-!
4751-8c99-daddbf37b1d7 <null> 29
@@ -156,102 +157,102 @@
PartsSupplier SYS Keys VDBName 1 <null> string 0 255 true true false false false false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.String 255 255 10 mmuuid:5785b523-7da3-!
42c1-8920-66daa1f7fa1d <null> 89
PartsSupplier SYS ProcedureParams VDBName 1 <null> string 0 255 true true false false false false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.String 255 255 10 mmuuid:f832f316-2403-!
43fa-9ccc-c3ab9d38acca <null> 100
PartsSupplier SYS Procedures VDBName 1 <null> string 0 255 true true false false false false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.String 255 255 10 mmuuid:1d664747-4a95-!
4605-8b28-381bed3121f1 <null> 116
-PartsSupplier SYS Schemas VDBName 1 <null> string 0 255 false true true true true false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.String 0 255 10 mmuuid:73dbf95b-a283-!
4f0a-81b9-9b98e09c2906 <null> 142
-PartsSupplier SYS Tables VDBName 1 <null> string 0 255 false true true true true false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.String 0 255 10 mmuuid:58de905f-9d64-!
4831-a985-da6d082ff709 <null> 149
+PartsSupplier SYS Schemas VDBName 1 <null> string 0 255 false true true true true false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.String 0 255 10 mmuuid:73dbf95b-a283-!
4f0a-81b9-9b98e09c2906 <null> 143
+PartsSupplier SYS Tables VDBName 1 <null> string 0 255 false true true true true false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.String 0 255 10 mmuuid:58de905f-9d64-!
4831-a985-da6d082ff709 <null> 150
PartsSupplier SYSADMIN MatViews Valid 6 <null> boolean 0 0 false true false true true false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.Boolean 0 0 10 mmuuid:13098912-bce2-!
4842-9ea9-b162fcd7383e <null> 23
PartsSupplier SYS Properties Value 2 <null> string 0 255 true true false true true false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.String 255 255 10 mmuuid:c917257d-06b7-!
41dd-a6cb-44c0ff0f897e <null> 125
-PartsSupplier SYS VirtualDatabases Version 2 <null> string 0 50 true true false true false false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.String 50 50 10 mmuuid:c876d749-a512-!
4810-9910-3034ca524c45 <null> 163
-PartsSupplier pg_catalog pg_attrdef adbin 3 <null> string 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.String 0 0 0 mmuid:e22c521a-e208-4!
181-9dbd-89f5de7014b9 <null> 225
-PartsSupplier pg_catalog pg_attrdef adnum 2 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:e9b278d4-49af-4!
42f-9a5a-b699fe3b102b <null> 224
-PartsSupplier pg_catalog pg_attrdef adrelid 1 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:4589389f-4abd-4!
2a6-818f-ff1f2a085dfb <null> 223
-PartsSupplier pg_catalog pg_attrdef adsrc 4 <null> string 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.String 0 0 0 mmuid:492dd834-907f-4!
29b-aa6e-958ad65204c6 <null> 226
-PartsSupplier pg_catalog pg_am amname 2 <null> string 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.String 0 0 0 mmuid:da4b747e-7d87-4!
03a-8309-2cdf1399031b <null> 203
-PartsSupplier pg_catalog pg_attribute atthasdef 10 <null> boolean 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Boolean 0 0 0 mmuid:5868e549-4bbe-4!
79e-bc7e-632c05cc2329 <null> 184
-PartsSupplier pg_catalog pg_attribute attisdropped 9 <null> boolean 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Boolean 0 0 0 mmuid:7beb42a9-dfe6-4!
3de-98b6-7e8948b1a666 <null> 183
-PartsSupplier pg_catalog pg_attribute attlen 5 <null> short 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Short 0 0 0 mmuid:d1214249-95cd-4!
26f-b8f6-4bf68c0504c7 <null> 179
-PartsSupplier pg_catalog pg_attribute attname 3 <null> string 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.String 0 0 0 mmuid:6064d149-4102-4!
c2d-9132-582342f25e90 <null> 177
-PartsSupplier pg_catalog matpg_relatt attname 3 <null> string 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.String 0 0 0 mmuid:5cfb2b62-a912-4!
bfb-bf4f-51e107fe210c <null> 242
-PartsSupplier pg_catalog pg_attribute attnotnull 8 <null> boolean 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Boolean 0 0 0 mmuid:91ce8bde-8570-4!
867-be17-80acfa9275a6 <null> 182
-PartsSupplier pg_catalog pg_attribute attnum 6 <null> short 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Short 0 0 0 mmuid:141fd911-f2dd-4!
edd-8f08-ad8a67ffd0fb <null> 180
-PartsSupplier pg_catalog matpg_relatt attnum 2 <null> short 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Short 0 0 0 mmuid:0b0894ba-e1ea-4!
eaf-bcd2-ea9ebd05e47d <null> 241
-PartsSupplier pg_catalog pg_attribute attrelid 2 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:3be6b5de-2287-4!
279-93f3-4f5064799118 <null> 176
-PartsSupplier pg_catalog matpg_relatt attrelid 1 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:5c7bf056-ecc5-4!
1ea-a122-7a4b1de9908a <null> 240
-PartsSupplier pg_catalog pg_attribute atttypid 4 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:99782493-1cce-4!
e14-9c1b-4de7ce50e2c8 <null> 178
-PartsSupplier pg_catalog pg_attribute atttypmod 7 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:2e2bae3c-ab93-4!
9f5-b96c-7a7b9d66782d <null> 181
-PartsSupplier pg_catalog matpg_relatt autoinc 6 <null> boolean 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Boolean 0 0 0 mmuid:23454408-0347-4!
0d2-a3f9-3faa664fb5e9 <null> 245
+PartsSupplier SYS VirtualDatabases Version 2 <null> string 0 50 true true false true false false false No Nulls <null> <null> -1 -1 Searchable <null> <null> java.lang.String 50 50 10 mmuuid:c876d749-a512-!
4810-9910-3034ca524c45 <null> 164
+PartsSupplier pg_catalog pg_attrdef adbin 3 <null> string 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.String 0 0 0 mmuid:e22c521a-e208-4!
181-9dbd-89f5de7014b9 <null> 226
+PartsSupplier pg_catalog pg_attrdef adnum 2 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:e9b278d4-49af-4!
42f-9a5a-b699fe3b102b <null> 225
+PartsSupplier pg_catalog pg_attrdef adrelid 1 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:4589389f-4abd-4!
2a6-818f-ff1f2a085dfb <null> 224
+PartsSupplier pg_catalog pg_attrdef adsrc 4 <null> string 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.String 0 0 0 mmuid:492dd834-907f-4!
29b-aa6e-958ad65204c6 <null> 227
+PartsSupplier pg_catalog pg_am amname 2 <null> string 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.String 0 0 0 mmuid:da4b747e-7d87-4!
03a-8309-2cdf1399031b <null> 204
+PartsSupplier pg_catalog pg_attribute atthasdef 10 <null> boolean 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Boolean 0 0 0 mmuid:5868e549-4bbe-4!
79e-bc7e-632c05cc2329 <null> 185
+PartsSupplier pg_catalog pg_attribute attisdropped 9 <null> boolean 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Boolean 0 0 0 mmuid:7beb42a9-dfe6-4!
3de-98b6-7e8948b1a666 <null> 184
+PartsSupplier pg_catalog pg_attribute attlen 5 <null> short 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Short 0 0 0 mmuid:d1214249-95cd-4!
26f-b8f6-4bf68c0504c7 <null> 180
+PartsSupplier pg_catalog pg_attribute attname 3 <null> string 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.String 0 0 0 mmuid:6064d149-4102-4!
c2d-9132-582342f25e90 <null> 178
+PartsSupplier pg_catalog matpg_relatt attname 3 <null> string 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.String 0 0 0 mmuid:5cfb2b62-a912-4!
bfb-bf4f-51e107fe210c <null> 243
+PartsSupplier pg_catalog pg_attribute attnotnull 8 <null> boolean 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Boolean 0 0 0 mmuid:91ce8bde-8570-4!
867-be17-80acfa9275a6 <null> 183
+PartsSupplier pg_catalog pg_attribute attnum 6 <null> short 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Short 0 0 0 mmuid:141fd911-f2dd-4!
edd-8f08-ad8a67ffd0fb <null> 181
+PartsSupplier pg_catalog matpg_relatt attnum 2 <null> short 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Short 0 0 0 mmuid:0b0894ba-e1ea-4!
eaf-bcd2-ea9ebd05e47d <null> 242
+PartsSupplier pg_catalog pg_attribute attrelid 2 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:3be6b5de-2287-4!
279-93f3-4f5064799118 <null> 177
+PartsSupplier pg_catalog matpg_relatt attrelid 1 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:5c7bf056-ecc5-4!
1ea-a122-7a4b1de9908a <null> 241
+PartsSupplier pg_catalog pg_attribute atttypid 4 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:99782493-1cce-4!
e14-9c1b-4de7ce50e2c8 <null> 179
+PartsSupplier pg_catalog pg_attribute atttypmod 7 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:2e2bae3c-ab93-4!
9f5-b96c-7a7b9d66782d <null> 182
+PartsSupplier pg_catalog matpg_relatt autoinc 6 <null> boolean 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Boolean 0 0 0 mmuid:23454408-0347-4!
0d2-a3f9-3faa664fb5e9 <null> 246
PartsSupplier SYSADMIN VDBResources contents 2 <null> blob 0 0 false true false true true false false Nullable <null> <null> -1 -1 Searchable <null> <null> org.teiid.core.types.BlobType 0 0 10 mmuuid:f9421669-3564-!
451d-9293-96c1e5e72c4f <null> 28
-PartsSupplier pg_catalog pg_database datacl 7 <null> object 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Object 0 0 0 mmuid:8b993c11-de2b-4!
8bc-beb1-3e44c46811b4 <null> 233
-PartsSupplier pg_catalog pg_database datallowconn 5 <null> char 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Character 0 0 0 mmuid:5c9d54b2-433f-4!
43a-85ce-821f42ed109e <null> 231
-PartsSupplier pg_catalog pg_database datconfig 6 <null> object 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Object 0 0 0 mmuid:4b5beb14-03a0-4!
652-9d6f-5f8cc74d470c <null> 232
-PartsSupplier pg_catalog pg_database datdba 8 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:36db343d-e99a-4!
27c-a4e2-763a720ce4a4 <null> 234
-PartsSupplier pg_catalog pg_database datlastsysoid 4 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:c2bdf40c-ec58-4!
39c-a403-7adf604ceadd <null> 230
-PartsSupplier pg_catalog pg_database datname 2 <null> string 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.String 0 0 0 mmuid:1aedd02c-5801-4!
1e7-accd-da1f257c26e8 <null> 228
-PartsSupplier pg_catalog pg_database dattablespace 9 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:28d034eb-6f39-4!
02f-b642-9c9560e57247 <null> 235
-PartsSupplier pg_catalog pg_database encoding 3 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:3b621b25-171c-4!
05b-8bf9-635cf93f2273 <null> 229
-PartsSupplier pg_catalog pg_index indexprs 7 <null> string 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.String 0 0 0 mmuid:1e6dbecd-9a2d-4!
aef-afbe-665de7acb9d6 <null> 200
-PartsSupplier pg_catalog pg_index indexrelid 2 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:8709e084-48df-4!
17d-b3f8-f4e9b7d8802b <null> 195
-PartsSupplier pg_catalog pg_index indisclustered 4 <null> boolean 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Boolean 0 0 0 mmuid:9f873e0f-903d-4!
c9d-8c37-1073b5ec4c67 <null> 197
-PartsSupplier pg_catalog pg_index indisprimary 6 <null> boolean 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Boolean 0 0 0 mmuid:9ea3b6d2-b27b-4!
bb1-a99d-b703c3308384 <null> 199
-PartsSupplier pg_catalog pg_index indisunique 5 <null> boolean 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Boolean 0 0 0 mmuid:a52c714d-dfe9-4!
06c-906b-fadd53ac4e98 <null> 198
-PartsSupplier pg_catalog pg_index indkey 8 <null> string 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.String 0 0 0 mmuid:347ec08c-6b41-4!
1d0-8475-031ce7d99ac0 <null> 201
-PartsSupplier pg_catalog pg_index indrelid 3 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:16998907-e1dd-4!
47e-898d-780994d30619 <null> 196
-PartsSupplier pg_catalog matpg_datatype name 3 <null> string 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.String 0 0 0 mmuid:b4e04928-9a59-4!
718-a7f1-3a60bcae7449 <null> 249
-PartsSupplier pg_catalog pg_namespace nspname 2 <null> string 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.String 0 0 0 mmuid:0e513513-b35a-4!
8be-975d-5dbed6ace7e9 <null> 165
-PartsSupplier pg_catalog matpg_relatt nspname 5 <null> string 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.String 0 0 0 mmuid:f1998229-2c1a-4!
7b7-8f46-9dda81446db6 <null> 244
-PartsSupplier pg_catalog pg_namespace oid 1 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:688e5112-4083-4!
b67-b42c-62d9a614c59a <null> 164
-PartsSupplier pg_catalog pg_class oid 1 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:c1e736ac-c9d4-4!
026-8904-23c90e6eb1c0 <null> 166
-PartsSupplier pg_catalog pg_attribute oid 1 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:f735e545-a81c-4!
ee2-84d0-3ea35d4083a2 <null> 175
-PartsSupplier pg_catalog pg_type oid 1 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:b6f64d16-b147-4!
59d-8e84-1bd3048fb900 <null> 185
-PartsSupplier pg_catalog pg_index oid 1 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:83ae2247-7eec-4!
59f-b037-ffd3cdca0627 <null> 194
-PartsSupplier pg_catalog pg_am oid 1 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:3c67619c-7d8f-4!
378-b7e9-84a0451ea5e5 <null> 202
-PartsSupplier pg_catalog pg_proc oid 1 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:bdf3ee1e-b5b7-4!
8ab-b43c-4bbb2c8ae1e2 <null> 204
-PartsSupplier pg_catalog pg_trigger oid 1 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:635b6634-632c-4!
3c9-8cc7-bcaa016133e8 <null> 214
-PartsSupplier pg_catalog pg_database oid 1 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:689cde3b-a631-4!
f25-94b4-ff2ffe022b0f <null> 227
-PartsSupplier pg_catalog pg_user oid 1 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:bb78401d-d10c-4!
3b1-af84-e4fa6b95db42 <null> 236
-PartsSupplier pg_catalog matpg_datatype oid 1 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:053375a4-3971-4!
705-9146-9ecc640022c2 <null> 247
-PartsSupplier pg_catalog pg_proc proallargtypes 9 <null> object 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Object 0 0 0 mmuid:a385751f-a31a-4!
d5d-9197-3fbd390b0251 <null> 212
-PartsSupplier pg_catalog pg_proc proargmodes 8 <null> object 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Object 0 0 0 mmuid:bcbed548-176c-4!
116-a5d6-7638cb0206e1 <null> 211
-PartsSupplier pg_catalog pg_proc proargnames 7 <null> object 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Object 0 0 0 mmuid:d9f36bdc-7b25-4!
af0-b9f5-a96aac6d3094 <null> 210
-PartsSupplier pg_catalog pg_proc proargtypes 6 <null> object 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Object 0 0 0 mmuid:ffa4ac73-b549-4!
70e-931f-dc36330cb8c4 <null> 209
-PartsSupplier pg_catalog pg_proc proname 2 <null> string 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.String 0 0 0 mmuid:b288b3aa-37f2-4!
a8e-8b1b-e932a2ce3e25 <null> 205
-PartsSupplier pg_catalog pg_proc pronamespace 10 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:e5715456-245f-4!
846-b90b-01d06d1c3672 <null> 213
-PartsSupplier pg_catalog pg_proc pronargs 5 <null> short 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Short 0 0 0 mmuid:6796c2e7-48a4-4!
f9f-bc98-d47913e2491c <null> 208
-PartsSupplier pg_catalog pg_proc proretset 3 <null> boolean 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Boolean 0 0 0 mmuid:e0244e1d-431c-4!
1fa-8194-1e357e2b688b <null> 206
-PartsSupplier pg_catalog pg_proc prorettype 4 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:9fb5a34a-3a7e-4!
d38-b7cd-239f28a3504e <null> 207
-PartsSupplier pg_catalog pg_class relam 5 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:c2f92b1a-6ba0-4!
486-8936-f5185d926178 <null> 170
-PartsSupplier pg_catalog pg_class relhasoids 9 <null> boolean 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Boolean 0 0 0 mmuid:3ac5a14a-1f9e-4!
55b-8ea1-cf0878774fd7 <null> 174
-PartsSupplier pg_catalog pg_class relhasrules 8 <null> boolean 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Boolean 0 0 0 mmuid:6c26fd66-2a4a-4!
ccf-949a-a06a858db7f6 <null> 173
-PartsSupplier pg_catalog pg_class relkind 4 <null> char 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Character 0 0 0 mmuid:ef4359eb-6d51-4!
249-bfea-40bc0f407d10 <null> 169
-PartsSupplier pg_catalog pg_class relname 2 <null> string 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.String 0 0 0 mmuid:5f9b50fa-8188-4!
048-93c2-3ad1587915df <null> 167
-PartsSupplier pg_catalog matpg_relatt relname 4 <null> string 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.String 0 0 0 mmuid:ffbf69c1-2e34-4!
764-a9b3-9a1b61bfd4af <null> 243
-PartsSupplier pg_catalog pg_class relnamespace 3 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:4591ef08-bff8-4!
f3b-9de7-420f9c7f9d2b <null> 168
-PartsSupplier pg_catalog pg_class relpages 7 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:44dee7d6-b6ae-4!
4c7-85f2-e87364d8d059 <null> 172
-PartsSupplier pg_catalog pg_class reltuples 6 <null> float 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Float 0 0 0 mmuid:b9ed4b49-5a7b-4!
ba4-863a-37fd95b2a34c <null> 171
+PartsSupplier pg_catalog pg_database datacl 7 <null> object 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Object 0 0 0 mmuid:8b993c11-de2b-4!
8bc-beb1-3e44c46811b4 <null> 234
+PartsSupplier pg_catalog pg_database datallowconn 5 <null> char 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Character 0 0 0 mmuid:5c9d54b2-433f-4!
43a-85ce-821f42ed109e <null> 232
+PartsSupplier pg_catalog pg_database datconfig 6 <null> object 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Object 0 0 0 mmuid:4b5beb14-03a0-4!
652-9d6f-5f8cc74d470c <null> 233
+PartsSupplier pg_catalog pg_database datdba 8 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:36db343d-e99a-4!
27c-a4e2-763a720ce4a4 <null> 235
+PartsSupplier pg_catalog pg_database datlastsysoid 4 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:c2bdf40c-ec58-4!
39c-a403-7adf604ceadd <null> 231
+PartsSupplier pg_catalog pg_database datname 2 <null> string 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.String 0 0 0 mmuid:1aedd02c-5801-4!
1e7-accd-da1f257c26e8 <null> 229
+PartsSupplier pg_catalog pg_database dattablespace 9 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:28d034eb-6f39-4!
02f-b642-9c9560e57247 <null> 236
+PartsSupplier pg_catalog pg_database encoding 3 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:3b621b25-171c-4!
05b-8bf9-635cf93f2273 <null> 230
+PartsSupplier pg_catalog pg_index indexprs 7 <null> string 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.String 0 0 0 mmuid:1e6dbecd-9a2d-4!
aef-afbe-665de7acb9d6 <null> 201
+PartsSupplier pg_catalog pg_index indexrelid 2 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:8709e084-48df-4!
17d-b3f8-f4e9b7d8802b <null> 196
+PartsSupplier pg_catalog pg_index indisclustered 4 <null> boolean 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Boolean 0 0 0 mmuid:9f873e0f-903d-4!
c9d-8c37-1073b5ec4c67 <null> 198
+PartsSupplier pg_catalog pg_index indisprimary 6 <null> boolean 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Boolean 0 0 0 mmuid:9ea3b6d2-b27b-4!
bb1-a99d-b703c3308384 <null> 200
+PartsSupplier pg_catalog pg_index indisunique 5 <null> boolean 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Boolean 0 0 0 mmuid:a52c714d-dfe9-4!
06c-906b-fadd53ac4e98 <null> 199
+PartsSupplier pg_catalog pg_index indkey 8 <null> string 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.String 0 0 0 mmuid:347ec08c-6b41-4!
1d0-8475-031ce7d99ac0 <null> 202
+PartsSupplier pg_catalog pg_index indrelid 3 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:16998907-e1dd-4!
47e-898d-780994d30619 <null> 197
+PartsSupplier pg_catalog matpg_datatype name 3 <null> string 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.String 0 0 0 mmuid:b4e04928-9a59-4!
718-a7f1-3a60bcae7449 <null> 250
+PartsSupplier pg_catalog pg_namespace nspname 2 <null> string 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.String 0 0 0 mmuid:0e513513-b35a-4!
8be-975d-5dbed6ace7e9 <null> 166
+PartsSupplier pg_catalog matpg_relatt nspname 5 <null> string 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.String 0 0 0 mmuid:f1998229-2c1a-4!
7b7-8f46-9dda81446db6 <null> 245
+PartsSupplier pg_catalog pg_namespace oid 1 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:688e5112-4083-4!
b67-b42c-62d9a614c59a <null> 165
+PartsSupplier pg_catalog pg_class oid 1 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:c1e736ac-c9d4-4!
026-8904-23c90e6eb1c0 <null> 167
+PartsSupplier pg_catalog pg_attribute oid 1 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:f735e545-a81c-4!
ee2-84d0-3ea35d4083a2 <null> 176
+PartsSupplier pg_catalog pg_type oid 1 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:b6f64d16-b147-4!
59d-8e84-1bd3048fb900 <null> 186
+PartsSupplier pg_catalog pg_index oid 1 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:83ae2247-7eec-4!
59f-b037-ffd3cdca0627 <null> 195
+PartsSupplier pg_catalog pg_am oid 1 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:3c67619c-7d8f-4!
378-b7e9-84a0451ea5e5 <null> 203
+PartsSupplier pg_catalog pg_proc oid 1 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:bdf3ee1e-b5b7-4!
8ab-b43c-4bbb2c8ae1e2 <null> 205
+PartsSupplier pg_catalog pg_trigger oid 1 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:635b6634-632c-4!
3c9-8cc7-bcaa016133e8 <null> 215
+PartsSupplier pg_catalog pg_database oid 1 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:689cde3b-a631-4!
f25-94b4-ff2ffe022b0f <null> 228
+PartsSupplier pg_catalog pg_user oid 1 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:bb78401d-d10c-4!
3b1-af84-e4fa6b95db42 <null> 237
+PartsSupplier pg_catalog matpg_datatype oid 1 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:053375a4-3971-4!
705-9146-9ecc640022c2 <null> 248
+PartsSupplier pg_catalog pg_proc proallargtypes 9 <null> object 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Object 0 0 0 mmuid:a385751f-a31a-4!
d5d-9197-3fbd390b0251 <null> 213
+PartsSupplier pg_catalog pg_proc proargmodes 8 <null> object 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Object 0 0 0 mmuid:bcbed548-176c-4!
116-a5d6-7638cb0206e1 <null> 212
+PartsSupplier pg_catalog pg_proc proargnames 7 <null> object 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Object 0 0 0 mmuid:d9f36bdc-7b25-4!
af0-b9f5-a96aac6d3094 <null> 211
+PartsSupplier pg_catalog pg_proc proargtypes 6 <null> object 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Object 0 0 0 mmuid:ffa4ac73-b549-4!
70e-931f-dc36330cb8c4 <null> 210
+PartsSupplier pg_catalog pg_proc proname 2 <null> string 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.String 0 0 0 mmuid:b288b3aa-37f2-4!
a8e-8b1b-e932a2ce3e25 <null> 206
+PartsSupplier pg_catalog pg_proc pronamespace 10 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:e5715456-245f-4!
846-b90b-01d06d1c3672 <null> 214
+PartsSupplier pg_catalog pg_proc pronargs 5 <null> short 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Short 0 0 0 mmuid:6796c2e7-48a4-4!
f9f-bc98-d47913e2491c <null> 209
+PartsSupplier pg_catalog pg_proc proretset 3 <null> boolean 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Boolean 0 0 0 mmuid:e0244e1d-431c-4!
1fa-8194-1e357e2b688b <null> 207
+PartsSupplier pg_catalog pg_proc prorettype 4 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:9fb5a34a-3a7e-4!
d38-b7cd-239f28a3504e <null> 208
+PartsSupplier pg_catalog pg_class relam 5 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:c2f92b1a-6ba0-4!
486-8936-f5185d926178 <null> 171
+PartsSupplier pg_catalog pg_class relhasoids 9 <null> boolean 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Boolean 0 0 0 mmuid:3ac5a14a-1f9e-4!
55b-8ea1-cf0878774fd7 <null> 175
+PartsSupplier pg_catalog pg_class relhasrules 8 <null> boolean 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Boolean 0 0 0 mmuid:6c26fd66-2a4a-4!
ccf-949a-a06a858db7f6 <null> 174
+PartsSupplier pg_catalog pg_class relkind 4 <null> char 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Character 0 0 0 mmuid:ef4359eb-6d51-4!
249-bfea-40bc0f407d10 <null> 170
+PartsSupplier pg_catalog pg_class relname 2 <null> string 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.String 0 0 0 mmuid:5f9b50fa-8188-4!
048-93c2-3ad1587915df <null> 168
+PartsSupplier pg_catalog matpg_relatt relname 4 <null> string 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.String 0 0 0 mmuid:ffbf69c1-2e34-4!
764-a9b3-9a1b61bfd4af <null> 244
+PartsSupplier pg_catalog pg_class relnamespace 3 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:4591ef08-bff8-4!
f3b-9de7-420f9c7f9d2b <null> 169
+PartsSupplier pg_catalog pg_class relpages 7 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:44dee7d6-b6ae-4!
4c7-85f2-e87364d8d059 <null> 173
+PartsSupplier pg_catalog pg_class reltuples 6 <null> float 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Float 0 0 0 mmuid:b9ed4b49-5a7b-4!
ba4-863a-37fd95b2a34c <null> 172
PartsSupplier SYSADMIN VDBResources resourcePath 1 <null> string 0 255 false true false true true false false Nullable <null> <null> -1 -1 Searchable <null> <null> java.lang.String 0 255 10 mmuuid:b1bc5150-3dcc-!
452e-9e75-4a506997f612 <null> 27
-PartsSupplier pg_catalog pg_trigger tgargs 4 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:0c20dbe7-5d89-4!
11f-a8ab-3d77b999595b <null> 217
-PartsSupplier pg_catalog pg_trigger tgconstrname 8 <null> string 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.String 0 0 0 mmuid:c010d12f-2074-4!
5db-8e18-979cee2c45da <null> 221
-PartsSupplier pg_catalog pg_trigger tgconstrrelid 2 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:64977f3e-f2a0-4!
66e-a5d1-80bb058cbe08 <null> 215
-PartsSupplier pg_catalog pg_trigger tgdeferrable 6 <null> boolean 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Boolean 0 0 0 mmuid:bfbff036-caf2-4!
652-80cf-398af17ed7d1 <null> 219
-PartsSupplier pg_catalog pg_trigger tgfoid 3 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:250d7c06-728a-4!
b2a-b557-91f2a69bb184 <null> 216
-PartsSupplier pg_catalog pg_trigger tginitdeferred 7 <null> boolean 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Boolean 0 0 0 mmuid:da4b59ca-ebff-4!
5a8-ad68-9777bc587813 <null> 220
-PartsSupplier pg_catalog pg_trigger tgnargs 5 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:d70f020b-658c-4!
f58-86dc-0fbb12e2d8af <null> 218
-PartsSupplier pg_catalog pg_trigger tgrelid 9 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:71091853-c65e-4!
6a9-9947-aa024f806e2d <null> 222
-PartsSupplier pg_catalog pg_type typbasetype 6 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:a17d2f61-cd68-4!
c0d-8d25-132f68eb3b67 <null> 190
-PartsSupplier pg_catalog pg_type typelem 9 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:22ac431d-e6e6-4!
eef-9d74-b31795424e97 <null> 193
-PartsSupplier pg_catalog pg_type typlen 4 <null> short 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Short 0 0 0 mmuid:931c09e1-937a-4!
37e-aab2-2360f8d90e2b <null> 188
-PartsSupplier pg_catalog matpg_datatype typlen 5 <null> short 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Short 0 0 0 mmuid:0e9c4439-48d0-4!
115-a343-5baab7a236b6 <null> 251
-PartsSupplier pg_catalog pg_type typname 2 <null> string 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.String 0 0 0 mmuid:d600d818-2aad-4!
c92-9343-267d044dd97d <null> 186
-PartsSupplier pg_catalog matpg_datatype typname 2 <null> string 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.String 0 0 0 mmuid:0f312b3c-98ca-4!
a09-81fa-f1ff83f0a6c1 <null> 248
-PartsSupplier pg_catalog pg_type typnamespace 3 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:e47217d2-2b07-4!
353-bfbd-d7c883a5e7e0 <null> 187
-PartsSupplier pg_catalog matpg_relatt typoid 7 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:595a823f-cec1-4!
2dc-b8b2-c95c8b4e4e66 <null> 246
-PartsSupplier pg_catalog pg_type typrelid 8 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:bec25882-b292-4!
ed1-a610-cad5d504837d <null> 192
-PartsSupplier pg_catalog pg_type typtype 5 <null> char 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Character 0 0 0 mmuid:83199eba-7af4-4!
4a9-822f-006677b1b895 <null> 189
-PartsSupplier pg_catalog pg_type typtypmod 7 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:cee3559d-1ce6-4!
b17-ad57-2ecb79a9e1d2 <null> 191
-PartsSupplier pg_catalog matpg_datatype uid 4 <null> string 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.String 0 0 0 mmuid:87826ebc-98a5-4!
f19-a6d8-6b7b96cbed48 <null> 250
-PartsSupplier pg_catalog pg_user usecreatedb 3 <null> boolean 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Boolean 0 0 0 mmuid:6da98878-b46e-4!
ed1-b032-1bc72da595f4 <null> 238
-PartsSupplier pg_catalog pg_user usename 2 <null> string 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.String 0 0 0 mmuid:236445e1-408c-4!
0a1-a61c-40e96fb5dc9f <null> 237
-PartsSupplier pg_catalog pg_user usesuper 4 <null> boolean 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Boolean 0 0 0 mmuid:9bfddc66-af75-4!
366-8eac-b9fef3421219 <null> 239
-Row Count : 251
+PartsSupplier pg_catalog pg_trigger tgargs 4 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:0c20dbe7-5d89-4!
11f-a8ab-3d77b999595b <null> 218
+PartsSupplier pg_catalog pg_trigger tgconstrname 8 <null> string 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.String 0 0 0 mmuid:c010d12f-2074-4!
5db-8e18-979cee2c45da <null> 222
+PartsSupplier pg_catalog pg_trigger tgconstrrelid 2 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:64977f3e-f2a0-4!
66e-a5d1-80bb058cbe08 <null> 216
+PartsSupplier pg_catalog pg_trigger tgdeferrable 6 <null> boolean 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Boolean 0 0 0 mmuid:bfbff036-caf2-4!
652-80cf-398af17ed7d1 <null> 220
+PartsSupplier pg_catalog pg_trigger tgfoid 3 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:250d7c06-728a-4!
b2a-b557-91f2a69bb184 <null> 217
+PartsSupplier pg_catalog pg_trigger tginitdeferred 7 <null> boolean 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Boolean 0 0 0 mmuid:da4b59ca-ebff-4!
5a8-ad68-9777bc587813 <null> 221
+PartsSupplier pg_catalog pg_trigger tgnargs 5 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:d70f020b-658c-4!
f58-86dc-0fbb12e2d8af <null> 219
+PartsSupplier pg_catalog pg_trigger tgrelid 9 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:71091853-c65e-4!
6a9-9947-aa024f806e2d <null> 223
+PartsSupplier pg_catalog pg_type typbasetype 6 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:a17d2f61-cd68-4!
c0d-8d25-132f68eb3b67 <null> 191
+PartsSupplier pg_catalog pg_type typelem 9 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:22ac431d-e6e6-4!
eef-9d74-b31795424e97 <null> 194
+PartsSupplier pg_catalog pg_type typlen 4 <null> short 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Short 0 0 0 mmuid:931c09e1-937a-4!
37e-aab2-2360f8d90e2b <null> 189
+PartsSupplier pg_catalog matpg_datatype typlen 5 <null> short 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Short 0 0 0 mmuid:0e9c4439-48d0-4!
115-a343-5baab7a236b6 <null> 252
+PartsSupplier pg_catalog pg_type typname 2 <null> string 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.String 0 0 0 mmuid:d600d818-2aad-4!
c92-9343-267d044dd97d <null> 187
+PartsSupplier pg_catalog matpg_datatype typname 2 <null> string 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.String 0 0 0 mmuid:0f312b3c-98ca-4!
a09-81fa-f1ff83f0a6c1 <null> 249
+PartsSupplier pg_catalog pg_type typnamespace 3 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:e47217d2-2b07-4!
353-bfbd-d7c883a5e7e0 <null> 188
+PartsSupplier pg_catalog matpg_relatt typoid 7 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:595a823f-cec1-4!
2dc-b8b2-c95c8b4e4e66 <null> 247
+PartsSupplier pg_catalog pg_type typrelid 8 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:bec25882-b292-4!
ed1-a610-cad5d504837d <null> 193
+PartsSupplier pg_catalog pg_type typtype 5 <null> char 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Character 0 0 0 mmuid:83199eba-7af4-4!
4a9-822f-006677b1b895 <null> 190
+PartsSupplier pg_catalog pg_type typtypmod 7 <null> integer 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Integer 0 0 0 mmuid:cee3559d-1ce6-4!
b17-ad57-2ecb79a9e1d2 <null> 192
+PartsSupplier pg_catalog matpg_datatype uid 4 <null> string 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.String 0 0 0 mmuid:87826ebc-98a5-4!
f19-a6d8-6b7b96cbed48 <null> 251
+PartsSupplier pg_catalog pg_user usecreatedb 3 <null> boolean 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Boolean 0 0 0 mmuid:6da98878-b46e-4!
ed1-b032-1bc72da595f4 <null> 239
+PartsSupplier pg_catalog pg_user usename 2 <null> string 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.String 0 0 0 mmuid:236445e1-408c-4!
0a1-a61c-40e96fb5dc9f <null> 238
+PartsSupplier pg_catalog pg_user usesuper 4 <null> boolean 0 0 false true false false false false false Unknown <null> <null> -1 -1 Searchable <null> <null> java.lang.Boolean 0 0 0 mmuid:9bfddc66-af75-4!
366-8eac-b9fef3421219 <null> 240
+Row Count : 252
getColumnName getColumnType getCatalogName getColumnClassName getColumnLabel getColumnTypeName getSchemaName getTableName getColumnDisplaySize getPrecision getScale isAutoIncrement isCaseSensitive isCurrency isDefinitelyWritable isNullable isReadOnly isSearchable isSigned isWritable
VDBName 12 PartsSupplier java.lang.String VDBName string SYS Columns 255 255 0 false false false false 0 true true false false
SchemaName 12 PartsSupplier java.lang.String SchemaName string SYS Columns 255 255 0 false true false true 1 false true true true
Modified: trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testProcedureParams.expected
===================================================================
--- trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testProcedureParams.expected 2011-04-29 18:34:21 UTC (rev 3133)
+++ trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testProcedureParams.expected 2011-05-02 17:02:28 UTC (rev 3134)
@@ -2,21 +2,25 @@
VDBName SchemaName ProcedureName Name DataType Position Type Optional Precision TypeLength Scale Radix NullType UID Description OID
PartsSupplier SYSADMIN refreshMatView Invalidate boolean 2 In false 0 0 0 10 No Nulls mmuuid:5736cfd3-750f-42d8-b083-102061e11c60 <null> 5
PartsSupplier SYSADMIN refreshMatViewRow Key object 2 In false 0 0 0 10 No Nulls mmuuid:7af5a63b-1b91-4d1e-912e-846a7e84c579 <null> 2
+PartsSupplier SYSADMIN setProperty Name string 3 In false 0 0 0 10 No Nulls mmuuid:ea92812c-1516-4c75-b5d3-c531fdbd8475 <null> 15
+PartsSupplier SYSADMIN setProperty OldValue clob 1 ReturnValue false 0 2097152 0 10 No Nulls mmuuid:48034d50-dd11-4653-aeae-b0d8d3d55656 <null> 13
PartsSupplier SYSADMIN refreshMatViewRow RowsUpdated integer 3 ReturnValue false 0 0 0 10 No Nulls mmuuid:05a6a9be-c014-4d06-bcac-746cee4f118b <null> 3
PartsSupplier SYSADMIN refreshMatView RowsUpdated integer 3 ReturnValue false 0 0 0 10 No Nulls mmuuid:d07a6a75-aa12-4dac-8eab-b2acdbaaffd8 <null> 6
+PartsSupplier SYSADMIN setProperty UID string 2 In false 0 50 0 10 No Nulls mmuuid:d377510e-2ec5-445e-bdf0-59c7c0380962 <null> 14
+PartsSupplier SYSADMIN setProperty Value clob 4 In false 0 2097152 0 10 Nullable mmuuid:ac5beeb8-2d0d-48ff-a533-4237d53b67e8 <null> 16
PartsSupplier SYSADMIN refreshMatViewRow ViewName string 1 In false 0 0 0 10 No Nulls mmuuid:ba635c44-a052-496d-9c35-ca010c0ebebe <null> 1
PartsSupplier SYSADMIN refreshMatView ViewName string 1 In false 0 0 0 10 No Nulls mmuuid:e0c28e00-d987-48e4-8c60-5f637f10bf33 <null> 4
-PartsSupplier SYSADMIN setTableStats cardinality integer 2 In false 0 0 0 10 No Nulls mmuuid:0aba7849-7fd3-4bc6-a3d3-dfe433bc67a4 <null> 14
+PartsSupplier SYSADMIN setTableStats cardinality integer 2 In false 0 0 0 10 No Nulls mmuuid:0aba7849-7fd3-4bc6-a3d3-dfe433bc67a4 <null> 18
PartsSupplier SYSADMIN setColumnStats columnName string 2 In false 0 0 0 10 No Nulls mmuuid:76553706-632f-4e60-8489-9d0361f58541 <null> 8
PartsSupplier SYSADMIN setColumnStats distinctCount integer 3 In false 0 0 0 10 Nullable mmuuid:2c61976e-abb5-4c74-bdae-278681b82aa3 <null> 9
-PartsSupplier SYS getXMLSchemas document string 1 In false 0 0 0 10 No Nulls mmuuid:85b88af5-f0b8-401f-b35a-ccee56155492 <null> 15
+PartsSupplier SYS getXMLSchemas document string 1 In false 0 0 0 10 No Nulls mmuuid:85b88af5-f0b8-401f-b35a-ccee56155492 <null> 19
PartsSupplier SYSADMIN setColumnStats max string 5 In false 0 0 0 10 Nullable mmuuid:8f42e701-3609-413d-8c10-77e32cd816f2 <null> 11
PartsSupplier SYSADMIN setColumnStats min string 6 In false 0 0 0 10 Nullable mmuuid:4511ea3f-f2d2-4abf-b363-afb5186bc2d2 <null> 12
PartsSupplier SYSADMIN setColumnStats nullCount integer 4 In false 0 0 0 10 Nullable mmuuid:44b8c83c-9fcd-4bd2-a730-76e401205536 <null> 10
-PartsSupplier SYS getXMLSchemas schema xml 1 ResultSet false 0 0 0 10 Nullable mmuuid:003980bb-38bb-41ad-b8c2-c87ca47aa554 <null> 16
+PartsSupplier SYS getXMLSchemas schema xml 1 ResultSet false 0 0 0 10 Nullable mmuuid:003980bb-38bb-41ad-b8c2-c87ca47aa554 <null> 20
PartsSupplier SYSADMIN setColumnStats tableName string 1 In false 0 0 0 10 No Nulls mmuuid:4dcab018-ca4a-467b-96cc-7f28734c840e <null> 7
-PartsSupplier SYSADMIN setTableStats tableName string 1 In false 0 0 0 10 No Nulls mmuuid:28d8ad4a-e091-4934-afd9-7d27310bd370 <null> 13
-Row Count : 16
+PartsSupplier SYSADMIN setTableStats tableName string 1 In false 0 0 0 10 No Nulls mmuuid:28d8ad4a-e091-4934-afd9-7d27310bd370 <null> 17
+Row Count : 20
getColumnName getColumnType getCatalogName getColumnClassName getColumnLabel getColumnTypeName getSchemaName getTableName getColumnDisplaySize getPrecision getScale isAutoIncrement isCaseSensitive isCurrency isDefinitelyWritable isNullable isReadOnly isSearchable isSigned isWritable
VDBName 12 PartsSupplier java.lang.String VDBName string SYS ProcedureParams 255 255 0 false false false false 0 true true false false
SchemaName 12 PartsSupplier java.lang.String SchemaName string SYS ProcedureParams 255 255 0 false true false true 1 false true true true
Modified: trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testProcedures.expected
===================================================================
--- trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testProcedures.expected 2011-04-29 18:34:21 UTC (rev 3133)
+++ trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testProcedures.expected 2011-05-02 17:02:28 UTC (rev 3134)
@@ -1,11 +1,12 @@
string string string string boolean string string integer
VDBName SchemaName Name NameInSource ReturnsResults UID Description OID
-PartsSupplier SYS getXMLSchemas <null> true mmuuid:68497bd9-30f5-461b-bf13-6b26aeb2fc4f <null> 5
+PartsSupplier SYS getXMLSchemas <null> true mmuuid:68497bd9-30f5-461b-bf13-6b26aeb2fc4f <null> 6
PartsSupplier SYSADMIN refreshMatView <null> false mmuuid:52178344-dca8-4c76-8549-00a4515c7044 <null> 2
PartsSupplier SYSADMIN refreshMatViewRow <null> false mmuuid:1674912b-af56-465a-a1b9-d1de8b761f10 <null> 1
PartsSupplier SYSADMIN setColumnStats <null> false mmuuid:49c367be-918f-43be-8b9e-99e275179859 <null> 3
-PartsSupplier SYSADMIN setTableStats <null> false mmuuid:6d167c35-04d1-41f6-83ff-888c39423823 <null> 4
-Row Count : 5
+PartsSupplier SYSADMIN setProperty <null> false mmuuid:8db9b08e-3d6e-415a-9ceb-3fef726f424c <null> 4
+PartsSupplier SYSADMIN setTableStats <null> false mmuuid:6d167c35-04d1-41f6-83ff-888c39423823 <null> 5
+Row Count : 6
getColumnName getColumnType getCatalogName getColumnClassName getColumnLabel getColumnTypeName getSchemaName getTableName getColumnDisplaySize getPrecision getScale isAutoIncrement isCaseSensitive isCurrency isDefinitelyWritable isNullable isReadOnly isSearchable isSigned isWritable
VDBName 12 PartsSupplier java.lang.String VDBName string SYS Procedures 255 255 0 false false false false 0 true true false false
SchemaName 12 PartsSupplier java.lang.String SchemaName string SYS Procedures 255 255 0 false true false true 1 false true true true
14 years, 7 months