teiid SVN: r2230 - trunk/engine/src/main/java/org/teiid/query/util.
by teiid-commits@lists.jboss.org
Author: shawkins
Date: 2010-06-14 12:35:03 -0400 (Mon, 14 Jun 2010)
New Revision: 2230
Modified:
trunk/engine/src/main/java/org/teiid/query/util/CommandContext.java
Log:
fixing errant check in
Modified: trunk/engine/src/main/java/org/teiid/query/util/CommandContext.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/util/CommandContext.java 2010-06-14 15:43:33 UTC (rev 2229)
+++ trunk/engine/src/main/java/org/teiid/query/util/CommandContext.java 2010-06-14 16:35:03 UTC (rev 2230)
@@ -32,6 +32,7 @@
import org.teiid.api.exception.query.QueryProcessingException;
import org.teiid.common.buffer.BufferManager;
import org.teiid.core.TeiidComponentException;
+import org.teiid.core.types.Streamable;
import org.teiid.core.util.ArgCheck;
import org.teiid.query.QueryPlugin;
import org.teiid.query.eval.SecurityFunctionEvaluator;
@@ -78,6 +79,8 @@
/** Indicate whether statistics should be collected for relational node processing*/
private boolean collectNodeStatistics;
+ private int streamingBatchSize = Streamable.STREAMING_BATCH_SIZE_IN_BYTES;
+
private Random random = null;
private SecurityFunctionEvaluator securityFunctionEvaluator;
@@ -271,6 +274,15 @@
return this.globalState.collectNodeStatistics;
}
+ public int getStreamingBatchSize() {
+ return globalState.streamingBatchSize;
+ }
+
+ public void setStreamingBatchSize(int streamingBatchSize) {
+ this.globalState.streamingBatchSize = streamingBatchSize;
+ }
+
+
public int getConnectorBatchSize() {
return this.globalState.connectorBatchSize;
}
14 years, 6 months
teiid SVN: r2229 - trunk/build/assembly/jboss-container.
by teiid-commits@lists.jboss.org
Author: shawkins
Date: 2010-06-14 11:43:33 -0400 (Mon, 14 Jun 2010)
New Revision: 2229
Modified:
trunk/build/assembly/jboss-container/dist.xml
Log:
TEIID-1118 TEIID-1018 TEIID-315 TEIID-869 adding description to procedure parameter metadata, refining the reference to include information about dynamic vdbs and translators, which includes more info on the WS translator, renaming connector developers guide to developers guide
Modified: trunk/build/assembly/jboss-container/dist.xml
===================================================================
--- trunk/build/assembly/jboss-container/dist.xml 2010-06-14 15:40:48 UTC (rev 2228)
+++ trunk/build/assembly/jboss-container/dist.xml 2010-06-14 15:43:33 UTC (rev 2229)
@@ -60,7 +60,7 @@
<outputDirectory>teiid-docs</outputDirectory>
</fileSet>
<fileSet>
- <directory>target/distribution/teiid-${version}-docs.dir/connector-developer-guide/en-US/pdf</directory>
+ <directory>target/distribution/teiid-${version}-docs.dir/developer-guide/en-US/pdf</directory>
<includes>
<include>connector_developer_guide.pdf</include>
</includes>
14 years, 6 months
teiid SVN: r2228 - in trunk: build/kits/jboss-container/deploy/teiid and 39 other directories.
by teiid-commits@lists.jboss.org
Author: shawkins
Date: 2010-06-14 11:40:48 -0400 (Mon, 14 Jun 2010)
New Revision: 2228
Added:
trunk/documentation/client-developers-guide/src/main/docbook/en-US/content/other_commands.xml
trunk/documentation/developer-guide/
trunk/documentation/reference/src/main/docbook/en-US/content/translators.xml
trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/
trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testColumns.expected
trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testDataTypes.expected
trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testKeyColumns.expected
trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testKeys.expected
trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testProcedureParams.expected
trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testProcedures.expected
trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testReferenceKeyColumns.expected
trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testSchemas.expected
trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testTableIsSystem.expected
trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testTables.expected
Removed:
trunk/connectors/translator-jdbc/src/test/java/org/teiid/connector/jdbc/
trunk/documentation/connector-developer-guide/
trunk/documentation/reference/src/main/docbook/en-US/content/other_commands.xml
trunk/metadata/src/main/system-models/
trunk/metadata/src/test/java/com/
trunk/test-integration/common/src/test/java/com/
trunk/test-integration/common/src/test/resources/system/
Modified:
trunk/api/src/main/java/org/teiid/translator/ExecutionFactory.java
trunk/build/kits/jboss-container/deploy/teiid/teiid-jboss-beans.xml
trunk/build/kits/jboss-container/teiid-examples/dynamicvdb-portfolio/README.txt
trunk/build/kits/jboss-container/teiid-examples/dynamicvdb-ws-weather/README.txt
trunk/client/src/main/java/org/teiid/jdbc/DatabaseMetaDataImpl.java
trunk/connectors/translator-file/src/main/java/org/teiid/translator/file/FileExecutionFactory.java
trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/JDBCBaseExecution.java
trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/JDBCExecutionFactory.java
trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/JDBCUpdateExecution.java
trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/derby/DerbyExecutionFactory.java
trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/postgresql/PostgreSQLExecutionFactory.java
trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/TestLocateFunctionModifier.java
trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/TestSQLConversionVisitor.java
trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/db2/TestDB2SqlTranslator.java
trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/modeshape/TestModeShapeSqlTranslator.java
trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/mysql/TestMySQLTranslator.java
trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/oracle/TestOracleTranslator.java
trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/postgresql/TestPostgreSQLTranslator.java
trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/sybase/TestSybaseSQLConversionVisitor.java
trunk/connectors/translator-ws/src/main/java/org/teiid/translator/ws/WSExecutionFactory.java
trunk/connectors/translator-ws/src/main/java/org/teiid/translator/ws/WSProcedureExecution.java
trunk/documentation/developer-guide/pom.xml
trunk/documentation/pom.xml
trunk/documentation/reference/src/main/docbook/en-US/Reference.xml
trunk/documentation/reference/src/main/docbook/en-US/content/datatypes.xml
trunk/documentation/reference/src/main/docbook/en-US/content/federated_planning.xml
trunk/documentation/reference/src/main/docbook/en-US/content/grammar.xml
trunk/documentation/reference/src/main/docbook/en-US/content/scalar_functions.xml
trunk/documentation/reference/src/main/docbook/en-US/content/transaction_support.xml
trunk/documentation/reference/src/main/docbook/en-US/content/xml_queries.xml
trunk/documentation/salesforce-connector-guide/src/main/docbook/en-US/content/preface.xml
trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/impl/CapabilitiesConverter.java
trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/impl/ConnectorManager.java
trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/impl/ConnectorWorkItem.java
trunk/engine/src/main/java/org/teiid/dqp/internal/process/DQPConfiguration.java
trunk/engine/src/main/java/org/teiid/dqp/internal/process/DQPCore.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/dqp/message/AtomicRequestMessage.java
trunk/engine/src/main/java/org/teiid/query/rewriter/QueryRewriter.java
trunk/engine/src/main/java/org/teiid/query/util/CommandContext.java
trunk/engine/src/main/resources/org/teiid/query/i18n.properties
trunk/metadata/src/main/resources/System.vdb
trunk/runtime/src/main/java/org/teiid/deployers/VDBDeployer.java
trunk/test-integration/common/src/test/java/org/teiid/jdbc/AbstractMMQueryTestCase.java
trunk/test-integration/common/src/test/java/org/teiid/jdbc/TestCase3473.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/TestPartsDatabaseMetadata/testColumns.expected
trunk/test-integration/common/src/test/resources/TestPartsDatabaseMetadata/testProcedureColumns.expected
Log:
TEIID-1118 TEIID-1018 TEIID-315 TEIID-869 adding description to procedure parameter metadata, refining the reference to include information about dynamic vdbs and translators, which includes more info on the WS translator, renaming connector developers guide to developers guide
Modified: trunk/api/src/main/java/org/teiid/translator/ExecutionFactory.java
===================================================================
--- trunk/api/src/main/java/org/teiid/translator/ExecutionFactory.java 2010-06-14 14:44:05 UTC (rev 2227)
+++ trunk/api/src/main/java/org/teiid/translator/ExecutionFactory.java 2010-06-14 15:40:48 UTC (rev 2228)
@@ -74,7 +74,6 @@
public static final int DEFAULT_MAX_FROM_GROUPS = -1;
public static final int DEFAULT_MAX_IN_CRITERIA_SIZE = -1;
- public static final int DEFAULT_MAX_ROWS = -1;
private static final TypeFacility TYPE_FACILITY = new TypeFacility();
@@ -82,9 +81,6 @@
* Managed execution properties
*/
private boolean immutable;
- private boolean exceptionOnMaxRows = true;
- private int maxResultRows = DEFAULT_MAX_ROWS;
- private boolean xaCapable;
private boolean sourceRequired = true;
/*
@@ -167,45 +163,6 @@
throw new AssertionError("A connection was created, but no implementation provided for closeConnection"); //$NON-NLS-1$
}
- /**
- * Throw exception if there are more rows in the result set than specified in the MaxResultRows setting.
- * @return
- */
- @TranslatorProperty(display="Exception on Exceeding Max Rows",description="Indicates if an Exception should be thrown if the specified value for Maximum Result Rows is exceeded; else no exception and no more than the maximum will be returned",advanced=true)
- public boolean isExceptionOnMaxRows() {
- return exceptionOnMaxRows;
- }
-
- public void setExceptionOnMaxRows(boolean arg0) {
- this.exceptionOnMaxRows = arg0;
- }
-
- /**
- * Maximum result set rows to fetch
- * @return
- */
- @TranslatorProperty(display="Maximum Result Rows", description="Maximum Result Rows allowed", advanced=true)
- public int getMaxResultRows() {
- return maxResultRows;
- }
-
- public void setMaxResultRows(int arg0) {
- this.maxResultRows = arg0;
- }
-
- /**
- * Shows the XA transaction capability of the Connector.
- * @return
- */
- @TranslatorProperty(display="Is XA Capable", description="True, if this connector supports XA Transactions")
- public boolean isXaCapable() {
- return xaCapable;
- }
-
- public void setXaCapable(boolean arg0) {
- this.xaCapable = arg0;
- }
-
/**
* Flag that indicates if a underlying source connection required for this execution factory to work
* @return
Modified: trunk/build/kits/jboss-container/deploy/teiid/teiid-jboss-beans.xml
===================================================================
--- trunk/build/kits/jboss-container/deploy/teiid/teiid-jboss-beans.xml 2010-06-14 14:44:05 UTC (rev 2227)
+++ trunk/build/kits/jboss-container/deploy/teiid/teiid-jboss-beans.xml 2010-06-14 15:40:48 UTC (rev 2228)
@@ -73,7 +73,7 @@
<property name="securityHelper"><inject bean="SecurityHelper"/></property>
<property name="VDBRepository"><inject bean="VDBRepository"/></property>
- <!-- Process pool maximum thread count. (default 32) Increase this value if your load includes a large number of XQueries or if the system's available processors is larger than 8. -->
+ <!-- Process pool maximum thread count. (default 32) Increase this value if the system's available processors is larger than 8. -->
<property name="maxThreads">32</property>
<!-- Query processor time slice, in milliseconds. (default 2000) -->
<property name="timeSliceInMilli">2000</property>
@@ -97,6 +97,10 @@
<property name="useEntitlements" class="java.lang.Boolean">false</property>
<!-- Long running query threshold, after which a alert can be generated by tooling if configured-->
<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. -->
+ <property name="exceptionOnMaxSourceRows">true</property>
</bean>
<!-- JDBC Socket connection properties (SSL see below) -->
Modified: trunk/build/kits/jboss-container/teiid-examples/dynamicvdb-portfolio/README.txt
===================================================================
--- trunk/build/kits/jboss-container/teiid-examples/dynamicvdb-portfolio/README.txt 2010-06-14 14:44:05 UTC (rev 2227)
+++ trunk/build/kits/jboss-container/teiid-examples/dynamicvdb-portfolio/README.txt 2010-06-14 15:40:48 UTC (rev 2228)
@@ -12,5 +12,8 @@
$./run.sh localhost 31000 dynamicportfolio "select * from product, (call MarketData.getTextFiles('*.txt')) f, TEXTTABLE(f.file COLUMNS symbol string, price bigdecimal HEADER) price where product.symbol=price.symbol"
That will execute the query against both Derby and the text file using the
-connector supplied metadata.
+connector supplied metadata. In this case the files returned form the getTextFiles
+procedure are passed to the TEXTTABLE table function (via the nested table
+correlated reference f.file). The TEXTTABLE function expects a text file with
+a HEADER containing entries for at least symbol and price columns.
Modified: trunk/build/kits/jboss-container/teiid-examples/dynamicvdb-ws-weather/README.txt
===================================================================
--- trunk/build/kits/jboss-container/teiid-examples/dynamicvdb-ws-weather/README.txt 2010-06-14 14:44:05 UTC (rev 2227)
+++ trunk/build/kits/jboss-container/teiid-examples/dynamicvdb-ws-weather/README.txt 2010-06-14 15:40:48 UTC (rev 2228)
@@ -8,10 +8,14 @@
Start the JBoss Container
-Use the simple client example run script e.g.
+Use the simple client example run script, e.g.
$./run.sh localhost 31000 weather "some query"
+NOTE - depending on your OS/Shell the quoting/escaping required to run the example can be
+complicated. It would be better to install a Java client, such as SQuirreL, to run the
+queries below.
+
Example queries:
1. REST access of the default endpoint augmented by a query string. The query string is
@@ -23,18 +27,29 @@
select t.* from
(call weather.invoke(action='GET',
- endpoint=querystring('', '38.99,-77.02 39.70,-104.80 47.6,-122.30' as listLatLon, 'time-series' as product, '2004-01-01T00:00:00' as "begin", '2013-04-20T00:00:00' as "end", 'maxt' as maxt, 'mint' as mint)
- )) w, XMLTABLE('/dwml/data/location' passing w.result columns "location-key" string, lattitude string path '/point/@latitude', longitude string path '/point/@longitude') t
+ endpoint=querystring('', '38.99,-77.02 39.70,-104.80 47.6,-122.30' as listLatLon,
+ 'time-series' as product, '2004-01-01T00:00:00' as "begin",
+ '2013-04-20T00:00:00' as "end", 'maxt' as maxt, 'mint' as mint)
+ )) w,
+ XMLTABLE('/dwml/data/location' passing w.result
+ columns "location-key" string, lattitude string path 'point/@latitude',
+ longitude string path 'point/@longitude') t
-2. SOAP11 RPC call overriding all of the parameter values for the invoke procedure. With a SOAP
+2. SOAP11 RPC call providing all of the parameter values for the invoke procedure. With a SOAP
invocation, the action is used to convey the SOAPAction header value if needed. Also note
the use of the endpoint here with an absolute URL, which will be used instead of the default
on the datasource.
-select xmlserialize(document w.result as string) from (call weather.invoke(action='http://www.weather.gov/forecasts/xml/DWMLgen/wsdl/ndfdXML.wsdl#LatLonList...',
+select xmlserialize(document w.result as string) from
+ (call weather.invoke(action='http://www.weather.gov/forecasts/xml/DWMLgen/wsdl/ndfdXML.wsdl#LatLonList...',
endpoint='http://www.weather.gov/forecasts/xml/SOAP_server/ndfdXMLserver.php',
binding='SOAP11',
- request='<ns1:LatLonListZipCode xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="http://www.weather.gov/forecasts/xml/DWMLgen/wsdl/ndfdXML.wsdl"><zipCodeList xsi:type="ns2:zipCodeListType" xmlns:ns2="http://www.weather.gov/forecasts/xml/DWMLgen/schema/DWML.xsd">63303</zipCodeList></ns1:LatLonListZipCode>')) as w
+ request='
+ <ns1:LatLonListZipCode xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ xmlns:ns1="http://www.weather.gov/forecasts/xml/DWMLgen/wsdl/ndfdXML.wsdl">
+ <zipCodeList xsi:type="ns2:zipCodeListType" xmlns:ns2="http://www.weather.gov/forecasts/xml/DWMLgen/schema/DWML.xsd">63303</zipCodeList>
+ </ns1:LatLonListZipCode>')) as w
See the DatabaseMetadata on the invoke procedure for a full description of the parameters.
Modified: trunk/client/src/main/java/org/teiid/jdbc/DatabaseMetaDataImpl.java
===================================================================
--- trunk/client/src/main/java/org/teiid/jdbc/DatabaseMetaDataImpl.java 2010-06-14 14:44:05 UTC (rev 2227)
+++ trunk/client/src/main/java/org/teiid/jdbc/DatabaseMetaDataImpl.java 2010-06-14 15:40:48 UTC (rev 2228)
@@ -259,7 +259,7 @@
.append(PRECISION_MAPPING).append("',','), integer) ELSE TypeLength END AS LENGTH, convert(Scale, short) AS SCALE") //$NON-NLS-1$
.append(", Radix AS RADIX, convert(decodeString(NullType, '") //$NON-NLS-1$
.append(PROC_COLUMN_NULLABILITY_MAPPING).append("', ','), integer) AS NULLABLE") //$NON-NLS-1$
- .append(", convert(null, string) AS REMARKS, NULL AS COLUMN_DEF") //$NON-NLS-1$
+ .append(", p.Description AS REMARKS, NULL AS COLUMN_DEF") //$NON-NLS-1$
.append(", NULL AS SQL_DATA_TYPE, NULL AS SQL_DATETIME_SUB, NULL AS CHAR_OCTET_LENGTH, p.Position AS ORDINAL_POSITION") //$NON-NLS-1$
.append(", CASE NullType WHEN 'Nullable' THEN 'YES' WHEN 'No Nulls' THEN 'NO' ELSE '' END AS IS_NULLABLE, p.ProcedureName as SPECIFIC_NAME FROM ") //$NON-NLS-1$
.append(RUNTIME_MODEL.VIRTUAL_MODEL_NAME)
Modified: trunk/connectors/translator-file/src/main/java/org/teiid/translator/file/FileExecutionFactory.java
===================================================================
--- trunk/connectors/translator-file/src/main/java/org/teiid/translator/file/FileExecutionFactory.java 2010-06-14 14:44:05 UTC (rev 2227)
+++ trunk/connectors/translator-file/src/main/java/org/teiid/translator/file/FileExecutionFactory.java 2010-06-14 15:40:48 UTC (rev 2228)
@@ -48,6 +48,7 @@
import org.teiid.language.Call;
import org.teiid.metadata.MetadataFactory;
import org.teiid.metadata.Procedure;
+import org.teiid.metadata.ProcedureParameter;
import org.teiid.metadata.RuntimeMetadata;
import org.teiid.metadata.ProcedureParameter.Type;
import org.teiid.translator.DataNotAvailableException;
@@ -197,20 +198,25 @@
@Override
public void getMetadata(MetadataFactory metadataFactory, FileConnection connection) throws TranslatorException {
- Procedure p = metadataFactory.addProcedure(GETTEXTFILES);
- metadataFactory.addProcedureParameter("pathAndPattern", TypeFacility.RUNTIME_NAMES.STRING, Type.In, p); //$NON-NLS-1$
+ Procedure p = metadataFactory.addProcedure(GETTEXTFILES);
+ p.setAnnotation("Returns text files that match the given path and pattern as CLOBs");
+ ProcedureParameter param = metadataFactory.addProcedureParameter("pathAndPattern", TypeFacility.RUNTIME_NAMES.STRING, Type.In, p); //$NON-NLS-1$
+ param.setAnnotation("The path and pattern of what files to return. Currently the only pattern supported is *.<ext>, which returns only the files matching the given extension at the given path.");
metadataFactory.addProcedureResultSetColumn("file", TypeFacility.RUNTIME_NAMES.CLOB, p); //$NON-NLS-1$
metadataFactory.addProcedureResultSetColumn("filePath", TypeFacility.RUNTIME_NAMES.STRING, p); //$NON-NLS-1$
Procedure p1 = metadataFactory.addProcedure(GETFILES);
- metadataFactory.addProcedureParameter("pathAndPattern", TypeFacility.RUNTIME_NAMES.STRING, Type.In, p1); //$NON-NLS-1$
+ p1.setAnnotation("Returns text files that match the given path and pattern as BLOBs");
+ param = metadataFactory.addProcedureParameter("pathAndPattern", TypeFacility.RUNTIME_NAMES.STRING, Type.In, p1); //$NON-NLS-1$
+ param.setAnnotation("The path and pattern of what files to return. Currently the only pattern supported is *.<ext>, which returns only the files matching the given extension at the given path.");
metadataFactory.addProcedureResultSetColumn("file", TypeFacility.RUNTIME_NAMES.BLOB, p1); //$NON-NLS-1$
metadataFactory.addProcedureResultSetColumn("filePath", TypeFacility.RUNTIME_NAMES.STRING, p1); //$NON-NLS-1$
Procedure p2 = metadataFactory.addProcedure(SAVEFILE);
+ p2.setAnnotation("Saves the given vale to the given path. Any existing file will be overriden.");
metadataFactory.addProcedureParameter("filePath", TypeFacility.RUNTIME_NAMES.STRING, Type.In, p2); //$NON-NLS-1$
- //reporting as object, but can be one of xml, clob, blob
- metadataFactory.addProcedureParameter("file", TypeFacility.RUNTIME_NAMES.OBJECT, Type.In, p2); //$NON-NLS-1$
+ param = metadataFactory.addProcedureParameter("file", TypeFacility.RUNTIME_NAMES.OBJECT, Type.In, p2); //$NON-NLS-1$
+ param.setAnnotation("The contents to save. Can be one of CLOB, BLOB, or XML");
}
}
Modified: trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/JDBCBaseExecution.java
===================================================================
--- trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/JDBCBaseExecution.java 2010-06-14 14:44:05 UTC (rev 2227)
+++ trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/JDBCBaseExecution.java 2010-06-14 15:40:48 UTC (rev 2228)
@@ -56,7 +56,6 @@
// Derived from properties
protected boolean trimString;
protected int fetchSize;
- protected int maxResultRows;
// Set during execution
protected Statement statement;
@@ -72,16 +71,7 @@
this.executionFactory = jef;
trimString = jef.isTrimStrings();
- fetchSize = (jef.getFetchSize() != -1)?jef.getFetchSize():context.getBatchSize();
- maxResultRows = jef.getMaxResultRows();
-
- //if the connector work needs to throw an excpetion, set the size plus 1
- if (maxResultRows > 0 && jef.isExceptionOnMaxRows()) {
- maxResultRows++;
- }
- if (maxResultRows > 0) {
- fetchSize = Math.min(fetchSize, maxResultRows);
- }
+ fetchSize = context.getBatchSize();
}
/**
@@ -145,9 +135,6 @@
}
protected void setSizeContraints(Statement statement) throws SQLException {
- if (maxResultRows > 0) {
- statement.setMaxRows(maxResultRows);
- }
statement.setFetchSize(fetchSize);
}
Modified: trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/JDBCExecutionFactory.java
===================================================================
--- trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/JDBCExecutionFactory.java 2010-06-14 14:44:05 UTC (rev 2227)
+++ trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/JDBCExecutionFactory.java 2010-06-14 15:40:48 UTC (rev 2228)
@@ -140,12 +140,12 @@
private Map<String, FunctionModifier> functionModifiers = new HashMap<String, FunctionModifier>();
- private boolean useBindVariables;
+ private boolean useBindVariables = true;
private String databaseTimeZone;
private boolean trimStrings;
private boolean useCommentsInSourceQuery;
- private int fetchSize = 1024;
-
+ private String version;
+
boolean initialConnection = true;
public JDBCExecutionFactory() {
@@ -168,7 +168,16 @@
}
}
}
+
+ @TranslatorProperty(display="Database Version", description= "Database Version")
+ public String getDatabaseVersion() {
+ return this.version;
+ }
+ public void setDatabaseVersion(String version) {
+ this.version = version;
+ }
+
@TranslatorProperty(display="Use Bind Variables", description="Use prepared statements and bind variables",advanced=true)
public boolean useBindVariables() {
return this.useBindVariables;
@@ -196,7 +205,7 @@
this.trimStrings = trimStrings;
}
- @TranslatorProperty(display="Use informational comments in Source Queries", description="This will embed /*comment*/ style comment with session/request id in source SQL query for informational purposes", advanced=true)
+ @TranslatorProperty(display="Use informational comments in Source Queries", description="This will embed a /*comment*/ leading comment with session/request id in source SQL query for informational purposes", advanced=true)
public boolean useCommentsInSourceQuery() {
return this.useCommentsInSourceQuery;
}
@@ -205,21 +214,11 @@
this.useCommentsInSourceQuery = useCommentsInSourceQuery;
}
-
- @TranslatorProperty(display="Fetch Size", description="fetch size used from the connector to its underlying source.", advanced=true)
- public int getFetchSize() {
- return this.fetchSize;
- }
-
@Override
public boolean isSourceRequired() {
return true;
}
- public void setFetchSize(int fetchSize) {
- this.fetchSize = fetchSize;
- }
-
@Override
public ResultSetExecution createResultSetExecution(QueryExpression command, ExecutionContext executionContext, RuntimeMetadata metadata, Connection conn)
throws TranslatorException {
Modified: trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/JDBCUpdateExecution.java
===================================================================
--- trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/JDBCUpdateExecution.java 2010-06-14 14:44:05 UTC (rev 2227)
+++ trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/JDBCUpdateExecution.java 2010-06-14 15:40:48 UTC (rev 2228)
@@ -208,10 +208,7 @@
* @throws TranslatorException
*/
private boolean getAutoCommit(TranslatedCommand tCommand) throws TranslatorException {
- if (this.context.isTransactional()) {
- return false;
- }
- try {
+ try {
return connection.getAutoCommit();
} catch (SQLException err) {
throw new JDBCExecutionException(err, tCommand);
Modified: trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/derby/DerbyExecutionFactory.java
===================================================================
--- trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/derby/DerbyExecutionFactory.java 2010-06-14 14:44:05 UTC (rev 2227)
+++ trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/derby/DerbyExecutionFactory.java 2010-06-14 15:40:48 UTC (rev 2228)
@@ -25,16 +25,13 @@
import java.util.ArrayList;
import java.util.List;
+import org.teiid.translator.SourceSystemFunctions;
import org.teiid.translator.Translator;
import org.teiid.translator.TranslatorException;
-import org.teiid.translator.SourceSystemFunctions;
-import org.teiid.translator.TranslatorProperty;
import org.teiid.translator.jdbc.EscapeSyntaxModifier;
import org.teiid.translator.jdbc.db2.DB2ExecutionFactory;
import org.teiid.translator.jdbc.oracle.LeftOrRightFunctionModifier;
-
-
/**
* @since 4.3
*/
@@ -46,10 +43,9 @@
public static final String TEN_4 = "10.4"; //$NON-NLS-1$
public static final String TEN_5 = "10.5"; //$NON-NLS-1$
- private String version = TEN_1;
-
public DerbyExecutionFactory() {
setSupportsFullOuterJoins(false); //Derby supports only left and right outer joins.
+ setDatabaseVersion(TEN_1);
}
@Override
@@ -71,30 +67,21 @@
@Override
public boolean supportsExplicitNullOrdering() {
- return version.compareTo(TEN_4) >= 0;
+ return getDatabaseVersion().compareTo(TEN_4) >= 0;
}
- @TranslatorProperty(display="Database Version", description= "Derby Database Version")
- public String getDatabaseVersion() {
- return this.version;
- }
-
- public void setDatabaseVersion(String version) {
- this.version = version;
- }
-
@Override
public List<String> getSupportedFunctions() {
List<String> supportedFunctions = new ArrayList<String>();
supportedFunctions.addAll(super.getDefaultSupportedFunctions());
supportedFunctions.add("ABS"); //$NON-NLS-1$
- if (version.compareTo(TEN_2) >= 0) {
+ if (getDatabaseVersion().compareTo(TEN_2) >= 0) {
supportedFunctions.add("ACOS"); //$NON-NLS-1$
supportedFunctions.add("ASIN"); //$NON-NLS-1$
supportedFunctions.add("ATAN"); //$NON-NLS-1$
}
- if (version.compareTo(TEN_4) >= 0) {
+ if (getDatabaseVersion().compareTo(TEN_4) >= 0) {
supportedFunctions.add("ATAN2"); //$NON-NLS-1$
}
// These are executed within the server and never pushed down
@@ -102,7 +89,7 @@
//supportedFunctions.add("BITNOT"); //$NON-NLS-1$
//supportedFunctions.add("BITOR"); //$NON-NLS-1$
//supportedFunctions.add("BITXOR"); //$NON-NLS-1$
- if (version.compareTo(TEN_2) >= 0) {
+ if (getDatabaseVersion().compareTo(TEN_2) >= 0) {
supportedFunctions.add("CEILING"); //$NON-NLS-1$
supportedFunctions.add("COS"); //$NON-NLS-1$
supportedFunctions.add("COT"); //$NON-NLS-1$
@@ -113,12 +100,12 @@
supportedFunctions.add("LOG10"); //$NON-NLS-1$
}
supportedFunctions.add("MOD"); //$NON-NLS-1$
- if (version.compareTo(TEN_2) >= 0) {
+ if (getDatabaseVersion().compareTo(TEN_2) >= 0) {
supportedFunctions.add("PI"); //$NON-NLS-1$
//supportedFunctions.add("POWER"); //$NON-NLS-1$
supportedFunctions.add("RADIANS"); //$NON-NLS-1$
//supportedFunctions.add("ROUND"); //$NON-NLS-1$
- if (version.compareTo(TEN_4) >= 0) {
+ if (getDatabaseVersion().compareTo(TEN_4) >= 0) {
supportedFunctions.add("SIGN"); //$NON-NLS-1$
}
supportedFunctions.add("SIN"); //$NON-NLS-1$
@@ -191,7 +178,7 @@
@Override
public boolean supportsRowLimit() {
- return this.version.compareTo(TEN_5) >= 0;
+ return this.getDatabaseVersion().compareTo(TEN_5) >= 0;
}
@Override
Modified: trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/postgresql/PostgreSQLExecutionFactory.java
===================================================================
--- trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/postgresql/PostgreSQLExecutionFactory.java 2010-06-14 14:44:05 UTC (rev 2227)
+++ trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/postgresql/PostgreSQLExecutionFactory.java 2010-06-14 15:40:48 UTC (rev 2228)
@@ -36,11 +36,10 @@
import org.teiid.language.Limit;
import org.teiid.language.Literal;
import org.teiid.language.SQLConstants.NonReserved;
-import org.teiid.translator.Translator;
-import org.teiid.translator.TranslatorException;
import org.teiid.translator.ExecutionContext;
import org.teiid.translator.SourceSystemFunctions;
-import org.teiid.translator.TranslatorProperty;
+import org.teiid.translator.Translator;
+import org.teiid.translator.TranslatorException;
import org.teiid.translator.TypeFacility;
import org.teiid.translator.jdbc.AliasModifier;
import org.teiid.translator.jdbc.ConvertModifier;
@@ -67,8 +66,10 @@
public static final String EIGHT_3 = "8.3"; //$NON-NLS-1$
public static final String EIGHT_4 = "8.4"; //$NON-NLS-1$
- private String version = EIGHT_0;
-
+ public PostgreSQLExecutionFactory() {
+ setDatabaseVersion(EIGHT_0);
+ }
+
public void start() throws TranslatorException {
//TODO: all of the functions (except for convert) can be handled through just the escape syntax
super.start();
@@ -222,7 +223,7 @@
@Override
public boolean supportsExplicitNullOrdering() {
- return version.compareTo(EIGHT_4) >= 0;
+ return getDatabaseVersion().compareTo(EIGHT_4) >= 0;
}
@Override
@@ -308,7 +309,7 @@
// supportedFunctions.add("PARSETIMESTAMP"); //$NON-NLS-1$
supportedFunctions.add("QUARTER"); //$NON-NLS-1$
supportedFunctions.add("SECOND"); //$NON-NLS-1$
- if (this.version.compareTo(EIGHT_2) >= 0) {
+ if (this.getDatabaseVersion().compareTo(EIGHT_2) >= 0) {
supportedFunctions.add("TIMESTAMPADD"); //$NON-NLS-1$
supportedFunctions.add("TIMESTAMPDIFF"); //$NON-NLS-1$
}
@@ -456,12 +457,4 @@
return true;
}
- @TranslatorProperty(description= "PostgreSQL Database Version")
- public String getDatabaseVersion() {
- return this.version;
- }
-
- public void setDatabaseVersion(String version) {
- this.version = version;
- }
}
Modified: trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/TestLocateFunctionModifier.java
===================================================================
--- trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/TestLocateFunctionModifier.java 2010-06-14 14:44:05 UTC (rev 2227)
+++ trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/TestLocateFunctionModifier.java 2010-06-14 15:40:48 UTC (rev 2228)
@@ -101,7 +101,7 @@
registerFunctionModifier(SourceSystemFunctions.LOCATE, new LocateFunctionModifier(getLanguageFactory(), locateFunctionName, parameterOrder));
}
};
-
+ trans.setUseBindVariables(false);
trans.start();
SQLConversionVisitor sqlVisitor = trans.getSQLConversionVisitor();
Modified: trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/TestSQLConversionVisitor.java
===================================================================
--- trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/TestSQLConversionVisitor.java 2010-06-14 14:44:05 UTC (rev 2227)
+++ trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/TestSQLConversionVisitor.java 2010-06-14 15:40:48 UTC (rev 2228)
@@ -56,6 +56,7 @@
@BeforeClass public static void oneTimeSetup() throws TranslatorException {
TRANSLATOR = new JDBCExecutionFactory();
TRANSLATOR.setTrimStrings(true);
+ TRANSLATOR.setUseBindVariables(false);
TRANSLATOR.start();
}
@@ -69,9 +70,7 @@
public void helpTestVisitor(String vdb, String input, String expectedOutput, boolean usePreparedStatement) {
JDBCExecutionFactory trans = new JDBCExecutionFactory();
- if (usePreparedStatement) {
- trans.setUseBindVariables(true);
- }
+ trans.setUseBindVariables(usePreparedStatement);
try {
trans.start();
TranslationHelper.helpTestVisitor(vdb, input, expectedOutput, trans);
@@ -85,6 +84,7 @@
private String getStringWithContext(LanguageObject obj) throws TranslatorException {
JDBCExecutionFactory env = new JDBCExecutionFactory();
env.setUseCommentsInSourceQuery(true);
+ env.setUseBindVariables(false);
env.start();
SQLConversionVisitor visitor = env.getSQLConversionVisitor();
Modified: trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/db2/TestDB2SqlTranslator.java
===================================================================
--- trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/db2/TestDB2SqlTranslator.java 2010-06-14 14:44:05 UTC (rev 2227)
+++ trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/db2/TestDB2SqlTranslator.java 2010-06-14 15:40:48 UTC (rev 2228)
@@ -45,7 +45,8 @@
@BeforeClass
public static void setUp() throws TranslatorException {
- TRANSLATOR = new DB2ExecutionFactory();
+ TRANSLATOR = new DB2ExecutionFactory();
+ TRANSLATOR.setUseBindVariables(false);
TRANSLATOR.start();
}
Modified: trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/modeshape/TestModeShapeSqlTranslator.java
===================================================================
--- trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/modeshape/TestModeShapeSqlTranslator.java 2010-06-14 14:44:05 UTC (rev 2227)
+++ trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/modeshape/TestModeShapeSqlTranslator.java 2010-06-14 15:40:48 UTC (rev 2228)
@@ -40,88 +40,85 @@
@SuppressWarnings("nls")
public class TestModeShapeSqlTranslator {
- private static ModeShapeExecutionFactory TRANSLATOR;
-
- private static String MODESHAPE_VDB = (UnitTestUtil.getTestDataPath() != null ? UnitTestUtil.getTestDataPath() : "src/test/resources") + "/ModeShape.vdb";
-
- @BeforeClass
- public static void setUp() throws TranslatorException {
- TRANSLATOR = new ModeShapeExecutionFactory();
- TRANSLATOR.start();
-
- }
-
-
- public void helpTestVisitor(TranslationUtility util, String input, String expectedOutput) throws TranslatorException {
- // Convert from sql to objects
- Command obj = util.parseCommand(input);
-
- TranslatedCommand tc = new TranslatedCommand(Mockito.mock(ExecutionContext.class), TRANSLATOR);
- tc.translateCommand(obj);
-
- System.out.println("Input: "+ tc.getSql() + " Expected: " + expectedOutput);
- assertEquals("Did not get correct sql", expectedOutput, tc.getSql()); //$NON-NLS-1$
- }
+ private static ModeShapeExecutionFactory TRANSLATOR;
- @Test
- public void testSimpleSelect() throws Exception {
- String input = "select Model from Car"; //$NON-NLS-1$
- String output = "SELECT [car:Model] FROM [car:Car]"; //$NON-NLS-1$
-
- // FakeTranslationFactory.getInstance().getExampleTranslationUtility(),
- helpTestVisitor(new TranslationUtility(MODESHAPE_VDB),
- input,
- output);
+ private static String MODESHAPE_VDB = (UnitTestUtil.getTestDataPath() != null ? UnitTestUtil
+ .getTestDataPath()
+ : "src/test/resources")
+ + "/ModeShape.vdb";
- }
-
- @Test
- public void testWhereClause() throws Exception {
+ @BeforeClass
+ public static void setUp() throws TranslatorException {
+ TRANSLATOR = new ModeShapeExecutionFactory();
+ TRANSLATOR.start();
- String input = "select Model from Car WHERE Make = 'Honda'"; //$NON-NLS-1$
- String output = "SELECT [car:Model] FROM [car:Car] WHERE [car:Make] = 'Honda'"; //$NON-NLS-1$
+ }
- // FakeTranslationFactory.getInstance().getExampleTranslationUtility(),
- helpTestVisitor(new TranslationUtility(MODESHAPE_VDB), input, output);
+ public void helpTestVisitor(TranslationUtility util, String input,
+ String expectedOutput) throws TranslatorException {
+ // Convert from sql to objects
+ Command obj = util.parseCommand(input);
- }
+ TranslatedCommand tc = new TranslatedCommand(Mockito
+ .mock(ExecutionContext.class), TRANSLATOR);
+ tc.translateCommand(obj);
+ assertEquals("Did not get correct sql", expectedOutput, tc.getSql()); //$NON-NLS-1$
+ }
- @Test
- public void testOrderBy() throws Exception {
+ @Test
+ public void testSimpleSelect() throws Exception {
+ String input = "select Model from Car"; //$NON-NLS-1$
+ String output = "SELECT [car:Model] FROM [car:Car]"; //$NON-NLS-1$
- String input = "select Model from Car ORDER BY Make"; //$NON-NLS-1$
- String output = "SELECT [car:Model] FROM [car:Car] ORDER BY [car:Make]"; //$NON-NLS-1$
+ // FakeTranslationFactory.getInstance().getExampleTranslationUtility(),
+ helpTestVisitor(new TranslationUtility(MODESHAPE_VDB), input, output);
- // FakeTranslationFactory.getInstance().getExampleTranslationUtility(),
- helpTestVisitor(new TranslationUtility(MODESHAPE_VDB), input, output);
+ }
- }
+ @Test
+ public void testWhereClause() throws Exception {
- @Ignore
- @Test
- public void testUsingAlias() throws Exception {
+ String input = "select Model from Car WHERE Make = 'Honda'"; //$NON-NLS-1$
+ String output = "SELECT [car:Model] FROM [car:Car] WHERE [car:Make] = 'Honda'"; //$NON-NLS-1$
- String input = "select c.Model from Car As c"; //$NON-NLS-1$
- String output = "SELECT c.[car:Model] FROM [car:Car] As c"; //$NON-NLS-1$
+ // FakeTranslationFactory.getInstance().getExampleTranslationUtility(),
+ helpTestVisitor(new TranslationUtility(MODESHAPE_VDB), input, output);
- // FakeTranslationFactory.getInstance().getExampleTranslationUtility(),
- helpTestVisitor(new TranslationUtility(MODESHAPE_VDB), input, output);
+ }
- }
-
- @Ignore
- @Test
- public void testUsingNameFunction() throws Exception {
+ @Test
+ public void testOrderBy() throws Exception {
- String input = "select Model from Car as car WHERE PATH('car') LIKE '%/Hybrid/%'"; //$NON-NLS-1$
- String output = "SELECT [car:Model] FROM [car:Car] WHERE PATH(car:Car) LIKE '%/Hybrid/%'"; //$NON-NLS-1$
+ String input = "select Model from Car ORDER BY Make"; //$NON-NLS-1$
+ String output = "SELECT [car:Model] FROM [car:Car] ORDER BY [car:Make]"; //$NON-NLS-1$
- // FakeTranslationFactory.getInstance().getExampleTranslationUtility(),
- helpTestVisitor(new TranslationUtility(MODESHAPE_VDB), input, output);
-
+ // FakeTranslationFactory.getInstance().getExampleTranslationUtility(),
+ helpTestVisitor(new TranslationUtility(MODESHAPE_VDB), input, output);
- }
-
+ }
+ @Ignore
+ @Test
+ public void testUsingAlias() throws Exception {
+ String input = "select c.Model from Car As c"; //$NON-NLS-1$
+ String output = "SELECT c.[car:Model] FROM [car:Car] As c"; //$NON-NLS-1$
+
+ // FakeTranslationFactory.getInstance().getExampleTranslationUtility(),
+ helpTestVisitor(new TranslationUtility(MODESHAPE_VDB), input, output);
+
+ }
+
+ @Ignore
+ @Test
+ public void testUsingNameFunction() throws Exception {
+
+ String input = "select Model from Car as car WHERE PATH('car') LIKE '%/Hybrid/%'"; //$NON-NLS-1$
+ String output = "SELECT [car:Model] FROM [car:Car] WHERE PATH(car:Car) LIKE '%/Hybrid/%'"; //$NON-NLS-1$
+
+ // FakeTranslationFactory.getInstance().getExampleTranslationUtility(),
+ helpTestVisitor(new TranslationUtility(MODESHAPE_VDB), input, output);
+
+ }
+
}
Modified: trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/mysql/TestMySQLTranslator.java
===================================================================
--- trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/mysql/TestMySQLTranslator.java 2010-06-14 14:44:05 UTC (rev 2227)
+++ trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/mysql/TestMySQLTranslator.java 2010-06-14 15:40:48 UTC (rev 2228)
@@ -35,7 +35,8 @@
private static MySQLExecutionFactory TRANSLATOR;
@BeforeClass public static void oneTimeSetup() throws TranslatorException {
- TRANSLATOR = new MySQLExecutionFactory();
+ TRANSLATOR = new MySQLExecutionFactory();
+ TRANSLATOR.setUseBindVariables(false);
TRANSLATOR.start();
}
Modified: trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/oracle/TestOracleTranslator.java
===================================================================
--- trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/oracle/TestOracleTranslator.java 2010-06-14 14:44:05 UTC (rev 2227)
+++ trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/oracle/TestOracleTranslator.java 2010-06-14 15:40:48 UTC (rev 2228)
@@ -58,7 +58,8 @@
@Before
public void setup() throws Exception {
- TRANSLATOR = new OracleExecutionFactory();
+ TRANSLATOR = new OracleExecutionFactory();
+ TRANSLATOR.setUseBindVariables(false);
TRANSLATOR.start();
}
@@ -520,7 +521,7 @@
if (dbmsTimeZone != null) {
translator.setDatabaseTimeZone(dbmsTimeZone);
}
-
+ translator.setUseBindVariables(false);
translator.start();
// Convert back to SQL
TranslatedCommand tc = new TranslatedCommand(context, translator);
Modified: trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/postgresql/TestPostgreSQLTranslator.java
===================================================================
--- trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/postgresql/TestPostgreSQLTranslator.java 2010-06-14 14:44:05 UTC (rev 2227)
+++ trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/postgresql/TestPostgreSQLTranslator.java 2010-06-14 15:40:48 UTC (rev 2228)
@@ -32,7 +32,8 @@
private static PostgreSQLExecutionFactory TRANSLATOR;
@BeforeClass public static void setupOnce() throws Exception {
- TRANSLATOR = new PostgreSQLExecutionFactory();
+ TRANSLATOR = new PostgreSQLExecutionFactory();
+ TRANSLATOR.setUseBindVariables(false);
TRANSLATOR.start();
}
Modified: trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/sybase/TestSybaseSQLConversionVisitor.java
===================================================================
--- trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/sybase/TestSybaseSQLConversionVisitor.java 2010-06-14 14:44:05 UTC (rev 2227)
+++ trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/sybase/TestSybaseSQLConversionVisitor.java 2010-06-14 15:40:48 UTC (rev 2228)
@@ -22,18 +22,16 @@
package org.teiid.translator.jdbc.sybase;
-import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.*;
import org.junit.BeforeClass;
import org.junit.Test;
import org.mockito.Mockito;
import org.teiid.language.Command;
-import org.teiid.translator.TranslatorException;
import org.teiid.translator.ExecutionContext;
-import org.teiid.translator.jdbc.JDBCExecutionFactory;
+import org.teiid.translator.TranslatorException;
import org.teiid.translator.jdbc.TranslatedCommand;
import org.teiid.translator.jdbc.TranslationHelper;
-import org.teiid.translator.jdbc.sybase.SybaseExecutionFactory;
/**
*/
@@ -43,6 +41,7 @@
@BeforeClass
public static void setup() throws TranslatorException {
+ trans.setUseBindVariables(false);
trans.start();
}
Modified: trunk/connectors/translator-ws/src/main/java/org/teiid/translator/ws/WSExecutionFactory.java
===================================================================
--- trunk/connectors/translator-ws/src/main/java/org/teiid/translator/ws/WSExecutionFactory.java 2010-06-14 14:44:05 UTC (rev 2227)
+++ trunk/connectors/translator-ws/src/main/java/org/teiid/translator/ws/WSExecutionFactory.java 2010-06-14 15:40:48 UTC (rev 2228)
@@ -92,11 +92,12 @@
this.defaultBinding = defaultInvocationType;
}
- public String getXmlParamName() {
+ @TranslatorProperty(description="Used with the HTTP binding (typically with the GET method) to indicate that the request document should be part of the query string.", display="XML Param Name")
+ public String getXMLParamName() {
return xmlParamName;
}
- public void setXmlParamName(String xmlParamName) {
+ public void setXMLParamName(String xmlParamName) {
this.xmlParamName = xmlParamName;
}
@@ -119,6 +120,7 @@
public void getMetadata(MetadataFactory metadataFactory,
WSConnection conn) throws TranslatorException {
Procedure p = metadataFactory.addProcedure("invoke"); //$NON-NLS-1$
+ p.setAnnotation("Invokes a webservice that returns an XML result");
ProcedureParameter param = metadataFactory.addProcedureParameter("binding", TypeFacility.RUNTIME_NAMES.STRING, Type.In, p); //$NON-NLS-1$
param.setAnnotation("The invocation binding (HTTP, SOAP11, SOAP12). May be set or allowed to default to null to use the default binding.");
@@ -138,6 +140,10 @@
param.setNullType(NullType.Nullable);
metadataFactory.addProcedureParameter("result", TypeFacility.RUNTIME_NAMES.XML, Type.ReturnValue, p); //$NON-NLS-1$
+
+ //invokeHttp
+
+
}
}
Modified: trunk/connectors/translator-ws/src/main/java/org/teiid/translator/ws/WSProcedureExecution.java
===================================================================
--- trunk/connectors/translator-ws/src/main/java/org/teiid/translator/ws/WSProcedureExecution.java 2010-06-14 14:44:05 UTC (rev 2227)
+++ trunk/connectors/translator-ws/src/main/java/org/teiid/translator/ws/WSProcedureExecution.java 2010-06-14 15:40:48 UTC (rev 2228)
@@ -132,7 +132,7 @@
}
dispatch.getRequestContext().put(MessageContext.HTTP_REQUEST_METHOD, action);
if (source != null && !"POST".equalsIgnoreCase(action)) { //$NON-NLS-1$
- if (this.executionFactory.getXmlParamName() == null) {
+ if (this.executionFactory.getXMLParamName() == null) {
throw new WebServiceException(WSExecutionFactory.UTIL.getString("http_usage_error")); //$NON-NLS-1$
}
try {
@@ -140,7 +140,7 @@
StringWriter writer = new StringWriter();
//TODO: prevent this from being too large
t.transform(source, new StreamResult(writer));
- String param = Util.httpURLEncode(this.executionFactory.getXmlParamName())+"="+Util.httpURLEncode(writer.toString()); //$NON-NLS-1$
+ String param = Util.httpURLEncode(this.executionFactory.getXMLParamName())+"="+Util.httpURLEncode(writer.toString()); //$NON-NLS-1$
endpoint = WSConnection.Util.appendQueryString(endpoint, param);
} catch (TransformerException e) {
throw new WebServiceException(e);
Copied: trunk/documentation/client-developers-guide/src/main/docbook/en-US/content/other_commands.xml (from rev 2225, trunk/documentation/reference/src/main/docbook/en-US/content/other_commands.xml)
===================================================================
--- trunk/documentation/client-developers-guide/src/main/docbook/en-US/content/other_commands.xml (rev 0)
+++ trunk/documentation/client-developers-guide/src/main/docbook/en-US/content/other_commands.xml 2010-06-14 15:40:48 UTC (rev 2228)
@@ -0,0 +1,37 @@
+<?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="other_commands">
+ <title>Other Commands</title>
+ <sect1 id="set_command">
+ <title>SET Command</title>
+ <para>The SET command is used to set execution property values for the duration of the session.</para>
+ <itemizedlist>
+ <para>SET Syntax:
+ </para>
+ <listitem>
+ <para>SET parameter value
+ </para>
+ </listitem>
+ </itemizedlist>
+ <itemizedlist>
+ <para>Syntax Rules:
+ </para>
+ <listitem>
+ <para>Both parameter and value must be simple literals - they cannot contain spaces.</para>
+ </listitem>
+ <listitem>
+ <para>The value is also not treated as an expression and will not be evaluated prior to being set as the parameter value.</para>
+ </listitem>
+ </itemizedlist>
+ <para>The SET command can be used to control planning and execution.
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>SET SHOWPLAN [ON|DEBUG|OFF] - ON returns the query plan along with the results and DEBUG additionally prints the query planner debug information in the log and returns it with the results. Both the plan and the log are available through JDBC API extensions.</para>
+ </listitem>
+ <listitem>
+ <para>SET NOEXEC [ON|OFF] - ON prevents query execution, but parsing and planning will still occur.</para>
+ </listitem>
+ </itemizedlist>
+ </sect1>
+</chapter>
\ No newline at end of file
Property changes on: trunk/documentation/client-developers-guide/src/main/docbook/en-US/content/other_commands.xml
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Copied: trunk/documentation/developer-guide (from rev 2225, trunk/documentation/connector-developer-guide)
Modified: trunk/documentation/developer-guide/pom.xml
===================================================================
--- trunk/documentation/connector-developer-guide/pom.xml 2010-06-11 18:31:39 UTC (rev 2225)
+++ trunk/documentation/developer-guide/pom.xml 2010-06-14 15:40:48 UTC (rev 2228)
@@ -6,10 +6,10 @@
<version>7.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
- <artifactId>connector-developer-guide</artifactId>
+ <artifactId>developer-guide</artifactId>
<packaging>jdocbook</packaging>
- <name>Connector Developer Guide</name>
- <description>The Teiid Connector Developer Guide</description>
+ <name>Developer's Guide</name>
+ <description>The Teiid Developer's Guide</description>
<build>
<plugins>
<plugin>
@@ -50,7 +50,7 @@
<format>
<formatName>pdf</formatName>
<stylesheetResource>classpath:/xslt/org/jboss/pdf.xsl</stylesheetResource>
- <finalName>connector_developer_guide.pdf</finalName>
+ <finalName>developer_guide.pdf</finalName>
</format>
<format>
<formatName>html_single</formatName>
Modified: trunk/documentation/pom.xml
===================================================================
--- trunk/documentation/pom.xml 2010-06-14 14:44:05 UTC (rev 2227)
+++ trunk/documentation/pom.xml 2010-06-14 15:40:48 UTC (rev 2228)
@@ -14,11 +14,10 @@
<modules>
<module>admin-guide</module>
<module>reference</module>
- <module>connector-developer-guide</module>
+ <module>developer-guide</module>
<module>quick-start-example</module>
- <module>salesforce-connector-guide</module>
</modules>
- <repositories>
+ <!--<repositories>
<repository>
<id>apiviz.release</id>
<name>APIviz releases</name>
@@ -30,7 +29,7 @@
<enabled>false</enabled>
</snapshots>
</repository>
- </repositories>
+ </repositories>-->
<pluginRepositories>
<pluginRepository>
<id>jboss</id>
Modified: trunk/documentation/reference/src/main/docbook/en-US/Reference.xml
===================================================================
--- trunk/documentation/reference/src/main/docbook/en-US/Reference.xml 2010-06-14 14:44:05 UTC (rev 2227)
+++ trunk/documentation/reference/src/main/docbook/en-US/Reference.xml 2010-06-14 15:40:48 UTC (rev 2228)
@@ -52,9 +52,9 @@
<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" />
<xi:include href="content/procedures.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="content/other_commands.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="content/transaction_support.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="content/system_schema.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="content/translators.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="content/federated_planning.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="content/architecture.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="content/grammar.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
Modified: trunk/documentation/reference/src/main/docbook/en-US/content/datatypes.xml
===================================================================
--- trunk/documentation/reference/src/main/docbook/en-US/content/datatypes.xml 2010-06-14 14:44:05 UTC (rev 2227)
+++ trunk/documentation/reference/src/main/docbook/en-US/content/datatypes.xml 2010-06-14 15:40:48 UTC (rev 2228)
@@ -151,7 +151,7 @@
java.sql.Blob
<footnote>
<para>The concrete type is expected to be
- com.metamatrix.common.types.BlobType</para>
+ org.teiid.core.types.BlobType</para>
</footnote>
</entry>
<entry>BLOB</entry>
@@ -165,7 +165,7 @@
java.sql.Clob
<footnote>
<para>The concrete type is expected to be
- com.metamatrix.common.types.ClobType</para>
+ org.teiid.core.types.ClobType</para>
</footnote>
</entry>
<entry>CLOB</entry>
@@ -178,7 +178,7 @@
java.sql.SQLXML
<footnote>
<para>The concrete type is expected to be
- com.metamatrix.common.types.XMLType</para>
+ org.teiid.core.types.XMLType</para>
</footnote>
</entry>
<entry>JAVA_OBJECT</entry>
Modified: trunk/documentation/reference/src/main/docbook/en-US/content/federated_planning.xml
===================================================================
--- trunk/documentation/reference/src/main/docbook/en-US/content/federated_planning.xml 2010-06-14 14:44:05 UTC (rev 2227)
+++ trunk/documentation/reference/src/main/docbook/en-US/content/federated_planning.xml 2010-06-14 15:40:48 UTC (rev 2228)
@@ -376,13 +376,8 @@
The SQL options available are as follows:</para>
<itemizedlist>
<listitem>
- <para>OPTION SHOWPLAN - Returns the plan in addition to
- any results</para>
+ <para>SHOWPLAN [ON|DEBUG]- Returns the plan or the plan and the full planner debug log.</para>
</listitem>
- <listitem>
- <para>OPTION PLANONLY - Returns the plan, does not
- execute the command though</para>
- </listitem>
</itemizedlist>
<para>
With the above options, the query plan is available from the
@@ -983,7 +978,7 @@
should be used to determine the strategy cost. </para>
</listitem>
<listitem>
- <para>- RuleCollapseSource - this rule removes all nodes below an
+ <para>RuleCollapseSource - this rule removes all nodes below an
Access node and collapses them into an equivalent query that is
placed in the Access node.</para>
</listitem>
Modified: trunk/documentation/reference/src/main/docbook/en-US/content/grammar.xml
===================================================================
--- trunk/documentation/reference/src/main/docbook/en-US/content/grammar.xml 2010-06-14 14:44:05 UTC (rev 2227)
+++ trunk/documentation/reference/src/main/docbook/en-US/content/grammar.xml 2010-06-14 15:40:48 UTC (rev 2228)
@@ -68,13 +68,6 @@
<DEFAULT> TOKEN : {
<CAST: "cast">
| <CONVERT: "convert">
-| <TIMESTAMPADD: "timestampadd">
-| <TIMESTAMPDIFF: "timestampdiff">
-| <COUNT: "count">
-| <SUM: "sum">
-| <AVG: "avg">
-| <MIN: "min">
-| <MAX: "max">
}
</para></entry></row>
@@ -141,7 +134,6 @@
| <FALSE: "false">
| <FETCH: "fetch">
| <FILTER: "filter">
-| <FN: "fn">
| <FOR: "for">
| <FORIEGN: "foriegn">
| <FROM: "from">
@@ -199,7 +191,6 @@
| <OLD: "old">
| <ON: "on">
| <ONLY: "only">
-| <OJ: "oj">
| <OPEN: "open">
| <OPTION: "option">
| <OR: "or">
@@ -274,6 +265,33 @@
| <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>
@@ -282,15 +300,22 @@
<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">
-| <XMLROOT: "xmlroot">
+| <XMLQUERY: "xmlquery">
| <XMLSERIALIZE: "xmlserialize">
+| <XMLTABLE: "xmltable">
+| <XMLTEXT: "xmltext">
+| <XMLVALIDATE: "xmlvalidate">
}
</para></entry></row>
@@ -314,20 +339,6 @@
</para></entry></row>
<row><entry><para>
<DEFAULT> TOKEN : {
-<SQL_TSI_FRAC_SECOND: "SQL_TSI_FRAC_SECOND">
-| <SQL_TSI_SECOND: "SQL_TSI_SECOND">
-| <SQL_TSI_MINUTE: "SQL_TSI_MINUTE">
-| <SQL_TSI_HOUR: "SQL_TSI_HOUR">
-| <SQL_TSI_DAY: "SQL_TSI_DAY">
-| <SQL_TSI_WEEK: "SQL_TSI_WEEK">
-| <SQL_TSI_MONTH: "SQL_TSI_MONTH">
-| <SQL_TSI_QUARTER: "SQL_TSI_QUARTER">
-| <SQL_TSI_YEAR: "SQL_TSI_YEAR">
-}
-
-</para></entry></row>
-<row><entry><para>
-<DEFAULT> TOKEN : {
<ALL_IN_GROUP: <ID> <PERIOD> <STAR>>
| <ID: <QUOTED_ID> (<PERIOD> <QUOTED_ID>)*>
| <#QUOTED_ID: <ID_PART> | "\"" ("\"\"" | ~["\""])+ "\"">
@@ -336,6 +347,7 @@
| <TIMETYPE: "{" "t">
| <TIMESTAMPTYPE: "{" "ts">
| <BOOLEANTYPE: "{" "b">
+| <XMLTYPE: "{" "x">
| <INTEGERVAL: (<MINUS>)? (<DIGIT>)+>
| <FLOATVAL: (<MINUS>)? (<DIGIT>)* <PERIOD> (<DIGIT>)+ (["e","E"] (["+","-"])? (<DIGIT>)+)?>
| <STRINGVAL: ("N")? "\'" ("\'\'" | ~["\'"])* "\'">
@@ -392,7 +404,7 @@
<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>
+( <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="prod5" xreflabel="userCommand"/>userCommand</para></entry>
<entry align="left" valign="top"><para>::=
@@ -552,50 +564,90 @@
<row>
<entry align="right" valign="top"><para><anchor id="prod53" xreflabel="selectExpression"/>selectExpression</para></entry>
<entry align="left" valign="top"><para>::=
-( <link linkend="prod16">expression</link> ( ( <AS> )? ( <link linkend="prod2">id</link> ) )? )</para></entry></row>
+( <link linkend="prod16">expression</link> ( ( <AS> )? <link linkend="prod2">id</link> )? )</para></entry></row>
<row>
+<entry align="right" valign="top"><para><anchor id="prod55" xreflabel="derivedColumn"/>derivedColumn</para></entry>
+<entry align="left" valign="top"><para>::=
+( <link linkend="prod16">expression</link> ( <AS> <link linkend="prod2">id</link> )? )</para></entry></row>
+<row>
<entry align="right" valign="top"><para><anchor id="prod54" xreflabel="allInGroupSymbol"/>allInGroupSymbol</para></entry>
<entry align="left" valign="top"><para>::=
-( <ALL_IN_GROUP> )</para></entry></row>
+<ALL_IN_GROUP></para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod55" xreflabel="aggregateSymbol"/>aggregateSymbol</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod56" xreflabel="xmlAgg"/>xmlAgg</para></entry>
<entry align="left" valign="top"><para>::=
-( ( <COUNT> <LPAREN> <STAR> <RPAREN> ) | ( ( <COUNT> | <SUM> | <AVG> | <MIN> | <MAX> ) <LPAREN> ( <DISTINCT> )? <link linkend="prod16">expression</link> <RPAREN> ) )</para></entry></row>
+<XMLAGG> <LPAREN> <link linkend="prod16">expression</link> ( <link linkend="prod43">orderby</link> )? <RPAREN></para></entry></row>
<row>
+<entry align="right" valign="top"><para><anchor id="prod57" xreflabel="aggregateSymbol"/>aggregateSymbol</para></entry>
+<entry align="left" valign="top"><para>::=
+( ( <link linkend="prod58">nonReserved</link> <LPAREN> <STAR> <RPAREN> ) | ( <link linkend="prod58">nonReserved</link> <LPAREN> ( <DISTINCT> )? <link linkend="prod16">expression</link> <RPAREN> ) )</para></entry></row>
+<row>
<entry align="right" valign="top"><para><anchor id="prod49" xreflabel="from"/>from</para></entry>
<entry align="left" valign="top"><para>::=
-<FROM> ( <link linkend="prod56">tableReference</link> ( <COMMA> <link linkend="prod56">tableReference</link> )* )</para></entry></row>
+<FROM> ( <link linkend="prod59">tableReference</link> ( <COMMA> <link linkend="prod59">tableReference</link> )* )</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod56" xreflabel="tableReference"/>tableReference</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod59" xreflabel="tableReference"/>tableReference</para></entry>
<entry align="left" valign="top"><para>::=
-( ( <LBRACE> <OJ> <link linkend="prod57">tableReferenceUnescaped</link> <RBRACE> ) | <link linkend="prod57">tableReferenceUnescaped</link> )</para></entry></row>
+( ( <LBRACE> <link linkend="prod58">nonReserved</link> <link linkend="prod60">tableReferenceUnescaped</link> <RBRACE> ) | <link linkend="prod60">tableReferenceUnescaped</link> )</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod57" xreflabel="tableReferenceUnescaped"/>tableReferenceUnescaped</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod60" xreflabel="tableReferenceUnescaped"/>tableReferenceUnescaped</para></entry>
<entry align="left" valign="top"><para>::=
-( <link linkend="prod58">joinedTable</link> | <link linkend="prod59">tablePrimary</link> )</para></entry></row>
+( <link linkend="prod61">joinedTable</link> | <link linkend="prod62">tablePrimary</link> )</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod58" xreflabel="joinedTable"/>joinedTable</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod61" xreflabel="joinedTable"/>joinedTable</para></entry>
<entry align="left" valign="top"><para>::=
-<link linkend="prod59">tablePrimary</link> ( ( <link linkend="prod60">crossJoin</link> | <link linkend="prod61">qualifiedJoin</link> ) )+</para></entry></row>
+<link linkend="prod62">tablePrimary</link> ( ( <link linkend="prod63">crossJoin</link> | <link linkend="prod64">qualifiedJoin</link> ) )+</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod60" xreflabel="crossJoin"/>crossJoin</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod63" xreflabel="crossJoin"/>crossJoin</para></entry>
<entry align="left" valign="top"><para>::=
-( ( <CROSS> | <UNION> ) <JOIN> <link linkend="prod59">tablePrimary</link> )</para></entry></row>
+( ( <CROSS> | <UNION> ) <JOIN> <link linkend="prod62">tablePrimary</link> )</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod61" xreflabel="qualifiedJoin"/>qualifiedJoin</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod64" xreflabel="qualifiedJoin"/>qualifiedJoin</para></entry>
<entry align="left" valign="top"><para>::=
-( ( ( <RIGHT> ( <OUTER> )? ) | ( <LEFT> ( <OUTER> )? ) | ( <FULL> ( <OUTER> )? ) | <INNER> )? <JOIN> <link linkend="prod56">tableReference</link> <ON> <link linkend="prod28">criteria</link> )</para></entry></row>
+( ( ( <RIGHT> ( <OUTER> )? ) | ( <LEFT> ( <OUTER> )? ) | ( <FULL> ( <OUTER> )? ) | <INNER> )? <JOIN> <link linkend="prod59">tableReference</link> <ON> <link linkend="prod28">criteria</link> )</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod59" xreflabel="tablePrimary"/>tablePrimary</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod62" xreflabel="tablePrimary"/>tablePrimary</para></entry>
<entry align="left" valign="top"><para>::=
-( <link linkend="prod62">unaryFromClause</link> | <link linkend="prod63">subqueryFromClause</link> | ( <LPAREN> <link linkend="prod58">joinedTable</link> <RPAREN> ) ) ( ( <MAKEDEP> ) | ( <MAKENOTDEP> ) )?</para></entry></row>
+( <link linkend="prod65">textTable</link> | <link linkend="prod66">xmlTable</link> | <link linkend="prod67">unaryFromClause</link> | <link linkend="prod68">subqueryFromClause</link> | ( <LPAREN> <link linkend="prod61">joinedTable</link> <RPAREN> ) ) ( ( <MAKEDEP> ) | ( <MAKENOTDEP> ) )?</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod63" xreflabel="subqueryFromClause"/>subqueryFromClause</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod69" xreflabel="xmlSerialize"/>xmlSerialize</para></entry>
<entry align="left" valign="top"><para>::=
-<LPAREN> ( <link linkend="prod7">queryExpression</link> | <link linkend="prod8">storedProcedure</link> ) <RPAREN> ( <AS> )? <link linkend="prod2">id</link></para></entry></row>
+<XMLSERIALIZE> <LPAREN> <link linkend="prod58">nonReserved</link> <link linkend="prod16">expression</link> ( <AS> ( <STRING> | <VARCHAR> | <CLOB> ) )? <RPAREN></para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod62" xreflabel="unaryFromClause"/>unaryFromClause</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod58" xreflabel="nonReserved"/>nonReserved</para></entry>
<entry align="left" valign="top"><para>::=
+<ID></para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod65" xreflabel="textTable"/>textTable</para></entry>
+<entry align="left" valign="top"><para>::=
+<ID> <LPAREN> <link linkend="prod16">expression</link> <link linkend="prod58">nonReserved</link> <link linkend="prod70">textColumn</link> ( <COMMA> <link linkend="prod70">textColumn</link> )* ( <ID> <link linkend="prod71">charVal</link> )? ( ( <ESCAPE> <link linkend="prod71">charVal</link> ) | ( <ID> <link linkend="prod71">charVal</link> ) )? ( <ID> ( <link linkend="prod72">intVal</link> )? )? ( <ID> <link linkend="prod72">intVal</link> )? <RPAREN> ( <AS> )? <link linkend="prod2">id</link></para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod70" xreflabel="textColumn"/>textColumn</para></entry>
+<entry align="left" valign="top"><para>::=
+<link linkend="prod2">id</link> <link linkend="prod31">dataType</link> ( <ID> <link linkend="prod72">intVal</link> )?</para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod73" xreflabel="xmlQuery"/>xmlQuery</para></entry>
+<entry align="left" valign="top"><para>::=
+<XMLQUERY> <LPAREN> ( <link linkend="prod74">xmlNamespaces</link> <COMMA> )? <link linkend="prod1">stringVal</link> ( <ID> <link linkend="prod55">derivedColumn</link> ( <COMMA> <link linkend="prod55">derivedColumn</link> )* )? ( ( <NULL> | <link linkend="prod58">nonReserved</link> ) <ON> <link linkend="prod58">nonReserved</link> )? <RPAREN></para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod66" xreflabel="xmlTable"/>xmlTable</para></entry>
+<entry align="left" valign="top"><para>::=
+<XMLTABLE> <LPAREN> ( <link linkend="prod74">xmlNamespaces</link> <COMMA> )? <link linkend="prod1">stringVal</link> ( <ID> <link linkend="prod55">derivedColumn</link> ( <COMMA> <link linkend="prod55">derivedColumn</link> )* )? ( <ID> <link linkend="prod75">xmlColumn</link> ( <COMMA> <link linkend="prod75">xmlColumn</link> )* )? <RPAREN> ( <AS> )? <link linkend="prod2">id</link></para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod75" xreflabel="xmlColumn"/>xmlColumn</para></entry>
+<entry align="left" valign="top"><para>::=
+<link linkend="prod2">id</link> ( ( <FOR> <link linkend="prod58">nonReserved</link> ) | ( <link linkend="prod31">dataType</link> ( <DEFAULT_KEYWORD> <link linkend="prod16">expression</link> )? ( <link linkend="prod58">nonReserved</link> <link linkend="prod1">stringVal</link> )? ) )</para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod72" xreflabel="intVal"/>intVal</para></entry>
+<entry align="left" valign="top"><para>::=
+<INTEGERVAL></para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod68" xreflabel="subqueryFromClause"/>subqueryFromClause</para></entry>
+<entry align="left" valign="top"><para>::=
+( <TABLE> )? <LPAREN> ( <link linkend="prod7">queryExpression</link> | <link linkend="prod8">storedProcedure</link> ) <RPAREN> ( <AS> )? <link linkend="prod2">id</link></para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod67" 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="prod40" xreflabel="where"/>where</para></entry>
@@ -604,69 +656,69 @@
<row>
<entry align="right" valign="top"><para><anchor id="prod28" xreflabel="criteria"/>criteria</para></entry>
<entry align="left" valign="top"><para>::=
-<link linkend="prod64">compoundCritOr</link></para></entry></row>
+<link linkend="prod76">compoundCritOr</link></para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod64" xreflabel="compoundCritOr"/>compoundCritOr</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod76" xreflabel="compoundCritOr"/>compoundCritOr</para></entry>
<entry align="left" valign="top"><para>::=
-<link linkend="prod65">compoundCritAnd</link> ( <OR> <link linkend="prod65">compoundCritAnd</link> )*</para></entry></row>
+<link linkend="prod77">compoundCritAnd</link> ( <OR> <link linkend="prod77">compoundCritAnd</link> )*</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod65" xreflabel="compoundCritAnd"/>compoundCritAnd</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod77" xreflabel="compoundCritAnd"/>compoundCritAnd</para></entry>
<entry align="left" valign="top"><para>::=
-<link linkend="prod66">notCrit</link> ( <AND> <link linkend="prod66">notCrit</link> )*</para></entry></row>
+<link linkend="prod78">notCrit</link> ( <AND> <link linkend="prod78">notCrit</link> )*</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod66" xreflabel="notCrit"/>notCrit</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod78" xreflabel="notCrit"/>notCrit</para></entry>
<entry align="left" valign="top"><para>::=
-( <NOT> )? <link linkend="prod67">primary</link></para></entry></row>
+( <NOT> )? <link linkend="prod79">primary</link></para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod67" xreflabel="primary"/>primary</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod79" xreflabel="primary"/>primary</para></entry>
<entry align="left" valign="top"><para>::=
-( <link linkend="prod68">predicate</link> | ( <LPAREN> <link linkend="prod28">criteria</link> <RPAREN> ) )</para></entry></row>
+( <link linkend="prod80">predicate</link> | ( <LPAREN> <link linkend="prod28">criteria</link> <RPAREN> ) )</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod68" xreflabel="predicate"/>predicate</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod80" xreflabel="predicate"/>predicate</para></entry>
<entry align="left" valign="top"><para>::=
-( <link linkend="prod69">subqueryCompareCriteria</link> | <link linkend="prod70">compareCrit</link> | <link linkend="prod71">matchCrit</link> | <link linkend="prod72">betweenCrit</link> | <link linkend="prod73">setCrit</link> | <link linkend="prod74">existsCriteria</link> | <link linkend="prod30">hasCriteria</link> | <link linkend="prod34">translateCriteria</link> | <link linkend="prod75">isNullCrit</link> )</para></entry></row>
+( <link linkend="prod81">subqueryCompareCriteria</link> | <link linkend="prod82">compareCrit</link> | <link linkend="prod83">matchCrit</link> | <link linkend="prod84">betweenCrit</link> | <link linkend="prod85">setCrit</link> | <link linkend="prod86">existsCriteria</link> | <link linkend="prod30">hasCriteria</link> | <link linkend="prod34">translateCriteria</link> | <link linkend="prod87">isNullCrit</link> )</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod70" xreflabel="compareCrit"/>compareCrit</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod82" xreflabel="compareCrit"/>compareCrit</para></entry>
<entry align="left" valign="top"><para>::=
<link linkend="prod16">expression</link> ( <EQ> | <NE> | <NE2> | <LT> | <LE> | <GT> | <GE> ) <link linkend="prod16">expression</link></para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod76" xreflabel="subquery"/>subquery</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod88" xreflabel="subquery"/>subquery</para></entry>
<entry align="left" valign="top"><para>::=
<LPAREN> ( <link linkend="prod7">queryExpression</link> | <link linkend="prod8">storedProcedure</link> ) <RPAREN></para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod69" xreflabel="subqueryCompareCriteria"/>subqueryCompareCriteria</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod81" xreflabel="subqueryCompareCriteria"/>subqueryCompareCriteria</para></entry>
<entry align="left" valign="top"><para>::=
-<link linkend="prod16">expression</link> ( <EQ> | <NE> | <NE2> | <LT> | <LE> | <GT> | <GE> ) ( <ANY> | <SOME> | <ALL> ) <link linkend="prod76">subquery</link></para></entry></row>
+<link linkend="prod16">expression</link> ( <EQ> | <NE> | <NE2> | <LT> | <LE> | <GT> | <GE> ) ( <ANY> | <SOME> | <ALL> ) <link linkend="prod88">subquery</link></para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod71" xreflabel="matchCrit"/>matchCrit</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod83" xreflabel="matchCrit"/>matchCrit</para></entry>
<entry align="left" valign="top"><para>::=
-( <link linkend="prod16">expression</link> ( <NOT> )? <LIKE> <link linkend="prod16">expression</link> ( <link linkend="prod77">escapeChar</link> | ( <LBRACE> <link linkend="prod77">escapeChar</link> <RBRACE> ) )? )</para></entry></row>
+( <link linkend="prod16">expression</link> ( <NOT> )? <LIKE> <link linkend="prod16">expression</link> ( <ESCAPE> <link linkend="prod71">charVal</link> | ( <LBRACE> <ESCAPE> <link linkend="prod71">charVal</link> <RBRACE> ) )? )</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod77" xreflabel="escapeChar"/>escapeChar</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod71" xreflabel="charVal"/>charVal</para></entry>
<entry align="left" valign="top"><para>::=
-<ESCAPE> <link linkend="prod1">stringVal</link></para></entry></row>
+<link linkend="prod1">stringVal</link></para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod72" xreflabel="betweenCrit"/>betweenCrit</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod84" xreflabel="betweenCrit"/>betweenCrit</para></entry>
<entry align="left" valign="top"><para>::=
<link linkend="prod16">expression</link> ( <NOT> )? <BETWEEN> <link linkend="prod16">expression</link> <AND> <link linkend="prod16">expression</link></para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod75" xreflabel="isNullCrit"/>isNullCrit</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod87" xreflabel="isNullCrit"/>isNullCrit</para></entry>
<entry align="left" valign="top"><para>::=
<link linkend="prod16">expression</link> <IS> ( <NOT> )? <NULL></para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod73" xreflabel="setCrit"/>setCrit</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod85" xreflabel="setCrit"/>setCrit</para></entry>
<entry align="left" valign="top"><para>::=
-<link linkend="prod16">expression</link> ( <NOT> )? <IN> ( ( <link linkend="prod76">subquery</link> ) | ( <LPAREN> <link linkend="prod16">expression</link> ( <COMMA> <link linkend="prod16">expression</link> )* <RPAREN> ) )</para></entry></row>
+<link linkend="prod16">expression</link> ( <NOT> )? <IN> ( ( <link linkend="prod88">subquery</link> ) | ( <LPAREN> <link linkend="prod16">expression</link> ( <COMMA> <link linkend="prod16">expression</link> )* <RPAREN> ) )</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod74" xreflabel="existsCriteria"/>existsCriteria</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod86" xreflabel="existsCriteria"/>existsCriteria</para></entry>
<entry align="left" valign="top"><para>::=
-<EXISTS> <link linkend="prod76">subquery</link></para></entry></row>
+<EXISTS> <link linkend="prod88">subquery</link></para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod50" xreflabel="groupBy"/>groupBy</para></entry>
<entry align="left" valign="top"><para>::=
-<GROUP> <BY> ( <link linkend="prod78">groupByItem</link> ( <COMMA> <link linkend="prod78">groupByItem</link> )* )</para></entry></row>
+<GROUP> <BY> ( <link linkend="prod89">groupByItem</link> ( <COMMA> <link linkend="prod89">groupByItem</link> )* )</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod78" xreflabel="groupByItem"/>groupByItem</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod89" xreflabel="groupByItem"/>groupByItem</para></entry>
<entry align="left" valign="top"><para>::=
<link linkend="prod16">expression</link></para></entry></row>
<row>
@@ -676,9 +728,9 @@
<row>
<entry align="right" valign="top"><para><anchor id="prod43" xreflabel="orderby"/>orderby</para></entry>
<entry align="left" valign="top"><para>::=
-<ORDER> <BY> <link linkend="prod79">sortKey</link> ( <ASC> | <DESC> )? ( <COMMA> <link linkend="prod79">sortKey</link> ( <ASC> | <DESC> )? )*</para></entry></row>
+<ORDER> <BY> <link linkend="prod90">sortKey</link> ( <ASC> | <DESC> )? ( <COMMA> <link linkend="prod90">sortKey</link> ( <ASC> | <DESC> )? )*</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod79" xreflabel="sortKey"/>sortKey</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod90" xreflabel="sortKey"/>sortKey</para></entry>
<entry align="left" valign="top"><para>::=
<link linkend="prod16">expression</link></para></entry></row>
<row>
@@ -692,63 +744,95 @@
<row>
<entry align="right" valign="top"><para><anchor id="prod16" xreflabel="expression"/>expression</para></entry>
<entry align="left" valign="top"><para>::=
-<link linkend="prod80">concatExpression</link></para></entry></row>
+<link linkend="prod91">concatExpression</link></para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod80" xreflabel="concatExpression"/>concatExpression</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod91" xreflabel="concatExpression"/>concatExpression</para></entry>
<entry align="left" valign="top"><para>::=
-( <link linkend="prod81">plusExpression</link> ( <CONCAT_OP> <link linkend="prod81">plusExpression</link> )* )</para></entry></row>
+( <link linkend="prod92">plusExpression</link> ( <CONCAT_OP> <link linkend="prod92">plusExpression</link> )* )</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod81" xreflabel="plusExpression"/>plusExpression</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod92" xreflabel="plusExpression"/>plusExpression</para></entry>
<entry align="left" valign="top"><para>::=
-( <link linkend="prod82">timesExpression</link> ( <link linkend="prod83">plusOperator</link> <link linkend="prod82">timesExpression</link> )* )</para></entry></row>
+( <link linkend="prod93">timesExpression</link> ( <link linkend="prod94">plusOperator</link> <link linkend="prod93">timesExpression</link> )* )</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod83" xreflabel="plusOperator"/>plusOperator</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod94" 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="prod82" xreflabel="timesExpression"/>timesExpression</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod93" xreflabel="timesExpression"/>timesExpression</para></entry>
<entry align="left" valign="top"><para>::=
-( <link linkend="prod84">basicExpression</link> ( <link linkend="prod85">timesOperator</link> <link linkend="prod84">basicExpression</link> )* )</para></entry></row>
+( <link linkend="prod95">basicExpression</link> ( <link linkend="prod96">timesOperator</link> <link linkend="prod95">basicExpression</link> )* )</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod85" xreflabel="timesOperator"/>timesOperator</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod96" 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="prod84" xreflabel="basicExpression"/>basicExpression</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod95" xreflabel="basicExpression"/>basicExpression</para></entry>
<entry align="left" valign="top"><para>::=
-( <QMARK> | <link linkend="prod86">literal</link> | ( <LBRACE> <FN> <link linkend="prod87">function</link> <RBRACE> ) | ( <link linkend="prod55">aggregateSymbol</link> ) | ( <link linkend="prod87">function</link> ) | ( <ID> ) | ( <LPAREN> <link linkend="prod16">expression</link> <RPAREN> ) | <link linkend="prod76">subquery</link> | <link linkend="prod88">caseExpression</link> | <link linkend="prod89">searchedCaseExpression</link> )</para></entry></row>
+( <QMARK> | <link linkend="prod97">literal</link> | ( <LBRACE> <link linkend="prod58">nonReserved</link> <link linkend="prod98">function</link> <RBRACE> ) | ( <link linkend="prod57">aggregateSymbol</link> ) | ( <link linkend="prod56">xmlAgg</link> ) | ( <link linkend="prod98">function</link> ) | ( <ID> ) | ( <LPAREN> <link linkend="prod16">expression</link> <RPAREN> ) | <link linkend="prod88">subquery</link> | <link linkend="prod99">caseExpression</link> | <link linkend="prod100">searchedCaseExpression</link> )</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod88" xreflabel="caseExpression"/>caseExpression</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod99" xreflabel="caseExpression"/>caseExpression</para></entry>
<entry align="left" valign="top"><para>::=
<CASE> <link linkend="prod16">expression</link> ( <WHEN> <link linkend="prod16">expression</link> <THEN> <link linkend="prod16">expression</link> )+ ( <ELSE> <link linkend="prod16">expression</link> )? <END></para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod89" xreflabel="searchedCaseExpression"/>searchedCaseExpression</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod100" xreflabel="searchedCaseExpression"/>searchedCaseExpression</para></entry>
<entry align="left" valign="top"><para>::=
<CASE> ( <WHEN> <link linkend="prod28">criteria</link> <THEN> <link linkend="prod16">expression</link> )+ ( <ELSE> <link linkend="prod16">expression</link> )? <END></para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod87" xreflabel="function"/>function</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod98" xreflabel="function"/>function</para></entry>
<entry align="left" valign="top"><para>::=
-( ( <CONVERT> <LPAREN> <link linkend="prod16">expression</link> <COMMA> <link linkend="prod31">dataType</link> <RPAREN> ) | ( <CAST> <LPAREN> <link linkend="prod16">expression</link> <AS> <link linkend="prod31">dataType</link> <RPAREN> ) | ( ( <TIMESTAMPADD> | <TIMESTAMPDIFF> ) <LPAREN> <link linkend="prod90">intervalType</link> <COMMA> <link linkend="prod16">expression</link> <COMMA> <link linkend="prod16">expression</link> <RPAREN> ) | ( ( <LEFT> | <RIGHT> | <CHAR> | <USER> | <YEAR> | <MONTH> | <HOUR> | <MINUTE> | <SECOND> | <XMLCONCAT> ) <LPAREN> ( <link linkend="prod16">expression</link> ( <COMMA> <link linkend="prod16">expression</link> )* )? <RPAREN> ) | ( ( <INSERT> ) <LPAREN> ( <link linkend="prod16">expression</link> ( <COMMA> <link linkend="prod16">expression</link> )* )? <RPAREN> !
) | ( ( <TRANSLATE> ) <LPAREN> ( <link linkend="prod16">expression</link> ( <COMMA> <link linkend="prod16">expression</link> )* )? <RPAREN> ) | ( <XMLELEMENT> <LPAREN> ( <ID> <link linkend="prod91">idExpression</link> | <link linkend="prod91">idExpression</link> ) ( <COMMA> <link linkend="prod92">sqlXmlFunction</link> )? ( <COMMA> <link linkend="prod16">expression</link> )* <RPAREN> ) | ( <link linkend="prod92">sqlXmlFunction</link> ) | ( <link linkend="prod2">id</link> <LPAREN> ( <link linkend="prod16">expression</link> ( <COMMA> <link linkend="prod16">expression</link> )* )? <RPAREN> ) )</para></entry></row>
+( ( <CONVERT> <LPAREN> <link linkend="prod16">expression</link> <COMMA> <link linkend="prod31">dataType</link> <RPAREN> ) | ( <CAST> <LPAREN> <link linkend="prod16">expression</link> <AS> <link linkend="prod31">dataType</link> <RPAREN> ) | ( <link linkend="prod58">nonReserved</link> <LPAREN> <link linkend="prod101">intervalType</link> <COMMA> <link linkend="prod16">expression</link> <COMMA> <link linkend="prod16">expression</link> <RPAREN> ) | <link linkend="prod102">queryString</link> | ( ( <LEFT> | <RIGHT> | <CHAR> | <USER> | <YEAR> | <MONTH> | <HOUR> | <MINUTE> | <SECOND> | <XMLCONCAT> | <XMLCOMMENT> ) <LPAREN> ( <link linkend="prod16">expression</link> ( <COMMA> <link linkend="prod16">expression</link> )* )? <RPAREN> ) | ( ( <INSERT> ) <LPAREN> ( <link linkend="prod16">expression</link> ( <COMMA> <l!
ink linkend="prod16">expression</link> )* )? <RPAREN> ) | ( ( <TRANSLATE> ) <LPAREN> ( <link linkend="prod16">expression</link> ( <COMMA> <link linkend="prod16">expression</link> )* )? <RPAREN> ) | <link linkend="prod103">xmlParse</link> | <link linkend="prod104">xmlElement</link> | ( <XMLPI> <LPAREN> ( <ID> <link linkend="prod105">idExpression</link> | <link linkend="prod105">idExpression</link> ) ( <COMMA> <link linkend="prod16">expression</link> )? <RPAREN> ) | <link linkend="prod106">xmlForest</link> | <link linkend="prod69">xmlSerialize</link> | <link linkend="prod73">xmlQuery</link> | ( <link linkend="prod2">id</link> <LPAREN> ( <link linkend="prod16">expression</link> ( <COMMA> <link linkend="prod16">expression</link> )* )? <RPAREN> ) )</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod92" xreflabel="sqlXmlFunction"/>sqlXmlFunction</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod103" xreflabel="xmlParse"/>xmlParse</para></entry>
<entry align="left" valign="top"><para>::=
-( <XMLFOREST> | <XMLATTRIBUTES> ) <LPAREN> <link linkend="prod53">selectExpression</link> ( <COMMA> <link linkend="prod53">selectExpression</link> )* <RPAREN></para></entry></row>
+<XMLPARSE> <LPAREN> <link linkend="prod58">nonReserved</link> <link linkend="prod16">expression</link> ( <link linkend="prod58">nonReserved</link> )? <RPAREN></para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod91" xreflabel="idExpression"/>idExpression</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod102" xreflabel="queryString"/>queryString</para></entry>
<entry align="left" valign="top"><para>::=
+<link linkend="prod58">nonReserved</link> <LPAREN> <link linkend="prod16">expression</link> ( <COMMA> <link linkend="prod55">derivedColumn</link> )* <RPAREN></para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod104" 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="prod74">xmlNamespaces</link> )? ( <COMMA> <link linkend="prod107">xmlAttributes</link> )? ( <COMMA> <link linkend="prod16">expression</link> )* <RPAREN></para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod107" xreflabel="xmlAttributes"/>xmlAttributes</para></entry>
+<entry align="left" valign="top"><para>::=
+<XMLATTRIBUTES> <LPAREN> <link linkend="prod55">derivedColumn</link> ( <COMMA> <link linkend="prod55">derivedColumn</link> )* <RPAREN></para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod106" xreflabel="xmlForest"/>xmlForest</para></entry>
+<entry align="left" valign="top"><para>::=
+<XMLFOREST> <LPAREN> ( <link linkend="prod74">xmlNamespaces</link> <COMMA> )? <link linkend="prod55">derivedColumn</link> ( <COMMA> <link linkend="prod55">derivedColumn</link> )* <RPAREN></para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod74" xreflabel="xmlNamespaces"/>xmlNamespaces</para></entry>
+<entry align="left" valign="top"><para>::=
+<XMLNAMESPACES> <LPAREN> <link linkend="prod108">namespaceItem</link> ( <COMMA> <link linkend="prod108">namespaceItem</link> )* <RPAREN></para></entry></row>
+<row>
+<entry align="right" valign="top"><para><anchor id="prod108" 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="prod105" 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="prod31" xreflabel="dataType"/>dataType</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="prod90" xreflabel="intervalType"/>intervalType</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod101" xreflabel="intervalType"/>intervalType</para></entry>
<entry align="left" valign="top"><para>::=
-( <SQL_TSI_FRAC_SECOND> | <SQL_TSI_SECOND> | <SQL_TSI_MINUTE> | <SQL_TSI_HOUR> | <SQL_TSI_DAY> | <SQL_TSI_WEEK> | <SQL_TSI_MONTH> | <SQL_TSI_QUARTER> | <SQL_TSI_YEAR> )</para></entry></row>
+( <link linkend="prod58">nonReserved</link> )</para></entry></row>
<row>
-<entry align="right" valign="top"><para><anchor id="prod86" xreflabel="literal"/>literal</para></entry>
+<entry align="right" valign="top"><para><anchor id="prod97" 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>
+( <link linkend="prod1">stringVal</link> | <INTEGERVAL> | <FLOATVAL> | <FALSE> | <TRUE> | <UNKNOWN> | <NULL> | ( ( <BOOLEANTYPE> | <TIMESTAMPTYPE> | <DATETYPE> | <TIMETYPE> | <XMLTYPE> ) <link linkend="prod1">stringVal</link> <RBRACE> ) )</para></entry></row>
</tbody>
</tgroup>
</informaltable>
Deleted: trunk/documentation/reference/src/main/docbook/en-US/content/other_commands.xml
===================================================================
--- trunk/documentation/reference/src/main/docbook/en-US/content/other_commands.xml 2010-06-14 14:44:05 UTC (rev 2227)
+++ trunk/documentation/reference/src/main/docbook/en-US/content/other_commands.xml 2010-06-14 15:40:48 UTC (rev 2228)
@@ -1,37 +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="other_commands">
- <title>Other Commands</title>
- <sect1 id="set_command">
- <title>SET Command</title>
- <para>The SET command is used to set execution property values for the duration of the session.</para>
- <itemizedlist>
- <para>SET Syntax:
- </para>
- <listitem>
- <para>SET parameter value
- </para>
- </listitem>
- </itemizedlist>
- <itemizedlist>
- <para>Syntax Rules:
- </para>
- <listitem>
- <para>Both parameter and value must be simple literals - they cannot contain spaces.</para>
- </listitem>
- <listitem>
- <para>The value is also not treated as an expression and will not be evaluated prior to being set as the parameter value.</para>
- </listitem>
- </itemizedlist>
- <para>The SET command can be used to control planning and execution.
- </para>
- <itemizedlist>
- <listitem>
- <para>SET SHOWPLAN [ON|DEBUG|OFF] - ON returns the query plan along with the results and DEBUG additionally prints the query planner debug information in the log and returns it with the results. Both the plan and the log are available through JDBC API extensions.</para>
- </listitem>
- <listitem>
- <para>SET NOEXEC [ON|OFF] - ON prevents query execution, but parsing and planning will still occur.</para>
- </listitem>
- </itemizedlist>
- </sect1>
-</chapter>
\ No newline at end of file
Modified: trunk/documentation/reference/src/main/docbook/en-US/content/scalar_functions.xml
===================================================================
--- trunk/documentation/reference/src/main/docbook/en-US/content/scalar_functions.xml 2010-06-14 14:44:05 UTC (rev 2227)
+++ trunk/documentation/reference/src/main/docbook/en-US/content/scalar_functions.xml 2010-06-14 15:40:48 UTC (rev 2228)
@@ -1041,6 +1041,7 @@
</entry>
<entry>
<para>Returns a properly encoded query string appended to the given path. Null valued expressions are omitted, and a null path is treated as ''.</para>
+ <para>Names are optional for column reference expressions.</para>
<para>e.g. QUERYSTRING('path', 'value' as "&x", ' & ' as y, null as z) returns 'path?%26x=value&y=%20%26%20'</para>
</entry>
<entry>
@@ -1923,7 +1924,7 @@
</tgroup>
</informaltable>
</sect1>
- <sect1>
+ <sect1 id="xml_functions">
<title>XML Functions</title>
<para>XML functions provide functionality for working with XML data. </para>
<informaltable frame="all">
@@ -1982,6 +1983,7 @@
<para>The ON EMPTY clause is used to specify the result when the evaluted sequence is empty.
EMPTY ON EMPTY, the default, returns an empty XML result. NULL ON EMPTY returns a null result.</para>
<para>See also <link linkend="xmltable">XMLTABLE</link></para>
+ <note><para>A technique known as document projection is used to reduce the memory footprint of the context item document. Only the parts of the document needed by the xquery will be loaded into memory.</para></note>
</entry>
<entry>
<para>xquery in string. Return value is xml.
Modified: trunk/documentation/reference/src/main/docbook/en-US/content/transaction_support.xml
===================================================================
--- trunk/documentation/reference/src/main/docbook/en-US/content/transaction_support.xml 2010-06-14 14:44:05 UTC (rev 2227)
+++ trunk/documentation/reference/src/main/docbook/en-US/content/transaction_support.xml 2010-06-14 15:40:48 UTC (rev 2228)
@@ -75,7 +75,7 @@
safest, but may introduce performance overhead.</entry>
</row>
<row>
- <entry>AUTO</entry>
+ <entry>DETECT</entry>
<entry>
This is the default setting. Will automatically wrap commands in a transaction, but only if
the command seems to be transactionally unsafe.
@@ -140,7 +140,7 @@
</row>
<row>
<entry>*</entry>
- <entry>Any number greater than 1 indicates that exection is
+ <entry>Any number greater than 1 indicates that execution is
transactionally unsafe and an XA transaction will be required.
</entry>
</row>
Added: trunk/documentation/reference/src/main/docbook/en-US/content/translators.xml
===================================================================
--- trunk/documentation/reference/src/main/docbook/en-US/content/translators.xml (rev 0)
+++ trunk/documentation/reference/src/main/docbook/en-US/content/translators.xml 2010-06-14 15:40:48 UTC (rev 2228)
@@ -0,0 +1,799 @@
+<?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>
+<sect1>
+<title>Introduction to the Teiid Connector Architecture</title>
+<para>The TCA (Teiid Connector Architecture) 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. See 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>
+</sect1>
+<sect1>
+<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 Admin 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=".75*" />
+<colspec colwidth="1.5*" />
+<colspec colwidth=".5*" />
+<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>
+</tbody>
+</tgroup>
+</table>
+<note>
+<para>Only a subset of the metadata as to what SQL constructs the source supports 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>
+<sect2>
+<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">
+<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>
+<sect3><title>Usage</title>
+<para>Retrieve all files as BLOBs with the given extension at the given path. <programlisting>call getFiles('path/*.ext')</programlisting>
+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. <programlisting>call getTextFiles('path/*.ext')</programlisting></para>
+<para>Save the CLOB, BLOB, or XML file to given path <programlisting>call saveFile('path', value)</programlisting></para>
+<para>See the database metadata for full descriptions of the getFiles, getTextFiles, and saveFile procedures.</para>
+</sect3>
+</sect2>
+<sect2>
+<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>
+<para>Type names</para>
+<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. Setting the specific 10.x version improves pushdown support - see the DatabaseVersion execution property.</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>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>mysql</emphasis> - for use with MySQL version 4.x.</para>
+</listitem>
+<listitem>
+<para><emphasis>mysql5</emphasis> - for use with MySQL version 5 or later.</para>
+</listitem>
+<listitem>
+<para><emphasis>oracle</emphasis> - for use with Oracle 9i or later.</para>
+</listitem>
+<listitem>
+<para><emphasis>postgresql</emphasis> - for use with 8.0 or later clients and 7.1 or later server. Setting the specific 8.x version improves pushdown support - see the DatabaseVersion execution property.</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=".75*" />
+<colspec colwidth="1.5*" />
+<colspec colwidth=".5*" />
+<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>
+</tbody>
+</tgroup>
+</table>
+<table>
+<title>Importer Properties - shared by all JDBC Translators</title>
+<tgroup cols="3">
+<colspec colwidth=".75*" />
+<colspec colwidth="1.5*" />
+<colspec colwidth=".3*" />
+<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>(7.0+) 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>(7.0+) false will override the default and direct Teiid to create source queries using unquoted identifiers.</entry>
+<entry>true</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.<programlisting><![CDATA[...
+<property name="importer.tableTypes" value="TABLE,VIEW"/>
+<property name="importer.schemaPattern" value="my-schema"/>
+...]]></programlisting></para>
+<sect3><title>Usage</title>
+<para>Usage of a JDBC source is straight-forward. Using Teiid SQL, the source ma be queried as if the tables and procedures were local to the Teiid system.
+</para>
+</sect3>
+</sect2>
+<sect2>
+<title>LDAP Translator</title>
+<para>The LDAP translator, known by the type name <emphasis>ldap</emphasis>, exposes an LDAP directory tree relationally with pusdown 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>
+</sect2>
+<sect2>
+<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=".75*" />
+<colspec colwidth="1.5*" />
+<colspec colwidth=".5*" />
+<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 "asynchronusly" 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.</para>
+</sect2>
+<sect2>
+<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=".75*" />
+<colspec colwidth="1.5*" />
+<colspec colwidth=".5*" />
+<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>
+<sect3>
+<title>Usage</title>
+<sect4>
+<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><![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><![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><![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><![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>
+ </sect4>
+ <sect4>
+ <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><![CDATA[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><![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><![CDATA[SELECT * FROM Issue WHERE Status = 'current';
+SELECT * FROM Issue WHERE Status = 'current;critical';
+SELECT * FROM Issue WHERE Status != 'current;working';]]></programlisting>
+ </sect4>
+ <sect4>
+ <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><![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><![CDATA[
+ select * from Contact where isDeleted = false;
+ ]]>
+ </programlisting>
+ </sect4>
+ <sect4>
+ <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 sturcture:
+ </para>
+ <programlisting><![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>
+ </sect4>
+ <sect4>
+ <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 sturcture:
+ </para>
+ <programlisting><![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>
+ </sect4>
+ <sect4>
+ <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><![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><![CDATA[SELECT Contact.Account.Name, Contact.Name FROM Contact]]>
+ </programlisting>
+ <programlisting><![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><![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>
+ </sect4>
+ <sect4 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>
+ </sect4>
+</sect3>
+</sect2>
+<sect2>
+<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">
+<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>
+<sect3><title>Usage</title>
+<para>The main procedure, invoke, allows for multiple binding, or protocol modes, including HTTP, SOAP11, and SOAP12.
+<programlisting>Procedure invoke(binding in STRING, action in STRING, request in OBJECT, endpoint in STRING) returns XML</programlisting>
+</para>
+<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. e.g. <programlisting>call invoke(binding='HTTP', action='GET')</programlisting></para>
+<para>The request can be an XML, STRING, or CLOB value and should be a valid XML document.</para>
+<para>See the ws-weather example in the kit and database metadata for a full description of invoke.</para>
+</sect3>
+</sect2>
+</sect1>
+<sect1 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 "<some-name>-vdb.xml" 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><![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>
+<sect2>
+<title>VDB Element</title>
+<itemizedlist>
+ <title>Attributes</title>
+ <listitem><para><emphasis>name</emphasis> - 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> - 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> - 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 <jboss-install>/server/<profile>/data/teiid directory</para>
+ </listitem>
+</itemizedlist>
+</sect2>
+<sect2>
+<title>Model Element</title>
+<itemizedlist>
+ <title>Attributes</title>
+ <listitem><para><emphasis>name</emphasis> - 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> - 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> - 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> - 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> - 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> - 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>
+</sect2>
+<sect2>
+<title>Translator Element</title>
+<itemizedlist>
+ <title>Attributes</title>
+ <listitem><para><emphasis>name</emphasis> - The name of the the Translator. Referenced by the source element.</para>
+ </listitem>
+ <listitem><para><emphasis>type</emphasis> - 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>
+</sect2>
+</sect1>
+</chapter>
\ No newline at end of file
Property changes on: trunk/documentation/reference/src/main/docbook/en-US/content/translators.xml
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/documentation/reference/src/main/docbook/en-US/content/xml_queries.xml
===================================================================
--- trunk/documentation/reference/src/main/docbook/en-US/content/xml_queries.xml 2010-06-14 14:44:05 UTC (rev 2227)
+++ trunk/documentation/reference/src/main/docbook/en-US/content/xml_queries.xml 2010-06-14 15:40:48 UTC (rev 2228)
@@ -4,11 +4,12 @@
<title>XML SELECT Command</title>
<sect1>
<title>Overview</title>
- <para>XML documents can be dynamically constructed by Teiid. The
- structure of the document is defined by a document model, which is
+ <para>Complex XML documents can be dynamically constructed by Teiid using XML Document Models. A document model is
generally created from a schema. The document model is bound to
relevant SQL statements through mapping classes. See the Designer
guide for more on creating document models.</para>
+ <para>XML documents may also created via XQuery with the <link linkend="xmlquery">XMLQuery</link> function
+ or with various other <link linkend="xml_functions">SQL/XML</link> functions.</para>
<para>Querying XML documents is similar to querying relational
tables. An idiomatic SQL variant with special scalar functions gives
control over which parts of a given document to return.</para>
@@ -261,7 +262,7 @@
<note>
<title>Document Correctness</title>
<para>
- By default XML generated XML documents are not checked for
+ By default XML generated by XML documents are not checked for
correctness vs. the relevant schema. It is possible that the mapping
class queries, the usage of specific SELECT or WHERE clause values
will generated a document that is not valid with respect to the
Modified: trunk/documentation/salesforce-connector-guide/src/main/docbook/en-US/content/preface.xml
===================================================================
--- trunk/documentation/salesforce-connector-guide/src/main/docbook/en-US/content/preface.xml 2010-06-14 14:44:05 UTC (rev 2227)
+++ trunk/documentation/salesforce-connector-guide/src/main/docbook/en-US/content/preface.xml 2010-06-14 15:40:48 UTC (rev 2228)
@@ -4,7 +4,7 @@
<title>Preface</title>
<para> This document shows how to model the metadata of an hosted
Salesforce application with Teiid Designer, and details the SQL semantics
- supported by the connector in Teiid Embedded. This document contains
+ supported by the connector in Teiid. This document contains
an overview of the process, including:</para>
<itemizedlist>
<listitem>
@@ -32,7 +32,7 @@
application. This example takes advantage of only a
minimal set of
features from
- Teiid Embedded for the sake of simplicity and time.
+ Teiid for the sake of simplicity and time.
</para>
</note>
</preface>
\ No newline at end of file
Modified: trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/impl/CapabilitiesConverter.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/impl/CapabilitiesConverter.java 2010-06-14 14:44:05 UTC (rev 2227)
+++ trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/impl/CapabilitiesConverter.java 2010-06-14 15:40:48 UTC (rev 2228)
@@ -41,10 +41,10 @@
}
public static SourceCapabilities convertCapabilities(ExecutionFactory srcCaps) {
- return convertCapabilities(srcCaps, null, false);
+ return convertCapabilities(srcCaps, null);
}
- public static BasicSourceCapabilities convertCapabilities(ExecutionFactory srcCaps, String connectorID, boolean isXa) {
+ public static BasicSourceCapabilities convertCapabilities(ExecutionFactory srcCaps, String connectorID) {
BasicSourceCapabilities tgtCaps = new BasicSourceCapabilities();
tgtCaps.setCapabilitySupport(Capability.QUERY_SELECT_EXPRESSION, srcCaps.supportsSelectExpression());
Modified: trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/impl/ConnectorManager.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/impl/ConnectorManager.java 2010-06-14 14:44:05 UTC (rev 2227)
+++ trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/impl/ConnectorManager.java 2010-06-14 15:40:48 UTC (rev 2228)
@@ -88,7 +88,7 @@
private LinkedList<ConnectorWorkItem> queuedRequests = new LinkedList<ConnectorWorkItem>();
private volatile boolean stopped;
- private ExecutionFactory executionFactory;
+ private ExecutionFactory<Object, Object> executionFactory;
public ConnectorManager(String translatorName, String connectionName) {
this.translatorName = translatorName;
@@ -97,7 +97,7 @@
public String getStausMessage() {
StringBuilder sb = new StringBuilder();
- ExecutionFactory ef = getExecutionFactory();
+ ExecutionFactory<Object, Object> ef = getExecutionFactory();
if(ef != null) {
if (ef.isSourceRequired()) {
@@ -127,11 +127,10 @@
throw BlockedException.INSTANCE;
}
}
-
public MetadataStore getMetadata(String modelName, Map<String, Datatype> datatypes, Properties importProperties) throws TranslatorException {
MetadataFactory factory = new MetadataFactory(modelName, datatypes, importProperties);
- ExecutionFactory executionFactory = getExecutionFactory();
+ ExecutionFactory<Object, Object> executionFactory = getExecutionFactory();
Object connectionFactory = getConnectionFactory();
Object connection = executionFactory.getConnection(connectionFactory);
try {
@@ -148,8 +147,8 @@
}
checkStatus();
- ExecutionFactory translator = getExecutionFactory();
- BasicSourceCapabilities resultCaps = CapabilitiesConverter.convertCapabilities(translator, this.connectorId, translator.isXaCapable());
+ ExecutionFactory<Object, Object> translator = getExecutionFactory();
+ BasicSourceCapabilities resultCaps = CapabilitiesConverter.convertCapabilities(translator, this.connectorId);
resultCaps.setScope(Scope.SCOPE_GLOBAL);
cachedCapabilities = resultCaps;
return resultCaps;
@@ -255,19 +254,18 @@
* Get the <code>Translator</code> object managed by this manager.
* @return the <code>ExecutionFactory</code>.
*/
- @SuppressWarnings("unused")
- protected ExecutionFactory getExecutionFactory() {
+ protected ExecutionFactory<Object, Object> getExecutionFactory() {
if (this.executionFactory == null) {
try {
InitialContext ic = new InitialContext();
- return (ExecutionFactory)ic.lookup(this.translatorName);
+ return (ExecutionFactory<Object, Object>)ic.lookup(this.translatorName);
} catch (NamingException e) {
}
}
return this.executionFactory;
}
- public void setExecutionFactory(ExecutionFactory ef) {
+ public void setExecutionFactory(ExecutionFactory<Object, Object> ef) {
this.executionFactory = ef;
}
Modified: trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/impl/ConnectorWorkItem.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/impl/ConnectorWorkItem.java 2010-06-14 14:44:05 UTC (rev 2227)
+++ trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/impl/ConnectorWorkItem.java 2010-06-14 15:40:48 UTC (rev 2228)
@@ -117,10 +117,7 @@
VDBMetaData vdb = requestMsg.getWorkContext().getVDB();
this.queryMetadata = vdb.getAttachment(QueryMetadataInterface.class);
this.queryMetadata = new TempMetadataAdapter(this.queryMetadata, new TempMetadataStore());
-
- if (requestMsg.isTransactional() && this.connector.isXaCapable()) {
- this.securityContext.setTransactional(true);
- }
+ this.securityContext.setTransactional(requestMsg.isTransactional());
this.awi = awi;
}
@@ -329,13 +326,13 @@
correctTypes(row);
rows.add(row);
// Check for max result rows exceeded
- if(this.connector.getMaxResultRows() > -1 && this.rowCount >= this.connector.getMaxResultRows()){
- if (this.rowCount == this.connector.getMaxResultRows() && !this.connector.isExceptionOnMaxRows()) {
- LogManager.logDetail(LogConstants.CTX_CONNECTOR, new Object[] {this.id, "Exceeded max, returning", this.connector.getMaxResultRows()}); //$NON-NLS-1$
+ if(this.requestMsg.getMaxResultRows() > -1 && this.rowCount >= this.requestMsg.getMaxResultRows()){
+ if (this.rowCount == this.requestMsg.getMaxResultRows() && !this.requestMsg.isExceptionOnMaxRows()) {
+ LogManager.logDetail(LogConstants.CTX_CONNECTOR, new Object[] {this.id, "Exceeded max, returning", this.requestMsg.getMaxResultRows()}); //$NON-NLS-1$
this.lastBatch = true;
break;
- } else if (this.rowCount > this.connector.getMaxResultRows() && this.connector.isExceptionOnMaxRows()) {
- String msg = DQPPlugin.Util.getString("ConnectorWorker.MaxResultRowsExceed", this.connector.getMaxResultRows()); //$NON-NLS-1$
+ } else if (this.rowCount > this.requestMsg.getMaxResultRows() && this.requestMsg.isExceptionOnMaxRows()) {
+ String msg = DQPPlugin.Util.getString("ConnectorWorker.MaxResultRowsExceed", this.requestMsg.getMaxResultRows()); //$NON-NLS-1$
throw new TranslatorException(msg);
}
}
Modified: trunk/engine/src/main/java/org/teiid/dqp/internal/process/DQPConfiguration.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/dqp/internal/process/DQPConfiguration.java 2010-06-14 14:44:05 UTC (rev 2227)
+++ trunk/engine/src/main/java/org/teiid/dqp/internal/process/DQPConfiguration.java 2010-06-14 15:40:48 UTC (rev 2228)
@@ -37,8 +37,8 @@
static final int DEFAULT_MAX_RESULTSET_CACHE_ENTRIES = 1024;
static final int DEFAULT_QUERY_THRESHOLD = 600;
static final String PROCESS_PLAN_QUEUE_NAME = "QueryProcessorQueue"; //$NON-NLS-1$
- public static final int DEFAULT_MAX_PROCESS_WORKERS = 16;
-
+ public static final int DEFAULT_MAX_PROCESS_WORKERS = 32;
+ public static final int DEFAULT_MAX_SOURCE_ROWS = -1;
private int maxThreads = DEFAULT_MAX_PROCESS_WORKERS;
private int timeSliceInMilli = DEFAULT_PROCESSOR_TIMESLICE;
@@ -53,8 +53,10 @@
private int maxResultSetCacheEntries = DQPConfiguration.DEFAULT_MAX_RESULTSET_CACHE_ENTRIES;
private boolean useEntitlements = false;
private int queryThresholdInSecs = DEFAULT_QUERY_THRESHOLD;
+ private boolean exceptionOnMaxSourceRows = true;
+ private int maxSourceRows = -1;
- @ManagementProperty(description="Process pool maximum thread count. (default 16) Increase this value if your load includes a large number of XQueries or if the system's available processors is larger than 8")
+ @ManagementProperty(description="Process pool maximum thread count. (default 32) Increase this value if the system's available processors is larger than 8")
public int getMaxThreads() {
return maxThreads;
}
@@ -179,4 +181,30 @@
public String getRuntimeVersion() {
return ApplicationInfo.getInstance().getBuildNumber();
}
+
+ /**
+ * Throw exception if there are more rows in the result set than specified in the MaxSourceRows setting.
+ * @return
+ */
+ @ManagementProperty(description="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.")
+ public boolean isExceptionOnMaxSourceRows() {
+ return exceptionOnMaxSourceRows;
+ }
+
+ public void setExceptionOnMaxSourceRows(boolean exceptionOnMaxSourceRows) {
+ this.exceptionOnMaxSourceRows = exceptionOnMaxSourceRows;
+ }
+
+ /**
+ * Maximum source set rows to fetch
+ * @return
+ */
+ @ManagementProperty(description="Maximum rows allowed from a source query. -1 indicates no limit. (default -1)")
+ public int getMaxSourceRows() {
+ return maxSourceRows;
+ }
+
+ public void setMaxSourceRows(int maxSourceRows) {
+ this.maxSourceRows = maxSourceRows;
+ }
}
Modified: trunk/engine/src/main/java/org/teiid/dqp/internal/process/DQPCore.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/dqp/internal/process/DQPCore.java 2010-06-14 14:44:05 UTC (rev 2227)
+++ trunk/engine/src/main/java/org/teiid/dqp/internal/process/DQPCore.java 2010-06-14 15:40:48 UTC (rev 2228)
@@ -188,6 +188,9 @@
private int processorTimeslice = DQPConfiguration.DEFAULT_PROCESSOR_TIMESLICE;
private boolean processorDebugAllowed;
+ private int maxSourceRows = DQPConfiguration.DEFAULT_MAX_SOURCE_ROWS;
+ private boolean exceptionOnMaxSourceRows = true;
+
private int chunkSize = Streamable.STREAMING_BATCH_SIZE_IN_BYTES;
private Map<RequestID, RequestWorkItem> requests = new ConcurrentHashMap<RequestID, RequestWorkItem>();
@@ -321,7 +324,7 @@
request.initialize(requestMsg, bufferManager,
dataTierMgr, transactionService, processorDebugAllowed,
state.tempTableStoreImpl, workContext,
- chunkSize, connectorManagerRepository, this.useEntitlements);
+ connectorManagerRepository, this.useEntitlements);
ResultsFuture<ResultsMessage> resultsFuture = new ResultsFuture<ResultsMessage>();
RequestWorkItem workItem = new RequestWorkItem(this, requestMsg, request, resultsFuture.getResultsReceiver(), requestID, workContext);
@@ -635,6 +638,8 @@
this.maxCodeRecords = config.getCodeTablesMaxRows();
this.useEntitlements = config.useEntitlements();
this.queryThreshold = config.getQueryThresholdInSecs();
+ this.maxSourceRows = config.getMaxSourceRows();
+ this.exceptionOnMaxSourceRows = config.isExceptionOnMaxSourceRows();
this.chunkSize = config.getLobChunkSizeInKB() * 1024;
@@ -819,4 +824,13 @@
public ConnectorManagerRepository getConnectorManagerRepository() {
return this.connectorManagerRepository;
}
+
+ public boolean isExceptionOnMaxSourceRows() {
+ return exceptionOnMaxSourceRows;
+ }
+
+ public int getMaxSourceRows() {
+ return maxSourceRows;
+ }
+
}
\ No newline at end of file
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 2010-06-14 14:44:05 UTC (rev 2227)
+++ trunk/engine/src/main/java/org/teiid/dqp/internal/process/DataTierManagerImpl.java 2010-06-14 15:40:48 UTC (rev 2228)
@@ -182,12 +182,12 @@
for (Procedure proc : schema.getProcedures().values()) {
for (ProcedureParameter param : proc.getParameters()) {
rows.add(Arrays.asList(vdbName, proc.getParent().getName(), proc.getName(), param.getName(), param.getDatatype().getRuntimeTypeName(), param.getPosition(), param.getType().toString(), param.isOptional(),
- param.getPrecision(), param.getLength(), param.getScale(), param.getRadix(), param.getNullType().toString(), param.getUUID()));
+ param.getPrecision(), param.getLength(), param.getScale(), param.getRadix(), param.getNullType().toString(), param.getUUID(), param.getAnnotation()));
}
if (proc.getResultSet() != null) {
for (Column param : proc.getResultSet().getColumns()) {
rows.add(Arrays.asList(vdbName, proc.getParent().getName(), proc.getName(), param.getName(), param.getDatatype().getRuntimeTypeName(), param.getPosition(), "ResultSet", false, //$NON-NLS-1$
- param.getPrecision(), param.getLength(), param.getScale(), param.getRadix(), param.getNullType().toString(), param.getUUID()));
+ param.getPrecision(), param.getLength(), param.getScale(), param.getRadix(), param.getNullType().toString(), param.getUUID(), param.getAnnotation()));
}
}
}
@@ -326,6 +326,8 @@
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());
if (nodeID >= 0) {
aqr.setTransactionContext(workItem.getTransactionContext());
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 2010-06-14 14:44:05 UTC (rev 2227)
+++ trunk/engine/src/main/java/org/teiid/dqp/internal/process/Request.java 2010-06-14 15:40:48 UTC (rev 2228)
@@ -126,7 +126,6 @@
protected TransactionContext transactionContext;
protected ConnectorManagerRepository connectorManagerRepo;
- private int chunkSize;
protected Command userCommand;
protected boolean returnsUpdateCount;
@@ -139,7 +138,6 @@
boolean procDebugAllowed,
TempTableStore tempTableStore,
DQPWorkContext workContext,
- int chunckSize,
ConnectorManagerRepository repo,
boolean useEntitlements) {
@@ -154,7 +152,6 @@
idGenerator.setDefaultFactory(new IntegerIDFactory());
this.workContext = workContext;
this.requestId = workContext.getRequestID(this.requestMsg.getExecutionId());
- this.chunkSize = chunckSize;
this.connectorManagerRepo = repo;
this.useEntitlements = useEntitlements;
}
@@ -237,7 +234,6 @@
this.requestMsg.getShowPlan() != ShowPlan.OFF);
this.context.setProcessorBatchSize(bufferManager.getProcessorBatchSize());
this.context.setConnectorBatchSize(bufferManager.getConnectorBatchSize());
- this.context.setStreamingBatchSize(chunkSize);
if (multiSourceModels != null) {
MultiSourcePlanToProcessConverter modifier = new MultiSourcePlanToProcessConverter(
Modified: trunk/engine/src/main/java/org/teiid/dqp/message/AtomicRequestMessage.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/dqp/message/AtomicRequestMessage.java 2010-06-14 14:44:05 UTC (rev 2227)
+++ trunk/engine/src/main/java/org/teiid/dqp/message/AtomicRequestMessage.java 2010-06-14 15:40:48 UTC (rev 2228)
@@ -78,6 +78,9 @@
private RequestID requestID;
private Serializable executionPayload;
+ private boolean exceptionOnMaxRows;
+ private int maxRows;
+
private DQPWorkContext workContext;
public AtomicRequestMessage() {
@@ -90,6 +93,22 @@
this.requestID = new RequestID(parent.getSessionId(), requestMessage.getExecutionId());
this.atomicRequestId = new AtomicRequestID(this.requestID, nodeId, EXECUTION_COUNT.getAndIncrement());
}
+
+ public int getMaxResultRows() {
+ return maxRows;
+ }
+
+ public void setMaxResultRows(int maxRows) {
+ this.maxRows = maxRows;
+ }
+
+ public boolean isExceptionOnMaxRows() {
+ return exceptionOnMaxRows;
+ }
+
+ public void setExceptionOnMaxRows(boolean exceptionOnMaxRows) {
+ this.exceptionOnMaxRows = exceptionOnMaxRows;
+ }
public AtomicRequestID getAtomicRequestID() {
return this.atomicRequestId;
Modified: trunk/engine/src/main/java/org/teiid/query/rewriter/QueryRewriter.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/rewriter/QueryRewriter.java 2010-06-14 14:44:05 UTC (rev 2227)
+++ trunk/engine/src/main/java/org/teiid/query/rewriter/QueryRewriter.java 2010-06-14 15:40:48 UTC (rev 2228)
@@ -134,15 +134,10 @@
import org.teiid.query.sql.symbol.ExpressionSymbol;
import org.teiid.query.sql.symbol.Function;
import org.teiid.query.sql.symbol.GroupSymbol;
-import org.teiid.query.sql.symbol.QueryString;
import org.teiid.query.sql.symbol.Reference;
import org.teiid.query.sql.symbol.ScalarSubquery;
import org.teiid.query.sql.symbol.SearchedCaseExpression;
import org.teiid.query.sql.symbol.SingleElementSymbol;
-import org.teiid.query.sql.symbol.XMLElement;
-import org.teiid.query.sql.symbol.XMLForest;
-import org.teiid.query.sql.symbol.XMLQuery;
-import org.teiid.query.sql.symbol.XMLSerialize;
import org.teiid.query.sql.util.SymbolMap;
import org.teiid.query.sql.util.ValueIterator;
import org.teiid.query.sql.visitor.AggregateSymbolCollectorVisitor;
@@ -1905,17 +1900,9 @@
} else {
expression = rewriteExpressionDirect(((ExpressionSymbol)expression).getExpression());
}
- } else if (expression instanceof XMLElement) {
+ } else {
rewriteExpressions(expression);
- } else if (expression instanceof XMLForest) {
- rewriteExpressions(expression);
- } else if (expression instanceof XMLSerialize) {
- rewriteExpressions(expression);
- } else if (expression instanceof XMLQuery) {
- rewriteExpressions(expression);
- } else if (expression instanceof QueryString) {
- rewriteExpressions(expression);
- }
+ }
if(dataMgr == null) {
if (!EvaluatableVisitor.isFullyEvaluatable(expression, true)) {
Modified: trunk/engine/src/main/java/org/teiid/query/util/CommandContext.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/util/CommandContext.java 2010-06-14 14:44:05 UTC (rev 2227)
+++ trunk/engine/src/main/java/org/teiid/query/util/CommandContext.java 2010-06-14 15:40:48 UTC (rev 2228)
@@ -32,7 +32,6 @@
import org.teiid.api.exception.query.QueryProcessingException;
import org.teiid.common.buffer.BufferManager;
import org.teiid.core.TeiidComponentException;
-import org.teiid.core.types.Streamable;
import org.teiid.core.util.ArgCheck;
import org.teiid.query.QueryPlugin;
import org.teiid.query.eval.SecurityFunctionEvaluator;
@@ -44,7 +43,6 @@
import org.teiid.query.sql.symbol.Expression;
import org.teiid.query.sql.util.VariableContext;
-
/**
* Defines the context that a command is processing in. For example, this defines
* who is processing the command and why. Also, this class (or subclasses) provide
@@ -80,8 +78,6 @@
/** Indicate whether statistics should be collected for relational node processing*/
private boolean collectNodeStatistics;
- private int streamingBatchSize = Streamable.STREAMING_BATCH_SIZE_IN_BYTES;
-
private Random random = null;
private SecurityFunctionEvaluator securityFunctionEvaluator;
@@ -275,15 +271,6 @@
return this.globalState.collectNodeStatistics;
}
- public int getStreamingBatchSize() {
- return globalState.streamingBatchSize;
- }
-
- public void setStreamingBatchSize(int streamingBatchSize) {
- this.globalState.streamingBatchSize = streamingBatchSize;
- }
-
-
public int getConnectorBatchSize() {
return this.globalState.connectorBatchSize;
}
Modified: trunk/engine/src/main/resources/org/teiid/query/i18n.properties
===================================================================
--- trunk/engine/src/main/resources/org/teiid/query/i18n.properties 2010-06-14 14:44:05 UTC (rev 2227)
+++ trunk/engine/src/main/resources/org/teiid/query/i18n.properties 2010-06-14 15:40:48 UTC (rev 2228)
@@ -904,6 +904,7 @@
ValidationVisitor.one_ordinal=Only one FOR ORDINALITY column is allowed for an XMLTABLE.
ValidationVisitor.invalid_default=XMLTABLE DEFAULT expression is invalid: "{0}"
ValidationVisitor.context_required=The XQuery requires a context item, but none exists in the PASSING clause.
+ValidationVisitor.xmlserialize_type=XMLSERIALIZE expects a STRING, CLOB, or BLOB value.
UpdateProcedureResolver.only_variables=Element symbol "{0}" cannot be assigned a value. Only declared VARIABLES can be assigned values.
wrong_result_type=No results found; or non-XML result object has been produced as a result of the execution of XQuery expression. Please note that only XML type results are supported.
MappingLoader.unknown_node_type=Unknown Node Type "{0}" being loaded by the XML mapping document.
Modified: trunk/metadata/src/main/resources/System.vdb
===================================================================
(Binary files differ)
Modified: trunk/runtime/src/main/java/org/teiid/deployers/VDBDeployer.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/deployers/VDBDeployer.java 2010-06-14 14:44:05 UTC (rev 2227)
+++ trunk/runtime/src/main/java/org/teiid/deployers/VDBDeployer.java 2010-06-14 15:40:48 UTC (rev 2228)
@@ -166,7 +166,7 @@
}
private void createConnectorManagers(final VDBMetaData deployment) throws DeploymentException {
- IdentityHashMap<Translator, ExecutionFactory> map = new IdentityHashMap<Translator, ExecutionFactory>();
+ IdentityHashMap<Translator, ExecutionFactory<Object, Object>> map = new IdentityHashMap<Translator, ExecutionFactory<Object, Object>>();
for (Model model:deployment.getModels()) {
if (model.getName().equals(CoreConstants.SYSTEM_MODEL)){
@@ -183,7 +183,7 @@
throw new DeploymentException(RuntimePlugin.Util.getString("translator_not_found", name)); //$NON-NLS-1$
}
- ExecutionFactory ef = map.get(translator);
+ ExecutionFactory<Object, Object> ef = map.get(translator);
if ( ef == null) {
ef = TranslatorUtil.buildExecutionFactory(translator);
map.put(translator, ef);
Modified: trunk/test-integration/common/src/test/java/org/teiid/jdbc/AbstractMMQueryTestCase.java
===================================================================
--- trunk/test-integration/common/src/test/java/org/teiid/jdbc/AbstractMMQueryTestCase.java 2010-06-14 14:44:05 UTC (rev 2227)
+++ trunk/test-integration/common/src/test/java/org/teiid/jdbc/AbstractMMQueryTestCase.java 2010-06-14 15:40:48 UTC (rev 2228)
@@ -86,14 +86,4 @@
closeConnection();
}
- protected void checkResult(String testName, ResultSet actualResults, String testsuite) throws Exception {
- ResultSetMetaData resultMetadata = actualResults.getMetaData();
-
- String metafilename = UnitTestUtil.getTestDataPath() + File.separator+testsuite+File.separator + "expected" + File.separator+ testName.substring(4) + ".metadata.txt"; //$NON-NLS-1$ //$NON-NLS-2$
- assertResultsSetMetadataEquals(resultMetadata, new File(metafilename));
-
- String filename = UnitTestUtil.getTestDataPath() + File.separator+testsuite+File.separator + "expected" + File.separator+ testName.substring(4) + ".txt"; //$NON-NLS-1$ //$NON-NLS-2$
- assertResultsSetEquals(actualResults, new File(filename));
- }
-
}
\ No newline at end of file
Modified: trunk/test-integration/common/src/test/java/org/teiid/jdbc/TestCase3473.java
===================================================================
--- trunk/test-integration/common/src/test/java/org/teiid/jdbc/TestCase3473.java 2010-06-14 14:44:05 UTC (rev 2227)
+++ trunk/test-integration/common/src/test/java/org/teiid/jdbc/TestCase3473.java 2010-06-14 15:40:48 UTC (rev 2228)
@@ -33,6 +33,7 @@
/**
*/
+@SuppressWarnings("nls")
public class TestCase3473 {
private DatabaseMetaData dbmd;
@@ -42,7 +43,7 @@
@Before public void setUp() throws Exception {
FakeServer server = new FakeServer();
server.deployVDB("test", UnitTestUtil.getTestDataPath() + "/TestCase3473/test.vdb");
- Connection conn = server.createConnection("jdbc:teiid:test"); //$NON-NLS-1$ //$NON-NLS-2$
+ Connection conn = server.createConnection("jdbc:teiid:test"); //$NON-NLS-1$
dbmd = conn.getMetaData();
}
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 2010-06-14 14:44:05 UTC (rev 2227)
+++ trunk/test-integration/common/src/test/java/org/teiid/systemmodel/TestSystemVirtualModel.java 2010-06-14 15:40:48 UTC (rev 2228)
@@ -28,6 +28,7 @@
import org.teiid.core.util.UnitTestUtil;
import org.teiid.jdbc.AbstractMMQueryTestCase;
import org.teiid.jdbc.FakeServer;
+import org.teiid.jdbc.TestMMDatabaseMetaData;
/**
@@ -66,7 +67,7 @@
protected void checkResult(String testName, String query) throws Exception {
execute(query);
- super.checkResult(testName, this.internalResultSet, "system"); //$NON-NLS-1$
+ TestMMDatabaseMetaData.compareResultSet("TestSystemVirtualModel/" + testName, this.internalResultSet);
}
@Test public void testModels() throws Exception {
Modified: trunk/test-integration/common/src/test/resources/TestMMDatabaseMetaData/testGetColumns.expected
===================================================================
--- trunk/test-integration/common/src/test/resources/TestMMDatabaseMetaData/testGetColumns.expected 2010-06-14 14:44:05 UTC (rev 2227)
+++ trunk/test-integration/common/src/test/resources/TestMMDatabaseMetaData/testGetColumns.expected 2010-06-14 15:40:48 UTC (rev 2228)
@@ -440,6 +440,7 @@
QT_Ora9DS SYS ProcedureParams Radix 4 integer 10 <null> 0 10 0 <null> <null> <null> <null> 10 12 YES <null> <null> <null> !
<null> NO
QT_Ora9DS SYS ProcedureParams NullType 12 string 10 <null> 0 10 0 <null> <null> <null> <null> 10 13 YES <null> <null> <null> !
<null> NO
QT_Ora9DS SYS ProcedureParams UID 12 string 50 <null> 0 10 1 <null> <null> <null> <null> 50 14 NO <null> <null> <null> !
<null> NO
+QT_Ora9DS SYS ProcedureParams Description 12 string 255 <null> 0 10 1 <null> <null> <null> <null> 255 15 NO <null> <null> <null> !
<null> NO
QT_Ora9DS SYS Procedures VDBName 12 string 255 <null> 0 10 0 <null> <null> <null> <null> 255 1 YES <null> <null> <null> !
<null> NO
QT_Ora9DS SYS Procedures SchemaName 12 string 255 <null> 0 10 1 <null> <null> <null> <null> 255 2 NO <null> <null> <null> !
<null> NO
QT_Ora9DS SYS Procedures Name 12 string 255 <null> 0 10 0 <null> <null> <null> <null> 255 3 YES <null> <null> <null> !
<null> NO
@@ -971,7 +972,7 @@
QT_Ora9DS XQT xqtFullData BigIntegerValue 2 biginteger 19 <null> 0 10 1 <null> <null> <null> <null> 28 15 NO <null> <null> <null> !
<null> NO
QT_Ora9DS XQT xqtFullData BigDecimalValue 2 bigdecimal 20 <null> 0 10 1 <null> <null> <null> <null> 126 16 NO <null> <null> <null> !
<null> NO
QT_Ora9DS XQT xqtFullData ObjectValue 2000 object 2048 <null> 0 10 1 <null> <null> <null> <null> 2048 17 NO <null> <null> <null> !
<null> NO
-Row Count : 971
+Row Count : 972
getColumnName getColumnType getCatalogName getColumnClassName getColumnLabel getColumnTypeName getSchemaName getTableName getColumnDisplaySize getPrecision getScale isAutoIncrement isCaseSensitive isCurrency isDefinitelyWritable isNullable isReadOnly isSearchable isSigned isWritable
TABLE_CAT 12 QT_Ora9DS java.lang.String TABLE_CAT string SYS Columns 255 255 0 false false false false 0 true true false false
TABLE_SCHEM 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 2010-06-14 14:44:05 UTC (rev 2227)
+++ trunk/test-integration/common/src/test/resources/TestMMDatabaseMetaData/testGetProcedureColumns.expected 2010-06-14 15:40:48 UTC (rev 2228)
@@ -63,7 +63,7 @@
SCALE 5 QT_Ora9DS java.lang.Short SCALE short <null> <null> 6 5 0 false false false true 1 false true true true
RADIX 4 QT_Ora9DS java.lang.Integer RADIX integer SYS ProcedureParams 11 10 0 false false false false 0 true true false false
NULLABLE 4 QT_Ora9DS java.lang.Integer NULLABLE integer <null> <null> 11 10 0 false false false true 1 false true true true
-REMARKS 12 QT_Ora9DS java.lang.String REMARKS string <null> <null> 4000 4000 0 false false false true 1 false true true true
+REMARKS 12 QT_Ora9DS java.lang.String REMARKS string SYS ProcedureParams 255 255 0 false true false true 1 false true true true
COLUMN_DEF 12 QT_Ora9DS java.lang.String COLUMN_DEF string <null> <null> 4000 4000 0 false false false true 1 false true true true
SQL_DATA_TYPE 12 QT_Ora9DS java.lang.String SQL_DATA_TYPE string <null> <null> 4000 4000 0 false false false true 1 false true true true
SQL_DATETIME_SUB 12 QT_Ora9DS java.lang.String SQL_DATETIME_SUB string <null> <null> 4000 4000 0 false false false true 1 false true true true
@@ -87,7 +87,7 @@
SCALE 5 QT_Ora9DS java.lang.Short SCALE short <null> <null> 6 5 0 false false false true 1 false true true true
RADIX 4 QT_Ora9DS java.lang.Integer RADIX integer SYS ProcedureParams 11 10 0 false false false false 0 true true false false
NULLABLE 4 QT_Ora9DS java.lang.Integer NULLABLE integer <null> <null> 11 10 0 false false false true 1 false true true true
-REMARKS 12 QT_Ora9DS java.lang.String REMARKS string <null> <null> 4000 4000 0 false false false true 1 false true true true
+REMARKS 12 QT_Ora9DS java.lang.String REMARKS string SYS ProcedureParams 255 255 0 false true false true 1 false true true true
COLUMN_DEF 12 QT_Ora9DS java.lang.String COLUMN_DEF string <null> <null> 4000 4000 0 false false false true 1 false true true true
SQL_DATA_TYPE 12 QT_Ora9DS java.lang.String SQL_DATA_TYPE string <null> <null> 4000 4000 0 false false false true 1 false true true true
SQL_DATETIME_SUB 12 QT_Ora9DS java.lang.String SQL_DATETIME_SUB string <null> <null> 4000 4000 0 false false false true 1 false true true true
@@ -111,7 +111,7 @@
SCALE 5 QT_Ora9DS java.lang.Short SCALE short <null> <null> 6 5 0 false false false true 1 false true true true
RADIX 4 QT_Ora9DS java.lang.Integer RADIX integer SYS ProcedureParams 11 10 0 false false false false 0 true true false false
NULLABLE 4 QT_Ora9DS java.lang.Integer NULLABLE integer <null> <null> 11 10 0 false false false true 1 false true true true
-REMARKS 12 QT_Ora9DS java.lang.String REMARKS string <null> <null> 4000 4000 0 false false false true 1 false true true true
+REMARKS 12 QT_Ora9DS java.lang.String REMARKS string SYS ProcedureParams 255 255 0 false true false true 1 false true true true
COLUMN_DEF 12 QT_Ora9DS java.lang.String COLUMN_DEF string <null> <null> 4000 4000 0 false false false true 1 false true true true
SQL_DATA_TYPE 12 QT_Ora9DS java.lang.String SQL_DATA_TYPE string <null> <null> 4000 4000 0 false false false true 1 false true true true
SQL_DATETIME_SUB 12 QT_Ora9DS java.lang.String SQL_DATETIME_SUB string <null> <null> 4000 4000 0 false false false true 1 false true true true
Modified: trunk/test-integration/common/src/test/resources/TestPartsDatabaseMetadata/testColumns.expected
===================================================================
--- trunk/test-integration/common/src/test/resources/TestPartsDatabaseMetadata/testColumns.expected 2010-06-14 14:44:05 UTC (rev 2227)
+++ trunk/test-integration/common/src/test/resources/TestPartsDatabaseMetadata/testColumns.expected 2010-06-14 15:40:48 UTC (rev 2228)
@@ -96,6 +96,7 @@
PartsSupplier SYS ProcedureParams Radix 4 integer 10 <null> 0 10 0 <null> <null> <null> <null> 10 12 YES <null> <null> <null> !
<null> NO
PartsSupplier SYS ProcedureParams NullType 12 string 10 <null> 0 10 0 <null> <null> <null> <null> 10 13 YES <null> <null> <null> !
<null> NO
PartsSupplier SYS ProcedureParams UID 12 string 50 <null> 0 10 1 <null> <null> <null> <null> 50 14 NO <null> <null> <null> !
<null> NO
+PartsSupplier SYS ProcedureParams Description 12 string 255 <null> 0 10 1 <null> <null> <null> <null> 255 15 NO <null> <null> <null> !
<null> NO
PartsSupplier SYS Procedures VDBName 12 string 255 <null> 0 10 0 <null> <null> <null> <null> 255 1 YES <null> <null> <null> !
<null> NO
PartsSupplier SYS Procedures SchemaName 12 string 255 <null> 0 10 1 <null> <null> <null> <null> 255 2 NO <null> <null> <null> !
<null> NO
PartsSupplier SYS Procedures Name 12 string 255 <null> 0 10 0 <null> <null> <null> <null> 255 3 YES <null> <null> <null> !
<null> NO
@@ -140,7 +141,7 @@
PartsSupplier SYS Tables IsMaterialized -7 boolean 1 <null> 0 10 0 <null> <null> <null> <null> 0 12 YES <null> <null> <null> !
<null> NO
PartsSupplier SYS VirtualDatabases Name 12 string 255 <null> 0 10 0 <null> <null> <null> <null> 255 1 YES <null> <null> <null> !
<null> NO
PartsSupplier SYS VirtualDatabases Version 12 string 50 <null> 0 10 0 <null> <null> <null> <null> 50 2 YES <null> <null> <null> !
<null> NO
-Row Count : 140
+Row Count : 141
getColumnName getColumnType getCatalogName getColumnClassName getColumnLabel getColumnTypeName getSchemaName getTableName getColumnDisplaySize getPrecision getScale isAutoIncrement isCaseSensitive isCurrency isDefinitelyWritable isNullable isReadOnly isSearchable isSigned isWritable
TABLE_CAT 12 PartsSupplier java.lang.String TABLE_CAT string SYS Columns 255 255 0 false false false false 0 true true false false
TABLE_SCHEM 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 2010-06-14 14:44:05 UTC (rev 2227)
+++ trunk/test-integration/common/src/test/resources/TestPartsDatabaseMetadata/testProcedureColumns.expected 2010-06-14 15:40:48 UTC (rev 2228)
@@ -22,7 +22,7 @@
SCALE 5 PartsSupplier java.lang.Short SCALE short <null> <null> 6 5 0 false false false true 1 false true true true
RADIX 4 PartsSupplier java.lang.Integer RADIX integer SYS ProcedureParams 11 10 0 false false false false 0 true true false false
NULLABLE 4 PartsSupplier java.lang.Integer NULLABLE integer <null> <null> 11 10 0 false false false true 1 false true true true
-REMARKS 12 PartsSupplier java.lang.String REMARKS string <null> <null> 4000 4000 0 false false false true 1 false true true true
+REMARKS 12 PartsSupplier java.lang.String REMARKS string SYS ProcedureParams 255 255 0 false true false true 1 false true true true
COLUMN_DEF 12 PartsSupplier java.lang.String COLUMN_DEF string <null> <null> 4000 4000 0 false false false true 1 false true true true
SQL_DATA_TYPE 12 PartsSupplier java.lang.String SQL_DATA_TYPE string <null> <null> 4000 4000 0 false false false true 1 false true true true
SQL_DATETIME_SUB 12 PartsSupplier java.lang.String SQL_DATETIME_SUB string <null> <null> 4000 4000 0 false false false true 1 false true true true
Added: trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testColumns.expected
===================================================================
--- trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testColumns.expected (rev 0)
+++ trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testColumns.expected 2010-06-14 15:40:48 UTC (rev 2228)
@@ -0,0 +1,173 @@
+string string string string integer string string integer integer boolean boolean boolean boolean boolean boolean boolean string string string string string string string integer integer integer string !
string
+VDBName SchemaName TableName Name Position NameInSource DataType Scale Length IsLengthFixed SupportsSelect SupportsUpdates IsCaseSensitive IsSigned IsCurrency IsAutoIncremented NullType MinRange MaxRange SearchType Format DefaultValue JavaClass Precision CharOctetLength Radix UID !
Description
+PartsSupplier SYS DataTypes BaseType 17 <null> string 0 64 true true false true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 64 64 10 mmuuid:03beb57c-968b-4821-a6ae-cb1154cfadee !
<null>
+PartsSupplier SYS Tables Cardinality 9 <null> integer 0 10 false true false true true false false No Nulls <null> <null> All Except Like <null> <null> java.lang.Integer 10 10 10 mmuuid:24cdad3a-e8f7-4376-bb32-79f8bc8eeed2 !
<null>
+PartsSupplier SYS Columns CharOctetLength 25 <null> integer 0 10 true true false false false false false Nullable <null> <null> Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:de5def94-2804-4c91-91ed-26d630ce8afe !
<null>
+PartsSupplier SYS ReferenceKeyColumns DEFERRABILITY 14 <null> integer 0 10 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:88380f55-2cbd-4325-b9a3-9dcaa88a690e !
<null>
+PartsSupplier SYS ReferenceKeyColumns DELETE_RULE 11 <null> integer 0 10 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:9207f4df-a5ce-43bd-b3b2-fee57e459849 !
<null>
+PartsSupplier SYS Columns DataType 7 <null> string 0 100 true true false true true false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 100 100 10 mmuuid:9a8dc0d5-e65c-4032-a066-187f8d2e73ea !
<null>
+PartsSupplier SYS ProcedureParams DataType 5 <null> string 0 25 true true false true true false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 25 25 10 mmuuid:207a09af-65b8-405f-b1cb-537bc8632fa4 !
<null>
+PartsSupplier SYS Columns DefaultValue 22 <null> string 0 255 true true false false false false false Nullable <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:7e853988-356b-4c7c-83d4-a9f015bff279 !
<null>
+PartsSupplier SYS Columns Description 28 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:74d73b53-b723-419e-9fea-de56408409ee !
<null>
+PartsSupplier SYS DataTypes Description 18 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:b7d95ef6-63a3-441c-8de5-c98e2e577ea3 !
<null>
+PartsSupplier SYS Keys Description 5 <null> string 0 255 true true false false false false false Nullable <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:175e21b2-24c3-4677-a253-6d7cdb513a9a !
<null>
+PartsSupplier SYS ProcedureParams Description 15 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 0 255 10 mmuuid:05ac4703-5c2c-4410-93b7-19b39d90c803 !
<null>
+PartsSupplier SYS Procedures Description 7 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 225 255 10 mmuuid:fa0b5db7-acb1-4975-8410-d5d27df46040 !
<null>
+PartsSupplier SYS Schemas Description 5 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:1cb99300-a527-4a26-b4e6-08ebd92a781d !
<null>
+PartsSupplier SYS Tables Description 10 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:51605e41-5cb0-40ca-8c4a-4eca52780afc !
<null>
+PartsSupplier SYS ReferenceKeyColumns FKCOLUMN_NAME 8 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:f4b2b32c-e411-45e6-a236-fec4718f0874 !
<null>
+PartsSupplier SYS ReferenceKeyColumns FKTABLE_CAT 5 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 1 255 10 mmuuid:a0095da3-1258-44dc-bab9-33eacf886a28 !
<null>
+PartsSupplier SYS ReferenceKeyColumns FKTABLE_NAME 7 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:53284aaa-4c07-4930-8a0e-5e2aaa2da5cb !
<null>
+PartsSupplier SYS ReferenceKeyColumns FKTABLE_SCHEM 6 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:93a35adf-b6b1-4d9c-bdef-d336a84f478e !
<null>
+PartsSupplier SYS ReferenceKeyColumns FK_NAME 12 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:a9ca7516-6898-419d-b1ad-7d174d946d07 !
<null>
+PartsSupplier SYS Columns Format 21 <null> string 0 255 true true false false false false false Nullable <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:172b133e-5bf1-4020-953c-de4446b1e64a !
<null>
+PartsSupplier SYS Columns IsAutoIncremented 16 <null> boolean 0 1 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Boolean 1 1 10 mmuuid:0d41e284-f274-4fd1-8576-7696f4b758d0 !
<null>
+PartsSupplier SYS DataTypes IsAutoIncremented 10 <null> boolean 0 1 true true false true true false false No Nulls <null> <null> Searchable <null> ('0') java.lang.Boolean 1 1 10 mmuuid:2a1568e2-776a-474b-981f-040a6ad63361 !
<null>
+PartsSupplier SYS Columns IsCaseSensitive 13 <null> boolean 0 1 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Boolean 1 1 10 mmuuid:21ee166a-b462-41a1-b88d-dc79f63d6e17 !
<null>
+PartsSupplier SYS DataTypes IsCaseSensitive 11 <null> boolean 0 1 true true false true false false false No Nulls <null> <null> Searchable <null> ('0') java.lang.Boolean 1 1 10 mmuuid:1468aaf2-6481-4d10-9554-44d0363fe571 !
<null>
+PartsSupplier SYS Columns IsCurrency 15 <null> boolean 0 1 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Boolean 1 1 10 mmuuid:b28a2963-36e0-4b4a-a8f8-a2c06f2b440a !
<null>
+PartsSupplier SYS Keys IsIndexed 8 <null> boolean 0 1 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Boolean 1 1 10 mmuuid:ea96cb7c-2dcf-453c-b83a-1aaa921d8f92 !
<null>
+PartsSupplier SYS Columns IsLengthFixed 10 <null> boolean 0 1 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Boolean 1 1 10 mmuuid:571aa4ce-3254-4a2b-aa48-1cb23a0c47ed !
<null>
+PartsSupplier SYS Tables IsMaterialized 12 <null> boolean 0 0 false true true false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Boolean 0 0 10 mmuuid:89265cba-ab85-48c2-960a-a5a9594ba6d0 !
<null>
+PartsSupplier SYS DataTypes IsPhysical 3 <null> boolean 0 1 true true false true true false false Nullable <null> <null> Searchable <null> <null> java.lang.Boolean 1 1 10 mmuuid:983714a2-bd0b-4fad-b4e8-dfb7832e9c4b !
<null>
+PartsSupplier SYS Schemas IsPhysical 3 <null> boolean 0 1 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Boolean 1 1 10 mmuuid:bab257d7-cced-4605-9b40-8ca6c078aca7 !
<null>
+PartsSupplier SYS Tables IsPhysical 6 <null> boolean 0 1 true true false true false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Boolean 1 1 10 mmuuid:e27712f6-a0a6-452e-848d-9de77691e939 !
<null>
+PartsSupplier SYS Columns IsSigned 14 <null> boolean 0 1 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Boolean 1 1 10 mmuuid:36be2afa-8ebc-4af8-acc5-a887cf2b5a86 !
<null>
+PartsSupplier SYS DataTypes IsSigned 9 <null> boolean 0 1 true true false true false false false No Nulls <null> <null> Searchable <null> ('0') java.lang.Boolean 1 1 10 mmuuid:235cea48-b2b9-41d5-b296-8ab9c649b6e7 !
<null>
+PartsSupplier SYS DataTypes IsStandard 2 <null> boolean 0 1 true true false true true false false Nullable <null> <null> Searchable <null> <null> java.lang.Boolean 1 1 10 mmuuid:02f27c5d-af55-4677-b91b-8690793671b2 !
<null>
+PartsSupplier SYS Tables IsSystem 11 <null> boolean 0 1 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.Boolean 1 1 10 mmuuid:9fa7987c-7dc8-4102-9cc0-5658d5b46382 !
<null>
+PartsSupplier SYS Columns JavaClass 23 <null> string 0 500 true true false true false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 500 500 10 mmuuid:6b8d5df5-7bd2-425c-8b2b-e427e026ef66 !
<null>
+PartsSupplier SYS DataTypes JavaClass 5 <null> string 0 500 true true false true false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 500 500 10 mmuuid:4c68ef90-8042-44ab-896a-bb3890a8fe04 !
<null>
+PartsSupplier SYS ReferenceKeyColumns KEY_SEQ 9 <null> short 0 5 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.Short 5 5 10 mmuuid:4884ac83-84ed-4b67-9f1a-bd79c0199269 !
<null>
+PartsSupplier SYS KeyColumns KeyName 5 <null> string 0 255 true true false false false false false Nullable <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:da4bef58-83f4-4b88-8bb0-2dc8990be539 !
<null>
+PartsSupplier SYS KeyColumns KeyType 6 <null> string 0 20 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 20 20 10 mmuuid:df9e15e6-ab77-486d-bfe0-0adc378aa99d !
<null>
+PartsSupplier SYS Columns Length 9 <null> integer 0 10 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:b36ea0f6-cbff-4049-bc9c-8ec9928be048 !
<null>
+PartsSupplier SYS Columns MaxRange 19 <null> string 0 50 true true false false false false false Nullable <null> <null> Searchable <null> <null> java.lang.String 50 50 10 mmuuid:0b0df4a5-7de5-4315-94f7-22c84958302e !
<null>
+PartsSupplier SYS Columns MinRange 18 <null> string 0 50 true true false false false false false Nullable <null> <null> Searchable <null> <null> java.lang.String 50 50 10 mmuuid:dba0f97d-fab5-45f6-a1eb-3459ab3fcc74 !
<null>
+PartsSupplier SYS Columns Name 4 <null> string 0 255 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:d1f44a6d-3e39-4251-b873-1280c2b035b3 !
<null>
+PartsSupplier SYS DataTypes Name 1 <null> string 0 100 true true false true true false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 100 100 10 mmuuid:17f7de33-e6f0-4b9c-b55e-a87f6b7bb9b3 !
<null>
+PartsSupplier SYS KeyColumns Name 4 <null> string 0 255 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:08bda0c7-5f66-4fed-8285-d74b63eeb0e2 !
<null>
+PartsSupplier SYS Keys Name 4 <null> string 0 255 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:149de302-2107-45ca-839d-fc0dd1e7d7f4 !
<null>
+PartsSupplier SYS ProcedureParams Name 4 <null> string 0 255 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:2bf20c6f-5a95-436d-8f30-a24d164e77a4 !
<null>
+PartsSupplier SYS Procedures Name 3 <null> string 0 255 true true false true false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:bd17e98a-c40a-43b1-93ac-88d62937c051 !
<null>
+PartsSupplier SYS Properties Name 1 <null> string 0 255 true true false true true false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:ba007c56-04b6-4981-ab89-3fdd33ff0de8 !
<null>
+PartsSupplier SYS Schemas Name 2 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 0 255 10 mmuuid:654112f8-bb4c-4453-9e4d-f3a96fba61ec !
<null>
+PartsSupplier SYS Tables Name 3 <null> string 0 255 true true false true false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:ef487cc2-1214-439c-af6e-da431df00d2c !
<null>
+PartsSupplier SYS VirtualDatabases Name 1 <null> string 0 255 true true false true false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:42fa1249-8b24-4aae-a252-0a347db6ec30 !
<null>
+PartsSupplier SYS Columns NameInSource 6 <null> string 0 255 true true false false false false false Nullable <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:fac72c6e-41dc-4a1b-8af3-f0796690d9cc !
<null>
+PartsSupplier SYS Keys NameInSource 6 <null> string 0 255 true true false false false false false Nullable <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:a52a6169-99e0-4b7e-9dc6-3a93ffa6094a !
<null>
+PartsSupplier SYS Procedures NameInSource 4 <null> string 0 255 true true false false false false false Nullable <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:a4e7a0fd-c340-49a9-9ac0-8328caaffda8 !
<null>
+PartsSupplier SYS Tables NameInSource 5 <null> string 0 255 true true false true false false false Nullable <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:1f036fb0-b841-450c-8462-986cdd57e921 !
<null>
+PartsSupplier SYS Columns NullType 17 <null> string 0 20 true true false true false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 20 20 10 mmuuid:4d83bdbb-a7ce-44cc-a201-021a517d3c1a !
<null>
+PartsSupplier SYS DataTypes NullType 8 <null> string 0 20 true true false true false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 20 20 10 mmuuid:278b0534-1164-495e-a8c6-de45e0ff53a4 !
<null>
+PartsSupplier SYS ProcedureParams NullType 13 <null> string 0 10 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 10 10 10 mmuuid:d887c203-6bf5-462b-b2f0-f5302e2f4bcd !
<null>
+PartsSupplier SYS ProcedureParams Optional 8 <null> boolean 0 1 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Boolean 1 1 10 mmuuid:4033f891-5ef5-4a75-8a50-bd1d021e43ad !
<null>
+PartsSupplier PartsSupplier PARTSSUPPLIER.PARTS PART_COLOR 3 PART_COLOR string 0 30 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 0 30 10 mmuuid:015c0d00-73ff-1edc-a81c-ecf397b10590 !
<null>
+PartsSupplier PartsSupplier PARTSSUPPLIER.PARTS PART_ID 1 PART_ID string 0 4 true true true true true false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 0 4 10 mmuuid:fadcd7c0-73fe-1edc-a81c-ecf397b10590 !
<null>
+PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER_PARTS PART_ID 2 PART_ID string 0 4 true true true true true false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 0 4 10 mmuuid:3fc400c0-73ff-1edc-a81c-ecf397b10590 !
<null>
+PartsSupplier PartsSupplier PARTSSUPPLIER.PARTS PART_NAME 2 PART_NAME string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 0 255 10 mmuuid:0067e900-73ff-1edc-a81c-ecf397b10590 !
<null>
+PartsSupplier PartsSupplier PARTSSUPPLIER.PARTS PART_WEIGHT 4 PART_WEIGHT string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 0 255 10 mmuuid:015c0d01-73ff-1edc-a81c-ecf397b10590 !
<null>
+PartsSupplier SYS ReferenceKeyColumns PKCOLUMN_NAME 4 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:0125a80a-95f9-486f-aa90-debb21cb5f1b !
<null>
+PartsSupplier SYS ReferenceKeyColumns PKTABLE_CAT 1 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 1 255 10 mmuuid:f615a661-2c36-4ab1-b72b-5e13e99e052c !
<null>
+PartsSupplier SYS ReferenceKeyColumns PKTABLE_NAME 3 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:6d420bc2-0f85-4da9-833d-d71b428b0743 !
<null>
+PartsSupplier SYS ReferenceKeyColumns PKTABLE_SCHEM 2 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:ef7b3b79-fb51-42ef-a723-080ed0a6e3bc !
<null>
+PartsSupplier SYS ReferenceKeyColumns PK_NAME 13 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:ac210a6d-4de6-4d71-aa9b-e3d34baca81a !
<null>
+PartsSupplier SYS Columns Position 5 <null> integer 0 10 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:dbc8cd09-1b47-43c5-82ec-aba525b85cc4 !
<null>
+PartsSupplier SYS KeyColumns Position 9 <null> integer 0 10 true true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:92a4849c-ed0e-4f5f-a108-d7d71a5aba25 !
<null>
+PartsSupplier SYS ProcedureParams Position 6 <null> integer 0 10 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:5fdefd17-65f4-4350-9ee0-0ed3c34d10ae !
<null>
+PartsSupplier SYS Columns Precision 24 <null> integer 0 10 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:db3d49e2-fe1d-438b-8d07-847bf58506ab !
<null>
+PartsSupplier SYS DataTypes Precision 12 <null> integer 0 10 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:8673c810-7162-4331-ba0b-6fc3530d2d1c !
<null>
+PartsSupplier SYS ProcedureParams Precision 9 <null> integer 0 10 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:00fe7cad-0a83-42f0-90f2-d6a9584916b2 !
<null>
+PartsSupplier SYS Schemas PrimaryMetamodelURI 6 <null> string 0 255 false true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:eadfaba5-ce44-4529-816f-6af94666baec !
<null>
+PartsSupplier SYS ProcedureParams ProcedureName 3 <null> string 0 255 true true false true false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:8081b3a6-fc79-42fd-b7c9-a19d682a1658 !
<null>
+PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER_PARTS QUANTITY 3 QUANTITY short 0 0 true true true false true false false Nullable <null> <null> All Except Like <null> <null> java.lang.Short 3 0 10 mmuuid:3fc400c1-73ff-1edc-a81c-ecf397b10590 !
<null>
+PartsSupplier SYS Columns Radix 26 <null> integer 0 10 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:43a6124c-972f-4c4c-af05-24080c2a8ad7 !
<null>
+PartsSupplier SYS DataTypes Radix 13 <null> integer 0 10 true true false false false false false Nullable <null> <null> Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:967ab8fd-3226-4a78-8cf2-2eb7fbf2981a !
<null>
+PartsSupplier SYS ProcedureParams Radix 12 <null> integer 0 10 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:8df37c99-3b12-4789-8128-4aa496f895c4 !
<null>
+PartsSupplier SYS KeyColumns RefKeyUID 7 <null> string 0 50 true true false false false false false Nullable <null> <null> Searchable <null> <null> java.lang.String 50 50 10 mmuuid:aafbdf50-25aa-427b-b322-7cb36094a1e2 !
<null>
+PartsSupplier SYS Keys RefKeyUID 9 <null> string 0 50 true true false false false false false Nullable <null> <null> Searchable <null> <null> java.lang.String 50 50 10 mmuuid:1cf4c5ad-5932-47ec-8593-385b75bfeba8 !
<null>
+PartsSupplier SYS Procedures ReturnsResults 5 <null> boolean 0 1 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Boolean 1 1 10 mmuuid:b01164c8-dd10-410d-a91b-fcb2fc0450ce !
<null>
+PartsSupplier SYS DataTypes RuntimeType 16 <null> string 0 64 true true false true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 64 64 10 mmuuid:3c7bc9d0-b73f-49a0-b9ab-dc97a4d2a124 !
<null>
+PartsSupplier PartsSupplier PARTSSUPPLIER.SHIP_VIA SHIPPER_ID 1 SHIPPER_ID short 0 0 true true true false true false false No Nulls <null> <null> All Except Like <null> <null> java.lang.Short 2 0 10 mmuuid:121bc540-73ff-1edc-a81c-ecf397b10590 !
<null>
+PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER_PARTS SHIPPER_ID 4 SHIPPER_ID short 0 0 true true true false true false false Nullable <null> <null> All Except Like <null> <null> java.lang.Short 2 0 10 mmuuid:3fc400c2-73ff-1edc-a81c-ecf397b10590 !
<null>
+PartsSupplier PartsSupplier PARTSSUPPLIER.SHIP_VIA SHIPPER_NAME 2 SHIPPER_NAME string 0 30 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 0 30 10 mmuuid:130fe940-73ff-1edc-a81c-ecf397b10590 !
<null>
+PartsSupplier PartsSupplier PARTSSUPPLIER.STATUS STATUS_ID 1 STATUS_ID short 0 0 true true true false true false false No Nulls <null> <null> All Except Like <null> <null> java.lang.Short 2 0 10 mmuuid:201d9600-73ff-1edc-a81c-ecf397b10590 !
<null>
+PartsSupplier PartsSupplier PARTSSUPPLIER.STATUS STATUS_NAME 2 STATUS_NAME string 0 30 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 0 30 10 mmuuid:201d9601-73ff-1edc-a81c-ecf397b10590 !
<null>
+PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER SUPPLIER_CITY 4 SUPPLIER_CITY string 0 30 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 0 30 10 mmuuid:2fe92a40-73ff-1edc-a81c-ecf397b10590 !
<null>
+PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER_PARTS SUPPLIER_ID 1 SUPPLIER_ID string 0 10 false true true true true false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 0 10 10 mmuuid:3ecfdcc0-73ff-1edc-a81c-ecf397b10590 !
<null>
+PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER SUPPLIER_ID 1 SUPPLIER_ID string 0 10 false true true true true false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 0 10 10 mmuuid:2f044880-73ff-1edc-a81c-ecf397b10590 !
<null>
+PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER SUPPLIER_NAME 2 SUPPLIER_NAME string 0 30 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 0 30 10 mmuuid:2f044881-73ff-1edc-a81c-ecf397b10590 !
<null>
+PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER SUPPLIER_STATE 5 SUPPLIER_STATE string 0 2 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 0 2 10 mmuuid:2fe92a41-73ff-1edc-a81c-ecf397b10590 !
<null>
+PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER SUPPLIER_STATUS 3 SUPPLIER_STATUS short 0 0 true true true false true false false Nullable <null> <null> All Except Like <null> <null> java.lang.Short 2 0 10 mmuuid:2f044882-73ff-1edc-a81c-ecf397b10590 !
<null>
+PartsSupplier SYS Columns Scale 8 <null> integer 0 10 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:cc6c6113-8d70-40c8-84c0-94e17c14e22e !
<null>
+PartsSupplier SYS DataTypes Scale 6 <null> integer 0 10 true true false false false false false Nullable <null> <null> Searchable <null> (0) java.lang.Integer 10 10 10 mmuuid:e8655204-e97a-45cd-909b-1e37731e9546 !
<null>
+PartsSupplier SYS ProcedureParams Scale 11 <null> integer 0 10 true true true false false false false No Nulls <null> <null> Searchable <null> (0) java.lang.Integer 10 10 10 mmuuid:360c8b1d-4b3d-42fd-952c-bf5763cad69e !
<null>
+PartsSupplier SYS Columns SchemaName 2 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 0 255 10 mmuuid:859288c9-cd78-4407-90fc-61b5d310e2ab !
<null>
+PartsSupplier SYS KeyColumns SchemaName 2 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 0 255 10 mmuuid:787be966-cf12-4956-907f-a8e6dc1009dc !
<null>
+PartsSupplier SYS Keys SchemaName 2 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 0 255 10 mmuuid:4a7fc059-208e-4f98-b6ef-cb7c6102a327 !
<null>
+PartsSupplier SYS ProcedureParams SchemaName 2 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 0 255 10 mmuuid:88497911-619c-4ca8-b482-8885d940706a !
<null>
+PartsSupplier SYS Procedures SchemaName 2 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 0 255 10 mmuuid:53a84865-334e-4750-b343-de2411d56e3e !
<null>
+PartsSupplier SYS Tables SchemaName 2 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 0 255 10 mmuuid:95bd960c-fd84-44c9-9831-692376f69b46 !
<null>
+PartsSupplier SYS Columns SearchType 20 <null> string 0 20 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 20 20 10 mmuuid:3037138a-bb20-4485-ba01-75bc20b1a532 !
<null>
+PartsSupplier SYS DataTypes SearchType 14 <null> string 0 20 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 20 20 10 mmuuid:d8494fa3-40e4-44cd-b0d8-da5c83685a75 !
<null>
+PartsSupplier SYS Columns SupportsSelect 11 <null> boolean 0 1 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Boolean 1 1 10 mmuuid:c2a50f93-0040-41ec-ad7b-e8511296555f !
<null>
+PartsSupplier SYS Columns SupportsUpdates 12 <null> boolean 0 1 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Boolean 1 1 10 mmuuid:fab660d1-36bf-4a5b-bbe6-9a543e0ebd76 !
<null>
+PartsSupplier SYS Tables SupportsUpdates 7 <null> boolean 0 1 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Boolean 1 1 10 mmuuid:5144d230-2b0e-4255-b321-65b9f6f6f76c !
<null>
+PartsSupplier SYS Columns TableName 3 <null> string 0 255 true true false true false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:2c09c9d1-2f25-45de-81cf-eeb2a5157d34 !
<null>
+PartsSupplier SYS KeyColumns TableName 3 <null> string 0 2048 true true false true false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 2048 2048 10 mmuuid:c24fad72-0c0d-4260-96ae-f188ad77b137 !
<null>
+PartsSupplier SYS Keys TableName 3 <null> string 0 2048 true true false true false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 2048 2048 10 mmuuid:7d9540bd-b51f-4206-8c33-b39c5ba8bb8b !
<null>
+PartsSupplier SYS Keys Type 7 <null> string 0 20 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 20 20 10 mmuuid:29e73c18-afec-43a9-81ab-7378d6daf20b !
<null>
+PartsSupplier SYS ProcedureParams Type 7 <null> string 0 100 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 100 100 10 mmuuid:76a1981b-1226-4a55-9acf-82a061cc8642 !
<null>
+PartsSupplier SYS Tables Type 4 <null> string 0 20 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 20 20 10 mmuuid:4814a0af-4e8f-4f55-9b25-3148d90d3d9b !
<null>
+PartsSupplier SYS DataTypes TypeLength 7 <null> integer 0 10 true true false false false false false No Nulls <null> <null> Searchable <null> (0) java.lang.Integer 10 10 10 mmuuid:0668382a-f9c3-4507-8b0f-df65a2ebbf2f !
<null>
+PartsSupplier SYS ProcedureParams TypeLength 10 <null> integer 0 10 true true false false false false false No Nulls <null> <null> Searchable <null> (0) java.lang.Integer 10 10 10 mmuuid:791d7a29-8fc5-4735-9144-1accc114b58e !
<null>
+PartsSupplier SYS DataTypes TypeName 4 <null> string 0 100 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 100 100 10 mmuuid:48081cdd-9e90-4440-a956-4a32af96d7f4 !
<null>
+PartsSupplier SYS Columns UID 27 <null> string 0 50 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 50 50 10 mmuuid:5f491c75-769b-4908-9f68-2a9a486607bb !
<null>
+PartsSupplier SYS DataTypes UID 15 <null> string 0 50 true true false false true false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 50 50 10 mmuuid:dd57f577-ffc4-4b55-8f7f-355b9ea3ce37 !
<null>
+PartsSupplier SYS KeyColumns UID 8 <null> string 0 50 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 50 50 10 mmuuid:0d994a45-4f52-4b79-9b31-7ef22331fee2 !
<null>
+PartsSupplier SYS Keys UID 10 <null> string 0 50 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 50 50 10 mmuuid:782218d1-5337-48c6-9070-0aafd4c6cd20 !
<null>
+PartsSupplier SYS ProcedureParams UID 14 <null> string 0 50 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 0 50 10 mmuuid:a278de2e-89f1-4281-9e63-54aebb6062ce !
<null>
+PartsSupplier SYS Procedures UID 6 <null> string 0 50 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 50 50 10 mmuuid:de9df25a-c886-46e0-ae3a-8eb6792e43f4 !
<null>
+PartsSupplier SYS Properties UID 3 <null> string 0 50 true true false false true false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 50 50 10 mmuuid:b333969a-83e0-4010-9463-9a0088da6c83 !
<null>
+PartsSupplier SYS Schemas UID 4 <null> string 0 50 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 50 50 10 mmuuid:ad232e4d-9c01-4d0c-bc57-0459d9db918a !
<null>
+PartsSupplier SYS Tables UID 8 <null> string 0 50 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 50 50 10 mmuuid:6afe3737-26f9-43a8-88db-86531b5dc66c !
<null>
+PartsSupplier SYS ReferenceKeyColumns UPDATE_RULE 10 <null> integer 0 10 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:30d5ae74-b19e-4186-97e1-aeff5801e44f !
<null>
+PartsSupplier SYS Columns VDBName 1 <null> string 0 255 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:83f19a81-1243-4751-8c99-daddbf37b1d7 !
<null>
+PartsSupplier SYS KeyColumns VDBName 1 <null> string 0 255 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:f062eb9c-4854-47fb-b7bd-a4e23c782b62 !
<null>
+PartsSupplier SYS Keys VDBName 1 <null> string 0 255 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:5785b523-7da3-42c1-8920-66daa1f7fa1d !
<null>
+PartsSupplier SYS ProcedureParams VDBName 1 <null> string 0 255 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:f832f316-2403-43fa-9ccc-c3ab9d38acca !
<null>
+PartsSupplier SYS Procedures VDBName 1 <null> string 0 255 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:1d664747-4a95-4605-8b28-381bed3121f1 !
<null>
+PartsSupplier SYS Schemas VDBName 1 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 0 255 10 mmuuid:73dbf95b-a283-4f0a-81b9-9b98e09c2906 !
<null>
+PartsSupplier SYS Tables VDBName 1 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 0 255 10 mmuuid:58de905f-9d64-4831-a985-da6d082ff709 !
<null>
+PartsSupplier SYS Properties Value 2 <null> string 0 255 true true false true true false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:c917257d-06b7-41dd-a6cb-44c0ff0f897e !
<null>
+PartsSupplier SYS VirtualDatabases Version 2 <null> string 0 50 true true false true false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 50 50 10 mmuuid:c876d749-a512-4810-9910-3034ca524c45 !
<null>
+Row Count : 141
+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
+TableName 12 PartsSupplier java.lang.String TableName string SYS Columns 255 255 0 false true false false 0 true true false false
+Name 12 PartsSupplier java.lang.String Name string SYS Columns 255 255 0 false false false false 0 true true false false
+Position 4 PartsSupplier java.lang.Integer Position integer SYS Columns 11 10 0 false false false false 0 true true false false
+NameInSource 12 PartsSupplier java.lang.String NameInSource string SYS Columns 255 255 0 false false false false 1 true true false false
+DataType 12 PartsSupplier java.lang.String DataType string SYS Columns 100 100 0 false true false false 0 true true true false
+Scale 4 PartsSupplier java.lang.Integer Scale integer SYS Columns 11 10 0 false false false false 0 true true false false
+Length 4 PartsSupplier java.lang.Integer Length integer SYS Columns 11 10 0 false false false false 0 true true false false
+IsLengthFixed -7 PartsSupplier java.lang.Boolean IsLengthFixed boolean SYS Columns 5 1 0 false false false false 0 true true false false
+SupportsSelect -7 PartsSupplier java.lang.Boolean SupportsSelect boolean SYS Columns 5 1 0 false false false false 0 true true false false
+SupportsUpdates -7 PartsSupplier java.lang.Boolean SupportsUpdates boolean SYS Columns 5 1 0 false false false false 0 true true false false
+IsCaseSensitive -7 PartsSupplier java.lang.Boolean IsCaseSensitive boolean SYS Columns 5 1 0 false false false false 0 true true false false
+IsSigned -7 PartsSupplier java.lang.Boolean IsSigned boolean SYS Columns 5 1 0 false false false false 0 true true false false
+IsCurrency -7 PartsSupplier java.lang.Boolean IsCurrency boolean SYS Columns 5 1 0 false false false false 0 true true false false
+IsAutoIncremented -7 PartsSupplier java.lang.Boolean IsAutoIncremented boolean SYS Columns 5 1 0 false false false false 0 true true false false
+NullType 12 PartsSupplier java.lang.String NullType string SYS Columns 20 20 0 false true false false 0 true true false false
+MinRange 12 PartsSupplier java.lang.String MinRange string SYS Columns 50 50 0 false false false false 1 true true false false
+MaxRange 12 PartsSupplier java.lang.String MaxRange string SYS Columns 50 50 0 false false false false 1 true true false false
+SearchType 12 PartsSupplier java.lang.String SearchType string SYS Columns 20 20 0 false false false false 0 true true false false
+Format 12 PartsSupplier java.lang.String Format string SYS Columns 255 255 0 false false false false 1 true true false false
+DefaultValue 12 PartsSupplier java.lang.String DefaultValue string SYS Columns 255 255 0 false false false false 1 true true false false
+JavaClass 12 PartsSupplier java.lang.String JavaClass string SYS Columns 500 500 0 false true false false 0 true true false false
+Precision 4 PartsSupplier java.lang.Integer Precision integer SYS Columns 11 10 0 false false false false 0 true true false false
+CharOctetLength 4 PartsSupplier java.lang.Integer CharOctetLength integer SYS Columns 11 10 0 false false false false 1 true true false false
+Radix 4 PartsSupplier java.lang.Integer Radix integer SYS Columns 11 10 0 false false false false 0 true true false false
+UID 12 PartsSupplier java.lang.String UID string SYS Columns 50 50 0 false false false false 0 true true false false
+Description 12 PartsSupplier java.lang.String Description string SYS Columns 255 255 0 false true false true 1 false true true true
Added: trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testDataTypes.expected
===================================================================
--- trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testDataTypes.expected (rev 0)
+++ trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testDataTypes.expected 2010-06-14 15:40:48 UTC (rev 2228)
@@ -0,0 +1,74 @@
+string boolean boolean string string integer integer string boolean boolean boolean integer integer string string string string string
+Name IsStandard IsPhysical TypeName JavaClass Scale TypeLength NullType IsSigned IsAutoIncremented IsCaseSensitive Precision Radix SearchType UID RuntimeType BaseType Description
+ENTITIES false false ENTITIES java.lang.String 0 0 No Nulls false false false 0 0 Searchable mmuuid:20360100-e742-1e20-8c26-a038c6ed7576 string ENTITY <null>
+ENTITY false false ENTITY java.lang.String 0 0 No Nulls false false false 0 0 Searchable mmuuid:9fece300-e71a-1e20-8c26-a038c6ed7576 string NCName <null>
+ID false false ID java.lang.String 0 0 No Nulls false false false 0 0 Searchable mmuuid:88b13dc0-e702-1e20-8c26-a038c6ed7576 string NCName <null>
+IDREF false false IDREF java.lang.String 0 0 No Nulls false false false 0 0 Searchable mmuuid:dd33ff40-e6df-1e20-8c26-a038c6ed7576 string NCName <null>
+IDREFS false false IDREFS java.lang.String 0 0 No Nulls false false false 0 0 Searchable mmuuid:3c99f780-e72d-1e20-8c26-a038c6ed7576 string IDREF <null>
+NCName false false NCName java.lang.String 0 0 No Nulls false false false 0 0 Searchable mmuuid:ac00e000-e676-1e20-8c26-a038c6ed7576 string Name <null>
+NMTOKEN false false NMTOKEN java.lang.String 0 0 No Nulls false false false 0 0 Searchable mmuuid:4ca2ae00-3a95-1e20-921b-eeee28353879 string token <null>
+NMTOKENS false false NMTOKENS java.lang.String 0 0 No Nulls false false false 0 0 Searchable mmuuid:4b0f8500-e6a6-1e20-8c26-a038c6ed7576 string NMTOKEN <null>
+NOTATION false false NOTATION java.lang.String 0 0 No Nulls false false false 0 0 Searchable mmuuid:3dcaf900-e8dc-1e2a-b433-fb67ea35c07e string anySimpleType <null>
+Name false false Name java.lang.String 0 0 No Nulls false false false 0 0 Searchable mmuuid:e66c4600-e65b-1e20-8c26-a038c6ed7576 string token <null>
+QName false false QName java.lang.String 0 0 No Nulls false false false 0 0 Searchable mmuuid:eeb5d780-e8c3-1e2a-b433-fb67ea35c07e string anySimpleType <null>
+XMLLiteral false false XMLLiteral org.teiid.core.types.XMLType 0 0 No Nulls false false false 0 0 Searchable mmuuid:43f5274e-55e1-1f87-ba1c-eea49143eb32 xml string <null>
+anyURI false false anyURI java.lang.String 0 0 No Nulls false false false 0 0 Searchable mmuuid:6247ec80-e8a4-1e2a-b433-fb67ea35c07e string anySimpleType <null>
+base64Binary false false base64Binary java.lang.String 0 0 No Nulls false false false 0 0 Searchable mmuuid:b4c99380-ebc6-1e2a-9319-8eaa9b2276c7 string anySimpleType <null>
+bigdecimal false false bigdecimal java.math.BigDecimal 0 0 No Nulls false false false 0 0 Searchable mmuuid:f2249740-a078-1e26-9b08-d6079ebe1f0d bigdecimal decimal <null>
+biginteger false false biginteger java.math.BigInteger 0 0 No Nulls false false false 0 0 Searchable mmuuid:822b9a40-a066-1e26-9b08-d6079ebe1f0d biginteger decimal <null>
+blob false false blob org.teiid.core.types.BlobType 0 0 No Nulls false false false 0 0 Searchable mmuuid:5a793100-1836-1ed0-ba0f-f2334f5fbf95 blob base64Binary <null>
+boolean false false boolean java.lang.Boolean 0 0 No Nulls false false false 0 0 Searchable mmuuid:dc476100-c483-1e24-9b01-c8207cd53eb7 boolean anySimpleType <null>
+byte false false byte java.lang.Byte 0 0 No Nulls false false false 0 0 Searchable mmuuid:26dc1cc0-b9c8-1e21-b812-969c8fc8b016 byte short <null>
+char false false char java.lang.Character 0 0 No Nulls false false false 0 0 Searchable mmuuid:62472700-a064-1e26-9b08-d6079ebe1f0d char string <null>
+clob false false clob org.teiid.core.types.ClobType 0 0 No Nulls false false false 0 0 Searchable mmuuid:559646c0-4941-1ece-b22b-f49159d22ad3 clob string <null>
+date false false date java.sql.Date 0 0 No Nulls false false false 0 0 Searchable mmuuid:65dcde00-c4ab-1e24-9b01-c8207cd53eb7 date anySimpleType <null>
+dateTime false false dateTime java.sql.Timestamp 0 0 No Nulls false false false 0 0 Searchable mmuuid:5c69dec0-b3ea-1e2a-9a03-beb8638ffd21 timestamp anySimpleType <null>
+decimal false false decimal java.math.BigDecimal 0 0 No Nulls false false false 0 0 Searchable mmuuid:569dfa00-c456-1e24-9b01-c8207cd53eb7 bigdecimal anySimpleType <null>
+double false false double java.lang.Double 0 0 No Nulls false false false 0 0 Searchable mmuuid:1f18b140-c4a3-1e24-9b01-c8207cd53eb7 double anySimpleType <null>
+duration false false duration java.lang.String 0 0 No Nulls false false false 0 0 Searchable mmuuid:28d98540-b3e7-1e2a-9a03-beb8638ffd21 string anySimpleType <null>
+float false false float java.lang.Float 0 0 No Nulls false false false 0 0 Searchable mmuuid:d86b0d00-c48a-1e24-9b01-c8207cd53eb7 float anySimpleType <null>
+gDay false false gDay java.math.BigInteger 0 0 No Nulls false false false 0 0 Searchable mmuuid:860b7dc0-b3f8-1e2a-9a03-beb8638ffd21 biginteger anySimpleType <null>
+gMonth false false gMonth java.math.BigInteger 0 0 No Nulls false false false 0 0 Searchable mmuuid:187f5580-b3fb-1e2a-9a03-beb8638ffd21 biginteger anySimpleType <null>
+gMonthDay false false gMonthDay java.sql.Timestamp 0 0 No Nulls false false false 0 0 Searchable mmuuid:6e604140-b3f5-1e2a-9a03-beb8638ffd21 timestamp anySimpleType <null>
+gYear false false gYear java.math.BigInteger 0 0 No Nulls false false false 0 0 Searchable mmuuid:b02c7600-b3f2-1e2a-9a03-beb8638ffd21 biginteger anySimpleType <null>
+gYearMonth false false gYearMonth java.sql.Timestamp 0 0 No Nulls false false false 0 0 Searchable mmuuid:17d08040-b3ed-1e2a-9a03-beb8638ffd21 timestamp anySimpleType <null>
+hexBinary false false hexBinary java.lang.String 0 0 No Nulls false false false 0 0 Searchable mmuuid:d9998500-ebba-1e2a-9319-8eaa9b2276c7 string anySimpleType <null>
+int false false int java.lang.Integer 0 0 No Nulls false false false 0 0 Searchable mmuuid:33add3c0-b98d-1e21-b812-969c8fc8b016 integer long <null>
+integer false false integer java.math.BigInteger 0 0 No Nulls false false false 0 0 Searchable mmuuid:45da3500-e78f-1e20-8c26-a038c6ed7576 biginteger decimal <null>
+language false false language java.lang.String 0 0 No Nulls false false false 0 0 Searchable mmuuid:d4d980c0-e623-1e20-8c26-a038c6ed7576 string token <null>
+long false false long java.lang.Long 0 0 No Nulls false false false 0 0 Searchable mmuuid:8cdee840-b900-1e21-b812-969c8fc8b016 long integer <null>
+negativeInteger false false negativeInteger java.math.BigInteger 0 0 No Nulls false false false 0 0 Searchable mmuuid:86d29280-b8d3-1e21-b812-969c8fc8b016 biginteger nonPositiveInteger <null>
+nonNegativeInteger false false nonNegativeInteger java.math.BigInteger 0 0 No Nulls false false false 0 0 Searchable mmuuid:0e081200-b8a4-1e21-b812-969c8fc8b016 biginteger integer <null>
+nonPositiveInteger false false nonPositiveInteger java.math.BigInteger 0 0 No Nulls false false false 0 0 Searchable mmuuid:cbdd6e40-b9d2-1e21-8c26-a038c6ed7576 biginteger integer <null>
+normalizedString false false normalizedString java.lang.String 0 0 No Nulls false false false 0 0 Searchable mmuuid:4df43700-3b13-1e20-921b-eeee28353879 string string <null>
+object false false object java.lang.Object 0 0 No Nulls false false false 0 0 Searchable mmuuid:051a0640-b4e8-1e26-9f33-b76fd9d5fa79 object base64Binary <null>
+positiveInteger false false positiveInteger java.math.BigInteger 0 0 No Nulls false false false 0 0 Searchable mmuuid:1cbbd380-b9ea-1e21-b812-969c8fc8b016 biginteger nonNegativeInteger <null>
+short false false short java.lang.Short 0 0 No Nulls false false false 0 0 Searchable mmuuid:5bbcf140-b9ae-1e21-b812-969c8fc8b016 short int <null>
+string false false string java.lang.String 0 0 No Nulls false false false 0 0 Searchable mmuuid:bf6c34c0-c442-1e24-9b01-c8207cd53eb7 string anySimpleType <null>
+time false false time java.sql.Time 0 0 No Nulls false false false 0 0 Searchable mmuuid:3b892180-c4a7-1e24-9b01-c8207cd53eb7 time anySimpleType <null>
+timestamp false false timestamp java.sql.Timestamp 0 0 No Nulls false false false 0 0 Searchable mmuuid:6d9809c0-a07e-1e26-9b08-d6079ebe1f0d timestamp string <null>
+token false false token java.lang.String 0 0 No Nulls false false false 0 0 Searchable mmuuid:3425cb80-d844-1e20-9027-be6d2c3b8b3a string normalizedString <null>
+unsignedByte false false unsignedByte java.lang.Short 0 0 No Nulls false false false 0 0 Searchable mmuuid:cff745c0-baa2-1e21-b812-969c8fc8b016 short unsignedShort <null>
+unsignedInt false false unsignedInt java.lang.Long 0 0 No Nulls false false false 0 0 Searchable mmuuid:badcbd80-ba63-1e21-b812-969c8fc8b016 long unsignedLong <null>
+unsignedLong false false unsignedLong java.math.BigInteger 0 0 No Nulls false false false 0 0 Searchable mmuuid:54b98780-ba14-1e21-b812-969c8fc8b016 biginteger nonNegativeInteger <null>
+unsignedShort false false unsignedShort java.lang.Integer 0 0 No Nulls false false false 0 0 Searchable mmuuid:327093c0-ba88-1e21-b812-969c8fc8b016 integer unsignedInt <null>
+Row Count : 52
+getColumnName getColumnType getCatalogName getColumnClassName getColumnLabel getColumnTypeName getSchemaName getTableName getColumnDisplaySize getPrecision getScale isAutoIncrement isCaseSensitive isCurrency isDefinitelyWritable isNullable isReadOnly isSearchable isSigned isWritable
+Name 12 PartsSupplier java.lang.String Name string SYS DataTypes 100 100 0 false true false false 0 true true true false
+IsStandard -7 PartsSupplier java.lang.Boolean IsStandard boolean SYS DataTypes 5 1 0 false true false false 1 true true true false
+IsPhysical -7 PartsSupplier java.lang.Boolean IsPhysical boolean SYS DataTypes 5 1 0 false true false false 1 true true true false
+TypeName 12 PartsSupplier java.lang.String TypeName string SYS DataTypes 100 100 0 false false false false 0 true true false false
+JavaClass 12 PartsSupplier java.lang.String JavaClass string SYS DataTypes 500 500 0 false true false false 0 true true false false
+Scale 4 PartsSupplier java.lang.Integer Scale integer SYS DataTypes 11 10 0 false false false false 1 true true false false
+TypeLength 4 PartsSupplier java.lang.Integer TypeLength integer SYS DataTypes 11 10 0 false false false false 0 true true false false
+NullType 12 PartsSupplier java.lang.String NullType string SYS DataTypes 20 20 0 false true false false 0 true true false false
+IsSigned -7 PartsSupplier java.lang.Boolean IsSigned boolean SYS DataTypes 5 1 0 false true false false 0 true true false false
+IsAutoIncremented -7 PartsSupplier java.lang.Boolean IsAutoIncremented boolean SYS DataTypes 5 1 0 false true false false 0 true true true false
+IsCaseSensitive -7 PartsSupplier java.lang.Boolean IsCaseSensitive boolean SYS DataTypes 5 1 0 false true false false 0 true true false false
+Precision 4 PartsSupplier java.lang.Integer Precision integer SYS DataTypes 11 10 0 false false false false 0 true true false false
+Radix 4 PartsSupplier java.lang.Integer Radix integer SYS DataTypes 11 10 0 false false false false 1 true true false false
+SearchType 12 PartsSupplier java.lang.String SearchType string SYS DataTypes 20 20 0 false false false false 0 true true false false
+UID 12 PartsSupplier java.lang.String UID string SYS DataTypes 50 50 0 false false false false 0 true true true false
+RuntimeType 12 PartsSupplier java.lang.String RuntimeType string SYS DataTypes 64 64 0 false true false false 1 true true true false
+BaseType 12 PartsSupplier java.lang.String BaseType string SYS DataTypes 64 64 0 false true false false 1 true true true false
+Description 12 PartsSupplier java.lang.String Description string SYS DataTypes 255 255 0 false true false true 1 false true true true
Added: trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testKeyColumns.expected
===================================================================
--- trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testKeyColumns.expected (rev 0)
+++ trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testKeyColumns.expected 2010-06-14 15:40:48 UTC (rev 2228)
@@ -0,0 +1,22 @@
+string string string string string string string string integer
+VDBName SchemaName TableName Name KeyName KeyType RefKeyUID UID Position
+PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER_PARTS PART_ID FK_SPLIER_PRTS_PRTS Foreign mmuuid:07db4240-73ff-1edc-a81c-ecf397b10590 mmuuid:66ddc4c0-73ff-1edc-a81c-ecf397b10590 1
+PartsSupplier PartsSupplier PARTSSUPPLIER.PARTS PART_ID PK_PARTS Primary <null> mmuuid:07db4240-73ff-1edc-a81c-ecf397b10590 1
+PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER_PARTS PART_ID PK_SUPPLIER_PARTS Primary <null> mmuuid:455e5440-73ff-1edc-a81c-ecf397b10590 2
+PartsSupplier PartsSupplier PARTSSUPPLIER.SHIP_VIA SHIPPER_ID PK_SHIP_VIA Primary <null> mmuuid:18aa3cc0-73ff-1edc-a81c-ecf397b10590 1
+PartsSupplier PartsSupplier PARTSSUPPLIER.STATUS STATUS_ID PK_STATUS Primary <null> mmuuid:25a8a740-73ff-1edc-a81c-ecf397b10590 1
+PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER_PARTS SUPPLIER_ID FK_SPLY_PRTS_SPLY Foreign mmuuid:375c8380-73ff-1edc-a81c-ecf397b10590 mmuuid:66ddc4c1-73ff-1edc-a81c-ecf397b10590 1
+PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER SUPPLIER_ID PK_SUPPLIER Primary <null> mmuuid:375c8380-73ff-1edc-a81c-ecf397b10590 1
+PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER_PARTS SUPPLIER_ID PK_SUPPLIER_PARTS Primary <null> mmuuid:455e5440-73ff-1edc-a81c-ecf397b10590 1
+PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER SUPPLIER_STATUS FK_SPLIER_STATS Foreign mmuuid:25a8a740-73ff-1edc-a81c-ecf397b10590 mmuuid:5ac43c00-73ff-1edc-a81c-ecf397b10590 1
+Row Count : 9
+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 KeyColumns 255 255 0 false false false false 0 true true false false
+SchemaName 12 PartsSupplier java.lang.String SchemaName string SYS KeyColumns 255 255 0 false true false true 1 false true true true
+TableName 12 PartsSupplier java.lang.String TableName string SYS KeyColumns 2048 2048 0 false true false false 0 true true false false
+Name 12 PartsSupplier java.lang.String Name string SYS KeyColumns 255 255 0 false false false false 0 true true false false
+KeyName 12 PartsSupplier java.lang.String KeyName string SYS KeyColumns 255 255 0 false false false false 1 true true false false
+KeyType 12 PartsSupplier java.lang.String KeyType string SYS KeyColumns 20 20 0 false false false false 0 true true false false
+RefKeyUID 12 PartsSupplier java.lang.String RefKeyUID string SYS KeyColumns 50 50 0 false false false false 1 true true false false
+UID 12 PartsSupplier java.lang.String UID string SYS KeyColumns 50 50 0 false false false false 0 true true false false
+Position 4 PartsSupplier java.lang.Integer Position integer SYS KeyColumns 11 10 0 false true false true 1 false true true true
Added: trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testKeys.expected
===================================================================
--- trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testKeys.expected (rev 0)
+++ trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testKeys.expected 2010-06-14 15:40:48 UTC (rev 2228)
@@ -0,0 +1,22 @@
+string string string string string string string boolean string string
+VDBName SchemaName TableName Name Description NameInSource Type IsIndexed RefKeyUID UID
+PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER_PARTS FK_SPLIER_PRTS_PRTS <null> FK_SPLIER_PRTS_PRTS Foreign false mmuuid:07db4240-73ff-1edc-a81c-ecf397b10590 mmuuid:66ddc4c0-73ff-1edc-a81c-ecf397b10590
+PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER FK_SPLIER_STATS <null> FK_SPLIER_STATS Foreign false mmuuid:25a8a740-73ff-1edc-a81c-ecf397b10590 mmuuid:5ac43c00-73ff-1edc-a81c-ecf397b10590
+PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER_PARTS FK_SPLY_PRTS_SPLY <null> FK_SPLY_PRTS_SPLY Foreign false mmuuid:375c8380-73ff-1edc-a81c-ecf397b10590 mmuuid:66ddc4c1-73ff-1edc-a81c-ecf397b10590
+PartsSupplier PartsSupplier PARTSSUPPLIER.PARTS PK_PARTS <null> <null> Primary false <null> mmuuid:07db4240-73ff-1edc-a81c-ecf397b10590
+PartsSupplier PartsSupplier PARTSSUPPLIER.SHIP_VIA PK_SHIP_VIA <null> <null> Primary false <null> mmuuid:18aa3cc0-73ff-1edc-a81c-ecf397b10590
+PartsSupplier PartsSupplier PARTSSUPPLIER.STATUS PK_STATUS <null> <null> Primary false <null> mmuuid:25a8a740-73ff-1edc-a81c-ecf397b10590
+PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER PK_SUPPLIER <null> <null> Primary false <null> mmuuid:375c8380-73ff-1edc-a81c-ecf397b10590
+PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER_PARTS PK_SUPPLIER_PARTS <null> <null> Primary false <null> mmuuid:455e5440-73ff-1edc-a81c-ecf397b10590
+Row Count : 8
+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 Keys 255 255 0 false false false false 0 true true false false
+SchemaName 12 PartsSupplier java.lang.String SchemaName string SYS Keys 255 255 0 false true false true 1 false true true true
+TableName 12 PartsSupplier java.lang.String TableName string SYS Keys 2048 2048 0 false true false false 0 true true false false
+Name 12 PartsSupplier java.lang.String Name string SYS Keys 255 255 0 false false false false 0 true true false false
+Description 12 PartsSupplier java.lang.String Description string SYS Keys 255 255 0 false false false false 1 true true false false
+NameInSource 12 PartsSupplier java.lang.String NameInSource string SYS Keys 255 255 0 false false false false 1 true true false false
+Type 12 PartsSupplier java.lang.String Type string SYS Keys 20 20 0 false false false false 0 true true false false
+IsIndexed -7 PartsSupplier java.lang.Boolean IsIndexed boolean SYS Keys 5 1 0 false false false false 0 true true false false
+RefKeyUID 12 PartsSupplier java.lang.String RefKeyUID string SYS Keys 50 50 0 false false false false 1 true true false false
+UID 12 PartsSupplier java.lang.String UID string SYS Keys 50 50 0 false false false false 0 true true false false
Added: trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testProcedureParams.expected
===================================================================
--- trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testProcedureParams.expected (rev 0)
+++ trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testProcedureParams.expected 2010-06-14 15:40:48 UTC (rev 2228)
@@ -0,0 +1,27 @@
+string string string string string integer string boolean integer integer integer integer string string string
+VDBName SchemaName ProcedureName Name DataType Position Type Optional Precision TypeLength Scale Radix NullType UID Description
+PartsSupplier SYS getVDBResourcePaths ResourcePath string 1 ResultSet false 50 50 0 10 Nullable mmuuid:ebbffdab-ac7e-41ab-974f-62785b3086f9 <null>
+PartsSupplier SYS getBinaryVDBResource VdbResource blob 1 ResultSet false 0 0 0 10 Nullable mmuuid:90d1f79d-bd98-46f4-ae8f-adacc329cf0b <null>
+PartsSupplier SYS getCharacterVDBResource VdbResource clob 1 ResultSet false 0 0 0 10 Nullable mmuuid:111f9fa8-74c9-479a-a184-8db64a1eab3c <null>
+PartsSupplier SYS getXMLSchemas document string 1 In false 0 0 0 10 No Nulls mmuuid:41f00dca-7bc1-4593-b2a7-a7d64936c2d4 <null>
+PartsSupplier SYS getVDBResourcePaths isBinary boolean 2 ResultSet false 1 1 0 10 Nullable mmuuid:e8d087da-9833-4422-a255-f0e0fea2cb61 <null>
+PartsSupplier SYS getBinaryVDBResource resourcePath string 1 In false 50 50 0 10 No Nulls mmuuid:25e5065a-454e-4a87-bf71-b6f71b98319f <null>
+PartsSupplier SYS getCharacterVDBResource resourcePath string 1 In false 50 50 0 10 No Nulls mmuuid:c54e777f-3cd0-45ad-a18b-e4e93532984f <null>
+PartsSupplier SYS getXMLSchemas schema xml 1 ResultSet false 0 0 0 10 Nullable mmuuid:f0cb82f2-111e-4433-ae77-59a27fa93991 <null>
+Row Count : 8
+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
+ProcedureName 12 PartsSupplier java.lang.String ProcedureName string SYS ProcedureParams 255 255 0 false true false false 0 true true false false
+Name 12 PartsSupplier java.lang.String Name string SYS ProcedureParams 255 255 0 false false false false 0 true true false false
+DataType 12 PartsSupplier java.lang.String DataType string SYS ProcedureParams 25 25 0 false true false false 0 true true true false
+Position 4 PartsSupplier java.lang.Integer Position integer SYS ProcedureParams 11 10 0 false false false false 0 true true false false
+Type 12 PartsSupplier java.lang.String Type string SYS ProcedureParams 100 100 0 false false false false 0 true true false false
+Optional -7 PartsSupplier java.lang.Boolean Optional boolean SYS ProcedureParams 5 1 0 false false false false 0 true true false false
+Precision 4 PartsSupplier java.lang.Integer Precision integer SYS ProcedureParams 11 10 0 false false false false 0 true true false false
+TypeLength 4 PartsSupplier java.lang.Integer TypeLength integer SYS ProcedureParams 11 10 0 false false false false 0 true true false false
+Scale 4 PartsSupplier java.lang.Integer Scale integer SYS ProcedureParams 11 10 0 false false false true 0 false true false true
+Radix 4 PartsSupplier java.lang.Integer Radix integer SYS ProcedureParams 11 10 0 false false false false 0 true true false false
+NullType 12 PartsSupplier java.lang.String NullType string SYS ProcedureParams 10 10 0 false false false false 0 true true false false
+UID 12 PartsSupplier java.lang.String UID string SYS ProcedureParams 50 50 0 false true false true 1 false true true true
+Description 12 PartsSupplier java.lang.String Description string SYS ProcedureParams 255 255 0 false true false true 1 false true true true
Added: trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testProcedures.expected
===================================================================
--- trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testProcedures.expected (rev 0)
+++ trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testProcedures.expected 2010-06-14 15:40:48 UTC (rev 2228)
@@ -0,0 +1,15 @@
+string string string string boolean string string
+VDBName SchemaName Name NameInSource ReturnsResults UID Description
+PartsSupplier SYS getBinaryVDBResource <null> true mmuuid:9bc0b701-b36e-4209-a986-9d38420d2c20 <null>
+PartsSupplier SYS getCharacterVDBResource <null> true mmuuid:72464082-00fc-44f0-98b9-8c8f637c6570 <null>
+PartsSupplier SYS getVDBResourcePaths <null> true mmuuid:1204d4b2-6f92-428d-bcc5-7b3a0da9a113 <null>
+PartsSupplier SYS getXMLSchemas <null> true mmuuid:2d51a2a4-9966-4bd8-861d-9c0ae8e4b869 <null>
+Row Count : 4
+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
+Name 12 PartsSupplier java.lang.String Name string SYS Procedures 255 255 0 false true false false 0 true true false false
+NameInSource 12 PartsSupplier java.lang.String NameInSource string SYS Procedures 255 255 0 false false false false 1 true true false false
+ReturnsResults -7 PartsSupplier java.lang.Boolean ReturnsResults boolean SYS Procedures 5 1 0 false false false false 0 true true false false
+UID 12 PartsSupplier java.lang.String UID string SYS Procedures 50 50 0 false false false false 0 true true false false
+Description 12 PartsSupplier java.lang.String Description string SYS Procedures 255 255 0 false true false true 1 false true true true
Added: trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testReferenceKeyColumns.expected
===================================================================
--- trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testReferenceKeyColumns.expected (rev 0)
+++ trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testReferenceKeyColumns.expected 2010-06-14 15:40:48 UTC (rev 2228)
@@ -0,0 +1,21 @@
+string string string string string string string string short integer integer string string integer
+PKTABLE_CAT PKTABLE_SCHEM PKTABLE_NAME PKCOLUMN_NAME FKTABLE_CAT FKTABLE_SCHEM FKTABLE_NAME FKCOLUMN_NAME KEY_SEQ UPDATE_RULE DELETE_RULE FK_NAME PK_NAME DEFERRABILITY
+PartsSupplier PartsSupplier PARTSSUPPLIER.PARTS PART_ID PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER_PARTS PART_ID 1 3 3 FK_SPLIER_PRTS_PRTS PK_PARTS 5
+PartsSupplier PartsSupplier PARTSSUPPLIER.STATUS STATUS_ID PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER SUPPLIER_STATUS 1 3 3 FK_SPLIER_STATS PK_STATUS 5
+PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER SUPPLIER_ID PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER_PARTS SUPPLIER_ID 1 3 3 FK_SPLY_PRTS_SPLY PK_SUPPLIER 5
+Row Count : 3
+getColumnName getColumnType getCatalogName getColumnClassName getColumnLabel getColumnTypeName getSchemaName getTableName getColumnDisplaySize getPrecision getScale isAutoIncrement isCaseSensitive isCurrency isDefinitelyWritable isNullable isReadOnly isSearchable isSigned isWritable
+PKTABLE_CAT 12 PartsSupplier java.lang.String PKTABLE_CAT string SYS ReferenceKeyColumns 255 255 0 false true false true 1 false true true true
+PKTABLE_SCHEM 12 PartsSupplier java.lang.String PKTABLE_SCHEM string SYS ReferenceKeyColumns 255 255 0 false true false true 1 false true true true
+PKTABLE_NAME 12 PartsSupplier java.lang.String PKTABLE_NAME string SYS ReferenceKeyColumns 255 255 0 false true false true 1 false true true true
+PKCOLUMN_NAME 12 PartsSupplier java.lang.String PKCOLUMN_NAME string SYS ReferenceKeyColumns 255 255 0 false true false true 1 false true true true
+FKTABLE_CAT 12 PartsSupplier java.lang.String FKTABLE_CAT string SYS ReferenceKeyColumns 255 255 0 false true false true 1 false true true true
+FKTABLE_SCHEM 12 PartsSupplier java.lang.String FKTABLE_SCHEM string SYS ReferenceKeyColumns 255 255 0 false true false true 1 false true true true
+FKTABLE_NAME 12 PartsSupplier java.lang.String FKTABLE_NAME string SYS ReferenceKeyColumns 255 255 0 false true false true 1 false true true true
+FKCOLUMN_NAME 12 PartsSupplier java.lang.String FKCOLUMN_NAME string SYS ReferenceKeyColumns 255 255 0 false true false true 1 false true true true
+KEY_SEQ 5 PartsSupplier java.lang.Short KEY_SEQ short SYS ReferenceKeyColumns 6 5 0 false true false true 1 false true true true
+UPDATE_RULE 4 PartsSupplier java.lang.Integer UPDATE_RULE integer SYS ReferenceKeyColumns 11 10 0 false true false true 1 false true true true
+DELETE_RULE 4 PartsSupplier java.lang.Integer DELETE_RULE integer SYS ReferenceKeyColumns 11 10 0 false true false true 1 false true true true
+FK_NAME 12 PartsSupplier java.lang.String FK_NAME string SYS ReferenceKeyColumns 255 255 0 false true false true 1 false true true true
+PK_NAME 12 PartsSupplier java.lang.String PK_NAME string SYS ReferenceKeyColumns 255 255 0 false true false true 1 false true true true
+DEFERRABILITY 4 PartsSupplier java.lang.Integer DEFERRABILITY integer SYS ReferenceKeyColumns 11 10 0 false true false true 1 false true true true
Added: trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testSchemas.expected
===================================================================
--- trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testSchemas.expected (rev 0)
+++ trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testSchemas.expected 2010-06-14 15:40:48 UTC (rev 2228)
@@ -0,0 +1,12 @@
+string string boolean string string string
+VDBName Name IsPhysical UID Description PrimaryMetamodelURI
+PartsSupplier PartsSupplier true mmuuid:19c7f380-73d8-1edc-a81c-ecf397b10590 <null> http://www.metamatrix.com/metamodels/Relational
+PartsSupplier SYS true mmuuid:49b9c0f9-2c4c-42d3-9409-2d847d29a1de System http://www.metamatrix.com/metamodels/Relational
+Row Count : 2
+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 Schemas 255 255 0 false true false true 1 false true true true
+Name 12 PartsSupplier java.lang.String Name string SYS Schemas 255 255 0 false true false true 1 false true true true
+IsPhysical -7 PartsSupplier java.lang.Boolean IsPhysical boolean SYS Schemas 5 1 0 false false false false 0 true true false false
+UID 12 PartsSupplier java.lang.String UID string SYS Schemas 50 50 0 false false false false 0 true true false false
+Description 12 PartsSupplier java.lang.String Description string SYS Schemas 255 255 0 false true false true 1 false true true true
+PrimaryMetamodelURI 12 PartsSupplier java.lang.String PrimaryMetamodelURI string SYS Schemas 255 255 0 false false false false 0 true true false false
Added: trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testTableIsSystem.expected
===================================================================
--- trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testTableIsSystem.expected (rev 0)
+++ trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testTableIsSystem.expected 2010-06-14 15:40:48 UTC (rev 2228)
@@ -0,0 +1,10 @@
+string
+Name
+PARTSSUPPLIER.PARTS
+PARTSSUPPLIER.SHIP_VIA
+PARTSSUPPLIER.STATUS
+PARTSSUPPLIER.SUPPLIER
+PARTSSUPPLIER.SUPPLIER_PARTS
+Row Count : 5
+getColumnName getColumnType getCatalogName getColumnClassName getColumnLabel getColumnTypeName getSchemaName getTableName getColumnDisplaySize getPrecision getScale isAutoIncrement isCaseSensitive isCurrency isDefinitelyWritable isNullable isReadOnly isSearchable isSigned isWritable
+Name 12 PartsSupplier java.lang.String Name string SYS Tables 255 255 0 false true false false 0 true true false false
Added: trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testTables.expected
===================================================================
--- trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testTables.expected (rev 0)
+++ trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testTables.expected 2010-06-14 15:40:48 UTC (rev 2228)
@@ -0,0 +1,32 @@
+string string string string string boolean boolean string integer string boolean boolean
+VDBName SchemaName Name Type NameInSource IsPhysical SupportsUpdates UID Cardinality Description IsSystem IsMaterialized
+PartsSupplier SYS Columns Table <null> true false mmuuid:1c9a5cb2-17b1-4e4a-8b0e-3a42bd052509 0 <null> true false
+PartsSupplier SYS DataTypes Table <null> true false mmuuid:9a8794f9-66f8-49e8-8576-89d212d0f957 0 <null> true false
+PartsSupplier SYS KeyColumns Table <null> true false mmuuid:14946083-3bd5-42d5-8283-1c0694347c29 0 <null> true false
+PartsSupplier SYS Keys Table <null> true false mmuuid:1e5135dc-ce5d-4b25-a8ff-63f5440b3108 0 <null> true false
+PartsSupplier PartsSupplier PARTSSUPPLIER.PARTS Table PARTS true true mmuuid:f6276601-73fe-1edc-a81c-ecf397b10590 16 <null> false false
+PartsSupplier PartsSupplier PARTSSUPPLIER.SHIP_VIA Table SHIP_VIA true true mmuuid:0f4e9b80-73ff-1edc-a81c-ecf397b10590 4 <null> false false
+PartsSupplier PartsSupplier PARTSSUPPLIER.STATUS Table STATUS true true mmuuid:1f297200-73ff-1edc-a81c-ecf397b10590 3 <null> false false
+PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER Table SUPPLIER true true mmuuid:2c371ec0-73ff-1edc-a81c-ecf397b10590 16 <null> false false
+PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER_PARTS Table SUPPLIER_PARTS true true mmuuid:3deafb00-73ff-1edc-a81c-ecf397b10590 227 <null> false false
+PartsSupplier SYS ProcedureParams Table <null> true false mmuuid:a56bd7fe-c87a-411c-8f5d-661975a25626 0 <null> true false
+PartsSupplier SYS Procedures Table <null> true false mmuuid:0bc132a5-9f8d-4a3c-9f5d-98156a98a962 0 <null> true false
+PartsSupplier SYS Properties Table <null> true false mmuuid:7a45e50a-d03f-4548-ba35-761651bbca85 0 <null> true false
+PartsSupplier SYS ReferenceKeyColumns Table <null> true false mmuuid:6a9653e8-a337-41b2-86fa-77b98f409a29 0 <null> true false
+PartsSupplier SYS Schemas Table <null> true false mmuuid:8648a554-b2ad-4e8e-84ca-2ec618b311a9 0 <null> true false
+PartsSupplier SYS Tables Table <null> true false mmuuid:8551b3bd-11cc-4049-9bcf-fe91a0eb7ba7 0 <null> true false
+PartsSupplier SYS VirtualDatabases Table <null> true false mmuuid:47297c72-d621-4f4e-af4e-74060ac5f489 0 <null> true false
+Row Count : 16
+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 Tables 255 255 0 false true false true 1 false true true true
+SchemaName 12 PartsSupplier java.lang.String SchemaName string SYS Tables 255 255 0 false true false true 1 false true true true
+Name 12 PartsSupplier java.lang.String Name string SYS Tables 255 255 0 false true false false 0 true true false false
+Type 12 PartsSupplier java.lang.String Type string SYS Tables 20 20 0 false false false false 0 true true false false
+NameInSource 12 PartsSupplier java.lang.String NameInSource string SYS Tables 255 255 0 false true false false 1 true true false false
+IsPhysical -7 PartsSupplier java.lang.Boolean IsPhysical boolean SYS Tables 5 1 0 false true false false 0 true true false false
+SupportsUpdates -7 PartsSupplier java.lang.Boolean SupportsUpdates boolean SYS Tables 5 1 0 false false false false 0 true true false false
+UID 12 PartsSupplier java.lang.String UID string SYS Tables 50 50 0 false false false false 0 true true false false
+Cardinality 4 PartsSupplier java.lang.Integer Cardinality integer SYS Tables 11 10 0 false true false false 0 true true true false
+Description 12 PartsSupplier java.lang.String Description string SYS Tables 255 255 0 false true false true 1 false true true true
+IsSystem -7 PartsSupplier java.lang.Boolean IsSystem boolean SYS Tables 5 1 0 false true false true 1 false true true true
+IsMaterialized -7 PartsSupplier java.lang.Boolean IsMaterialized boolean SYS Tables 5 1 0 false false false true 0 false true false true
14 years, 6 months
teiid SVN: r2227 - in trunk/connectors/translator-jdbc/src: test/java/org/teiid/translator/jdbc/modeshape and 1 other directory.
by teiid-commits@lists.jboss.org
Author: shawkins
Date: 2010-06-14 10:44:05 -0400 (Mon, 14 Jun 2010)
New Revision: 2227
Modified:
trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/modeshape/ModeShapeExecutionFactory.java
trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/modeshape/TestModeShapeSqlTranslator.java
Log:
TEIID-1106 fixing misc. issues
Modified: trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/modeshape/ModeShapeExecutionFactory.java
===================================================================
--- trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/modeshape/ModeShapeExecutionFactory.java 2010-06-14 14:28:46 UTC (rev 2226)
+++ trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/modeshape/ModeShapeExecutionFactory.java 2010-06-14 14:44:05 UTC (rev 2227)
@@ -36,16 +36,13 @@
import org.teiid.language.LanguageObject;
import org.teiid.language.Literal;
import org.teiid.language.NamedTable;
-import org.teiid.metadata.RuntimeMetadata;
import org.teiid.translator.ExecutionContext;
import org.teiid.translator.Translator;
import org.teiid.translator.TranslatorException;
import org.teiid.translator.TranslatorProperty;
-import org.teiid.translator.UpdateExecution;
import org.teiid.translator.jdbc.ConvertModifier;
import org.teiid.translator.jdbc.FunctionModifier;
import org.teiid.translator.jdbc.JDBCExecutionFactory;
-import org.teiid.translator.jdbc.SQLConversionVisitor;
@@ -218,9 +215,4 @@
return false;
}
- @Override
- public UpdateExecution createUpdateExecution(Command command, ExecutionContext executionContext, RuntimeMetadata metadata, Object connectionFactory) throws TranslatorException {
- throw new TranslatorException("Unsupported Execution");//$NON-NLS-1$
- }
-
}
Modified: trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/modeshape/TestModeShapeSqlTranslator.java
===================================================================
--- trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/modeshape/TestModeShapeSqlTranslator.java 2010-06-14 14:28:46 UTC (rev 2226)
+++ trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/modeshape/TestModeShapeSqlTranslator.java 2010-06-14 14:44:05 UTC (rev 2227)
@@ -22,22 +22,22 @@
package org.teiid.translator.jdbc.modeshape;
-import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.*;
import org.junit.BeforeClass;
import org.junit.Ignore;
import org.junit.Test;
import org.mockito.Mockito;
+import org.teiid.cdk.api.TranslationUtility;
import org.teiid.core.util.UnitTestUtil;
import org.teiid.language.Command;
import org.teiid.translator.ExecutionContext;
import org.teiid.translator.TranslatorException;
import org.teiid.translator.jdbc.TranslatedCommand;
-import com.metamatrix.cdk.api.TranslationUtility;
-
/**
*/
+@SuppressWarnings("nls")
public class TestModeShapeSqlTranslator {
private static ModeShapeExecutionFactory TRANSLATOR;
14 years, 6 months
teiid SVN: r2226 - trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/modeshape.
by teiid-commits@lists.jboss.org
Author: vhalbert(a)redhat.com
Date: 2010-06-14 10:28:46 -0400 (Mon, 14 Jun 2010)
New Revision: 2226
Modified:
trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/modeshape/ModeShapeExecutionFactory.java
Log:
Teiid-1106 : Fixed reference to which SQLConversionVisitor to use. Changed to not override at this time.
Modified: trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/modeshape/ModeShapeExecutionFactory.java
===================================================================
--- trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/modeshape/ModeShapeExecutionFactory.java 2010-06-11 18:31:39 UTC (rev 2225)
+++ trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/modeshape/ModeShapeExecutionFactory.java 2010-06-14 14:28:46 UTC (rev 2226)
@@ -131,15 +131,7 @@
}, FunctionModifier.BOOLEAN);
}
-
-
- @Override
- public SQLConversionVisitor getSQLConversionVisitor() {
- return new ModeShapeSQLConversionVisitor(this);
- }
-
-
@Override
public List<?> translate(LanguageObject obj, ExecutionContext context) {
14 years, 6 months