Author: shawkins
Date: 2011-05-02 13:02:28 -0400 (Mon, 02 May 2011)
New Revision: 3134
Added:
trunk/documentation/reference/src/main/docbook/en-US/content/ddl_support.xml
trunk/engine/src/main/java/org/teiid/query/optimizer/DdlPlanner.java
trunk/engine/src/main/java/org/teiid/query/processor/DdlPlan.java
Modified:
trunk/adminshell/src/main/java/org/teiid/script/io/ResultSetReader.java
trunk/api/src/main/java/org/teiid/events/EventDistributor.java
trunk/api/src/main/java/org/teiid/language/SQLConstants.java
trunk/api/src/main/java/org/teiid/metadata/AbstractMetadataRecord.java
trunk/api/src/main/java/org/teiid/metadata/MetadataRepository.java
trunk/api/src/main/java/org/teiid/metadata/Table.java
trunk/build/kits/jboss-container/deploy/teiid/teiid-jboss-beans.xml
trunk/build/kits/jboss-container/teiid-releasenotes.html
trunk/client/src/test/java/org/teiid/jdbc/util/ResultSetUtil.java
trunk/console/src/main/resources/META-INF/rhq-plugin.xml
trunk/documentation/admin-guide/src/main/docbook/en-US/content/performance.xml
trunk/documentation/docbook/custom.dtd
trunk/documentation/reference/src/main/docbook/en-US/Reference.xml
trunk/documentation/reference/src/main/docbook/en-US/content/procedures.xml
trunk/documentation/reference/src/main/docbook/en-US/content/sql_support.xml
trunk/documentation/reference/src/main/docbook/en-US/content/system_schema.xml
trunk/engine/src/main/java/org/teiid/cache/CacheConfiguration.java
trunk/engine/src/main/java/org/teiid/dqp/internal/process/DataTierManagerImpl.java
trunk/engine/src/main/java/org/teiid/dqp/internal/process/Request.java
trunk/engine/src/main/java/org/teiid/query/metadata/TransformationMetadata.java
trunk/engine/src/main/java/org/teiid/query/optimizer/QueryOptimizer.java
trunk/engine/src/main/java/org/teiid/query/optimizer/relational/RelationalPlanner.java
trunk/engine/src/main/java/org/teiid/query/processor/ProcessorDataManager.java
trunk/engine/src/main/java/org/teiid/query/resolver/QueryResolver.java
trunk/engine/src/main/java/org/teiid/query/resolver/command/AlterResolver.java
trunk/engine/src/main/java/org/teiid/query/sql/lang/Alter.java
trunk/engine/src/main/java/org/teiid/query/sql/lang/AlterTrigger.java
trunk/engine/src/main/java/org/teiid/query/sql/visitor/CommandCollectorVisitor.java
trunk/engine/src/main/java/org/teiid/query/sql/visitor/SQLStringVisitor.java
trunk/engine/src/main/java/org/teiid/query/tempdata/TempTableDataManager.java
trunk/engine/src/main/java/org/teiid/query/tempdata/TempTableStore.java
trunk/engine/src/main/javacc/org/teiid/query/parser/SQLParser.jj
trunk/engine/src/main/resources/org/teiid/query/i18n.properties
trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestDQPCore.java
trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestRequest.java
trunk/engine/src/test/java/org/teiid/query/optimizer/proc/TestProcedurePlanner.java
trunk/engine/src/test/java/org/teiid/query/parser/TestParseAlter.java
trunk/engine/src/test/java/org/teiid/query/processor/FakeDataManager.java
trunk/engine/src/test/java/org/teiid/query/processor/HardcodedDataManager.java
trunk/engine/src/test/java/org/teiid/query/processor/relational/TestBatchedUpdateNode.java
trunk/engine/src/test/java/org/teiid/query/processor/relational/TestProjectIntoNode.java
trunk/jboss-integration/src/main/java/org/teiid/jboss/deployers/RuntimeEngineDeployer.java
trunk/metadata/src/main/resources/System.vdb
trunk/runtime/src/main/java/org/teiid/deployers/VDBRepository.java
trunk/test-integration/common/src/test/java/org/teiid/systemmodel/TestMetadataUpdates.java
trunk/test-integration/common/src/test/java/org/teiid/systemmodel/TestSystemVirtualModel.java
trunk/test-integration/common/src/test/resources/TestMMDatabaseMetaData/testGetColumns.expected
trunk/test-integration/common/src/test/resources/TestMMDatabaseMetaData/testGetProcedureColumns.expected
trunk/test-integration/common/src/test/resources/TestMMDatabaseMetaData/testGetProcedures.expected
trunk/test-integration/common/src/test/resources/TestMMDatabaseMetaData/testGetProceduresWithEscape.expected
trunk/test-integration/common/src/test/resources/TestODBCSchema/test_PG_ATTRIBUTE.expected
trunk/test-integration/common/src/test/resources/TestPartsDatabaseMetadata/testColumns.expected
trunk/test-integration/common/src/test/resources/TestPartsDatabaseMetadata/testProcedureColumns.expected
trunk/test-integration/common/src/test/resources/TestPartsDatabaseMetadata/testProcedures.expected
trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testColumns.expected
trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testProcedureParams.expected
trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testProcedures.expected
Log:
TEIID-1326 adding alter commands for runtime update of metadata
Modified: trunk/adminshell/src/main/java/org/teiid/script/io/ResultSetReader.java
===================================================================
--- trunk/adminshell/src/main/java/org/teiid/script/io/ResultSetReader.java 2011-04-29
18:34:21 UTC (rev 3133)
+++ trunk/adminshell/src/main/java/org/teiid/script/io/ResultSetReader.java 2011-05-02
17:02:28 UTC (rev 3134)
@@ -111,7 +111,7 @@
for (int col = 1; col <= columnCount; col++) {
Object anObj = source.getObject(col);
if (columnTypes[col-1] == Types.CLOB) {
- sb.append(anObj != null ? anObj : "null");
//$NON-NLS-1$
+ sb.append(anObj != null ? source.getString(col) :
"null"); //$NON-NLS-1$
}
else if (columnTypes[col-1] == Types.BLOB) {
sb.append(anObj != null ? "BLOB" : "null");
//$NON-NLS-1$ //$NON-NLS-2$
Modified: trunk/api/src/main/java/org/teiid/events/EventDistributor.java
===================================================================
--- trunk/api/src/main/java/org/teiid/events/EventDistributor.java 2011-04-29 18:34:21 UTC
(rev 3133)
+++ trunk/api/src/main/java/org/teiid/events/EventDistributor.java 2011-05-02 17:02:28 UTC
(rev 3134)
@@ -25,6 +25,7 @@
import java.util.List;
import org.teiid.metadata.ColumnStats;
+import org.teiid.metadata.Table;
import org.teiid.metadata.TableStats;
/**
@@ -47,15 +48,6 @@
void updateMatViewRow(String vdbName, int vdbVersion, String schema, String viewName,
List<?> tuple, boolean delete);
/**
- * Notify that the metadata has been changed for the given table or view.
- * @param vdbName
- * @param vdbVersion
- * @param schema
- * @param objectNames
- */
- void schemaModification(String vdbName, int vdbVersion, String schema, String...
objectNames);
-
- /**
* Notify that the table data has changed.
* @param vdbName
* @param vdbVersion
@@ -64,10 +56,69 @@
*/
void dataModification(String vdbName, int vdbVersion, String schema, String...
tableNames);
+ /**
+ * Set the column stats
+ * @param vdbName
+ * @param vdbVersion
+ * @param schemaName
+ * @param tableName
+ * @param columnName
+ * @param stats
+ */
void setColumnStats(String vdbName, int vdbVersion, String schemaName,
String tableName, String columnName, ColumnStats stats);
+ /**
+ * Set the table stats
+ * @param vdbName
+ * @param vdbVersion
+ * @param schemaName
+ * @param tableName
+ * @param stats
+ */
void setTableStats(String vdbName, int vdbVersion, String schemaName,
String tableName, TableStats stats);
+ /**
+ * Set the given property value
+ * @param vdbName
+ * @param vdbVersion
+ * @param uuid
+ * @param name
+ * @param value
+ */
+ void setProperty(String vdbName, int vdbVersion, String uuid, String name, String
value);
+
+ /**
+ * Set the instead of trigger definition. Only one of either the triggerDefinition or
enabled should be specified.
+ * @param vdbName
+ * @param vdbVersion
+ * @param schema
+ * @param viewName
+ * @param triggerEvent
+ * @param triggerDefinition
+ * @param enabled
+ */
+ void setInsteadOfTriggerDefinition(String vdbName, int vdbVersion, String schema, String
viewName, Table.TriggerEvent triggerEvent, String triggerDefinition, Boolean enabled);
+
+ /**
+ * Set the procedure definition
+ * @param vdbName
+ * @param vdbVersion
+ * @param schema
+ * @param procName
+ * @param definition
+ */
+ void setProcedureDefinition(String vdbName, int vdbVersion, String schema, String
procName, String definition);
+
+ /**
+ * Set the view definition
+ * @param vdbName
+ * @param vdbVersion
+ * @param schema
+ * @param viewName
+ * @param definition
+ */
+ void setViewDefinition(String vdbName, int vdbVersion, String schema, String viewName,
String definition);
+
}
Modified: trunk/api/src/main/java/org/teiid/language/SQLConstants.java
===================================================================
--- trunk/api/src/main/java/org/teiid/language/SQLConstants.java 2011-04-29 18:34:21 UTC
(rev 3133)
+++ trunk/api/src/main/java/org/teiid/language/SQLConstants.java 2011-05-02 17:02:28 UTC
(rev 3134)
@@ -109,6 +109,8 @@
public static final String VIEW = "VIEW"; //$NON-NLS-1$
public static final String INSTEAD = "INSTEAD"; //$NON-NLS-1$
+ public static final String ENABLED = "ENABLED"; //$NON-NLS-1$
+ public static final String DISABLED = "DISABLED"; //$NON-NLS-1$
}
public interface Reserved {
Modified: trunk/api/src/main/java/org/teiid/metadata/AbstractMetadataRecord.java
===================================================================
--- trunk/api/src/main/java/org/teiid/metadata/AbstractMetadataRecord.java 2011-04-29
18:34:21 UTC (rev 3133)
+++ trunk/api/src/main/java/org/teiid/metadata/AbstractMetadataRecord.java 2011-05-02
17:02:28 UTC (rev 3134)
@@ -129,13 +129,19 @@
/**
* The preferred setter for extension properties.
* @param key
- * @param value
+ * @param value, if null the property will be removed
*/
- public void setProperty(String key, String value) {
+ public String setProperty(String key, String value) {
+ if (value == null) {
+ if (this.properties == null) {
+ return null;
+ }
+ return this.properties.remove(key);
+ }
if (this.properties == null) {
this.properties = new LinkedHashMap<String, String>();
}
- this.properties.put(DataTypeManager.getCanonicalString(key),
DataTypeManager.getCanonicalString(value));
+ return this.properties.put(DataTypeManager.getCanonicalString(key),
DataTypeManager.getCanonicalString(value));
}
public void setProperties(LinkedHashMap<String, String> properties) {
Modified: trunk/api/src/main/java/org/teiid/metadata/MetadataRepository.java
===================================================================
--- trunk/api/src/main/java/org/teiid/metadata/MetadataRepository.java 2011-04-29 18:34:21
UTC (rev 3133)
+++ trunk/api/src/main/java/org/teiid/metadata/MetadataRepository.java 2011-05-02 17:02:28
UTC (rev 3134)
@@ -21,6 +21,7 @@
*/
package org.teiid.metadata;
+import java.util.LinkedHashMap;
/**
* A hook for externalizing view, procedure, and other metadata.
@@ -46,7 +47,7 @@
* Returns an updated trigger definition (FOR EACH ROW ...) or null if the current view
definition should be used
* should be used.
*/
- String getInsteadOfTriggerDefinition(String vdbName, int vdbVersion, Table table,
Table.TriggerOperation triggerOperation);
+ String getInsteadOfTriggerDefinition(String vdbName, int vdbVersion, Table table,
Table.TriggerEvent triggerOperation);
/**
*
@@ -56,9 +57,29 @@
* @param triggerOperation
* @param triggerDefinition
*/
- void setInsteadOfTriggerDefinition(String vdbName, int vdbVersion, Table table,
Table.TriggerOperation triggerOperation, String triggerDefinition);
+ void setInsteadOfTriggerDefinition(String vdbName, int vdbVersion, Table table,
Table.TriggerEvent triggerOperation, String triggerDefinition);
+
+ /**
+ * Returns whether the trigger is enabled
+ * @param vdbName
+ * @param vdbVersion
+ * @param table
+ * @param triggerOperation
+ * @return
+ */
+ boolean isInsteadOfTriggerEnabled(String vdbName, int vdbVersion, Table table,
Table.TriggerEvent triggerOperation);
/**
+ * Set the given trigger enabled.
+ * @param vdbName
+ * @param vdbVersion
+ * @param table
+ * @param triggerOperation
+ * @param enabled
+ */
+ void setInsteadOfTriggerEnabled(String vdbName, int vdbVersion, Table table,
Table.TriggerEvent triggerOperation, boolean enabled);
+
+ /**
* Returns an updated procedure definition (CREATE PROCEDURE ...) or null if the current
procedure definition should be used
* should be used.
*/
@@ -71,7 +92,7 @@
* @param table
* @param procedureDefinition
*/
- void setProcedureDefinition(String vdbName, int vdbVersion, Procedure table, String
procedureDefinition);
+ void setProcedureDefinition(String vdbName, int vdbVersion, Procedure procedure, String
procedureDefinition);
/**
* Get updated {@link TableStats} for the given table
@@ -108,4 +129,23 @@
* @param columnStats
*/
void setColumnStats(String vdbName, int vdbVersion, Column column, ColumnStats
columnStats);
+
+ /**
+ * Get the extension metadata for a given record.
+ * @param vdbName
+ * @param vdbVersion
+ * @param record
+ * @return
+ */
+ LinkedHashMap<String, String> getProperties(String vdbName, int vdbVersion,
AbstractMetadataRecord record);
+
+ /**
+ * Set an extension metadata property for a given record.
+ * @param vdbName
+ * @param vdbVersion
+ * @param record
+ * @param name
+ * @param value
+ */
+ void setProperty(String vdbName, int vdbVersion, AbstractMetadataRecord record, String
name, String value);
}
Modified: trunk/api/src/main/java/org/teiid/metadata/Table.java
===================================================================
--- trunk/api/src/main/java/org/teiid/metadata/Table.java 2011-04-29 18:34:21 UTC (rev
3133)
+++ trunk/api/src/main/java/org/teiid/metadata/Table.java 2011-05-02 17:02:28 UTC (rev
3134)
@@ -41,7 +41,7 @@
MaterializedTable
}
- public static enum TriggerOperation {
+ public static enum TriggerEvent {
INSERT,
UPDATE,
DELETE
@@ -64,6 +64,9 @@
private String insertPlan;
private String updatePlan;
private String deletePlan;
+ private boolean insertPlanEnabled;
+ private boolean updatePlanEnabled;
+ private boolean deletePlanEnabled;
private Table materializedStageTable;
private Table materializedTable;
@@ -179,14 +182,17 @@
public void setInsertPlan(String insertPlan) {
this.insertPlan = DataTypeManager.getCanonicalString(insertPlan);
+ this.insertPlanEnabled = true;
}
public void setUpdatePlan(String updatePlan) {
this.updatePlan = DataTypeManager.getCanonicalString(updatePlan);
+ this.updatePlanEnabled = true;
}
public void setDeletePlan(String deletePlan) {
this.deletePlan = DataTypeManager.getCanonicalString(deletePlan);
+ this.deletePlanEnabled = true;
}
public List<ForeignKey> getForeignKeys() {
@@ -301,4 +307,28 @@
}
}
+ public boolean isDeletePlanEnabled() {
+ return deletePlanEnabled;
+ }
+
+ public boolean isInsertPlanEnabled() {
+ return insertPlanEnabled;
+ }
+
+ public boolean isUpdatePlanEnabled() {
+ return updatePlanEnabled;
+ }
+
+ public void setInsertPlanEnabled(boolean insertPlanEnabled) {
+ this.insertPlanEnabled = insertPlanEnabled;
+ }
+
+ public void setDeletePlanEnabled(boolean deletePlanEnabled) {
+ this.deletePlanEnabled = deletePlanEnabled;
+ }
+
+ public void setUpdatePlanEnabled(boolean updatePlanEnabled) {
+ this.updatePlanEnabled = updatePlanEnabled;
+ }
+
}
\ No newline at end of file
Modified: trunk/build/kits/jboss-container/deploy/teiid/teiid-jboss-beans.xml
===================================================================
--- trunk/build/kits/jboss-container/deploy/teiid/teiid-jboss-beans.xml 2011-04-29
18:34:21 UTC (rev 3133)
+++ trunk/build/kits/jboss-container/deploy/teiid/teiid-jboss-beans.xml 2011-05-02
17:02:28 UTC (rev 3134)
@@ -79,9 +79,9 @@
<property name="maxEntries">512</property>
<!-- Max age in seconds (default 28800 - 8 hours) -->
<property name="maxAgeInSeconds">28800</property>
- <!-- Max staleness in seconds. Modifications are based upon costing updates
- -1 indicates no max. (default 300 - 5 minutes) -->
- <property name="maxStaleness">300</property>
+ <!-- Max staleness in seconds. Modifications are based upon costing/metadata
updates
+ -1 indicates no max. (default 0) -->
+ <property name="maxStaleness">0</property>
</bean>
<bean name="RuntimeEngineDeployer"
class="org.teiid.jboss.deployers.RuntimeEngineDeployer">
@@ -127,12 +127,14 @@
<property name="queryThresholdInSecs">600</property>
<!-- Maximum rows allowed from a source query. -1 indicates no limit. (default
-1)-->
<property name="maxSourceRows">-1</property>
- <!-- Indicates if an exception should be thrown if the specified value for Maximum
Source Rows is exceeded; only up to the maximum rows will be consumed. -->
+ <!-- Indicates if an exception should be thrown if the specified value for Maximum
Source Rows is exceeded; only up to the maximum rows will be consumed. (default true)
-->
<property name="exceptionOnMaxSourceRows">true</property>
<!-- Maximum size of lob allowed through ODBC connection in bytes (default
5MB) -->
<property name="maxODBCLobSizeAllowed">5242880</property>
<!-- The JNDI name of the Teiid Event Distributor -->
<property
name="eventDistributorName">teiid/event-distributor</property>
+ <!-- Set to true for the engine to detect local change events. Should be
disabled if using external change data capture tools. (default true) -->
+ <property name="detectingChangeEvents">true</property>
</bean>
<!-- JDBC Socket connection properties (SSL see below) -->
Modified: trunk/build/kits/jboss-container/teiid-releasenotes.html
===================================================================
--- trunk/build/kits/jboss-container/teiid-releasenotes.html 2011-04-29 18:34:21 UTC (rev
3133)
+++ trunk/build/kits/jboss-container/teiid-releasenotes.html 2011-05-02 17:02:28 UTC (rev
3134)
@@ -53,6 +53,9 @@
<LI><B>Enhanced Sort Join</B> - the partitioned merge join was
replaced with an enhanced sort join. The enhanced sort join will use the actual row
counts from each side of the relation to perform a index based join if one side is small
enough, a partial sort of the larger side and a repeated merge join if the tuples are
unbalanced but one side is not small enough to form an index, or a standard sort merge
join if the tuples are balanced.
<LI><B>JDK1.5 JDBC Client JAR</B> - A retro-translated Teiid client
JDBC jar now available to use with JDK 1.5 VM. Note only the JDBC API is supported, not
the Admin API, or retrieving query plans as XML.
<LI><B>Security Improvements</B> - UDF and pushdown functions can now
be protected with data roles. Also the CommandContext can provide the Subject for custom
security checks in UDFs.
+ <LI><B>Cache Invalidation</B> - Prepared plan and result set caches
can have a maxStaleness value, which will invalidate entries based upon metadata and data
changes respectively. See the Admin Guide for more.
+ <LI><B>Runtime-updates of Metadata</B> - Alter statements have been
added to change view/procedure/INSTEAD OF trigger (update procedure) definitions have been
added. A create statement was also added to add INSTEAD OF trigger (update procedures) to
views.
+ System procedures were added to set extension metadata and stat values. By default all
effects of metadata updates happen only on running vdbs across the cluster. To make the
changes persistent see the Developers Guide Runtime Updates section.
</UL>
<h2><a name="Compatibility">Compatibility
Issues</a></h2>
@@ -63,6 +66,7 @@
<h4>from 7.3</h4>
<ul>
+ <li>SYS.PROPERTIES has a new column, ClobValue, to get values exceeding the max
string length
<li>SYS.COLUMNS has two new columns to get statistical information: DistinctCount
and NullCount
<li>ARRAY_AGG is now a reserved word</li>
<li>The use of an IN procedure parameter with the name "source_name" in
a multi-source model, will now be treated the parameter that controls which source
@@ -123,6 +127,7 @@
<h4>from 7.3</h4>
<ul>
+ <LI>The prepared plan cache is now configured via the PreparedPlanCacheConfig
bean, rather than through properties on the RuntimeEngineDeployer
<LI>SocketConfiguration.maxSocketThreads will interpret a setting of 0 to mean
use the system default of max available processors. Both the ODBC and JDBC transports now
default to the 0 setting.
<LI>maxReserveBatchColumns and maxProcessingBatchesColumns will interpret a
setting of -1 to mean auto-calculate acceptable values given the max heap and other
information. See the admin guide for more.
<LI>The default for org.teiid.useValueCache has changed to false, since typical
installations will not greatly benefit from the additional lookup cost.
Modified: trunk/client/src/test/java/org/teiid/jdbc/util/ResultSetUtil.java
===================================================================
--- trunk/client/src/test/java/org/teiid/jdbc/util/ResultSetUtil.java 2011-04-29 18:34:21
UTC (rev 3133)
+++ trunk/client/src/test/java/org/teiid/jdbc/util/ResultSetUtil.java 2011-05-02 17:02:28
UTC (rev 3134)
@@ -46,6 +46,7 @@
/**
* @since 4.2
*/
+@SuppressWarnings("nls")
public class ResultSetUtil {
public static final int DEFAULT_MAX_COL_WIDTH = 29;
Modified: trunk/console/src/main/resources/META-INF/rhq-plugin.xml
===================================================================
--- trunk/console/src/main/resources/META-INF/rhq-plugin.xml 2011-04-29 18:34:21 UTC (rev
3133)
+++ trunk/console/src/main/resources/META-INF/rhq-plugin.xml 2011-05-02 17:02:28 UTC (rev
3134)
@@ -369,7 +369,7 @@
required="false" readOnly="false" />
<c:simple-property
name="PreparedPlanCacheConfig.maxStaleness"
displayName="Max Entry Staleness"
- description="The maximum staleness of a prepared plan cache
entry in seconds based upon costing modifications. -1 indicates no max. (default
300)"
+ description="The maximum staleness of a prepared plan cache
entry in seconds based upon metadata modifications. -1 indicates no max. (default
0)"
required="false" readOnly="false" />
</c:group>
Modified: trunk/documentation/admin-guide/src/main/docbook/en-US/content/performance.xml
===================================================================
---
trunk/documentation/admin-guide/src/main/docbook/en-US/content/performance.xml 2011-04-29
18:34:21 UTC (rev 3133)
+++
trunk/documentation/admin-guide/src/main/docbook/en-US/content/performance.xml 2011-05-02
17:02:28 UTC (rev 3134)
@@ -96,10 +96,15 @@
Even though it is possible to disable or otherwise severely constrain these caches,
this would probably never be done in practice as it would lead to poor performance.
</para><para>Cache statistics can be obtained through the Admin Console or
Adminshell. The statistics can be used to help tune cache parameters and ensure a hit
ratio.</para>
<para>Plans are currently fully held in memory and may have a significant memory
footprint. When making extensive use of prepared statements and/or virtual procedures,
- the size of the plan cache may be increased proportionally to number of GB intended for
use by Teiid.
+ the size of the plan cache may be increased proportionally to number of gigabytes
intended for use by Teiid.
</para><para>While the result cache parameters control the cache result
entries (max number, eviction, etc.), the result batches themselves are accessed through
the <link linkend="memory_management">BufferManager</link>.
If the size of the result cache is increased, you may need to tune the BufferManager
configuration to ensure there is enough buffer space.
</para>
+ <para>Result set and prepared plan caches have their entries invalidated by data
and metadata events.
+ By default these events are captured by running commands through Teiid. See the
Developers Guide for further customization.
+ Teiid stores compiled forms of update plans or trigger actions with the prepared plan,
so it is recommended to leave the maxStaleness of the prepared plan cache set to 0 so that
metadata changes, for example disabling a trigger, may take effect immediately.
+ The default staleness for result set caching is 60 seconds to improve efficiency with
rapidly changing sources. Consider decreasing this value to make the result set cache
more consistent with the underlying data. Even with a setting of 0 full transactional
consistency is not guaranteed.
+ </para>
</section>
<section id="socket_transport">
<title>Socket Transports</title>
Modified: trunk/documentation/docbook/custom.dtd
===================================================================
--- trunk/documentation/docbook/custom.dtd 2011-04-29 18:34:21 UTC (rev 3133)
+++ trunk/documentation/docbook/custom.dtd 2011-05-02 17:02:28 UTC (rev 3134)
@@ -6,3 +6,4 @@
<!ENTITY javaDocUrl
"http://docs.jboss.org/teiid/&versionNumber;/apidocs">
<!ENTITY desDocUrl "http://www.jboss.org/teiiddesigner/docs.html">
<!ENTITY jboss-beans
"<code><jboss-install>/server/<profile>/deploy/teiid/teiid-jboss-beans.xml</code>">
+<!ENTITY metadata-update-note "<note><para>A
<code>MetadataRepository</code> must be configured to make a non-temporary
metadata update persistent. See the Developers Guide Runtime Updates section for
more.</para></note>">
Modified: trunk/documentation/reference/src/main/docbook/en-US/Reference.xml
===================================================================
--- trunk/documentation/reference/src/main/docbook/en-US/Reference.xml 2011-04-29 18:34:21
UTC (rev 3133)
+++ trunk/documentation/reference/src/main/docbook/en-US/Reference.xml 2011-05-02 17:02:28
UTC (rev 3134)
@@ -48,6 +48,7 @@
<toc />
<xi:include href="content/preface.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="content/sql_support.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="content/ddl_support.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="content/xml_queries.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="content/datatypes.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="content/scalar_functions.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
Added: trunk/documentation/reference/src/main/docbook/en-US/content/ddl_support.xml
===================================================================
--- trunk/documentation/reference/src/main/docbook/en-US/content/ddl_support.xml
(rev 0)
+++
trunk/documentation/reference/src/main/docbook/en-US/content/ddl_support.xml 2011-05-02
17:02:28 UTC (rev 3134)
@@ -0,0 +1,162 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % CustomDTD SYSTEM "../../../../../../docbook/custom.dtd">
+%CustomDTD;
+]>
+<chapter id="ddl_support">
+ <title>DDL Support</title>
+ <para>Teiid supports a subset of DDL to, create/drop temporary tables and to
manipulate procedure and view definitions at runtime.
+ It is not currently possible to arbitrarily drop/create non-temporary metadata
entries.</para>
+ &metadata-update-note;
+ <section id="temp_tables">
+ <title>Temp Tables</title>
+ <para>Teiid supports creating temporary,or "temp", tables. Temp
tables are dynamically created, but are treated as any other physical table.
+ </para>
+ <para>
+ Temp tables can be defined implicitly by referencing them in a
+ INSERT statement or explicitly with a CREATE TABLE
+ statement. Implicitly created temp tables must have a name that
+ starts with '#'.
+ </para>
+ <itemizedlist>
+ <para>Creation syntax:
+ </para>
+ <listitem>
+ <para>Explicit: CREATE LOCAL TEMPORARY TABLE x (column type [NOT NULL], ...
[PRIMARY KEY (column, ...)])
+ </para>
+ </listitem>
+ <listitem>
+ <para>Implicit: INSERT INTO #x (column, ...) VALUES (value, ...)
+ </para>
+ <para>If #x doen't exist, it will be defined using the given column
names and types from the value expressions.
+ </para>
+ </listitem>
+ <listitem>
+ <para>Implicit: INSERT INTO #x [(column, ...)] select c1, c2 from t
+ </para>
+ <para>If #x doesn't exist, it will be defined using the target column
names (in not supplied, the column names will match the derived column names from the
query), and the types from the query derived columns.
+ </para>
+ </listitem>
+ <listitem>
+ <para>Use the SERIAL data type to specify a NOT NULL and auto-incrementing
INTEGER column. The starting value of a SERIAL column is 1.</para>
+ </listitem>
+ </itemizedlist>
+ <itemizedlist>
+ <para>Drop syntax:
+ </para>
+ <listitem>
+ <para>DROP TABLE x
+ </para>
+ </listitem>
+ </itemizedlist>
+ <itemizedlist>
+ <para>Primary Key Support</para>
+ <listitem>
+ <para>All key columns must be comparable.</para>
+ </listitem>
+ <listitem>
+ <para>Use of a primary key creates a clustered index that supports search
improvements for comparison, in, like, and order by.</para>
+ </listitem>
+ <listitem>
+ <para>Null is an allowable primary key value, but there must be only 1 row
that has an all null key.</para>
+ </listitem>
+ </itemizedlist>
+ <itemizedlist>
+ <para>Limitations:
+ </para>
+ <listitem>
+ <para>With the CREATE TABLE syntax only basic table definition (column name
and type information) and an optional primary key are supported.
+ </para>
+ </listitem>
+ <listitem>
+ <para>The "ON COMMIT" clause is not supported in the CREATE TABLE
statement.
+ </para>
+ </listitem>
+ <listitem>
+ <para>"drop behavior" option is not supported in the drop
statement.
+ </para>
+ </listitem>
+ <listitem>
+ <para>Only local temporary tables are supported. This implies that the
scope of temp table will be either to the sesssion or the block of a virtual procedure
that creates it.
+ </para>
+ </listitem>
+ <listitem>
+ <para>Session level temp tables are not fail-over safe.
+ </para>
+ </listitem>
+ <listitem>
+ <para>Temp tables are non-transactional.
+ </para>
+ </listitem>
+ <listitem>
+ <para>Lob values (xml, clob, blob) are tracked by reference rather than by
value in a temporary table.
+ Lob values from external sources that are inserted in a temporary table may
become unreadable when the associated statement or connection is closed.
+ </para>
+ </listitem>
+ </itemizedlist>
+ <para>The following example is a series of statements that loads a temporary
table with data from 2 sources, and with a manually inserted record, and then uses that
temp table in a subsequent query.</para>
+ <programlisting>...
+CREATE LOCAL TEMPORARY TABLE TEMP (a integer, b integer, c integer);
+SELECT * INTO temp FROM Src1; SELECT * INTO temp FROM Src2;
+INSERT INTO temp VALUES (1,2,3);
+SELECT a,b,c FROM Src3, temp WHERE Src3.a = temp.b;
+...</programlisting>
+ <para>
+ See <link linkend="virtual_procedures">virtual
procedures</link> for more on temp table usage.
+ </para>
+ </section>
+ <section>
+ <title>Alter View</title>
+ <para>
+ Usage:
+ <synopsis label="Usage">ALTER VIEW name AS
queryExpression</synopsis>
+ </para>
+ <itemizedlist>
+ <para>Syntax Rules:</para>
+ <listitem><para>The alter query expression may be prefixed with a
cache hint for materialized view definitions. The hint will take effect the next time the
materialized view table is loaded.</para></listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Alter Procedure</title>
+ <para>
+ Usage:
+ <synopsis label="Usage">ALTER PROCEDURE name AS
block</synopsis>
+ </para>
+ <itemizedlist>
+ <para>Syntax Rules:</para>
+ <listitem><para>The alter block should not include 'CREATE
VIRTUAL PROCEDURE'</para></listitem>
+ <listitem><para>The alter block may be prefixed with a cache hint
for cached procedures.</para></listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Create Trigger</title>
+ <para>
+ Usage:
+ <synopsis label="Usage">CREATE TRIGGER ON name INSTEAD OF
INSERT|UPDATE|DELETE AS FOR EACH ROW block</synopsis>
+ </para>
+ <itemizedlist>
+ <para>Syntax Rules:</para>
+ <listitem><para>The target, name, must be an updatable
view.</para></listitem>
+ <listitem><para>An INSTEAD OF TRIGGER must not yet exist for the
given event.</para></listitem>
+ <listitem><para>Triggers are not yet true schema objects. They are
scoped only to their view and have no name.</para></listitem>
+ </itemizedlist>
+ <itemizedlist>
+ <para>Limitations:</para>
+ <listitem><para>There is no corresponding drop operation. See
<xref linkend="alter_trigger"/> for enabling/disabling an existing
trigger.</para></listitem>
+ </itemizedlist>
+ </section>
+ <section id="alter_trigger">
+ <title>Alter Trigger</title>
+ <para>
+ Usage:
+ <synopsis label="Usage">ALTER TRIGGER ON name INSTEAD OF
INSERT|UPDATE|DELETE (AS FOR EACH ROW block) | (ENABLED|DISABLED)</synopsis>
+ </para>
+ <itemizedlist>
+ <para>Syntax Rules:</para>
+ <listitem><para>The target, name, must be an updatable
view.</para></listitem>
+ <listitem><para>Triggers are not yet true schema objects. They are
scoped only to their view and have no name.</para></listitem>
+ <listitem><para>An <xref
linkend="update_procedures"/> must already exist for the given trigger
event.</para></listitem>
+ </itemizedlist>
+ <note><para>If the default inherent update is choosen in Teiid
Designer, any SQL associated with update (shown in a greyed out text box) is not part of
the VDB and cannot be enabled with an alter trigger statement.</para></note>
+ </section>
+</chapter>
\ No newline at end of file
Property changes on:
trunk/documentation/reference/src/main/docbook/en-US/content/ddl_support.xml
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified: trunk/documentation/reference/src/main/docbook/en-US/content/procedures.xml
===================================================================
--- trunk/documentation/reference/src/main/docbook/en-US/content/procedures.xml 2011-04-29
18:34:21 UTC (rev 3133)
+++ trunk/documentation/reference/src/main/docbook/en-US/content/procedures.xml 2011-05-02
17:02:28 UTC (rev 3134)
@@ -458,6 +458,19 @@
<para>A FOR EACH ROW procedure will evaluate its block for each row of the
view affected by the update statement.
For UPDATE and DELETE statements this will be every row that passes the WHERE
condition. For INSERT statements there will be 1 new row for each set of values from the
VALUES or query expression.
The rows updated is reported as this number regardless of the affect of the
underlying procedure logic.</para>
+ <para>Teiid FOR EACH ROW update procedures function like INSTEAD OF triggers
in traditional databases.
+ There may only be 1 FOR EACH ROW procedure for each INSERT, UPDATE, or DELETE
operation against a view. FOR EACH ROW update procedures can also be used to emulate
BEFORE/AFTER each row triggers while still retaining the ability to perform an inherent
update.
+ This BEFORE/AFTER trigger behavior with an inherent update can be achieved by
creating an additional updatable view over the target view with update proceudres of the
form:
+ <programlisting lang="sql">FOR EACH ROW
+ BEGIN
+ --before row logic
+
+ --default insert/update/delete against the target view
+ INSERT INTO VW (c1, c2, c3) VALUES (NEW.c1, NEW.c2, NEW.c3);
+
+ --after row logic
+ END</programlisting>
+ </para>
<section>
<title>Definition</title>
<para>
Modified: trunk/documentation/reference/src/main/docbook/en-US/content/sql_support.xml
===================================================================
---
trunk/documentation/reference/src/main/docbook/en-US/content/sql_support.xml 2011-04-29
18:34:21 UTC (rev 3133)
+++
trunk/documentation/reference/src/main/docbook/en-US/content/sql_support.xml 2011-05-02
17:02:28 UTC (rev 3134)
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<chapter id="sql_support">
- <title>SQL Support</title>
+ <title>DML Support</title>
<para>
Teiid supports SQL for issuing queries and for defining view
transformations; see also <link
linkend="procedure_language">Procedure Language</link>
@@ -651,103 +651,6 @@
</note>
</section>
</section>
- <section id="temp_tables">
- <title>Temp Tables</title>
- <para>Teiid supports creating temporary,or "temp", tables. Temp
tables are dynamically created, but are treated as any other physical table.
- </para>
- <para>
- Temp tables can be defined implicitly by referencing them in a
- INSERT statement or explicitly with a CREATE TABLE
- statement. Implicitly created temp tables must have a name that
- starts with '#'.
- </para>
- <itemizedlist>
- <para>Creation syntax:
- </para>
- <listitem>
- <para>Explicit: CREATE LOCAL TEMPORARY TABLE x (column type [NOT NULL], ...
[PRIMARY KEY (column, ...)])
- </para>
- </listitem>
- <listitem>
- <para>Implicit: INSERT INTO #x (column, ...) VALUES (value, ...)
- </para>
- <para>If #x doen't exist, it will be defined using the given column
names and types from the value expressions.
- </para>
- </listitem>
- <listitem>
- <para>Implicit: INSERT INTO #x [(column, ...)] select c1, c2 from t
- </para>
- <para>If #x doesn't exist, it will be defined using the target column
names (in not supplied, the column names will match the derived column names from the
query), and the types from the query derived columns.
- </para>
- </listitem>
- <listitem>
- <para>Use the SERIAL data type to specify a NOT NULL and auto-incrementing
INTEGER column. The starting value of a SERIAL column is 1.</para>
- </listitem>
- </itemizedlist>
- <itemizedlist>
- <para>Drop syntax:
- </para>
- <listitem>
- <para>DROP TABLE x
- </para>
- </listitem>
- </itemizedlist>
- <itemizedlist>
- <para>Primary Key Support</para>
- <listitem>
- <para>All key columns must be comparable.</para>
- </listitem>
- <listitem>
- <para>Use of a primary key creates a clustered index that supports search
improvements for comparison, in, like, and order by.</para>
- </listitem>
- <listitem>
- <para>Null is an allowable primary key value, but there must be only 1 row
that has an all null key.</para>
- </listitem>
- </itemizedlist>
- <itemizedlist>
- <para>Limitations:
- </para>
- <listitem>
- <para>With the CREATE TABLE syntax only basic table definition (column name
and type information) and an optional primary key are supported.
- </para>
- </listitem>
- <listitem>
- <para>The "ON COMMIT" clause is not supported in the CREATE TABLE
statement.
- </para>
- </listitem>
- <listitem>
- <para>"drop behavior" option is not supported in the drop
statement.
- </para>
- </listitem>
- <listitem>
- <para>Only local temporary tables are supported. This implies that the
scope of temp table will be either to the sesssion or the block of a virtual procedure
that creates it.
- </para>
- </listitem>
- <listitem>
- <para>Session level temp tables are not fail-over safe.
- </para>
- </listitem>
- <listitem>
- <para>Temp tables are non-transactional.
- </para>
- </listitem>
- <listitem>
- <para>Lob values (xml, clob, blob) are tracked by reference rather than by
value in a temporary table.
- Lob values from external sources that are inserted in a temporary table may
become unreadable when the associated statement or connection is closed.
- </para>
- </listitem>
- </itemizedlist>
- <para>The following example is a series of statements that loads a temporary
table with data from 2 sources, and with a manually inserted record, and then uses that
temp table in a subsequent query.</para>
- <programlisting>...
-CREATE LOCAL TEMPORARY TABLE TEMP (a integer, b integer, c integer);
-SELECT * INTO temp FROM Src1; SELECT * INTO temp FROM Src2;
-INSERT INTO temp VALUES (1,2,3);
-SELECT a,b,c FROM Src3, temp WHERE Src3.a = temp.b;
-...</programlisting>
- <para>
- See <link linkend="virtual_procedures">virtual
procedures</link> for more on temp table usage.
- </para>
- </section>
<section>
<title>SQL Clauses</title>
<para>This section describes the clauses that are used in the various <link
linkend="sql_commands">SQL commands</link> described in the previous
section. Nearly all these features follow standard SQL syntax and functionality, so any
SQL reference can be used for more information.</para>
@@ -1213,10 +1116,10 @@
</section>
<section id="set_operations">
<title>Set Operations</title>
- <para>Teiid supports the UNION, UNION ALL, INTERSECT, EXCEPT set operation as a
way of combining the results of commands.</para>
+ <para>Teiid supports the UNION, UNION ALL, INTERSECT, EXCEPT set operation as a
way of combining the results of query expressions.</para>
<para>
Usage:
- <synopsis label="Usage">command (UNION|INTERSECT|EXCEPT) [ALL]
command [ORDER BY...]</synopsis>
+ <synopsis label="Usage">queryExpression (UNION|INTERSECT|EXCEPT)
[ALL] queryExpression [ORDER BY...]</synopsis>
</para>
<itemizedlist>
<para>Syntax Rules:
Modified: trunk/documentation/reference/src/main/docbook/en-US/content/system_schema.xml
===================================================================
---
trunk/documentation/reference/src/main/docbook/en-US/content/system_schema.xml 2011-04-29
18:34:21 UTC (rev 3133)
+++
trunk/documentation/reference/src/main/docbook/en-US/content/system_schema.xml 2011-05-02
17:02:28 UTC (rev 3134)
@@ -1,5 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % CustomDTD SYSTEM "../../../../../../docbook/custom.dtd">
+%CustomDTD;
+]>
<chapter id="system_schema">
<title>System Schema</title>
<para>The built-in SYS and SYSADMIN schemas provide metadata tables and
procedures against the current VDB.</para>
@@ -12,6 +15,8 @@
<para>This table provides the current VDB contents.</para>
<informaltable frame="all">
<tgroup cols="3">
+ <colspec colwidth=".6*" />
+ <colspec colwidth=".4*" />
<thead>
<row>
<entry>
@@ -61,6 +66,8 @@
context of a connection).</para>
<informaltable frame="all">
<tgroup cols="3">
+ <colspec colwidth=".6*" />
+ <colspec colwidth=".4*" />
<thead>
<row>
<entry>
@@ -110,6 +117,8 @@
</para>
<informaltable frame="all">
<tgroup cols="3">
+ <colspec colwidth=".6*" />
+ <colspec colwidth=".4*" />
<thead>
<row>
<entry>
@@ -214,7 +223,9 @@
metamodel extensions are being used.</para>
<informaltable frame="all">
<tgroup cols="3">
- <thead>
+ <colspec colwidth=".6*" />
+ <colspec colwidth=".4*" />
+ <thead>
<row>
<entry>
<para>Column Name</para>
@@ -286,6 +297,8 @@
views, documents, etc) in the virtual database.</para>
<informaltable frame="all">
<tgroup cols="3">
+ <colspec colwidth=".6*" />
+ <colspec colwidth=".4*" />
<thead>
<row>
<entry>
@@ -443,6 +456,8 @@
<para>This table supplies information about all the materailized views in the
virtual database.</para>
<informaltable frame="all">
<tgroup cols="3">
+ <colspec colwidth=".6*" />
+ <colspec colwidth=".4*" />
<thead>
<row>
<entry>
@@ -566,6 +581,8 @@
(columns, tags, attributes, etc) in the virtual database.</para>
<informaltable frame="all">
<tgroup cols="3">
+ <colspec colwidth=".6*" />
+ <colspec colwidth=".4*" />
<thead>
<row>
<entry>
@@ -958,10 +975,11 @@
<section>
<title>SYS.Keys</title>
<para>This table supplies information about primary, foreign,
- and
- unique keys.</para>
+ and unique keys.</para>
<informaltable frame="all">
<tgroup cols="3">
+ <colspec colwidth=".6*" />
+ <colspec colwidth=".4*" />
<thead>
<row>
<entry>
@@ -1106,10 +1124,11 @@
<section>
<title>SYS.KeyColumns</title>
<para>This table supplies information about the columns
- referenced by
- a key.</para>
+ referenced by a key.</para>
<informaltable frame="all">
<tgroup cols="3">
+ <colspec colwidth=".6*" />
+ <colspec colwidth=".4*" />
<thead>
<row>
<entry>
@@ -1241,16 +1260,15 @@
</section>
</section>
<section>
- <title>
- Procedure Metadata
- </title>
+ <title>Procedure Metadata</title>
<section>
<title>SYS.Procedures</title>
<para>This table supplies information about the procedures in
- the
- virtual database.</para>
+ the virtual database.</para>
<informaltable frame="all">
<tgroup cols="3">
+ <colspec colwidth=".6*" />
+ <colspec colwidth=".4*" />
<thead>
<row>
<entry>
@@ -1363,6 +1381,8 @@
</para>
<informaltable frame="all">
<tgroup cols="3">
+ <colspec colwidth=".6*" />
+ <colspec colwidth=".4*" />
<thead>
<row>
<entry>
@@ -1536,11 +1556,12 @@
<title>SYS.DataTypes</title>
<para>
This table supplies information on
- <link linkend="datatypes">datatypes</link>
- .
+ <link linkend="datatypes">datatypes</link>.
</para>
<informaltable frame="all">
<tgroup cols="3">
+ <colspec colwidth=".6*" />
+ <colspec colwidth=".4*" />
<thead>
<row>
<entry>
@@ -1774,87 +1795,52 @@
</section>
</section>
<warning>
- <para>OID column is is guranteed to be unique only for given version of the
VDB. If the VDB is updated and a different version of
- the VDB is deployed, these IDs are not guranteed to be unique across both
versions of VDB. UID is unique across different versions
- only if the VDB is generated from Designer and metadata from old models are
used(i.e. no re-importing from sources).
- UID column in a Dynamic VDB behaves same as OID column.</para>
+ <para>The OID column is is guranteed to be unique/consistent only for given
version running instance of a VDB. If a different version of
+ the VDB is deployed, these IDs are not guranteed to be the same or unique
across both versions of the VDB. Dynamic VDB OIDs are not cluster safe.</para>
</warning>
</section>
<section id="system_procedures">
<title>System Procedures</title>
- <informaltable frame="all">
- <tgroup cols="3">
- <thead>
- <row>
- <entry>
- <para>Procedure</para>
- </entry>
- <entry>
- <para>Parameters</para>
- </entry>
- <entry>
- <para>Description</para>
- </entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>
- <para>SYS.getXMLSchemas</para>
- </entry>
- <entry>
- <para>(in string document)</para>
- </entry>
- <entry>
- <para>Returns a resultset with a single column, schema, containing the
schemas as clobs.</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>SYSADMIN.refreshMatView</para>
- </entry>
- <entry>
- <para>(in string ViewName, in boolean Invalidate)</para>
- </entry>
- <entry>
- <para>Returns integer RowsUpdated. -1 indicates a load is in progress,
otherwise the cardinality of the table is returned. See the Caching Guide for
more.</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>SYSADMIN.refreshMatViewRow</para>
- </entry>
- <entry>
- <para>(in string ViewName, in object Key)</para>
- </entry>
- <entry>
- <para>Returns integer RowsUpdated. -1 indicates the materialized table is
currently invalid. 0 indicates that the specified row did not exist in the live data query
or in the materialized table. See the Caching Guide for more.</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>SYSADMIN.setTableStats</para>
- </entry>
- <entry>
- <para>(in string TableName, in integer Cardinality)</para>
- </entry>
- <entry>
- <para>Set statistics for the given table. A
<code>MetadataRepository</code> must be configured to make the update
persistent.</para>
- </entry>
- </row>
- <row>
- <entry>
- <para>SYSADMIN.setColumnStats</para>
- </entry>
- <entry>
- <para>(in string TableName, in string ColumnName, in integer DistinctCount,
in integer NullCount, in string Max, in string Min)</para>
- </entry>
- <entry>
- <para>Set statistics for the given column. A
<code>MetadataRepository</code> must be configured to make the update
persistent.</para>
- </entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
+ <section>
+ <title>SYS.getXMLSchemas</title>
+ <para>Returns a resultset with a single column, schema, containing the schemas
as clobs.</para>
+ <para><synopsis>SYS.getXMLSchemas(in string
document)</synopsis></para>
+ </section>
+ <section>
+ <title>SYSADMIN.refreshMatView</title>
+ <para>Returns integer RowsUpdated. -1 indicates a load is in progress,
otherwise the cardinality of the table is returned. See the Caching Guide for
more.</para>
+ <para><synopsis>SYSADMIN.refreshMatView(return integer RowsUpdated,
in string ViewName, in boolean Invalidate)</synopsis></para>
+ </section>
+ <section>
+ <title>SYSADMIN.refreshMatViewRow</title>
+ <para>Returns integer RowsUpdated. -1 indicates the materialized table is
currently invalid. 0 indicates that the specified row did not exist in the live data query
or in the materialized table. See the Caching Guide for more.</para>
+ <para><synopsis>SYSADMIN.refreshMatViewRow(return integer
RowsUpdated, in string ViewName, in object Key)</synopsis></para>
+ </section>
+ <section>
+ <title>Metadata Procedures</title>
+ &metadata-update-note;
+ <section>
+ <title>SYSADMIN.setTableStats</title>
+ <para>Set statistics for the given table.</para>
+ <para><synopsis>SYSADMIN.setTableStats(in string TableName, in
integer Cardinality)</synopsis></para>
+ </section>
+ <section>
+ <title>SYSADMIN.setColumnStats</title>
+ <para>Set statistics for the given column.</para>
+ <para><synopsis>SYSADMIN.setColumnStats(in string TableName, in
string ColumnName, in integer DistinctCount, in integer NullCount, in string Max, in
string Min)</synopsis></para>
+ <para>Passing a null stat value will leave corresponding metadata value
unchanged.</para>
+ </section>
+ <section>
+ <title>SYSADMIN.setProperty</title>
+ <para>Set an extension metadata property for the given record. Extension
metadata is typically used by <xref linkend="translators"/>.</para>
+ <para><synopsis>SYSADMIN.setProperty(return clob OldValue, in string
Uid, in string Name, in clob Value)</synopsis></para>
+ <para>Setting a value to null will remove the property.</para>
+ <example lang="sql">
+ <title>Example Property Set</title>
+ <programlisting>CALL SYSADMIN.setProperty(uid=>(SELECT uid FROM TABLES
WHERE name='tab'), name=>'some name', value=>'some
value')</programlisting>
+ <para>This will set the property 'some name'='some value'
on table tab.</para>
+ </example>
+ </section>
+ </section>
</section>
</chapter>
\ No newline at end of file
Modified: trunk/engine/src/main/java/org/teiid/cache/CacheConfiguration.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/cache/CacheConfiguration.java 2011-04-29 18:34:21
UTC (rev 3133)
+++ trunk/engine/src/main/java/org/teiid/cache/CacheConfiguration.java 2011-05-02 17:02:28
UTC (rev 3134)
@@ -44,7 +44,7 @@
private String name;
private String location;
- private int maxStaleness = -1;
+ private int maxStaleness = 0;
public CacheConfiguration() {
}
Modified:
trunk/engine/src/main/java/org/teiid/dqp/internal/process/DataTierManagerImpl.java
===================================================================
---
trunk/engine/src/main/java/org/teiid/dqp/internal/process/DataTierManagerImpl.java 2011-04-29
18:34:21 UTC (rev 3133)
+++
trunk/engine/src/main/java/org/teiid/dqp/internal/process/DataTierManagerImpl.java 2011-05-02
17:02:28 UTC (rev 3134)
@@ -22,7 +22,10 @@
package org.teiid.dqp.internal.process;
+import java.io.IOException;
+import java.sql.Clob;
import java.sql.DatabaseMetaData;
+import java.sql.SQLException;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Arrays;
@@ -31,6 +34,8 @@
import java.util.List;
import java.util.Map;
+import javax.sql.rowset.serial.SerialClob;
+
import org.teiid.adminapi.impl.ModelMetaData;
import org.teiid.adminapi.impl.VDBMetaData;
import org.teiid.api.exception.query.QueryMetadataException;
@@ -42,9 +47,11 @@
import org.teiid.core.TeiidComponentException;
import org.teiid.core.TeiidProcessingException;
import org.teiid.core.types.BlobType;
+import org.teiid.core.types.ClobType;
import org.teiid.core.types.SQLXMLImpl;
import org.teiid.core.types.XMLType;
import org.teiid.core.util.Assertion;
+import org.teiid.core.util.ObjectConverterUtil;
import org.teiid.core.util.StringUtil;
import org.teiid.dqp.internal.datamgr.ConnectorManager;
import org.teiid.dqp.internal.datamgr.ConnectorManagerRepository;
@@ -88,6 +95,8 @@
*/
public class DataTierManagerImpl implements ProcessorDataManager {
+ private static final int MAX_VALUE_LENGTH = 1 << 21;
+
private enum SystemTables {
VIRTUALDATABASES,
SCHEMAS,
@@ -109,7 +118,8 @@
private enum SystemAdminProcs {
SETTABLESTATS,
- SETCOLUMNSTATS
+ SETCOLUMNSTATS,
+ SETPROPERTY
}
private enum SystemProcs {
@@ -141,6 +151,10 @@
return eventDistributor;
}
+ public MetadataRepository getMetadataRepository() {
+ return metadataRepository;
+ }
+
public void setMetadataRepository(MetadataRepository metadataRepository) {
this.metadataRepository = metadataRepository;
}
@@ -271,27 +285,19 @@
}
break;
case PROPERTIES: //TODO: consider storing separately in the metadatastore
- Collection<AbstractMetadataRecord> records = new
LinkedHashSet<AbstractMetadataRecord>();
- records.addAll(metadata.getDatatypes());
- for (Schema schema : getVisibleSchemas(vdb, metadata)) {
- records.add(schema);
- records.addAll(schema.getTables().values());
- for (Table table : schema.getTables().values()) {
- records.add(table);
- records.addAll(table.getColumns());
- records.addAll(table.getAllKeys());
- }
- for (Procedure proc : schema.getProcedures().values()) {
- records.add(proc);
- records.addAll(proc.getParameters());
- if (proc.getResultSet() != null) {
- records.addAll(proc.getResultSet().getColumns());
- }
- }
- }
+ Collection<AbstractMetadataRecord> records = getAllPropertiedObjects(metadata,
getVisibleSchemas(vdb, metadata));
for (AbstractMetadataRecord record : records) {
for (Map.Entry<String, String> entry : record.getProperties().entrySet()) {
- rows.add(Arrays.asList(entry.getKey(), entry.getValue(), record.getUUID(),
oid++));
+ String value = entry.getValue();
+ Clob clobValue = null;
+ if (value != null) {
+ try {
+ clobValue = new ClobType(new SerialClob(value.toCharArray()));
+ } catch (SQLException e) {
+ throw new TeiidProcessingException(e);
+ }
+ }
+ rows.add(Arrays.asList(entry.getKey(), entry.getValue(), record.getUUID(), oid++,
clobValue));
}
}
break;
@@ -348,6 +354,48 @@
StoredProcedure proc = (StoredProcedure)command;
if (StringUtil.startsWithIgnoreCase(proc.getProcedureCallableName(),
CoreConstants.SYSTEM_ADMIN_MODEL)) {
final SystemAdminProcs sysProc =
SystemAdminProcs.valueOf(proc.getProcedureCallableName().substring(CoreConstants.SYSTEM_ADMIN_MODEL.length()
+ 1).toUpperCase());
+ switch (sysProc) {
+ case SETPROPERTY:
+ try {
+ String uuid = (String)((Constant)proc.getParameter(2).getExpression()).getValue();
+ String key = (String)((Constant)proc.getParameter(3).getExpression()).getValue();
+ Clob value = (Clob)((Constant)proc.getParameter(4).getExpression()).getValue();
+ String strVal = null;
+ String result = null;
+ if (value != null) {
+ if (value.length() > MAX_VALUE_LENGTH) {
+ throw new
TeiidProcessingException(QueryPlugin.Util.getString("DataTierManagerImpl.max_value_length",
MAX_VALUE_LENGTH)); //$NON-NLS-1$
+ }
+ strVal = ObjectConverterUtil.convertToString(value.getCharacterStream());
+ }
+ AbstractMetadataRecord target = getByUuid(metadata, uuid);
+ if (target == null) {
+ throw new
TeiidProcessingException(QueryPlugin.Util.getString("DataTierManagerImpl.unknown_uuid",
uuid)); //$NON-NLS-1$
+ }
+ if (value == null) {
+ result = target.setProperty(key, null);
+ } else {
+ strVal = ObjectConverterUtil.convertToString(value.getCharacterStream());
+ result = target.setProperty(key, strVal);
+ }
+ if (eventDistributor != null) {
+ eventDistributor.setProperty(vdbName, vdbVersion, uuid, key, strVal);
+ }
+ if (this.metadataRepository != null) {
+ this.metadataRepository.setProperty(vdbName, vdbVersion, target, key, strVal);
+ }
+ if (result == null) {
+ rows.add(Arrays.asList((Clob)null));
+ } else {
+ rows.add(Arrays.asList(new ClobType(new SerialClob(result.toCharArray()))));
+ }
+ return new CollectionTupleSource(rows.iterator());
+ } catch (SQLException e) {
+ throw new TeiidProcessingException(e);
+ } catch (IOException e) {
+ throw new TeiidProcessingException(e);
+ }
+ }
Table table =
indexMetadata.getGroupID((String)((Constant)proc.getParameter(1).getExpression()).getValue());
switch (sysProc) {
case SETCOLUMNSTATS:
@@ -424,6 +472,38 @@
}
return new CollectionTupleSource(rows.iterator());
}
+
+ //TODO: do better than a linear search
+ public static AbstractMetadataRecord getByUuid(CompositeMetadataStore metadata,
+ String uuid) {
+ for (AbstractMetadataRecord object : getAllPropertiedObjects(metadata,
metadata.getSchemas().values())) {
+ if (object.getUUID().equals(uuid)) {
+ return object;
+ }
+ }
+ return null;
+ }
+
+ public static Collection<AbstractMetadataRecord>
getAllPropertiedObjects(CompositeMetadataStore metadata, Collection<Schema> schemas)
{
+ Collection<AbstractMetadataRecord> records = new
LinkedHashSet<AbstractMetadataRecord>();
+ records.addAll(metadata.getDatatypes());
+ for (Schema schema : schemas) {
+ records.add(schema);
+ for (Table table : schema.getTables().values()) {
+ records.add(table);
+ records.addAll(table.getColumns());
+ records.addAll(table.getAllKeys());
+ }
+ for (Procedure proc : schema.getProcedures().values()) {
+ records.add(proc);
+ records.addAll(proc.getParameters());
+ if (proc.getResultSet() != null) {
+ records.addAll(proc.getResultSet().getColumns());
+ }
+ }
+ }
+ return records;
+ }
private List<Schema> getVisibleSchemas(VDBMetaData vdb, CompositeMetadataStore
metadata) {
ArrayList<Schema> result = new ArrayList<Schema>();
Modified: trunk/engine/src/main/java/org/teiid/dqp/internal/process/Request.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/dqp/internal/process/Request.java 2011-04-29
18:34:21 UTC (rev 3133)
+++ trunk/engine/src/main/java/org/teiid/dqp/internal/process/Request.java 2011-05-02
17:02:28 UTC (rev 3134)
@@ -64,7 +64,6 @@
import org.teiid.query.metadata.QueryMetadataInterface;
import org.teiid.query.metadata.TempCapabilitiesFinder;
import org.teiid.query.metadata.TempMetadataAdapter;
-import org.teiid.query.metadata.TempMetadataStore;
import org.teiid.query.optimizer.QueryOptimizer;
import org.teiid.query.optimizer.capabilities.CapabilitiesFinder;
import org.teiid.query.parser.ParseInfo;
@@ -201,7 +200,7 @@
this.metadata = new MultiSourceMetadataWrapper(this.metadata,
this.multiSourceModels);
}
- TempMetadataAdapter tma = new TempMetadataAdapter(metadata, new
TempMetadataStore());
+ TempMetadataAdapter tma = new TempMetadataAdapter(metadata,
this.tempTableStore.getMetadataStore());
tma.setSession(true);
this.metadata = tma;
}
@@ -279,9 +278,6 @@
}
protected void resolveCommand(Command command) throws QueryResolverException,
TeiidComponentException {
- if (this.tempTableStore != null) {
- QueryResolver.setChildMetadata(command,
tempTableStore.getMetadataStore().getData(), null);
- }
//ensure that the user command is distinct from the processing command
//rewrite and planning may alter options, symbols, etc.
QueryResolver.resolveCommand(command, metadata);
Modified: trunk/engine/src/main/java/org/teiid/query/metadata/TransformationMetadata.java
===================================================================
---
trunk/engine/src/main/java/org/teiid/query/metadata/TransformationMetadata.java 2011-04-29
18:34:21 UTC (rev 3133)
+++
trunk/engine/src/main/java/org/teiid/query/metadata/TransformationMetadata.java 2011-05-02
17:02:28 UTC (rev 3134)
@@ -78,6 +78,18 @@
*/
public class TransformationMetadata extends BasicQueryMetadata implements Serializable {
+ private final class LiveQueryNode extends QueryNode {
+ Procedure p;
+ private LiveQueryNode(Procedure p) {
+ super(null);
+ this.p = p;
+ }
+
+ public String getQuery() {
+ return p.getQueryPlan();
+ }
+ }
+
private final class VirtualFileInputStreamFactory extends
InputStreamFactory {
private final VirtualFile f;
@@ -330,7 +342,7 @@
// if this is a virtual procedure get the procedure plan
if(procRecord.isVirtual()) {
- QueryNode queryNode = new QueryNode(procRecord.getQueryPlan());
+ QueryNode queryNode = new LiveQueryNode(procRecord);
procInfo.setQueryPlan(queryNode);
}
@@ -464,7 +476,7 @@
if (!tableRecordImpl.isVirtual()) {
throw new
QueryMetadataException(QueryPlugin.Util.getString("TransformationMetadata.InsertPlan_could_not_be_found_for_physical_group__8")+tableRecordImpl.getFullName());
//$NON-NLS-1$
}
- return ((Table)groupID).getInsertPlan();
+ return
tableRecordImpl.isInsertPlanEnabled()?tableRecordImpl.getInsertPlan():null;
}
public String getUpdatePlan(final Object groupID) throws TeiidComponentException,
QueryMetadataException {
@@ -473,7 +485,7 @@
if (!tableRecordImpl.isVirtual()) {
throw new
QueryMetadataException(QueryPlugin.Util.getString("TransformationMetadata.InsertPlan_could_not_be_found_for_physical_group__10")+tableRecordImpl.getFullName());
//$NON-NLS-1$
}
- return ((Table)groupID).getUpdatePlan();
+ return
tableRecordImpl.isUpdatePlanEnabled()?tableRecordImpl.getUpdatePlan():null;
}
public String getDeletePlan(final Object groupID) throws TeiidComponentException,
QueryMetadataException {
@@ -482,7 +494,7 @@
if (!tableRecordImpl.isVirtual()) {
throw new
QueryMetadataException(QueryPlugin.Util.getString("TransformationMetadata.DeletePlan_could_not_be_found_for_physical_group__12")+tableRecordImpl.getFullName());
//$NON-NLS-1$
}
- return ((Table)groupID).getDeletePlan();
+ return
tableRecordImpl.isDeletePlanEnabled()?tableRecordImpl.getDeletePlan():null;
}
public boolean modelSupports(final Object modelID, final int modelConstant)
@@ -1035,8 +1047,7 @@
}
@Override
- public Object addToMetadataCache(Object metadataID, String key, Object value)
- throws TeiidComponentException, QueryMetadataException {
+ public Object addToMetadataCache(Object metadataID, String key, Object value) {
ArgCheck.isInstanceOf(AbstractMetadataRecord.class, metadataID);
boolean groupInfo = key.startsWith(GroupInfo.CACHE_PREFIX);
key = getCacheKey(key, (AbstractMetadataRecord)metadataID);
Added: trunk/engine/src/main/java/org/teiid/query/optimizer/DdlPlanner.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/optimizer/DdlPlanner.java
(rev 0)
+++ trunk/engine/src/main/java/org/teiid/query/optimizer/DdlPlanner.java 2011-05-02
17:02:28 UTC (rev 3134)
@@ -0,0 +1,48 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership. Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301 USA.
+ */
+
+package org.teiid.query.optimizer;
+
+import org.teiid.api.exception.query.QueryMetadataException;
+import org.teiid.api.exception.query.QueryPlannerException;
+import org.teiid.core.TeiidComponentException;
+import org.teiid.core.id.IDGenerator;
+import org.teiid.query.analysis.AnalysisRecord;
+import org.teiid.query.metadata.QueryMetadataInterface;
+import org.teiid.query.optimizer.capabilities.CapabilitiesFinder;
+import org.teiid.query.processor.DdlPlan;
+import org.teiid.query.processor.ProcessorPlan;
+import org.teiid.query.sql.lang.Command;
+import org.teiid.query.util.CommandContext;
+
+public class DdlPlanner implements CommandPlanner {
+
+ @Override
+ public ProcessorPlan optimize(Command command, IDGenerator idGenerator,
+ QueryMetadataInterface metadata, CapabilitiesFinder capFinder,
+ AnalysisRecord analysisRecord, CommandContext context)
+ throws QueryPlannerException, QueryMetadataException,
+ TeiidComponentException {
+ return new DdlPlan(command);
+ }
+
+}
Property changes on: trunk/engine/src/main/java/org/teiid/query/optimizer/DdlPlanner.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified: trunk/engine/src/main/java/org/teiid/query/optimizer/QueryOptimizer.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/optimizer/QueryOptimizer.java 2011-04-29
18:34:21 UTC (rev 3133)
+++ trunk/engine/src/main/java/org/teiid/query/optimizer/QueryOptimizer.java 2011-05-02
17:02:28 UTC (rev 3134)
@@ -72,6 +72,7 @@
private static final CommandPlanner XML_PLANNER = new XMLPlanner();
private static final CommandPlanner PROCEDURE_PLANNER = new ProcedurePlanner();
private static final CommandPlanner BATCHED_UPDATE_PLANNER = new
BatchedUpdatePlanner();
+ private static final CommandPlanner DDL_PLANNER = new DdlPlanner();
// Can't construct
private QueryOptimizer() {}
@@ -109,18 +110,28 @@
ProcessorPlan result = null;
- if (command.getType() == Command.TYPE_UPDATE_PROCEDURE){
+ switch (command.getType()) {
+ case Command.TYPE_UPDATE_PROCEDURE:
CreateUpdateProcedureCommand cupc = (CreateUpdateProcedureCommand)command;
if (cupc.isUpdateProcedure()) {
result = planProcedure(command, metadata, idGenerator, capFinder, analysisRecord,
context);
} else {
- String fullName = metadata.getFullName(cupc.getVirtualGroup().getMetadataID());
+ StoredProcedure c = (StoredProcedure)cupc.getUserCommand();
+ Object pid = cupc.getVirtualGroup().getMetadataID();
+ if (c != null) {
+ pid = c.getProcedureID();
+ }
+ String fullName = metadata.getFullName(pid);
+ fullName = "procedure cache:" + fullName; //$NON-NLS-1$
PreparedPlan pp = context.getPlan(fullName);
if (pp == null) {
Determinism determinismLevel = context.resetDeterminismLevel();
CommandContext clone = context.clone();
ProcessorPlan plan = planProcedure(command, metadata, idGenerator, capFinder,
analysisRecord, clone);
//note that this is not a full prepared plan. It is not usable by user queries.
+ if (pid instanceof Procedure) {
+ clone.accessedProcedure((Procedure)pid);
+ }
pp = new PreparedPlan();
pp.setPlan(plan, clone);
context.putPlan(fullName, pp, context.getDeterminismLevel());
@@ -166,9 +177,16 @@
plan.setImplicitParams(((TranslatableProcedureContainer)container).getImplicitParams());
}
}
- } else if (command.getType() == Command.TYPE_BATCHED_UPDATE){
- result = BATCHED_UPDATE_PLANNER.optimize(command, idGenerator, metadata,
capFinder, analysisRecord, context);
- } else {
+ break;
+ case Command.TYPE_BATCHED_UPDATE:
+ result = BATCHED_UPDATE_PLANNER.optimize(command, idGenerator, metadata, capFinder,
analysisRecord, context);
+ break;
+ case Command.TYPE_ALTER_PROC:
+ case Command.TYPE_ALTER_TRIGGER:
+ case Command.TYPE_ALTER_VIEW:
+ result = DDL_PLANNER.optimize(command, idGenerator, metadata, capFinder,
analysisRecord, context);
+ break;
+ default:
try {
if (command.getType() == Command.TYPE_QUERY && command instanceof Query
&& QueryResolver.isXMLQuery((Query)command, metadata)) {
result = XML_PLANNER.optimize(command, idGenerator, metadata, capFinder,
analysisRecord, context);
Modified:
trunk/engine/src/main/java/org/teiid/query/optimizer/relational/RelationalPlanner.java
===================================================================
---
trunk/engine/src/main/java/org/teiid/query/optimizer/relational/RelationalPlanner.java 2011-04-29
18:34:21 UTC (rev 3133)
+++
trunk/engine/src/main/java/org/teiid/query/optimizer/relational/RelationalPlanner.java 2011-05-02
17:02:28 UTC (rev 3134)
@@ -41,6 +41,7 @@
import org.teiid.core.id.IDGenerator;
import org.teiid.dqp.internal.process.Request;
import org.teiid.language.SQLConstants;
+import org.teiid.metadata.Procedure;
import org.teiid.metadata.Table;
import org.teiid.query.QueryPlugin;
import org.teiid.query.analysis.AnalysisRecord;
@@ -535,7 +536,7 @@
boolean usingTriggerAction = false;
if (command instanceof ProcedureContainer) {
ProcedureContainer container = (ProcedureContainer)command;
- usingTriggerAction = addNestedProcedure(sourceNode, container);
+ usingTriggerAction = addNestedProcedure(sourceNode, container,
container.getGroup().getMetadataID());
}
sourceNode.addGroups(groups);
@@ -556,15 +557,15 @@
}
private boolean addNestedProcedure(PlanNode sourceNode,
- ProcedureContainer container) throws TeiidComponentException,
+ ProcedureContainer container, Object metadataId) throws TeiidComponentException,
QueryMetadataException, TeiidProcessingException {
- String cacheString = "transformation/" +
container.getClass().getSimpleName(); //$NON-NLS-1$
- Command c =
(Command)metadata.getFromMetadataCache(container.getGroup().getMetadataID(),
cacheString);
+ String cacheString = "transformation/" +
container.getClass().getSimpleName().toUpperCase(); //$NON-NLS-1$
+ Command c = (Command)metadata.getFromMetadataCache(metadataId, cacheString);
if (c == null) {
c = QueryResolver.expandCommand(container, metadata, analysisRecord);
if (c != null) {
Request.validateWithVisitor(new ValidationVisitor(), metadata, c);
- metadata.addToMetadataCache(container.getGroup().getMetadataID(), cacheString,
c.clone());
+ metadata.addToMetadataCache(metadataId, cacheString, c.clone());
}
} else {
c = (Command)c.clone();
@@ -598,6 +599,12 @@
//skip the rewrite here, we'll do that in the optimizer
//so that we know what the determinism level is.
addNestedCommand(sourceNode, container.getGroup(), container, c, false);
+ if (container instanceof StoredProcedure) {
+ StoredProcedure sp = (StoredProcedure)container;
+ if (sp.getProcedureID() instanceof Procedure) {
+ context.accessedProcedure((Procedure)sp.getProcedureID());
+ }
+ }
} else if (!container.getGroup().isTempTable() && //we hope for the best, and
do a specific validation for subqueries below
container instanceof TranslatableProcedureContainer //we force the evaluation of
procedure params - TODO: inserts are fine except for nonpushdown functions on columns
&& !CriteriaCapabilityValidatorVisitor.canPushLanguageObject(container,
metadata.getModelID(container.getGroup().getMetadataID()), metadata, capFinder,
analysisRecord)) {
@@ -653,7 +660,7 @@
// Define source of data for stored query / procedure
PlanNode sourceNode = NodeFactory.getNewNode(NodeConstants.Types.SOURCE);
sourceNode.setProperty(NodeConstants.Info.VIRTUAL_COMMAND, storedProc);
- addNestedProcedure(sourceNode, storedProc);
+ addNestedProcedure(sourceNode, storedProc, storedProc.getProcedureID());
hints.hasRelationalProc |= storedProc.isProcedureRelational();
Added: trunk/engine/src/main/java/org/teiid/query/processor/DdlPlan.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/processor/DdlPlan.java
(rev 0)
+++ trunk/engine/src/main/java/org/teiid/query/processor/DdlPlan.java 2011-05-02 17:02:28
UTC (rev 3134)
@@ -0,0 +1,234 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership. Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301 USA.
+ */
+
+package org.teiid.query.processor;
+
+import static org.teiid.query.analysis.AnalysisRecord.*;
+
+import java.util.Arrays;
+import java.util.List;
+
+import org.teiid.adminapi.impl.VDBMetaData;
+import org.teiid.client.plan.PlanNode;
+import org.teiid.common.buffer.BlockedException;
+import org.teiid.common.buffer.BufferManager;
+import org.teiid.common.buffer.TupleBatch;
+import org.teiid.core.TeiidComponentException;
+import org.teiid.core.TeiidProcessingException;
+import org.teiid.core.TeiidRuntimeException;
+import org.teiid.dqp.internal.process.DQPWorkContext;
+import org.teiid.language.SQLConstants;
+import org.teiid.metadata.Procedure;
+import org.teiid.metadata.Table;
+import org.teiid.metadata.Table.TriggerEvent;
+import org.teiid.query.QueryPlugin;
+import org.teiid.query.metadata.TransformationMetadata;
+import org.teiid.query.sql.LanguageVisitor;
+import org.teiid.query.sql.lang.AlterProcedure;
+import org.teiid.query.sql.lang.AlterTrigger;
+import org.teiid.query.sql.lang.AlterView;
+import org.teiid.query.sql.lang.Command;
+import org.teiid.query.sql.lang.StoredProcedure;
+import org.teiid.query.sql.symbol.GroupSymbol;
+import org.teiid.query.util.CommandContext;
+
+public class DdlPlan extends ProcessorPlan {
+
+ class AlterProcessor extends LanguageVisitor {
+ DQPWorkContext workContext = DQPWorkContext.getWorkContext();
+
+ @Override
+ public void visit(AlterView obj) {
+ VDBMetaData vdb = workContext.getVDB();
+ Table t = (Table)obj.getTarget().getMetadataID();
+ String sql = obj.getDefinition().toString();
+ alterView(vdb, t, sql);
+ if (pdm.getEventDistributor() != null) {
+ pdm.getEventDistributor().setViewDefinition(workContext.getVdbName(),
workContext.getVdbVersion(), t.getParent().getName(), t.getName(), sql);
+ }
+ if (pdm.getMetadataRepository() != null) {
+ pdm.getMetadataRepository().setViewDefinition(workContext.getVdbName(),
workContext.getVdbVersion(), t, sql);
+ }
+ }
+
+ @Override
+ public void visit(AlterProcedure obj) {
+ VDBMetaData vdb = workContext.getVDB();
+ Procedure p = (Procedure)obj.getTarget().getMetadataID();
+ String sql = obj.getDefinition().toString();
+ alterProcedureDefinition(vdb, p, sql);
+ if (pdm.getEventDistributor() != null) {
+ pdm.getEventDistributor().setProcedureDefinition(workContext.getVdbName(),
workContext.getVdbVersion(), p.getParent().getName(), p.getName(), sql);
+ }
+ if (pdm.getMetadataRepository() != null) {
+ pdm.getMetadataRepository().setProcedureDefinition(workContext.getVdbName(),
workContext.getVdbVersion(), p, sql);
+ }
+ }
+
+ @Override
+ public void visit(AlterTrigger obj) {
+ VDBMetaData vdb = workContext.getVDB();
+ Table t = (Table)obj.getTarget().getMetadataID();
+ String sql = null;
+ TriggerEvent event = obj.getEvent();
+ if (obj.getEnabled() == null) {
+ if (obj.isCreate()) {
+ if (getPlanForEvent(t, event) != null) {
+ throw new TeiidRuntimeException(new
TeiidProcessingException(QueryPlugin.Util.getString("DdlPlan.event_already_exists",
t.getName(), obj.getEvent()))); //$NON-NLS-1$
+ }
+ } else if (getPlanForEvent(t, event) == null) {
+ throw new TeiidRuntimeException(new
TeiidProcessingException(QueryPlugin.Util.getString("DdlPlan.event_not_exists",
t.getName(), obj.getEvent()))); //$NON-NLS-1$
+ }
+ sql = obj.getDefinition().toString();
+ } else if (getPlanForEvent(t, event) == null) {
+ throw new TeiidRuntimeException(new
TeiidProcessingException(QueryPlugin.Util.getString("DdlPlan.event_not_exists",
t.getName(), obj.getEvent()))); //$NON-NLS-1$
+ }
+ alterInsteadOfTrigger(vdb, t, sql, obj.getEnabled(), event);
+ if (pdm.getEventDistributor() != null) {
+ pdm.getEventDistributor().setInsteadOfTriggerDefinition(workContext.getVdbName(),
workContext.getVdbVersion(), t.getParent().getName(), t.getName(), obj.getEvent(), sql,
obj.getEnabled());
+ }
+ if (pdm.getMetadataRepository() != null) {
+ if (sql != null) {
+ pdm.getMetadataRepository().setInsteadOfTriggerDefinition(workContext.getVdbName(),
workContext.getVdbVersion(), t, obj.getEvent(), sql);
+ } else {
+ pdm.getMetadataRepository().setInsteadOfTriggerEnabled(workContext.getVdbName(),
workContext.getVdbVersion(), t, obj.getEvent(), obj.getEnabled());
+ }
+ }
+ }
+ }
+
+ public static void alterView(VDBMetaData vdb, Table t, String sql) {
+ t.setSelectTransformation(sql);
+ t.setLastModified(System.currentTimeMillis());
+ TransformationMetadata indexMetadata =
vdb.getAttachment(TransformationMetadata.class);
+ indexMetadata.addToMetadataCache(t,
"transformation/"+SQLConstants.Reserved.SELECT, null); //$NON-NLS-1$
+ }
+
+ public static void alterProcedureDefinition(VDBMetaData vdb, Procedure p, String sql) {
+ p.setQueryPlan(sql);
+ p.setLastModified(System.currentTimeMillis());
+ TransformationMetadata indexMetadata =
vdb.getAttachment(TransformationMetadata.class);
+ indexMetadata.addToMetadataCache(p,
"transformation/"+StoredProcedure.class.getSimpleName().toUpperCase(), null);
//$NON-NLS-1$
+ }
+
+ public static void alterInsteadOfTrigger(VDBMetaData vdb, Table t,
+ String sql, Boolean enabled, TriggerEvent event) {
+ switch (event) {
+ case DELETE:
+ if (sql != null) {
+ t.setDeletePlan(sql);
+ } else {
+ t.setDeletePlanEnabled(enabled);
+ }
+ break;
+ case INSERT:
+ if (sql != null) {
+ t.setInsertPlan(sql);
+ } else {
+ t.setInsertPlanEnabled(enabled);
+ }
+ break;
+ case UPDATE:
+ if (sql != null) {
+ t.setUpdatePlan(sql);
+ } else {
+ t.setUpdatePlanEnabled(enabled);
+ }
+ break;
+ }
+ TransformationMetadata indexMetadata =
vdb.getAttachment(TransformationMetadata.class);
+ indexMetadata.addToMetadataCache(t, "transformation/"+event, null);
//$NON-NLS-1$
+ t.setLastModified(System.currentTimeMillis());
+ }
+
+ private static String getPlanForEvent(Table t, TriggerEvent event) {
+ switch (event) {
+ case DELETE:
+ return t.getDeletePlan();
+ case INSERT:
+ return t.getInsertPlan();
+ case UPDATE:
+ return t.getUpdatePlan();
+ }
+ throw new AssertionError();
+ }
+
+ private Command command;
+ private ProcessorDataManager pdm;
+
+ public DdlPlan(Command command) {
+ this.command = command;
+ }
+
+ @Override
+ public ProcessorPlan clone() {
+ return new DdlPlan(command);
+ }
+
+ @Override
+ public void close() throws TeiidComponentException {
+ }
+
+ @Override
+ public List getOutputElements() {
+ return command.getProjectedSymbols();
+ }
+
+ @Override
+ public void initialize(CommandContext context,
+ ProcessorDataManager dataMgr, BufferManager bufferMgr) {
+ this.setContext(context);
+ this.pdm = dataMgr;
+ }
+
+ @Override
+ public TupleBatch nextBatch() throws BlockedException,
+ TeiidComponentException, TeiidProcessingException {
+ TupleBatch tupleBatch = new TupleBatch(1, new List[] {Arrays.asList(0)});
+ tupleBatch.setTerminationFlag(true);
+ return tupleBatch;
+ }
+
+ @Override
+ public void open() throws TeiidComponentException, TeiidProcessingException {
+ AlterProcessor ap = new AlterProcessor();
+ ap.workContext = DQPWorkContext.getWorkContext();
+ try {
+ command.acceptVisitor(ap);
+ } catch (TeiidRuntimeException e) {
+ throw (TeiidProcessingException)e.getCause();
+ }
+ }
+
+ @Override
+ public PlanNode getDescriptionProperties() {
+ PlanNode props = super.getDescriptionProperties();
+ props.addProperty(PROP_SQL, this.command.toString());
+ return props;
+ }
+
+ @Override
+ public void getAccessedGroups(List<GroupSymbol> groups) {
+
+ }
+
+}
Property changes on: trunk/engine/src/main/java/org/teiid/query/processor/DdlPlan.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified: trunk/engine/src/main/java/org/teiid/query/processor/ProcessorDataManager.java
===================================================================
---
trunk/engine/src/main/java/org/teiid/query/processor/ProcessorDataManager.java 2011-04-29
18:34:21 UTC (rev 3133)
+++
trunk/engine/src/main/java/org/teiid/query/processor/ProcessorDataManager.java 2011-05-02
17:02:28 UTC (rev 3134)
@@ -26,6 +26,8 @@
import org.teiid.common.buffer.TupleSource;
import org.teiid.core.TeiidComponentException;
import org.teiid.core.TeiidProcessingException;
+import org.teiid.events.EventDistributor;
+import org.teiid.metadata.MetadataRepository;
import org.teiid.query.sql.lang.Command;
import org.teiid.query.util.CommandContext;
@@ -47,5 +49,9 @@
String keyElementName,
Object keyValue) throws BlockedException,
TeiidComponentException,
TeiidProcessingException;
+
+ EventDistributor getEventDistributor();
+
+ MetadataRepository getMetadataRepository();
}
Modified: trunk/engine/src/main/java/org/teiid/query/resolver/QueryResolver.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/resolver/QueryResolver.java 2011-04-29
18:34:21 UTC (rev 3133)
+++ trunk/engine/src/main/java/org/teiid/query/resolver/QueryResolver.java 2011-05-02
17:02:28 UTC (rev 3134)
@@ -439,9 +439,7 @@
qmi = qmi.getDesignTimeMetadata();
cacheString = "transformation/" + cacheString; //$NON-NLS-1$
QueryNode cachedNode =
(QueryNode)qmi.getFromMetadataCache(virtualGroup.getMetadataID(), cacheString);
- if (cachedNode == null
- || (qnode.getQuery() != null &&
!cachedNode.getQuery().equals(qnode.getQuery()))
- || (qnode.getCommand() != null &&
!cachedNode.getCommand().equals(qnode.getCommand()))) {
+ if (cachedNode == null) {
Command result = qnode.getCommand();
List bindings = null;
if (result == null) {
Modified: trunk/engine/src/main/java/org/teiid/query/resolver/command/AlterResolver.java
===================================================================
---
trunk/engine/src/main/java/org/teiid/query/resolver/command/AlterResolver.java 2011-04-29
18:34:21 UTC (rev 3133)
+++
trunk/engine/src/main/java/org/teiid/query/resolver/command/AlterResolver.java 2011-05-02
17:02:28 UTC (rev 3134)
@@ -25,7 +25,7 @@
import org.teiid.api.exception.query.QueryMetadataException;
import org.teiid.api.exception.query.QueryResolverException;
import org.teiid.core.TeiidComponentException;
-import org.teiid.metadata.Table.TriggerOperation;
+import org.teiid.metadata.Table.TriggerEvent;
import org.teiid.query.QueryPlugin;
import org.teiid.query.metadata.TempMetadataAdapter;
import org.teiid.query.resolver.CommandResolver;
@@ -47,8 +47,8 @@
int type = Command.TYPE_QUERY;
boolean viewTarget = true;
if (alter instanceof AlterTrigger) {
- TriggerOperation op = ((AlterTrigger)alter).getOperation();
- switch (op) {
+ TriggerEvent event = ((AlterTrigger)alter).getEvent();
+ switch (event) {
case DELETE:
type = Command.TYPE_DELETE;
break;
@@ -66,7 +66,9 @@
if (viewTarget && !QueryResolver.isView(alter.getTarget(), metadata)) {
throw new
QueryResolverException(QueryPlugin.Util.getString("AlterResolver.not_a_view",
alter.getTarget())); //$NON-NLS-1$
}
- QueryResolver.resolveCommand(alter.getDefinition(), alter.getTarget(), type,
metadata.getDesignTimeMetadata());
+ if (alter.getDefinition() != null) {
+ QueryResolver.resolveCommand(alter.getDefinition(), alter.getTarget(), type,
metadata.getDesignTimeMetadata());
+ }
}
}
Modified: trunk/engine/src/main/java/org/teiid/query/sql/lang/Alter.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/sql/lang/Alter.java 2011-04-29 18:34:21 UTC
(rev 3133)
+++ trunk/engine/src/main/java/org/teiid/query/sql/lang/Alter.java 2011-05-02 17:02:28 UTC
(rev 3134)
@@ -62,7 +62,9 @@
public void cloneOnTo(Alter<T> clone) {
copyMetadataState(clone);
- clone.setDefinition((T)getDefinition().clone());
+ if (this.definition != null) {
+ clone.setDefinition((T)this.definition.clone());
+ }
clone.setTarget(getTarget().clone());
}
Modified: trunk/engine/src/main/java/org/teiid/query/sql/lang/AlterTrigger.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/sql/lang/AlterTrigger.java 2011-04-29
18:34:21 UTC (rev 3133)
+++ trunk/engine/src/main/java/org/teiid/query/sql/lang/AlterTrigger.java 2011-05-02
17:02:28 UTC (rev 3134)
@@ -22,20 +22,23 @@
package org.teiid.query.sql.lang;
+import org.teiid.core.util.EquivalenceUtil;
import org.teiid.metadata.Table;
import org.teiid.query.sql.LanguageVisitor;
import org.teiid.query.sql.proc.TriggerAction;
public class AlterTrigger extends Alter<TriggerAction> {
- private Table.TriggerOperation operation;
+ private Table.TriggerEvent event;
+ private Boolean enabled;
+ private boolean create;
- public Table.TriggerOperation getOperation() {
- return operation;
+ public Table.TriggerEvent getEvent() {
+ return event;
}
- public void setOperation(Table.TriggerOperation operation) {
- this.operation = operation;
+ public void setEvent(Table.TriggerEvent operation) {
+ this.event = operation;
}
@Override
@@ -47,7 +50,9 @@
public AlterTrigger clone() {
AlterTrigger clone = new AlterTrigger();
cloneOnTo(clone);
- clone.operation = operation;
+ clone.event = event;
+ clone.enabled = this.enabled;
+ clone.create = this.create;
return clone;
}
@@ -65,6 +70,24 @@
return true;
}
AlterTrigger other = (AlterTrigger)obj;
- return other.operation == this.operation;
+ return EquivalenceUtil.areEqual(this.enabled, other.enabled)
+ && this.create == other.create
+ && other.event == this.event;
}
+
+ public void setEnabled(Boolean enabled) {
+ this.enabled = enabled;
+ }
+
+ public Boolean getEnabled() {
+ return enabled;
+ }
+
+ public boolean isCreate() {
+ return create;
+ }
+
+ public void setCreate(boolean create) {
+ this.create = create;
+ }
}
Modified:
trunk/engine/src/main/java/org/teiid/query/sql/visitor/CommandCollectorVisitor.java
===================================================================
---
trunk/engine/src/main/java/org/teiid/query/sql/visitor/CommandCollectorVisitor.java 2011-04-29
18:34:21 UTC (rev 3133)
+++
trunk/engine/src/main/java/org/teiid/query/sql/visitor/CommandCollectorVisitor.java 2011-05-02
17:02:28 UTC (rev 3134)
@@ -126,7 +126,9 @@
@Override
public void visit(AlterTrigger alterTrigger) {
- this.commands.add(alterTrigger.getDefinition());
+ if (alterTrigger.getDefinition() != null) {
+ this.commands.add(alterTrigger.getDefinition());
+ }
}
@Override
Modified: trunk/engine/src/main/java/org/teiid/query/sql/visitor/SQLStringVisitor.java
===================================================================
---
trunk/engine/src/main/java/org/teiid/query/sql/visitor/SQLStringVisitor.java 2011-04-29
18:34:21 UTC (rev 3133)
+++
trunk/engine/src/main/java/org/teiid/query/sql/visitor/SQLStringVisitor.java 2011-05-02
17:02:28 UTC (rev 3134)
@@ -1974,7 +1974,11 @@
@Override
public void visit(AlterTrigger alterTrigger) {
- append(ALTER);
+ if (alterTrigger.isCreate()) {
+ append(CREATE);
+ } else {
+ append(ALTER);
+ }
append(SPACE);
append(TRIGGER);
append(SPACE);
@@ -1986,12 +1990,17 @@
append(SPACE);
append(OF);
append(SPACE);
- append(alterTrigger.getOperation());
- beginClause(0);
- append(AS);
- append("\n"); //$NON-NLS-1$
- addTabs(0);
- append(alterTrigger.getDefinition());
+ append(alterTrigger.getEvent());
+ if (alterTrigger.getDefinition() != null) {
+ beginClause(0);
+ append(AS);
+ append("\n"); //$NON-NLS-1$
+ addTabs(0);
+ append(alterTrigger.getDefinition());
+ } else {
+ append(SPACE);
+ append(alterTrigger.getEnabled()?NonReserved.ENABLED:NonReserved.DISABLED);
+ }
}
@Override
Modified: trunk/engine/src/main/java/org/teiid/query/tempdata/TempTableDataManager.java
===================================================================
---
trunk/engine/src/main/java/org/teiid/query/tempdata/TempTableDataManager.java 2011-04-29
18:34:21 UTC (rev 3133)
+++
trunk/engine/src/main/java/org/teiid/query/tempdata/TempTableDataManager.java 2011-05-02
17:02:28 UTC (rev 3134)
@@ -58,6 +58,7 @@
import org.teiid.language.SQLConstants.Reserved;
import org.teiid.logging.LogConstants;
import org.teiid.logging.LogManager;
+import org.teiid.metadata.MetadataRepository;
import org.teiid.metadata.FunctionMethod.Determinism;
import org.teiid.query.QueryPlugin;
import org.teiid.query.eval.Evaluator;
@@ -486,7 +487,7 @@
if (hint != null) {
table.setPreferMemory(hint.getPrefersMemory());
if (hint.getTtl() != null) {
- info.setTtl(table.getCacheHint().getTtl());
+ info.setTtl(hint.getTtl());
}
if (pk != null) {
updatable = hint.isUpdatable();
@@ -620,4 +621,14 @@
return result;
}
+ @Override
+ public EventDistributor getEventDistributor() {
+ return this.eventDistributor;
+ }
+
+ @Override
+ public MetadataRepository getMetadataRepository() {
+ return this.processorDataManager.getMetadataRepository();
+ }
+
}
Modified: trunk/engine/src/main/java/org/teiid/query/tempdata/TempTableStore.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/tempdata/TempTableStore.java 2011-04-29
18:34:21 UTC (rev 3133)
+++ trunk/engine/src/main/java/org/teiid/query/tempdata/TempTableStore.java 2011-05-02
17:02:28 UTC (rev 3134)
@@ -275,14 +275,22 @@
for (Object index : indexes) {
id.addIndex(resolveIndex(metadata, id, index));
}
- Command c = (Command)QueryResolver.resolveView(group,
metadata.getVirtualPlan(viewId), SQLConstants.Reserved.SELECT,
metadata).getCommand().clone();
- CacheHint hint = c.getCacheHint();
- id.setCacheHint(hint);
}
}
}
+ updateCacheHint(viewId, metadata, group, id);
return id;
}
+
+ private void updateCacheHint(Object viewId,
+ QueryMetadataInterface metadata, GroupSymbol group,
+ TempMetadataID id) throws TeiidComponentException,
+ QueryMetadataException, QueryResolverException,
+ QueryValidatorException {
+ Command c = QueryResolver.resolveView(group, metadata.getVirtualPlan(viewId),
SQLConstants.Reserved.SELECT, metadata).getCommand();
+ CacheHint hint = c.getCacheHint();
+ id.setCacheHint(hint);
+ }
static ArrayList<TempMetadataID> resolveIndex(
QueryMetadataInterface metadata, TempMetadataID id, Object pk)
Modified: trunk/engine/src/main/javacc/org/teiid/query/parser/SQLParser.jj
===================================================================
--- trunk/engine/src/main/javacc/org/teiid/query/parser/SQLParser.jj 2011-04-29 18:34:21
UTC (rev 3133)
+++ trunk/engine/src/main/javacc/org/teiid/query/parser/SQLParser.jj 2011-05-02 17:02:28
UTC (rev 3134)
@@ -478,13 +478,34 @@
}
{
(command = createUpdateProcedure(info) |
- command = triggerAction(info))
+ command = forEachRowTriggerAction(info))
<EOF>
{
return command;
}
}
+Command createTrigger(ParseInfo info) :
+{
+ String target = null;
+ TriggerAction triggerAction = null;
+ Token event = null;
+
+}
+{
+ <CREATE> <TRIGGER> <ON> target = id() nonReserved("INSTEAD")
<OF>
+ (event = <INSERT> | event = <UPDATE> | event = <DELETE>)
+ <AS> triggerAction = forEachRowTriggerAction(info)
+ {
+ AlterTrigger alterTrigger = new AlterTrigger();
+ alterTrigger.setTarget(new GroupSymbol(target));
+ alterTrigger.setDefinition(triggerAction);
+ alterTrigger.setEvent(Table.TriggerEvent.valueOf(event.image.toUpperCase()));
+ alterTrigger.setCreate(true);
+ return alterTrigger;
+ }
+}
+
Command alter(ParseInfo info) :
{
String target = null;
@@ -492,7 +513,8 @@
Block block = null;
TriggerAction triggerAction = null;
Token comment = null;
- Table.TriggerOperation op = null;
+ Token event = null;
+ String enabled = null;
}
{
<ALTER>
@@ -520,19 +542,23 @@
return alterProc;
}
| (<TRIGGER> <ON> target = id() nonReserved("INSTEAD") <OF>
- (<INSERT> {op = Table.TriggerOperation.INSERT;} |<UPDATE> {op =
Table.TriggerOperation.UPDATE;}|<DELETE> {op = Table.TriggerOperation.DELETE;})
- <AS> triggerAction = triggerAction(info))
+ (event = <INSERT> | event = <UPDATE> | event = <DELETE>)
+ ((<AS> triggerAction = forEachRowTriggerAction(info))
+ |enabled = nonReserved("ENABLED","DISABLED")))
{
AlterTrigger alterTrigger = new AlterTrigger();
alterTrigger.setTarget(new GroupSymbol(target));
alterTrigger.setDefinition(triggerAction);
- alterTrigger.setOperation(op);
+ alterTrigger.setEvent(Table.TriggerEvent.valueOf(event.image.toUpperCase()));
+ if (enabled != null) {
+ alterTrigger.setEnabled(enabled.equalsIgnoreCase("ENABLED"));
+ }
return alterTrigger;
}
)
}
-TriggerAction triggerAction(ParseInfo info) :
+TriggerAction forEachRowTriggerAction(ParseInfo info) :
{
Block b = null;
}
@@ -555,8 +581,9 @@
command = update(info) |
command = delete(info) |
command = dropTable(info) |
- command = createTempTable(info) |
- command = alter(info)
+ LOOKAHEAD(2) command = createTempTable(info) |
+ command = alter(info) |
+ command = createTrigger(info)
)
{
return command;
Modified: trunk/engine/src/main/resources/org/teiid/query/i18n.properties
===================================================================
--- trunk/engine/src/main/resources/org/teiid/query/i18n.properties 2011-04-29 18:34:21
UTC (rev 3133)
+++ trunk/engine/src/main/resources/org/teiid/query/i18n.properties 2011-05-02 17:02:28
UTC (rev 3134)
@@ -831,8 +831,9 @@
DataTierManager.could_not_obtain_connector_binding=Could not obtain connection factory
for model {0} in VDB name= {1}, version {2}
+DataTierManagerImpl.max_value_length=Property value length exceeds max of {0}.
+DataTierManagerImpl.unknown_uuid=Could not find a metadata record with uuid {0}.
-
DQPCore.Unable_to_load_metadata_for_VDB_name__{0},_version__{1}=Unable to load metadata
for VDB name= {0}, version= {1}
DQPCore.Unknown_query_metadata_exception_while_registering_query__{0}.=Unknown query
metadata exception while registering query: {0}.
DQPCore.Clearing_prepared_plan_cache=Clearing prepared plan cache
@@ -912,4 +913,7 @@
ArrayTableNode.conversion_error=Could not convert value for column: {0}
AlterResolver.not_a_view={0} is not a valid view.
-ValidationVisitor.not_a_procedure={0} is not a valid virtual procedure.
\ No newline at end of file
+ValidationVisitor.not_a_procedure={0} is not a valid virtual procedure.
+
+DdlPlan.event_not_exists={0} does not have an INSTEAD OF trigger defined for {1}.
+DdlPlan.event_already_exists={0} already has an INSTEAD OF trigger defined for {1}.
\ No newline at end of file
Modified: trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestDQPCore.java
===================================================================
--- trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestDQPCore.java 2011-04-29
18:34:21 UTC (rev 3133)
+++ trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestDQPCore.java 2011-05-02
17:02:28 UTC (rev 3134)
@@ -364,7 +364,7 @@
assertEquals(2, this.core.getPrepPlanCache().getCacheHitCount());
- //perform a minor update, we will purge the plan
+ //perform a major update, we will purge the plan
sql = "delete from #temp"; //$NON-NLS-1$
reqMsg = exampleRequestMessage(sql);
rm = execute(userName, sessionid, reqMsg);
Modified: trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestRequest.java
===================================================================
--- trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestRequest.java 2011-04-29
18:34:21 UTC (rev 3133)
+++ trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestRequest.java 2011-05-02
17:02:28 UTC (rev 3134)
@@ -40,6 +40,7 @@
import org.teiid.query.processor.FakeDataManager;
import org.teiid.query.resolver.QueryResolver;
import org.teiid.query.sql.lang.Command;
+import org.teiid.query.tempdata.TempTableStore;
import org.teiid.query.unittest.FakeMetadataFactory;
import org.teiid.query.util.ContextProperties;
@@ -50,7 +51,8 @@
*/
public class TestRequest extends TestCase {
- private final static String QUERY = "SELECT * FROM pm1.g1"; //$NON-NLS-1$
+ private static final TempTableStore TEMP_TABLE_STORE = new
TempTableStore("1"); //$NON-NLS-1$
+ private final static String QUERY = "SELECT * FROM pm1.g1"; //$NON-NLS-1$
/**
* Constructor for TestRequest.
@@ -77,7 +79,7 @@
RequestMessage message = new RequestMessage();
DQPWorkContext workContext = FakeMetadataFactory.buildWorkContext(metadata,
FakeMetadataFactory.example1VDB());
- request.initialize(message, null, null,new FakeTransactionService(),null,
workContext, null);
+ request.initialize(message, null, null,new FakeTransactionService(),
TEMP_TABLE_STORE, workContext, null);
request.initMetadata();
request.setAuthorizationValidator(new DataRoleAuthorizationValidator(true, true,
true));
request.validateAccess(command);
@@ -132,15 +134,12 @@
Mockito.stub(repo.getConnectorManager(Mockito.anyString())).toReturn(new
AutoGenDataService());
request.initialize(message, Mockito.mock(BufferManager.class),
- new FakeDataManager(), new FakeTransactionService(), null, workContext, null);
+ new FakeDataManager(), new FakeTransactionService(), TEMP_TABLE_STORE, workContext,
null);
request.setAuthorizationValidator(new DataRoleAuthorizationValidator(false, true,
true));
request.processRequest();
return request;
}
-
-
-
/**
* Test PreparedStatementRequest.processRequest().
* Test processing the same query twice, and make sure that doesn't cause
problems.
Modified:
trunk/engine/src/test/java/org/teiid/query/optimizer/proc/TestProcedurePlanner.java
===================================================================
---
trunk/engine/src/test/java/org/teiid/query/optimizer/proc/TestProcedurePlanner.java 2011-04-29
18:34:21 UTC (rev 3133)
+++
trunk/engine/src/test/java/org/teiid/query/optimizer/proc/TestProcedurePlanner.java 2011-05-02
17:02:28 UTC (rev 3134)
@@ -71,7 +71,7 @@
ValidatorReport report = Validator.validate(userCommand, metadata);
if (report.hasItems()) {
- ValidatorFailure firstFailure = (ValidatorFailure)
report.getItems().iterator().next();
+ ValidatorFailure firstFailure = report.getItems().iterator().next();
throw new QueryValidatorException(firstFailure.getMessage());
}
userCommand = QueryRewriter.rewrite(userCommand, metadata, null);
Modified: trunk/engine/src/test/java/org/teiid/query/parser/TestParseAlter.java
===================================================================
--- trunk/engine/src/test/java/org/teiid/query/parser/TestParseAlter.java 2011-04-29
18:34:21 UTC (rev 3133)
+++ trunk/engine/src/test/java/org/teiid/query/parser/TestParseAlter.java 2011-05-02
17:02:28 UTC (rev 3134)
@@ -25,7 +25,7 @@
import static org.teiid.query.parser.TestParser.*;
import org.junit.Test;
-import org.teiid.metadata.Table.TriggerOperation;
+import org.teiid.metadata.Table.TriggerEvent;
import org.teiid.query.sql.lang.AlterTrigger;
import org.teiid.query.sql.lang.AlterView;
import org.teiid.query.sql.lang.QueryCommand;
@@ -52,9 +52,26 @@
@Test public void testAlterTrigger() throws Exception {
AlterTrigger alterTrigger = new AlterTrigger();
alterTrigger.setTarget(new GroupSymbol("x"));
- alterTrigger.setOperation(TriggerOperation.UPDATE);
+ alterTrigger.setEvent(TriggerEvent.UPDATE);
alterTrigger.setDefinition((TriggerAction)
QueryParser.getQueryParser().parseUpdateProcedure("for each row begin end"));
helpTest("alter trigger on x instead of update as for each row begin end",
"ALTER TRIGGER ON x INSTEAD OF UPDATE AS\nFOR EACH ROW\nBEGIN\nEND",
alterTrigger);
}
+ @Test public void testAlterDisabled() throws Exception {
+ AlterTrigger alterTrigger = new AlterTrigger();
+ alterTrigger.setTarget(new GroupSymbol("x"));
+ alterTrigger.setEvent(TriggerEvent.UPDATE);
+ alterTrigger.setEnabled(false);
+ helpTest("alter trigger on x instead of update disabled", "ALTER TRIGGER
ON x INSTEAD OF UPDATE DISABLED", alterTrigger);
+ }
+
+ @Test public void testCreateTrigger() throws Exception {
+ AlterTrigger alterTrigger = new AlterTrigger();
+ alterTrigger.setCreate(true);
+ alterTrigger.setTarget(new GroupSymbol("x"));
+ alterTrigger.setEvent(TriggerEvent.UPDATE);
+ alterTrigger.setDefinition((TriggerAction)
QueryParser.getQueryParser().parseUpdateProcedure("for each row begin end"));
+ helpTest("create trigger on x instead of update as for each row begin end",
"CREATE TRIGGER ON x INSTEAD OF UPDATE AS\nFOR EACH ROW\nBEGIN\nEND",
alterTrigger);
+ }
+
}
Modified: trunk/engine/src/test/java/org/teiid/query/processor/FakeDataManager.java
===================================================================
--- trunk/engine/src/test/java/org/teiid/query/processor/FakeDataManager.java 2011-04-29
18:34:21 UTC (rev 3133)
+++ trunk/engine/src/test/java/org/teiid/query/processor/FakeDataManager.java 2011-05-02
17:02:28 UTC (rev 3134)
@@ -34,7 +34,9 @@
import org.teiid.common.buffer.BlockedException;
import org.teiid.common.buffer.TupleSource;
import org.teiid.core.TeiidComponentException;
+import org.teiid.events.EventDistributor;
import org.teiid.logging.LogManager;
+import org.teiid.metadata.MetadataRepository;
import org.teiid.query.eval.Evaluator;
import org.teiid.query.metadata.QueryMetadataInterface;
import org.teiid.query.metadata.TempMetadataID;
@@ -389,4 +391,16 @@
this.registerTuples(group.getMetadataID(), elementSymbols, tuples);
}
+ @Override
+ public EventDistributor getEventDistributor() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public MetadataRepository getMetadataRepository() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
}
\ No newline at end of file
Modified: trunk/engine/src/test/java/org/teiid/query/processor/HardcodedDataManager.java
===================================================================
---
trunk/engine/src/test/java/org/teiid/query/processor/HardcodedDataManager.java 2011-04-29
18:34:21 UTC (rev 3133)
+++
trunk/engine/src/test/java/org/teiid/query/processor/HardcodedDataManager.java 2011-05-02
17:02:28 UTC (rev 3134)
@@ -32,6 +32,8 @@
import org.teiid.common.buffer.TupleSource;
import org.teiid.core.TeiidComponentException;
import org.teiid.dqp.internal.datamgr.LanguageBridgeFactory;
+import org.teiid.events.EventDistributor;
+import org.teiid.metadata.MetadataRepository;
import org.teiid.query.metadata.QueryMetadataInterface;
import org.teiid.query.sql.lang.Command;
import org.teiid.query.util.CommandContext;
@@ -168,4 +170,16 @@
}
+ @Override
+ public EventDistributor getEventDistributor() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public MetadataRepository getMetadataRepository() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
}
Modified:
trunk/engine/src/test/java/org/teiid/query/processor/relational/TestBatchedUpdateNode.java
===================================================================
---
trunk/engine/src/test/java/org/teiid/query/processor/relational/TestBatchedUpdateNode.java 2011-04-29
18:34:21 UTC (rev 3133)
+++
trunk/engine/src/test/java/org/teiid/query/processor/relational/TestBatchedUpdateNode.java 2011-05-02
17:02:28 UTC (rev 3134)
@@ -36,6 +36,8 @@
import org.teiid.common.buffer.TupleBatch;
import org.teiid.common.buffer.TupleSource;
import org.teiid.core.TeiidComponentException;
+import org.teiid.events.EventDistributor;
+import org.teiid.metadata.MetadataRepository;
import org.teiid.query.metadata.QueryMetadataInterface;
import org.teiid.query.optimizer.TestBatchedUpdatePlanner;
import org.teiid.query.processor.ProcessorDataManager;
@@ -219,6 +221,16 @@
actualCommands.add(command);
return new FakeTupleSource(numExecutedCommands);
}
+ @Override
+ public EventDistributor getEventDistributor() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+ @Override
+ public MetadataRepository getMetadataRepository() {
+ // TODO Auto-generated method stub
+ return null;
+ }
}
private static final class FakeTupleSource implements TupleSource {
private int currentTuple = 0;
Modified:
trunk/engine/src/test/java/org/teiid/query/processor/relational/TestProjectIntoNode.java
===================================================================
---
trunk/engine/src/test/java/org/teiid/query/processor/relational/TestProjectIntoNode.java 2011-04-29
18:34:21 UTC (rev 3133)
+++
trunk/engine/src/test/java/org/teiid/query/processor/relational/TestProjectIntoNode.java 2011-05-02
17:02:28 UTC (rev 3134)
@@ -36,6 +36,8 @@
import org.teiid.common.buffer.TupleSource;
import org.teiid.core.TeiidComponentException;
import org.teiid.core.TeiidProcessingException;
+import org.teiid.events.EventDistributor;
+import org.teiid.metadata.MetadataRepository;
import org.teiid.query.eval.Evaluator;
import org.teiid.query.processor.FakeTupleSource;
import org.teiid.query.processor.ProcessorDataManager;
@@ -184,6 +186,16 @@
Object val = row.get(0);
assertEquals(new Integer(value), val);
}
+ @Override
+ public EventDistributor getEventDistributor() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+ @Override
+ public MetadataRepository getMetadataRepository() {
+ // TODO Auto-generated method stub
+ return null;
+ }
}
private static final class FakeDataTupleSource implements TupleSource {
Modified:
trunk/jboss-integration/src/main/java/org/teiid/jboss/deployers/RuntimeEngineDeployer.java
===================================================================
---
trunk/jboss-integration/src/main/java/org/teiid/jboss/deployers/RuntimeEngineDeployer.java 2011-04-29
18:34:21 UTC (rev 3133)
+++
trunk/jboss-integration/src/main/java/org/teiid/jboss/deployers/RuntimeEngineDeployer.java 2011-05-02
17:02:28 UTC (rev 3134)
@@ -70,7 +70,6 @@
import org.teiid.adminapi.impl.VDBMetaData;
import org.teiid.adminapi.impl.WorkerPoolStatisticsMetadata;
import org.teiid.adminapi.jboss.AdminProvider;
-import org.teiid.api.exception.query.QueryMetadataException;
import org.teiid.cache.CacheFactory;
import org.teiid.client.DQP;
import org.teiid.client.RequestMessage;
@@ -90,6 +89,7 @@
import org.teiid.dqp.internal.process.DQPConfiguration;
import org.teiid.dqp.internal.process.DQPCore;
import org.teiid.dqp.internal.process.DQPWorkContext;
+import org.teiid.dqp.internal.process.DataTierManagerImpl;
import org.teiid.dqp.internal.process.TransactionServerImpl;
import org.teiid.dqp.service.BufferService;
import org.teiid.dqp.service.SessionService;
@@ -102,16 +102,20 @@
import org.teiid.logging.LogConstants;
import org.teiid.logging.LogManager;
import org.teiid.logging.MessageLevel;
+import org.teiid.metadata.AbstractMetadataRecord;
import org.teiid.metadata.Column;
import org.teiid.metadata.ColumnStats;
import org.teiid.metadata.MetadataRepository;
+import org.teiid.metadata.Procedure;
import org.teiid.metadata.Schema;
import org.teiid.metadata.Table;
import org.teiid.metadata.TableStats;
+import org.teiid.metadata.Table.TriggerEvent;
import org.teiid.net.TeiidURL;
import org.teiid.query.QueryPlugin;
import org.teiid.query.metadata.TransformationMetadata;
import org.teiid.query.optimizer.relational.RelationalPlanner;
+import org.teiid.query.processor.DdlPlan;
import org.teiid.query.tempdata.TempTableStore;
import org.teiid.security.SecurityHelper;
import org.teiid.transport.ClientServiceRegistry;
@@ -672,38 +676,23 @@
updateModified(true, vdbName, vdbVersion, schema, tableNames);
}
- @Override
- public void schemaModification(String vdbName, int vdbVersion,
- String schema, String... objectNames) {
- updateModified(false, vdbName, vdbVersion, schema, objectNames);
- }
-
private void updateModified(boolean data, String vdbName, int vdbVersion, String
schema,
String... objectNames) {
- VDBMetaData vdb = this.vdbRepository.getVDB(vdbName, vdbVersion);
- if (vdb == null) {
+ Schema s = getSchema(vdbName, vdbVersion, schema);
+ if (s == null) {
return;
}
- TransformationMetadata tm = vdb.getAttachment(TransformationMetadata.class);
- if (tm == null) {
- return;
- }
- try {
- Schema s = tm.getMetadataStore().getSchema(schema.toUpperCase());
- long ts = System.currentTimeMillis();
- for (String name:objectNames) {
- Table table = s.getTables().get(name);
- if (table == null) {
- continue;
- }
- if (data) {
- table.setLastDataModification(ts);
- } else {
- table.setLastModified(ts);
- }
+ long ts = System.currentTimeMillis();
+ for (String name:objectNames) {
+ Table table = s.getTables().get(name);
+ if (table == null) {
+ continue;
}
- } catch (TeiidException e) {
- LogManager.logError(LogConstants.CTX_DQP, e,
QueryPlugin.Util.getString("DQPCore.unable_to_process_event")); //$NON-NLS-1$
+ if (data) {
+ table.setLastDataModification(ts);
+ } else {
+ table.setLastModified(ts);
+ }
}
}
@@ -737,6 +726,14 @@
private Table getTable(String vdbName, int vdbVersion, String schemaName,
String tableName) {
+ Schema s = getSchema(vdbName, vdbVersion, schemaName);
+ if (s == null) {
+ return null;
+ }
+ return s.getTables().get(tableName.toUpperCase());
+ }
+
+ private Schema getSchema(String vdbName, int vdbVersion, String schemaName) {
VDBMetaData vdb = this.vdbRepository.getVDB(vdbName, vdbVersion);
if (vdb == null) {
return null;
@@ -745,17 +742,62 @@
if (tm == null) {
return null;
}
- Schema s;
- try {
- s = tm.getMetadataStore().getSchema(schemaName.toUpperCase());
- } catch (QueryMetadataException e) {
- LogManager.logError(LogConstants.CTX_DQP, e,
QueryPlugin.Util.getString("DQPCore.unable_to_process_event")); //$NON-NLS-1$
- return null;
+ return tm.getMetadataStore().getSchemas().get(schemaName.toUpperCase());
+ }
+
+ @Override
+ public void setInsteadOfTriggerDefinition(String vdbName, int vdbVersion,
+ String schema, String viewName, TriggerEvent triggerEvent,
+ String triggerDefinition, Boolean enabled) {
+ Table t = getTable(vdbName, vdbVersion, schema, viewName);
+ if (t == null) {
+ return;
}
- return s.getTables().get(tableName.toUpperCase());
+ DdlPlan.alterInsteadOfTrigger(this.vdbRepository.getVDB(vdbName, vdbVersion), t,
triggerDefinition, enabled, triggerEvent);
}
@Override
+ public void setProcedureDefinition(String vdbName, int vdbVersion,
+ String schema, String procName, String definition) {
+ Schema s = getSchema(vdbName, vdbVersion, schema);
+ if (s == null) {
+ return;
+ }
+ Procedure p = s.getProcedures().get(procName.toUpperCase());
+ if (p == null) {
+ return;
+ }
+ DdlPlan.alterProcedureDefinition(this.vdbRepository.getVDB(vdbName, vdbVersion), p,
definition);
+ }
+
+ @Override
+ public void setViewDefinition(String vdbName, int vdbVersion,
+ String schema, String viewName, String definition) {
+ Table t = getTable(vdbName, vdbVersion, schema, viewName);
+ if (t == null) {
+ return;
+ }
+ DdlPlan.alterView(this.vdbRepository.getVDB(vdbName, vdbVersion), t, definition);
+ }
+
+ @Override
+ public void setProperty(String vdbName, int vdbVersion, String uuid,
+ String name, String value) {
+ VDBMetaData vdb = this.vdbRepository.getVDB(vdbName, vdbVersion);
+ if (vdb == null) {
+ return;
+ }
+ TransformationMetadata tm = vdb.getAttachment(TransformationMetadata.class);
+ if (tm == null) {
+ return;
+ }
+ AbstractMetadataRecord record = DataTierManagerImpl.getByUuid(tm.getMetadataStore(),
uuid);
+ if (record != null) {
+ record.setProperty(name, value);
+ }
+ }
+
+ @Override
public EventDistributor getEventDistributor() {
if (this.eventDistributor != null) {
return eventDistributor;
Modified: trunk/metadata/src/main/resources/System.vdb
===================================================================
(Binary files differ)
Modified: trunk/runtime/src/main/java/org/teiid/deployers/VDBRepository.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/deployers/VDBRepository.java 2011-04-29 18:34:21
UTC (rev 3133)
+++ trunk/runtime/src/main/java/org/teiid/deployers/VDBRepository.java 2011-05-02 17:02:28
UTC (rev 3134)
@@ -27,6 +27,7 @@
import java.util.Collection;
import java.util.HashMap;
import java.util.LinkedHashMap;
+import java.util.LinkedHashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
@@ -44,6 +45,7 @@
import org.teiid.dqp.internal.datamgr.ConnectorManagerRepository;
import org.teiid.logging.LogConstants;
import org.teiid.logging.LogManager;
+import org.teiid.metadata.AbstractMetadataRecord;
import org.teiid.metadata.Column;
import org.teiid.metadata.ColumnStats;
import org.teiid.metadata.Datatype;
@@ -113,8 +115,13 @@
LinkedList<MetadataStore> allStores = new
LinkedList<MetadataStore>(stores.getStores());
allStores.addAll(Arrays.asList(cvdb.getAdditionalStores()));
for (MetadataStore metadataStore : allStores) {
+ Collection<AbstractMetadataRecord> records = new
LinkedHashSet<AbstractMetadataRecord>();
for (Schema schema : metadataStore.getSchemas().values()) {
+ records.add(schema);
for (Table t : schema.getTables().values()) {
+ records.add(t);
+ records.addAll(t.getColumns());
+ records.addAll(t.getAllKeys());
if (t.isPhysical()) {
TableStats stats = metadataRepository.getTableStats(vdbName, vdbVersion, t);
if (stats != null) {
@@ -132,22 +139,39 @@
t.setSelectTransformation(def);
}
if (t.supportsUpdate()) {
- def = metadataRepository.getInsteadOfTriggerDefinition(vdbName, vdbVersion, t,
Table.TriggerOperation.INSERT);
+ def = metadataRepository.getInsteadOfTriggerDefinition(vdbName, vdbVersion, t,
Table.TriggerEvent.INSERT);
if (def != null) {
t.setInsertPlan(def);
}
- def = metadataRepository.getInsteadOfTriggerDefinition(vdbName, vdbVersion, t,
Table.TriggerOperation.UPDATE);
+ Boolean enabled = metadataRepository.isInsteadOfTriggerEnabled(vdbName,
vdbVersion, t, Table.TriggerEvent.INSERT);
+ if (enabled != null) {
+ t.setInsertPlanEnabled(enabled);
+ }
+ def = metadataRepository.getInsteadOfTriggerDefinition(vdbName, vdbVersion, t,
Table.TriggerEvent.UPDATE);
if (def != null) {
t.setUpdatePlan(def);
}
- def = metadataRepository.getInsteadOfTriggerDefinition(vdbName, vdbVersion, t,
Table.TriggerOperation.DELETE);
+ enabled = metadataRepository.isInsteadOfTriggerEnabled(vdbName, vdbVersion, t,
Table.TriggerEvent.UPDATE);
+ if (enabled != null) {
+ t.setUpdatePlanEnabled(enabled);
+ }
+ def = metadataRepository.getInsteadOfTriggerDefinition(vdbName, vdbVersion, t,
Table.TriggerEvent.DELETE);
if (def != null) {
t.setDeletePlan(def);
}
+ enabled = metadataRepository.isInsteadOfTriggerEnabled(vdbName, vdbVersion, t,
Table.TriggerEvent.DELETE);
+ if (enabled != null) {
+ t.setDeletePlanEnabled(enabled);
+ }
}
}
}
for (Procedure p : schema.getProcedures().values()) {
+ records.add(p);
+ records.addAll(p.getParameters());
+ if (p.getResultSet() != null) {
+ records.addAll(p.getResultSet().getColumns());
+ }
if (p.isVirtual() && !p.isFunction()) {
String proc = metadataRepository.getProcedureDefinition(vdbName, vdbVersion, p);
if (proc != null) {
@@ -156,6 +180,12 @@
}
}
}
+ for (AbstractMetadataRecord abstractMetadataRecord : records) {
+ LinkedHashMap<String, String> p = metadataRepository.getProperties(vdbName,
vdbVersion, abstractMetadataRecord);
+ if (p != null) {
+ abstractMetadataRecord.setProperties(p);
+ }
+ }
}
}
Modified:
trunk/test-integration/common/src/test/java/org/teiid/systemmodel/TestMetadataUpdates.java
===================================================================
---
trunk/test-integration/common/src/test/java/org/teiid/systemmodel/TestMetadataUpdates.java 2011-04-29
18:34:21 UTC (rev 3133)
+++
trunk/test-integration/common/src/test/java/org/teiid/systemmodel/TestMetadataUpdates.java 2011-05-02
17:02:28 UTC (rev 3134)
@@ -23,6 +23,7 @@
import static org.junit.Assert.*;
+import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
@@ -39,7 +40,6 @@
import org.teiid.metadata.MetadataRepository;
import org.teiid.metadata.Procedure;
import org.teiid.metadata.Table;
-import org.teiid.metadata.Table.TriggerOperation;
@SuppressWarnings("nls")
public class TestMetadataUpdates {
@@ -72,12 +72,18 @@
return null;
}
});
- Mockito.stub(repo.getInsteadOfTriggerDefinition(Mockito.anyString(),
Mockito.anyInt(), (Table)Mockito.anyObject(), (Table.TriggerOperation)
Mockito.anyObject())).toAnswer(new Answer<String>() {
+ Mockito.stub(repo.getInsteadOfTriggerDefinition(Mockito.anyString(),
Mockito.anyInt(), (Table)Mockito.anyObject(), (Table.TriggerEvent)
Mockito.anyObject())).toAnswer(new Answer<String>() {
@Override
public String answer(InvocationOnMock invocation) throws Throwable {
- return "for each row select 1/0; begin end";
+ return "for each row select 1/0;";
}
});
+ Mockito.stub(repo.isInsteadOfTriggerEnabled(Mockito.anyString(), Mockito.anyInt(),
(Table)Mockito.anyObject(), (Table.TriggerEvent) Mockito.anyObject())).toAnswer(new
Answer<Boolean>() {
+ @Override
+ public Boolean answer(InvocationOnMock invocation) throws Throwable {
+ return Boolean.TRUE;
+ }
+ });
server.deployVDB(VDB, UnitTestUtil.getTestDataPath() + "/metadata.vdb");
connection = server.createConnection("jdbc:teiid:" + VDB); //$NON-NLS-1$
//$NON-NLS-2$
}
@@ -105,4 +111,110 @@
assertEquals(2011, rs.getInt(1));
}
+ @Test public void testSetProperty() throws Exception {
+ CallableStatement s = connection.prepareCall("{? = call
sysadmin.setProperty((select uid from tables where name='vw'), 'foo',
'bar')}");
+ assertFalse(s.execute());
+ assertNull(s.getClob(1));
+
+ Statement stmt = connection.createStatement();
+ ResultSet rs = stmt.executeQuery("select name, \"value\" from
properties where uid = (select uid from tables where name='vw')");
+ rs.next();
+ assertEquals("foo", rs.getString(1));
+ assertEquals("bar", rs.getString(2));
+ }
+
+ @Test(expected=SQLException.class) public void testSetProperty_Invalid() throws
Exception {
+ CallableStatement s = connection.prepareCall("{? = call
sysadmin.setProperty('ah', 'foo', 'bar')}");
+ s.execute();
+ }
+
+ @Test public void testAlterView() throws Exception {
+ Statement s = connection.createStatement();
+ ResultSet rs = s.executeQuery("select * from vw");
+ rs.next();
+ assertEquals(2011, rs.getInt(1));
+
+ assertFalse(s.execute("alter view vw as select '2012'"));
+
+ rs = s.executeQuery("select * from vw");
+ rs.next();
+ assertEquals(2012, rs.getInt(1));
+ }
+
+ @Test public void testAlterProcedure() throws Exception {
+ Statement s = connection.createStatement();
+ ResultSet rs = s.executeQuery("call proc(1)");
+ rs.next();
+ assertEquals(2011, rs.getInt(1));
+
+ assertFalse(s.execute("alter procedure proc as begin select '2012';
end"));
+
+ //the sleep is needed to ensure that the plan is invalidated
+ Thread.sleep(100);
+
+ rs = s.executeQuery("call proc(1)");
+ rs.next();
+ assertEquals(2012, rs.getInt(1));
+ }
+
+ @Test public void testAlterTriggerActionUpdate() throws Exception {
+ Statement s = connection.createStatement();
+ try {
+ s.execute("update vw set x = 1");
+ fail();
+ } catch (SQLException e) {
+ }
+
+ assertFalse(s.execute("alter trigger on vw instead of update as for each row
select 1;"));
+
+ s.execute("update vw set x = 1");
+ assertEquals(1, s.getUpdateCount());
+ }
+
+ @Test public void testAlterTriggerActionInsert() throws Exception {
+ Statement s = connection.createStatement();
+ try {
+ s.execute("insert into vw (x) values ('a')");
+ fail();
+ } catch (SQLException e) {
+ }
+
+ assertFalse(s.execute("alter trigger on vw instead of insert as for each row
select 1;"));
+
+ s.execute("insert into vw (x) values ('a')");
+ assertEquals(1, s.getUpdateCount());
+ }
+
+ @Test public void testAlterTriggerActionDelete() throws Exception {
+ Statement s = connection.createStatement();
+ try {
+ s.execute("delete from vw");
+ fail();
+ } catch (SQLException e) {
+ }
+
+ assertFalse(s.execute("alter trigger on vw instead of delete as for each row
select 1;"));
+
+ s.execute("delete from vw");
+ assertEquals(1, s.getUpdateCount());
+
+ assertFalse(s.execute("alter trigger on vw instead of delete disabled"));
+
+ try {
+ s.execute("delete from vw");
+ fail();
+ } catch (SQLException e) {
+ }
+
+ assertFalse(s.execute("alter trigger on vw instead of delete enabled"));
+
+ s.execute("delete from vw");
+ assertEquals(1, s.getUpdateCount());
+ }
+
+ @Test(expected=SQLException.class) public void testCreateTriggerActionUpdate() throws
Exception {
+ Statement s = connection.createStatement();
+ s.execute("create trigger on vw instead of update as for each row select
1;");
+ }
+
}
Modified:
trunk/test-integration/common/src/test/java/org/teiid/systemmodel/TestSystemVirtualModel.java
===================================================================
---
trunk/test-integration/common/src/test/java/org/teiid/systemmodel/TestSystemVirtualModel.java 2011-04-29
18:34:21 UTC (rev 3133)
+++
trunk/test-integration/common/src/test/java/org/teiid/systemmodel/TestSystemVirtualModel.java 2011-05-02
17:02:28 UTC (rev 3134)
@@ -84,11 +84,11 @@
}
@Test public void testProperties() {
- String[] expected = { "Name[string] Value[string] UID[string] OID[integer]",
- "pg_type:oid 30 mmuid:ffa4ac73-b549-470e-931f-dc36330cb8c4 1",
- "pg_type:oid 1009 mmuid:d9f36bdc-7b25-4af0-b9f5-a96aac6d3094 2",
- "pg_type:oid 1002 mmuid:bcbed548-176c-4116-a5d6-7638cb0206e1 3",
- "pg_type:oid 1028 mmuid:a385751f-a31a-4d5d-9197-3fbd390b0251 4"
+ String[] expected = {
"Name[string] Value[string] UID[string] OID[integer] ClobValue[clob]",
+ "pg_type:oid 30 mmuid:ffa4ac73-b549-470e-931f-dc36330cb8c4 1 30",
+ "pg_type:oid 1009 mmuid:d9f36bdc-7b25-4af0-b9f5-a96aac6d3094 2 1009",
+ "pg_type:oid 1002 mmuid:bcbed548-176c-4116-a5d6-7638cb0206e1 3 1002",
+ "pg_type:oid 1028 mmuid:a385751f-a31a-4d5d-9197-3fbd390b0251 4 1028"
}; //$NON-NLS-1$
executeAndAssertResults("select* from SYS.Properties", expected);
//$NON-NLS-1$
Modified:
trunk/test-integration/common/src/test/resources/TestMMDatabaseMetaData/testGetColumns.expected
===================================================================
---
trunk/test-integration/common/src/test/resources/TestMMDatabaseMetaData/testGetColumns.expected 2011-04-29
18:34:21 UTC (rev 3133)
+++
trunk/test-integration/common/src/test/resources/TestMMDatabaseMetaData/testGetColumns.expected 2011-05-02
17:02:28 UTC (rev 3134)
@@ -470,6 +470,7 @@
QT_Ora9DS SYS
Properties
Value 12
string 255
<null> 0 10
0 <null>
<null> <null>
<null>
255 2 NO
<null>
<null>
<null> !
<null>
NO
QT_Ora9DS SYS
Properties
UID 12
string 50
<null> 0 10
0 <null>
<null> <null>
<null>
50 3 NO
<null>
<null>
<null> !
<null>
NO
QT_Ora9DS SYS
Properties
OID 4
integer 10
<null> 0 10
0 <null>
<null> <null>
<null>
10 4 NO
<null>
<null>
<null> !
<null>
NO
+QT_Ora9DS SYS
Properties
ClobValue
2005 clob 2097152
<null> 0 10
1 <null>
<null> <null>
<null>
2097152 5 YES
<null>
<null>
<null> !
<null>
NO
QT_Ora9DS SYS
ReferenceKeyColumns
PKTABLE_CAT 12
string 255
<null> 0 10
1 <null>
<null> <null>
<null>
255 1 YES
<null>
<null>
<null> !
<null>
NO
QT_Ora9DS SYS
ReferenceKeyColumns
PKTABLE_SCHEM 12
string 255
<null> 0 10
1 <null>
<null> <null>
<null>
255 2 YES
<null>
<null>
<null> !
<null>
NO
QT_Ora9DS SYS
ReferenceKeyColumns
PKTABLE_NAME 12
string 255
<null> 0 10
1 <null>
<null> <null>
<null>
255 3 YES
<null>
<null>
<null> !
<null>
NO
@@ -1083,7 +1084,7 @@
QT_Ora9DS XQT
xqtFullData
BigIntegerValue 2
biginteger 19
<null> 0 10
1 <null>
<null> <null>
<null>
28 15 YES
<null>
<null>
<null> !
<null>
NO
QT_Ora9DS XQT
xqtFullData
BigDecimalValue 2
bigdecimal 20
<null> 0 10
1 <null>
<null> <null>
<null>
126 16 YES
<null>
<null>
<null> !
<null>
NO
QT_Ora9DS XQT
xqtFullData
ObjectValue
2000 object 2048
<null> 0 10
1 <null>
<null> <null>
<null>
2048 17 YES
<null>
<null>
<null> !
<null>
NO
-Row Count : 1083
+Row Count : 1084
getColumnName getColumnType getCatalogName getColumnClassName getColumnLabel
getColumnTypeName getSchemaName getTableName getColumnDisplaySize getPrecision
getScale isAutoIncrement isCaseSensitive isCurrency isDefinitelyWritable isNullable
isReadOnly isSearchable isSigned isWritable
VDBName 12 QT_Ora9DS java.lang.String TABLE_CAT
string SYS Columns 255 255 0
false false false false 0 true
true false false
SchemaName 12 QT_Ora9DS java.lang.String TABLE_SCHEM
string SYS Columns 255 255 0
false true false true 1 false
true true true
Modified:
trunk/test-integration/common/src/test/resources/TestMMDatabaseMetaData/testGetProcedureColumns.expected
===================================================================
---
trunk/test-integration/common/src/test/resources/TestMMDatabaseMetaData/testGetProcedureColumns.expected 2011-04-29
18:34:21 UTC (rev 3133)
+++
trunk/test-integration/common/src/test/resources/TestMMDatabaseMetaData/testGetProcedureColumns.expected 2011-05-02
17:02:28 UTC (rev 3134)
@@ -55,9 +55,13 @@
QT_Ora9DS SYSADMIN
setColumnStats
nullCount 1
4 integer 10 10 0 10
1 <null>
<null> <null>
<null>
<null>
4 YES
setColumnStats
QT_Ora9DS SYSADMIN
setColumnStats
max 1
12 string 4000 4000 0 10
1 <null>
<null> <null>
<null>
<null>
5 YES
setColumnStats
QT_Ora9DS SYSADMIN
setColumnStats
min 1
12 string 4000 4000 0 10
1 <null>
<null> <null>
<null>
<null>
6 YES
setColumnStats
+QT_Ora9DS SYSADMIN
setProperty
UID 1
12 string 4000 50 0 10
0 <null>
<null> <null>
<null>
<null>
2 NO
setProperty
+QT_Ora9DS SYSADMIN
setProperty
Name 1
12 string 4000 4000 0 10
0 <null>
<null> <null>
<null>
<null>
3 NO
setProperty
+QT_Ora9DS SYSADMIN
setProperty
Value 1
2005 clob 2147483647 2097152 0 10
1 <null>
<null> <null>
<null>
<null>
4 YES
setProperty
+QT_Ora9DS SYSADMIN
setProperty
OldValue 5
2005 clob 2147483647 2097152 0 10
0 <null>
<null> <null>
<null>
<null>
1 NO
setProperty
QT_Ora9DS SYSADMIN
setTableStats
tableName 1
12 string 4000 4000 0 10
0 <null>
<null> <null>
<null>
<null>
1 NO
setTableStats
QT_Ora9DS SYSADMIN
setTableStats
cardinality 1
4 integer 10 10 0 10
0 <null>
<null> <null>
<null>
<null>
2 NO
setTableStats
-Row Count : 57
+Row Count : 61
getColumnName getColumnType getCatalogName getColumnClassName getColumnLabel
getColumnTypeName getSchemaName getTableName getColumnDisplaySize getPrecision
getScale isAutoIncrement isCaseSensitive isCurrency isDefinitelyWritable isNullable
isReadOnly isSearchable isSigned isWritable
VDBName 12 QT_Ora9DS java.lang.String PROCEDURE_CAT
string SYS ProcedureParams 255 255 0
false false false false 0 true
true false false
SchemaName 12 QT_Ora9DS java.lang.String PROCEDURE_SCHEM
string SYS ProcedureParams 255 255 0
false true false true 1
false true true true
Modified:
trunk/test-integration/common/src/test/resources/TestMMDatabaseMetaData/testGetProcedures.expected
===================================================================
---
trunk/test-integration/common/src/test/resources/TestMMDatabaseMetaData/testGetProcedures.expected 2011-04-29
18:34:21 UTC (rev 3133)
+++
trunk/test-integration/common/src/test/resources/TestMMDatabaseMetaData/testGetProcedures.expected 2011-05-02
17:02:28 UTC (rev 3134)
@@ -8,8 +8,9 @@
QT_Ora9DS SYSADMIN
refreshMatView
<null>
<null> <null>
<null>
1 refreshMatView
QT_Ora9DS SYSADMIN
refreshMatViewRow
<null>
<null> <null>
<null>
1 refreshMatViewRow
QT_Ora9DS SYSADMIN
setColumnStats
<null>
<null> <null>
<null>
1 setColumnStats
+QT_Ora9DS SYSADMIN
setProperty
<null>
<null> <null>
<null>
1 setProperty
QT_Ora9DS SYSADMIN
setTableStats
<null>
<null> <null>
<null>
1 setTableStats
-Row Count : 9
+Row Count : 10
getColumnName getColumnType getCatalogName getColumnClassName getColumnLabel
getColumnTypeName getSchemaName getTableName getColumnDisplaySize getPrecision
getScale isAutoIncrement isCaseSensitive isCurrency isDefinitelyWritable isNullable
isReadOnly isSearchable isSigned isWritable
VDBName 12 QT_Ora9DS java.lang.String PROCEDURE_CAT
string SYS Procedures 255 255 0
false false false false 0 true
true false false
SchemaName 12 QT_Ora9DS java.lang.String PROCEDURE_SCHEM
string SYS Procedures 255 255 0
false true false true 1 false
true true true
Modified:
trunk/test-integration/common/src/test/resources/TestMMDatabaseMetaData/testGetProceduresWithEscape.expected
===================================================================
---
trunk/test-integration/common/src/test/resources/TestMMDatabaseMetaData/testGetProceduresWithEscape.expected 2011-04-29
18:34:21 UTC (rev 3133)
+++
trunk/test-integration/common/src/test/resources/TestMMDatabaseMetaData/testGetProceduresWithEscape.expected 2011-05-02
17:02:28 UTC (rev 3134)
@@ -8,8 +8,9 @@
QT_Ora9DS SYSADMIN
refreshMatView
<null>
<null> <null>
<null>
1 refreshMatView
QT_Ora9DS SYSADMIN
refreshMatViewRow
<null>
<null> <null>
<null>
1 refreshMatViewRow
QT_Ora9DS SYSADMIN
setColumnStats
<null>
<null> <null>
<null>
1 setColumnStats
+QT_Ora9DS SYSADMIN
setProperty
<null>
<null> <null>
<null>
1 setProperty
QT_Ora9DS SYSADMIN
setTableStats
<null>
<null> <null>
<null>
1 setTableStats
-Row Count : 9
+Row Count : 10
getColumnName getColumnType getCatalogName getColumnClassName getColumnLabel
getColumnTypeName getSchemaName getTableName getColumnDisplaySize getPrecision
getScale isAutoIncrement isCaseSensitive isCurrency isDefinitelyWritable isNullable
isReadOnly isSearchable isSigned isWritable
VDBName 12 QT_Ora9DS java.lang.String PROCEDURE_CAT
string SYS Procedures 255 255 0
false false false false 0 true
true false false
SchemaName 12 QT_Ora9DS java.lang.String PROCEDURE_SCHEM
string SYS Procedures 255 255 0
false true false true 1 false
true true true
Modified:
trunk/test-integration/common/src/test/resources/TestODBCSchema/test_PG_ATTRIBUTE.expected
===================================================================
---
trunk/test-integration/common/src/test/resources/TestODBCSchema/test_PG_ATTRIBUTE.expected 2011-04-29
18:34:21 UTC (rev 3133)
+++
trunk/test-integration/common/src/test/resources/TestODBCSchema/test_PG_ATTRIBUTE.expected 2011-05-02
17:02:28 UTC (rev 3134)
@@ -127,131 +127,132 @@
125 14 Value
1043 -1 2 255 true false false
126 14 UID
1043 -1 3 50 true false false
127 14 OID
23 4 4 10 true false false
-128 15 PKTABLE_CAT
1043 -1 1 255 false false false
-129 15 PKTABLE_SCHEM
1043 -1 2 255 false false false
-130 15 PKTABLE_NAME
1043 -1 3 255 false false false
-131 15 PKCOLUMN_NAME
1043 -1 4 255 false false false
-132 15 FKTABLE_CAT
1043 -1 5 255 false false false
-133 15 FKTABLE_SCHEM
1043 -1 6 255 false false false
-134 15 FKTABLE_NAME
1043 -1 7 255 false false false
-135 15 FKCOLUMN_NAME
1043 -1 8 255 false false false
-136 15 KEY_SEQ
21 2 9 5 false false false
-137 15 UPDATE_RULE
23 4 10 10 false false false
-138 15 DELETE_RULE
23 4 11 10 false false false
-139 15 FK_NAME
1043 -1 12 255 false false false
-140 15 PK_NAME
1043 -1 13 255 false false false
-141 15 DEFERRABILITY
23 4 14 10 false false false
-142 16 VDBName
1043 -1 1 255 false false false
-143 16 Name
1043 -1 2 255 false false false
-144 16 IsPhysical
16 1 3 1 true false false
-145 16 UID
1043 -1 4 50 true false false
-146 16 Description
1043 -1 5 255 false false false
-147 16 PrimaryMetamodelURI
1043 -1 6 255 true false false
-148 16 OID
23 4 7 10 true false false
-149 17 VDBName
1043 -1 1 255 false false false
-150 17 SchemaName
1043 -1 2 255 false false false
-151 17 Name
1043 -1 3 255 true false false
-152 17 Type
1043 -1 4 20 true false false
-153 17 NameInSource
1043 -1 5 255 false false false
-154 17 IsPhysical
16 1 6 1 true false false
-155 17 SupportsUpdates
16 1 7 1 true false false
-156 17 UID
1043 -1 8 50 true false false
-157 17 Cardinality
23 4 9 10 true false false
-158 17 Description
1043 -1 10 255 false false false
-159 17 IsSystem
16 1 11 1 false false false
-160 17 IsMaterialized
16 1 12 0 true false false
-161 17 OID
23 4 13 10 true false false
-162 18 Name
1043 -1 1 255 true false false
-163 18 Version
1043 -1 2 50 true false false
-164 19 oid
23 4 1 0 false false false
-165 19 nspname
1043 -1 2 0 false false false
-166 20 oid
23 4 1 0 false false false
-167 20 relname
1043 -1 2 0 false false false
-168 20 relnamespace
23 4 3 0 false false false
-169 20 relkind
1042 1 4 0 false false false
-170 20 relam
23 4 5 0 false false false
-171 20 reltuples
700 4 6 0 false false false
-172 20 relpages
23 4 7 0 false false false
-173 20 relhasrules
16 1 8 0 false false false
-174 20 relhasoids
16 1 9 0 false false false
-175 21 oid
23 4 1 0 false false false
-176 21 attrelid
23 4 2 0 false false false
-177 21 attname
1043 -1 3 0 false false false
-178 21 atttypid
23 4 4 0 false false false
-179 21 attlen
21 2 5 0 false false false
-180 21 attnum
21 2 6 0 false false false
-181 21 atttypmod
23 4 7 0 false false false
-182 21 attnotnull
16 1 8 0 false false false
-183 21 attisdropped
16 1 9 0 false false false
-184 21 atthasdef
16 1 10 0 false false false
-185 22 oid
23 4 1 0 false false false
-186 22 typname
1043 -1 2 0 false false false
-187 22 typnamespace
23 4 3 0 false false false
-188 22 typlen
21 2 4 0 false false false
-189 22 typtype
1042 1 5 0 false false false
-190 22 typbasetype
23 4 6 0 false false false
-191 22 typtypmod
23 4 7 0 false false false
-192 22 typrelid
23 4 8 0 false false false
-193 22 typelem
23 4 9 0 false false false
-194 23 oid
23 4 1 0 false false false
-195 23 indexrelid
23 4 2 0 false false false
-196 23 indrelid
23 4 3 0 false false false
-197 23 indisclustered
16 1 4 0 false false false
-198 23 indisunique
16 1 5 0 false false false
-199 23 indisprimary
16 1 6 0 false false false
-200 23 indexprs
1043 -1 7 0 false false false
-201 23 indkey
1043 -1 8 0 false false false
-202 24 oid
23 4 1 0 false false false
-203 24 amname
1043 -1 2 0 false false false
-204 25 oid
23 4 1 0 false false false
-205 25 proname
1043 -1 2 0 false false false
-206 25 proretset
16 1 3 0 false false false
-207 25 prorettype
23 4 4 0 false false false
-208 25 pronargs
21 2 5 0 false false false
-209 25 proargtypes
<null> <null> 6 0 false false false
-210 25 proargnames
<null> <null> 7 0 false false false
-211 25 proargmodes
<null> <null> 8 0 false false false
-212 25 proallargtypes
<null> <null> 9 0 false false false
-213 25 pronamespace
23 4 10 0 false false false
-214 26 oid
23 4 1 0 false false false
-215 26 tgconstrrelid
23 4 2 0 false false false
-216 26 tgfoid
23 4 3 0 false false false
-217 26 tgargs
23 4 4 0 false false false
-218 26 tgnargs
23 4 5 0 false false false
-219 26 tgdeferrable
16 1 6 0 false false false
-220 26 tginitdeferred
16 1 7 0 false false false
-221 26 tgconstrname
1043 -1 8 0 false false false
-222 26 tgrelid
23 4 9 0 false false false
-223 27 adrelid
23 4 1 0 false false false
-224 27 adnum
23 4 2 0 false false false
-225 27 adbin
1043 -1 3 0 false false false
-226 27 adsrc
1043 -1 4 0 false false false
-227 28 oid
23 4 1 0 false false false
-228 28 datname
1043 -1 2 0 false false false
-229 28 encoding
23 4 3 0 false false false
-230 28 datlastsysoid
23 4 4 0 false false false
-231 28 datallowconn
1042 1 5 0 false false false
-232 28 datconfig
<null> <null> 6 0 false false false
-233 28 datacl
<null> <null> 7 0 false false false
-234 28 datdba
23 4 8 0 false false false
-235 28 dattablespace
23 4 9 0 false false false
-236 29 oid
23 4 1 0 false false false
-237 29 usename
1043 -1 2 0 false false false
-238 29 usecreatedb
16 1 3 0 false false false
-239 29 usesuper
16 1 4 0 false false false
-240 30 attrelid
23 4 1 0 false false false
-241 30 attnum
21 2 2 0 false false false
-242 30 attname
1043 -1 3 0 false false false
-243 30 relname
1043 -1 4 0 false false false
-244 30 nspname
1043 -1 5 0 false false false
-245 30 autoinc
16 1 6 0 false false false
-246 30 typoid
23 4 7 0 false false false
-247 31 oid
23 4 1 0 false false false
-248 31 typname
1043 -1 2 0 false false false
-249 31 name
1043 -1 3 0 false false false
-250 31 uid
1043 -1 4 0 false false false
-251 31 typlen
21 2 5 0 false false false
-Row Count : 251
+128 14 ClobValue
14939 -1 5 2097152 false false false
+129 15 PKTABLE_CAT
1043 -1 1 255 false false false
+130 15 PKTABLE_SCHEM
1043 -1 2 255 false false false
+131 15 PKTABLE_NAME
1043 -1 3 255 false false false
+132 15 PKCOLUMN_NAME
1043 -1 4 255 false false false
+133 15 FKTABLE_CAT
1043 -1 5 255 false false false
+134 15 FKTABLE_SCHEM
1043 -1 6 255 false false false
+135 15 FKTABLE_NAME
1043 -1 7 255 false false false
+136 15 FKCOLUMN_NAME
1043 -1 8 255 false false false
+137 15 KEY_SEQ
21 2 9 5 false false false
+138 15 UPDATE_RULE
23 4 10 10 false false false
+139 15 DELETE_RULE
23 4 11 10 false false false
+140 15 FK_NAME
1043 -1 12 255 false false false
+141 15 PK_NAME
1043 -1 13 255 false false false
+142 15 DEFERRABILITY
23 4 14 10 false false false
+143 16 VDBName
1043 -1 1 255 false false false
+144 16 Name
1043 -1 2 255 false false false
+145 16 IsPhysical
16 1 3 1 true false false
+146 16 UID
1043 -1 4 50 true false false
+147 16 Description
1043 -1 5 255 false false false
+148 16 PrimaryMetamodelURI
1043 -1 6 255 true false false
+149 16 OID
23 4 7 10 true false false
+150 17 VDBName
1043 -1 1 255 false false false
+151 17 SchemaName
1043 -1 2 255 false false false
+152 17 Name
1043 -1 3 255 true false false
+153 17 Type
1043 -1 4 20 true false false
+154 17 NameInSource
1043 -1 5 255 false false false
+155 17 IsPhysical
16 1 6 1 true false false
+156 17 SupportsUpdates
16 1 7 1 true false false
+157 17 UID
1043 -1 8 50 true false false
+158 17 Cardinality
23 4 9 10 true false false
+159 17 Description
1043 -1 10 255 false false false
+160 17 IsSystem
16 1 11 1 false false false
+161 17 IsMaterialized
16 1 12 0 true false false
+162 17 OID
23 4 13 10 true false false
+163 18 Name
1043 -1 1 255 true false false
+164 18 Version
1043 -1 2 50 true false false
+165 19 oid
23 4 1 0 false false false
+166 19 nspname
1043 -1 2 0 false false false
+167 20 oid
23 4 1 0 false false false
+168 20 relname
1043 -1 2 0 false false false
+169 20 relnamespace
23 4 3 0 false false false
+170 20 relkind
1042 1 4 0 false false false
+171 20 relam
23 4 5 0 false false false
+172 20 reltuples
700 4 6 0 false false false
+173 20 relpages
23 4 7 0 false false false
+174 20 relhasrules
16 1 8 0 false false false
+175 20 relhasoids
16 1 9 0 false false false
+176 21 oid
23 4 1 0 false false false
+177 21 attrelid
23 4 2 0 false false false
+178 21 attname
1043 -1 3 0 false false false
+179 21 atttypid
23 4 4 0 false false false
+180 21 attlen
21 2 5 0 false false false
+181 21 attnum
21 2 6 0 false false false
+182 21 atttypmod
23 4 7 0 false false false
+183 21 attnotnull
16 1 8 0 false false false
+184 21 attisdropped
16 1 9 0 false false false
+185 21 atthasdef
16 1 10 0 false false false
+186 22 oid
23 4 1 0 false false false
+187 22 typname
1043 -1 2 0 false false false
+188 22 typnamespace
23 4 3 0 false false false
+189 22 typlen
21 2 4 0 false false false
+190 22 typtype
1042 1 5 0 false false false
+191 22 typbasetype
23 4 6 0 false false false
+192 22 typtypmod
23 4 7 0 false false false
+193 22 typrelid
23 4 8 0 false false false
+194 22 typelem
23 4 9 0 false false false
+195 23 oid
23 4 1 0 false false false
+196 23 indexrelid
23 4 2 0 false false false
+197 23 indrelid
23 4 3 0 false false false
+198 23 indisclustered
16 1 4 0 false false false
+199 23 indisunique
16 1 5 0 false false false
+200 23 indisprimary
16 1 6 0 false false false
+201 23 indexprs
1043 -1 7 0 false false false
+202 23 indkey
1043 -1 8 0 false false false
+203 24 oid
23 4 1 0 false false false
+204 24 amname
1043 -1 2 0 false false false
+205 25 oid
23 4 1 0 false false false
+206 25 proname
1043 -1 2 0 false false false
+207 25 proretset
16 1 3 0 false false false
+208 25 prorettype
23 4 4 0 false false false
+209 25 pronargs
21 2 5 0 false false false
+210 25 proargtypes
<null> <null> 6 0 false false false
+211 25 proargnames
<null> <null> 7 0 false false false
+212 25 proargmodes
<null> <null> 8 0 false false false
+213 25 proallargtypes
<null> <null> 9 0 false false false
+214 25 pronamespace
23 4 10 0 false false false
+215 26 oid
23 4 1 0 false false false
+216 26 tgconstrrelid
23 4 2 0 false false false
+217 26 tgfoid
23 4 3 0 false false false
+218 26 tgargs
23 4 4 0 false false false
+219 26 tgnargs
23 4 5 0 false false false
+220 26 tgdeferrable
16 1 6 0 false false false
+221 26 tginitdeferred
16 1 7 0 false false false
+222 26 tgconstrname
1043 -1 8 0 false false false
+223 26 tgrelid
23 4 9 0 false false false
+224 27 adrelid
23 4 1 0 false false false
+225 27 adnum
23 4 2 0 false false false
+226 27 adbin
1043 -1 3 0 false false false
+227 27 adsrc
1043 -1 4 0 false false false
+228 28 oid
23 4 1 0 false false false
+229 28 datname
1043 -1 2 0 false false false
+230 28 encoding
23 4 3 0 false false false
+231 28 datlastsysoid
23 4 4 0 false false false
+232 28 datallowconn
1042 1 5 0 false false false
+233 28 datconfig
<null> <null> 6 0 false false false
+234 28 datacl
<null> <null> 7 0 false false false
+235 28 datdba
23 4 8 0 false false false
+236 28 dattablespace
23 4 9 0 false false false
+237 29 oid
23 4 1 0 false false false
+238 29 usename
1043 -1 2 0 false false false
+239 29 usecreatedb
16 1 3 0 false false false
+240 29 usesuper
16 1 4 0 false false false
+241 30 attrelid
23 4 1 0 false false false
+242 30 attnum
21 2 2 0 false false false
+243 30 attname
1043 -1 3 0 false false false
+244 30 relname
1043 -1 4 0 false false false
+245 30 nspname
1043 -1 5 0 false false false
+246 30 autoinc
16 1 6 0 false false false
+247 30 typoid
23 4 7 0 false false false
+248 31 oid
23 4 1 0 false false false
+249 31 typname
1043 -1 2 0 false false false
+250 31 name
1043 -1 3 0 false false false
+251 31 uid
1043 -1 4 0 false false false
+252 31 typlen
21 2 5 0 false false false
+Row Count : 252
getColumnName getColumnType getCatalogName getColumnClassName getColumnLabel
getColumnTypeName getSchemaName getTableName getColumnDisplaySize getPrecision
getScale isAutoIncrement isCaseSensitive isCurrency isDefinitelyWritable isNullable
isReadOnly isSearchable isSigned isWritable
oid 4 PartsSupplier java.lang.Integer oid integer
pg_catalog pg_attribute 11 10 0
false false false false 2 true
true false false
attrelid 4 PartsSupplier java.lang.Integer attrelid integer
pg_catalog pg_attribute 11 10 0
false false false false 2 true
true false false
Modified:
trunk/test-integration/common/src/test/resources/TestPartsDatabaseMetadata/testColumns.expected
===================================================================
---
trunk/test-integration/common/src/test/resources/TestPartsDatabaseMetadata/testColumns.expected 2011-04-29
18:34:21 UTC (rev 3133)
+++
trunk/test-integration/common/src/test/resources/TestPartsDatabaseMetadata/testColumns.expected 2011-05-02
17:02:28 UTC (rev 3134)
@@ -125,6 +125,7 @@
PartsSupplier SYS
Properties
Value 12
string 255
<null> 0 10
0 <null>
<null> <null>
<null>
255 2 NO
<null>
<null>
<null> !
<null>
NO
PartsSupplier SYS
Properties
UID 12
string 50
<null> 0 10
0 <null>
<null> <null>
<null>
50 3 NO
<null>
<null>
<null> !
<null>
NO
PartsSupplier SYS
Properties
OID 4
integer 10
<null> 0 10
0 <null>
<null> <null>
<null>
10 4 NO
<null>
<null>
<null> !
<null>
NO
+PartsSupplier SYS
Properties
ClobValue
2005 clob 2097152
<null> 0 10
1 <null>
<null> <null>
<null>
2097152 5 YES
<null>
<null>
<null> !
<null>
NO
PartsSupplier SYS
ReferenceKeyColumns
PKTABLE_CAT 12
string 255
<null> 0 10
1 <null>
<null> <null>
<null>
255 1 YES
<null>
<null>
<null> !
<null>
NO
PartsSupplier SYS
ReferenceKeyColumns
PKTABLE_SCHEM 12
string 255
<null> 0 10
1 <null>
<null> <null>
<null>
255 2 YES
<null>
<null>
<null> !
<null>
NO
PartsSupplier SYS
ReferenceKeyColumns
PKTABLE_NAME 12
string 255
<null> 0 10
1 <null>
<null> <null>
<null>
255 3 YES
<null>
<null>
<null> !
<null>
NO
@@ -251,7 +252,7 @@
PartsSupplier pg_catalog
pg_user
usename 12
string 4000
<null> 0 0
2 <null>
<null> <null>
<null>
0 2
<null>
<null>
<null> !
<null>
NO
PartsSupplier pg_catalog
pg_user
usecreatedb -7
boolean 1
<null> 0 0
2 <null>
<null> <null>
<null>
0 3
<null>
<null>
<null> !
<null>
NO
PartsSupplier pg_catalog
pg_user
usesuper -7
boolean 1
<null> 0 0
2 <null>
<null> <null>
<null>
0 4
<null>
<null>
<null> !
<null>
NO
-Row Count : 251
+Row Count : 252
getColumnName getColumnType getCatalogName getColumnClassName getColumnLabel
getColumnTypeName getSchemaName getTableName getColumnDisplaySize getPrecision
getScale isAutoIncrement isCaseSensitive isCurrency isDefinitelyWritable isNullable
isReadOnly isSearchable isSigned isWritable
VDBName 12 PartsSupplier java.lang.String TABLE_CAT
string SYS Columns 255 255 0
false false false false 0 true
true false false
SchemaName 12 PartsSupplier java.lang.String TABLE_SCHEM
string SYS Columns 255 255 0
false true false true 1 false
true true true
Modified:
trunk/test-integration/common/src/test/resources/TestPartsDatabaseMetadata/testProcedureColumns.expected
===================================================================
---
trunk/test-integration/common/src/test/resources/TestPartsDatabaseMetadata/testProcedureColumns.expected 2011-04-29
18:34:21 UTC (rev 3133)
+++
trunk/test-integration/common/src/test/resources/TestPartsDatabaseMetadata/testProcedureColumns.expected 2011-05-02
17:02:28 UTC (rev 3134)
@@ -14,9 +14,13 @@
PartsSupplier SYSADMIN
setColumnStats
nullCount 1
4 integer 10 10 0 10
1 <null>
<null> <null>
<null>
<null>
4 YES
setColumnStats
PartsSupplier SYSADMIN
setColumnStats
max 1
12 string 4000 4000 0 10
1 <null>
<null> <null>
<null>
<null>
5 YES
setColumnStats
PartsSupplier SYSADMIN
setColumnStats
min 1
12 string 4000 4000 0 10
1 <null>
<null> <null>
<null>
<null>
6 YES
setColumnStats
+PartsSupplier SYSADMIN
setProperty
UID 1
12 string 4000 50 0 10
0 <null>
<null> <null>
<null>
<null>
2 NO
setProperty
+PartsSupplier SYSADMIN
setProperty
Name 1
12 string 4000 4000 0 10
0 <null>
<null> <null>
<null>
<null>
3 NO
setProperty
+PartsSupplier SYSADMIN
setProperty
Value 1
2005 clob 2147483647 2097152 0 10
1 <null>
<null> <null>
<null>
<null>
4 YES
setProperty
+PartsSupplier SYSADMIN
setProperty
OldValue 5
2005 clob 2147483647 2097152 0 10
0 <null>
<null> <null>
<null>
<null>
1 NO
setProperty
PartsSupplier SYSADMIN
setTableStats
tableName 1
12 string 4000 4000 0 10
0 <null>
<null> <null>
<null>
<null>
1 NO
setTableStats
PartsSupplier SYSADMIN
setTableStats
cardinality 1
4 integer 10 10 0 10
0 <null>
<null> <null>
<null>
<null>
2 NO
setTableStats
-Row Count : 16
+Row Count : 20
getColumnName getColumnType getCatalogName getColumnClassName getColumnLabel
getColumnTypeName getSchemaName getTableName getColumnDisplaySize getPrecision
getScale isAutoIncrement isCaseSensitive isCurrency isDefinitelyWritable isNullable
isReadOnly isSearchable isSigned isWritable
VDBName 12 PartsSupplier java.lang.String PROCEDURE_CAT
string SYS ProcedureParams 255 255 0
false false false false 0 true
true false false
SchemaName 12 PartsSupplier java.lang.String PROCEDURE_SCHEM
string SYS ProcedureParams 255 255 0
false true false true 1
false true true true
Modified:
trunk/test-integration/common/src/test/resources/TestPartsDatabaseMetadata/testProcedures.expected
===================================================================
---
trunk/test-integration/common/src/test/resources/TestPartsDatabaseMetadata/testProcedures.expected 2011-04-29
18:34:21 UTC (rev 3133)
+++
trunk/test-integration/common/src/test/resources/TestPartsDatabaseMetadata/testProcedures.expected 2011-05-02
17:02:28 UTC (rev 3134)
@@ -4,8 +4,9 @@
PartsSupplier SYSADMIN
refreshMatView
<null>
<null> <null>
<null>
1 refreshMatView
PartsSupplier SYSADMIN
refreshMatViewRow
<null>
<null> <null>
<null>
1 refreshMatViewRow
PartsSupplier SYSADMIN
setColumnStats
<null>
<null> <null>
<null>
1 setColumnStats
+PartsSupplier SYSADMIN
setProperty
<null>
<null> <null>
<null>
1 setProperty
PartsSupplier SYSADMIN
setTableStats
<null>
<null> <null>
<null>
1 setTableStats
-Row Count : 5
+Row Count : 6
getColumnName getColumnType getCatalogName getColumnClassName getColumnLabel
getColumnTypeName getSchemaName getTableName getColumnDisplaySize getPrecision
getScale isAutoIncrement isCaseSensitive isCurrency isDefinitelyWritable isNullable
isReadOnly isSearchable isSigned isWritable
VDBName 12 PartsSupplier java.lang.String PROCEDURE_CAT
string SYS Procedures 255 255 0
false false false false 0 true
true false false
SchemaName 12 PartsSupplier java.lang.String PROCEDURE_SCHEM
string SYS Procedures 255 255 0
false true false true 1 false
true true true
Modified:
trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testColumns.expected
===================================================================
---
trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testColumns.expected 2011-04-29
18:34:21 UTC (rev 3133)
+++
trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testColumns.expected 2011-05-02
17:02:28 UTC (rev 3134)
@@ -2,10 +2,11 @@
VDBName SchemaName
TableName
Name
Position NameInSource DataType
Scale Length
IsLengthFixed SupportsSelect SupportsUpdates IsCaseSensitive IsSigned IsCurrency
IsAutoIncremented NullType MinRange
MaxRange DistinctCount NullCount
SearchType Format
DefaultValue JavaClass
Precision CharOctetLength Radix UID
!
Description
OID
PartsSupplier SYS
DataTypes
BaseType 17
<null> string
0 64 true
true false true true false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 64 64
10 mmuuid:03beb57c-968b-!
4821-a6ae-cb1154cfadee <null>
76
PartsSupplier SYSADMIN
MatViews
Cardinality 9
<null> integer
0 10 false
true false true true false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 10 10
10 mmuuid:abe699b0-b6bc-!
4413-9172-0a21ca9664d2 <null>
26
-PartsSupplier SYS
Tables
Cardinality 9
<null> integer
0 10 false
true false true true false false
No Nulls <null>
<null> -1 -1 All
Except Like <null>
<null> java.lang.Integer
10 10 10
mmuuid:24cdad3a-e8f7-!
4376-bb32-79f8bc8eeed2 <null>
157
+PartsSupplier SYS
Tables
Cardinality 9
<null> integer
0 10 false
true false true true false false
No Nulls <null>
<null> -1 -1 All
Except Like <null>
<null> java.lang.Integer
10 10 10
mmuuid:24cdad3a-e8f7-!
4376-bb32-79f8bc8eeed2 <null>
158
PartsSupplier SYS
Columns
CharOctetLength 27
<null> integer
0 10 true
true false false false false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 10 10
10 mmuuid:de5def94-2804-!
4c91-91ed-26d630ce8afe <null>
55
-PartsSupplier SYS
ReferenceKeyColumns
DEFERRABILITY 14
<null> integer
0 10 false
true true true true false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 10 10
10 mmuuid:88380f55-2cbd-!
4325-b9a3-9dcaa88a690e <null>
141
-PartsSupplier SYS
ReferenceKeyColumns
DELETE_RULE 11
<null> integer
0 10 false
true true true true false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 10 10
10 mmuuid:9207f4df-a5ce-!
43bd-b3b2-fee57e459849 <null>
138
+PartsSupplier SYS
Properties
ClobValue 5
<null> clob
0 2097152 false
true true true true false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
org.teiid.core.types.ClobType 0 2097152
10 mmuuid:c0b630b2-5f71-!
4bee-8359-07c2629e355b <null>
128
+PartsSupplier SYS
ReferenceKeyColumns
DEFERRABILITY 14
<null> integer
0 10 false
true true true true false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 10 10
10 mmuuid:88380f55-2cbd-!
4325-b9a3-9dcaa88a690e <null>
142
+PartsSupplier SYS
ReferenceKeyColumns
DELETE_RULE 11
<null> integer
0 10 false
true true true true false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 10 10
10 mmuuid:9207f4df-a5ce-!
43bd-b3b2-fee57e459849 <null>
139
PartsSupplier SYS
Columns
DataType 7
<null> string
0 100 true
true false true true false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 100 100
10 mmuuid:9a8dc0d5-e65c-!
4032-a066-187f8d2e73ea <null>
35
PartsSupplier SYS
ProcedureParams
DataType 5
<null> string
0 25 true
true false true true false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 25 25
10 mmuuid:207a09af-65b8-!
405f-b1cb-537bc8632fa4 <null>
104
PartsSupplier SYS
Columns
DefaultValue 24
<null> string
0 255 true
true false false false false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 255 255
10 mmuuid:7e853988-356b-!
4c7c-83d4-a9f015bff279 <null>
52
@@ -14,14 +15,14 @@
PartsSupplier SYS
Keys
Description 5
<null> string
0 255 true
true false false false false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 255 255
10 mmuuid:175e21b2-24c3-!
4677-a253-6d7cdb513a9a <null>
93
PartsSupplier SYS
ProcedureParams
Description 15
<null> string
0 255 false
true true true true false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 0 255
10 mmuuid:05ac4703-5c2c-!
4410-93b7-19b39d90c803 <null>
114
PartsSupplier SYS
Procedures
Description 7
<null> string
0 255 false
true true true true false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 225 255
10 mmuuid:fa0b5db7-acb1-!
4975-8410-d5d27df46040 <null>
122
-PartsSupplier SYS
Schemas
Description 5
<null> string
0 255 false
true true true true false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 255 255
10 mmuuid:1cb99300-a527-!
4a26-b4e6-08ebd92a781d <null>
146
-PartsSupplier SYS
Tables
Description 10
<null> string
0 255 false
true true true true false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 255 255
10 mmuuid:51605e41-5cb0-!
40ca-8c4a-4eca52780afc <null>
158
-PartsSupplier SYS
Columns
DistinctCount 20
<null> integer
0 10 false
true true true true false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 10
10 mmuuid:0017cd41-d873-!
4fcb-a2e7-15cdac7df3a5 <null>
48
-PartsSupplier SYS
ReferenceKeyColumns
FKCOLUMN_NAME 8
<null> string
0 255 false
true true true true false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 255 255
10 mmuuid:f4b2b32c-e411-!
45e6-a236-fec4718f0874 <null>
135
-PartsSupplier SYS
ReferenceKeyColumns
FKTABLE_CAT 5
<null> string
0 255 false
true true true true false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 1 255
10 mmuuid:a0095da3-1258-!
44dc-bab9-33eacf886a28 <null>
132
-PartsSupplier SYS
ReferenceKeyColumns
FKTABLE_NAME 7
<null> string
0 255 false
true true true true false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 255 255
10 mmuuid:53284aaa-4c07-!
4930-8a0e-5e2aaa2da5cb <null>
134
-PartsSupplier SYS
ReferenceKeyColumns
FKTABLE_SCHEM 6
<null> string
0 255 false
true true true true false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 255 255
10 mmuuid:93a35adf-b6b1-!
4d9c-bdef-d336a84f478e <null>
133
-PartsSupplier SYS
ReferenceKeyColumns
FK_NAME 12
<null> string
0 255 false
true true true true false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 255 255
10 mmuuid:a9ca7516-6898-!
419d-b1ad-7d174d946d07 <null>
139
+PartsSupplier SYS
Schemas
Description 5
<null> string
0 255 false
true true true true false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 255 255
10 mmuuid:1cb99300-a527-!
4a26-b4e6-08ebd92a781d <null>
147
+PartsSupplier SYS
Tables
Description 10
<null> string
0 255 false
true true true true false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 255 255
10 mmuuid:51605e41-5cb0-!
40ca-8c4a-4eca52780afc <null>
159
+PartsSupplier SYS
Columns
DistinctCount 20
<null> integer
0 10 false
true true true true false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 10 10
10 mmuuid:0017cd41-d873-!
4fcb-a2e7-15cdac7df3a5 <null>
48
+PartsSupplier SYS
ReferenceKeyColumns
FKCOLUMN_NAME 8
<null> string
0 255 false
true true true true false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 255 255
10 mmuuid:f4b2b32c-e411-!
45e6-a236-fec4718f0874 <null>
136
+PartsSupplier SYS
ReferenceKeyColumns
FKTABLE_CAT 5
<null> string
0 255 false
true true true true false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 1 255
10 mmuuid:a0095da3-1258-!
44dc-bab9-33eacf886a28 <null>
133
+PartsSupplier SYS
ReferenceKeyColumns
FKTABLE_NAME 7
<null> string
0 255 false
true true true true false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 255 255
10 mmuuid:53284aaa-4c07-!
4930-8a0e-5e2aaa2da5cb <null>
135
+PartsSupplier SYS
ReferenceKeyColumns
FKTABLE_SCHEM 6
<null> string
0 255 false
true true true true false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 255 255
10 mmuuid:93a35adf-b6b1-!
4d9c-bdef-d336a84f478e <null>
134
+PartsSupplier SYS
ReferenceKeyColumns
FK_NAME 12
<null> string
0 255 false
true true true true false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 255 255
10 mmuuid:a9ca7516-6898-!
419d-b1ad-7d174d946d07 <null>
140
PartsSupplier SYS
Columns
Format 23
<null> string
0 255 true
true false false false false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 255 255
10 mmuuid:172b133e-5bf1-!
4020-953c-de4446b1e64a <null>
51
PartsSupplier SYS
Columns
IsAutoIncremented 16
<null> boolean
0 1 true
true false false false false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Boolean 1 1
10 mmuuid:0d41e284-f274-!
4fd1-8576-7696f4b758d0 <null>
44
PartsSupplier SYS
DataTypes
IsAutoIncremented 10
<null> boolean
0 1 true
true false true true false false
No Nulls <null>
<null> -1 -1
Searchable <null>
('0')
java.lang.Boolean 1 1
10 mmuuid:2a1568e2-776a-!
474b-981f-040a6ad63361 <null>
69
@@ -30,17 +31,17 @@
PartsSupplier SYS
Columns
IsCurrency 15
<null> boolean
0 1 true
true false false false false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Boolean 1 1
10 mmuuid:b28a2963-36e0-!
4b4a-a8f8-a2c06f2b440a <null>
43
PartsSupplier SYS
Keys
IsIndexed 8
<null> boolean
0 1 true
true false false false false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Boolean 1 1
10 mmuuid:ea96cb7c-2dcf-!
453c-b83a-1aaa921d8f92 <null>
96
PartsSupplier SYS
Columns
IsLengthFixed 10
<null> boolean
0 1 true
true false false false false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Boolean 1 1
10 mmuuid:571aa4ce-3254-!
4a2b-aa48-1cb23a0c47ed <null>
38
-PartsSupplier SYS
Tables
IsMaterialized 12
<null> boolean
0 0 false
true true false false false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Boolean 0 0
10 mmuuid:89265cba-ab85-!
48c2-960a-a5a9594ba6d0 <null>
160
+PartsSupplier SYS
Tables
IsMaterialized 12
<null> boolean
0 0 false
true true false false false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Boolean 0 0
10 mmuuid:89265cba-ab85-!
48c2-960a-a5a9594ba6d0 <null>
161
PartsSupplier SYS
DataTypes
IsPhysical 3
<null> boolean
0 1 true
true false true true false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Boolean 1 1
10 mmuuid:983714a2-bd0b-!
4fad-b4e8-dfb7832e9c4b <null>
62
-PartsSupplier SYS
Schemas
IsPhysical 3
<null> boolean
0 1 true
true false false false false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Boolean 1 1
10 mmuuid:bab257d7-cced-!
4605-9b40-8ca6c078aca7 <null>
144
-PartsSupplier SYS
Tables
IsPhysical 6
<null> boolean
0 1 true
true false true false false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Boolean 1 1
10 mmuuid:e27712f6-a0a6-!
452e-848d-9de77691e939 <null>
154
+PartsSupplier SYS
Schemas
IsPhysical 3
<null> boolean
0 1 true
true false false false false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Boolean 1 1
10 mmuuid:bab257d7-cced-!
4605-9b40-8ca6c078aca7 <null>
145
+PartsSupplier SYS
Tables
IsPhysical 6
<null> boolean
0 1 true
true false true false false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Boolean 1 1
10 mmuuid:e27712f6-a0a6-!
452e-848d-9de77691e939 <null>
155
PartsSupplier SYS
Columns
IsSigned 14
<null> boolean
0 1 true
true false false false false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Boolean 1 1
10 mmuuid:36be2afa-8ebc-!
4af8-acc5-a887cf2b5a86 <null>
42
PartsSupplier SYS
DataTypes
IsSigned 9
<null> boolean
0 1 true
true false true false false false
No Nulls <null>
<null> -1 -1
Searchable <null>
('0')
java.lang.Boolean 1 1
10 mmuuid:235cea48-b2b9-!
41d5-b296-8ab9c649b6e7 <null>
68
PartsSupplier SYS
DataTypes
IsStandard 2
<null> boolean
0 1 true
true false true true false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Boolean 1 1
10 mmuuid:02f27c5d-af55-!
4677-b91b-8690793671b2 <null>
61
-PartsSupplier SYS
Tables
IsSystem 11
<null> boolean
0 1 false
true true true true false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Boolean 1 1
10 mmuuid:9fa7987c-7dc8-!
4102-9cc0-5658d5b46382 <null>
159
+PartsSupplier SYS
Tables
IsSystem 11
<null> boolean
0 1 false
true true true true false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Boolean 1 1
10 mmuuid:9fa7987c-7dc8-!
4102-9cc0-5658d5b46382 <null>
160
PartsSupplier SYS
Columns
JavaClass 25
<null> string
0 500 true
true false true false false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 500 500
10 mmuuid:6b8d5df5-7bd2-!
425c-8b2b-e427e026ef66 <null>
53
PartsSupplier SYS
DataTypes
JavaClass 5
<null> string
0 500 true
true false true false false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 500 500
10 mmuuid:4c68ef90-8042-!
44ab-896a-bb3890a8fe04 <null>
64
-PartsSupplier SYS
ReferenceKeyColumns
KEY_SEQ 9
<null> short
0 5 false
true true true true false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Short 5 5
10 mmuuid:4884ac83-84ed-!
4b67-9f1a-bd79c0199269 <null>
136
+PartsSupplier SYS
ReferenceKeyColumns
KEY_SEQ 9
<null> short
0 5 false
true true true true false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Short 5 5
10 mmuuid:4884ac83-84ed-!
4b67-9f1a-bd79c0199269 <null>
137
PartsSupplier SYS
KeyColumns
KeyName 5
<null> string
0 255 true
true false false false false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 255 255
10 mmuuid:da4bef58-83f4-!
4b88-8bb0-2dc8990be539 <null>
83
PartsSupplier SYS
KeyColumns
KeyType 6
<null> string
0 20 true
true false false false false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 20 20
10 mmuuid:df9e15e6-ab77-!
486d-bfe0-0adc378aa99d <null>
84
PartsSupplier SYS
Columns
Length 9
<null> integer
0 10 true
true false false false false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 10 10
10 mmuuid:b36ea0f6-cbff-!
4049-bc9c-8ec9928be048 <null>
37
@@ -55,14 +56,14 @@
PartsSupplier SYS
ProcedureParams
Name 4
<null> string
0 255 true
true false false false false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 255 255
10 mmuuid:2bf20c6f-5a95-!
436d-8f30-a24d164e77a4 <null>
103
PartsSupplier SYS
Procedures
Name 3
<null> string
0 255 true
true false true false false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 255 255
10 mmuuid:bd17e98a-c40a-!
43b1-93ac-88d62937c051 <null>
118
PartsSupplier SYS
Properties
Name 1
<null> string
0 255 true
true false true true false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 255 255
10 mmuuid:ba007c56-04b6-!
4981-ab89-3fdd33ff0de8 <null>
124
-PartsSupplier SYS
Schemas
Name 2
<null> string
0 255 false
true true true true false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 0 255
10 mmuuid:654112f8-bb4c-!
4453-9e4d-f3a96fba61ec <null>
143
-PartsSupplier SYS
Tables
Name 3
<null> string
0 255 true
true false true false false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 255 255
10 mmuuid:ef487cc2-1214-!
439c-af6e-da431df00d2c <null>
151
-PartsSupplier SYS
VirtualDatabases
Name 1
<null> string
0 255 true
true false true false false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 255 255
10 mmuuid:42fa1249-8b24-!
4aae-a252-0a347db6ec30 <null>
162
+PartsSupplier SYS
Schemas
Name 2
<null> string
0 255 false
true true true true false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 0 255
10 mmuuid:654112f8-bb4c-!
4453-9e4d-f3a96fba61ec <null>
144
+PartsSupplier SYS
Tables
Name 3
<null> string
0 255 true
true false true false false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 255 255
10 mmuuid:ef487cc2-1214-!
439c-af6e-da431df00d2c <null>
152
+PartsSupplier SYS
VirtualDatabases
Name 1
<null> string
0 255 true
true false true false false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 255 255
10 mmuuid:42fa1249-8b24-!
4aae-a252-0a347db6ec30 <null>
163
PartsSupplier SYS
Columns
NameInSource 6
<null> string
0 255 true
true false false false false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 255 255
10 mmuuid:fac72c6e-41dc-!
4a1b-8af3-f0796690d9cc <null>
34
PartsSupplier SYS
Keys
NameInSource 6
<null> string
0 255 true
true false false false false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 255 255
10 mmuuid:a52a6169-99e0-!
4b7e-9dc6-3a93ffa6094a <null>
94
PartsSupplier SYS
Procedures
NameInSource 4
<null> string
0 255 true
true false false false false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 255 255
10 mmuuid:a4e7a0fd-c340-!
49a9-9ac0-8328caaffda8 <null>
119
-PartsSupplier SYS
Tables
NameInSource 5
<null> string
0 255 true
true false true false false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 255 255
10 mmuuid:1f036fb0-b841-!
450c-8462-986cdd57e921 <null>
153
-PartsSupplier SYS
Columns
NullCount 21
<null> integer
0 10 false
true true true true false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 10
10 mmuuid:d00d1104-40ba-!
40be-b684-4c0c803615f8 <null>
49
+PartsSupplier SYS
Tables
NameInSource 5
<null> string
0 255 true
true false true false false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 255 255
10 mmuuid:1f036fb0-b841-!
450c-8462-986cdd57e921 <null>
154
+PartsSupplier SYS
Columns
NullCount 21
<null> integer
0 10 false
true true true true false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 10 10
10 mmuuid:d00d1104-40ba-!
40be-b684-4c0c803615f8 <null>
49
PartsSupplier SYS
Columns
NullType 17
<null> string
0 20 true
true false true false false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 20 20
10 mmuuid:4d83bdbb-a7ce-!
44cc-a201-021a517d3c1a <null>
45
PartsSupplier SYS
DataTypes
NullType 8
<null> string
0 20 true
true false true false false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 20 20
10 mmuuid:278b0534-1164-!
495e-a8c6-de45e0ff53a4 <null>
67
PartsSupplier SYS
ProcedureParams
NullType 13
<null> string
0 10 true
true false false false false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 10 10
10 mmuuid:d887c203-6bf5-!
462b-b2f0-f5302e2f4bcd <null>
112
@@ -73,26 +74,26 @@
PartsSupplier SYS
ProcedureParams
OID 16
<null> integer
0 10 true
true false false false false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 10 10
10 mmuuid:72125f93-846f-!
413c-82e1-fa3227fb043f <null>
115
PartsSupplier SYS
Procedures
OID 8
<null> integer
0 10 true
true false false false false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 10 10
10 mmuuid:c80c02d2-7174-!
4cc4-b347-e921a80f568c <null>
123
PartsSupplier SYS
Properties
OID 4
<null> integer
0 10 true
true false false false false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 10 10
10 mmuuid:54c1a7dc-5ca8-!
4d34-8672-e76d63fe3b95 <null>
127
-PartsSupplier SYS
Schemas
OID 7
<null> integer
0 10 true
true false false false false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 10 10
10 mmuuid:31746839-e019-!
4321-90cb-a557e1d4754e <null>
148
-PartsSupplier SYS
Tables
OID 13
<null> integer
0 10 true
true false false false false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 10 10
10 mmuuid:dae79c58-b381-!
4275-8c1c-b299d732d355 <null>
161
+PartsSupplier SYS
Schemas
OID 7
<null> integer
0 10 true
true false false false false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 10 10
10 mmuuid:31746839-e019-!
4321-90cb-a557e1d4754e <null>
149
+PartsSupplier SYS
Tables
OID 13
<null> integer
0 10 true
true false false false false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 10 10
10 mmuuid:dae79c58-b381-!
4275-8c1c-b299d732d355 <null>
162
PartsSupplier SYS
ProcedureParams
Optional 8
<null> boolean
0 1 true
true false false false false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Boolean 1 1
10 mmuuid:4033f891-5ef5-!
4a75-8a50-bd1d021e43ad <null>
107
PartsSupplier PartsSupplier
PARTSSUPPLIER.PARTS
PART_COLOR 3
PART_COLOR string
0 30 false
true true true true false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 0 30
10 mmuuid:015c0d00-73ff-!
1edc-a81c-ecf397b10590 <null>
3
PartsSupplier PartsSupplier
PARTSSUPPLIER.PARTS
PART_ID 1
PART_ID string
0 4 true
true true true true false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 0 4
10 mmuuid:fadcd7c0-73fe-!
1edc-a81c-ecf397b10590 <null>
1
PartsSupplier PartsSupplier
PARTSSUPPLIER.SUPPLIER_PARTS
PART_ID 2
PART_ID string
0 4 true
true true true true false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 0 4
10 mmuuid:3fc400c0-73ff-!
1edc-a81c-ecf397b10590 <null>
10
PartsSupplier PartsSupplier
PARTSSUPPLIER.PARTS
PART_NAME 2
PART_NAME string
0 255 false
true true true true false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 0 255
10 mmuuid:0067e900-73ff-!
1edc-a81c-ecf397b10590 <null>
2
PartsSupplier PartsSupplier
PARTSSUPPLIER.PARTS
PART_WEIGHT 4
PART_WEIGHT string
0 255 false
true true true true false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 0 255
10 mmuuid:015c0d01-73ff-!
1edc-a81c-ecf397b10590 <null>
4
-PartsSupplier SYS
ReferenceKeyColumns
PKCOLUMN_NAME 4
<null> string
0 255 false
true true true true false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 255 255
10 mmuuid:0125a80a-95f9-!
486f-aa90-debb21cb5f1b <null>
131
-PartsSupplier SYS
ReferenceKeyColumns
PKTABLE_CAT 1
<null> string
0 255 false
true true true true false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 1 255
10 mmuuid:f615a661-2c36-!
4ab1-b72b-5e13e99e052c <null>
128
-PartsSupplier SYS
ReferenceKeyColumns
PKTABLE_NAME 3
<null> string
0 255 false
true true true true false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 255 255
10 mmuuid:6d420bc2-0f85-!
4da9-833d-d71b428b0743 <null>
130
-PartsSupplier SYS
ReferenceKeyColumns
PKTABLE_SCHEM 2
<null> string
0 255 false
true true true true false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 255 255
10 mmuuid:ef7b3b79-fb51-!
42ef-a723-080ed0a6e3bc <null>
129
-PartsSupplier SYS
ReferenceKeyColumns
PK_NAME 13
<null> string
0 255 false
true true true true false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 255 255
10 mmuuid:ac210a6d-4de6-!
4d71-aa9b-e3d34baca81a <null>
140
+PartsSupplier SYS
ReferenceKeyColumns
PKCOLUMN_NAME 4
<null> string
0 255 false
true true true true false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 255 255
10 mmuuid:0125a80a-95f9-!
486f-aa90-debb21cb5f1b <null>
132
+PartsSupplier SYS
ReferenceKeyColumns
PKTABLE_CAT 1
<null> string
0 255 false
true true true true false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 1 255
10 mmuuid:f615a661-2c36-!
4ab1-b72b-5e13e99e052c <null>
129
+PartsSupplier SYS
ReferenceKeyColumns
PKTABLE_NAME 3
<null> string
0 255 false
true true true true false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 255 255
10 mmuuid:6d420bc2-0f85-!
4da9-833d-d71b428b0743 <null>
131
+PartsSupplier SYS
ReferenceKeyColumns
PKTABLE_SCHEM 2
<null> string
0 255 false
true true true true false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 255 255
10 mmuuid:ef7b3b79-fb51-!
42ef-a723-080ed0a6e3bc <null>
130
+PartsSupplier SYS
ReferenceKeyColumns
PK_NAME 13
<null> string
0 255 false
true true true true false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 255 255
10 mmuuid:ac210a6d-4de6-!
4d71-aa9b-e3d34baca81a <null>
141
PartsSupplier SYS
Columns
Position 5
<null> integer
0 10 true
true false false false false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 10 10
10 mmuuid:dbc8cd09-1b47-!
43c5-82ec-aba525b85cc4 <null>
33
PartsSupplier SYS
KeyColumns
Position 9
<null> integer
0 10 true
true true true true false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 10 10
10 mmuuid:92a4849c-ed0e-!
4f5f-a108-d7d71a5aba25 <null>
87
PartsSupplier SYS
ProcedureParams
Position 6
<null> integer
0 10 true
true false false false false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 10 10
10 mmuuid:5fdefd17-65f4-!
4350-9ee0-0ed3c34d10ae <null>
105
PartsSupplier SYS
Columns
Precision 26
<null> integer
0 10 true
true false false false false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 10 10
10 mmuuid:db3d49e2-fe1d-!
438b-8d07-847bf58506ab <null>
54
PartsSupplier SYS
DataTypes
Precision 12
<null> integer
0 10 true
true false false false false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 10 10
10 mmuuid:8673c810-7162-!
4331-ba0b-6fc3530d2d1c <null>
71
PartsSupplier SYS
ProcedureParams
Precision 9
<null> integer
0 10 true
true false false false false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 10 10
10 mmuuid:00fe7cad-0a83-!
42f0-90f2-d6a9584916b2 <null>
108
-PartsSupplier SYS
Schemas
PrimaryMetamodelURI 6
<null> string
0 255 false
true false false false false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 255 255
10 mmuuid:eadfaba5-ce44-!
4529-816f-6af94666baec <null>
147
+PartsSupplier SYS
Schemas
PrimaryMetamodelURI 6
<null> string
0 255 false
true false false false false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 255 255
10 mmuuid:eadfaba5-ce44-!
4529-816f-6af94666baec <null>
148
PartsSupplier SYS
ProcedureParams
ProcedureName 3
<null> string
0 255 true
true false true false false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 255 255
10 mmuuid:8081b3a6-fc79-!
42fd-b7c9-a19d682a1658 <null>
102
PartsSupplier PartsSupplier
PARTSSUPPLIER.SUPPLIER_PARTS
QUANTITY 3
QUANTITY short
0 0 true
true true false true false false
Nullable <null>
<null> -1 -1 All
Except Like <null>
<null> java.lang.Short
3 0 10
mmuuid:3fc400c1-73ff-!
1edc-a81c-ecf397b10590 <null>
11
PartsSupplier SYS
Columns
Radix 28
<null> integer
0 10 true
true false false false false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 10 10
10 mmuuid:43a6124c-972f-!
4c4c-af05-24080c2a8ad7 <null>
56
@@ -122,12 +123,12 @@
PartsSupplier SYS
Keys
SchemaName 2
<null> string
0 255 false
true true true true false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 0 255
10 mmuuid:4a7fc059-208e-!
4f98-b6ef-cb7c6102a327 <null>
90
PartsSupplier SYS
ProcedureParams
SchemaName 2
<null> string
0 255 false
true true true true false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 0 255
10 mmuuid:88497911-619c-!
4ca8-b482-8885d940706a <null>
101
PartsSupplier SYS
Procedures
SchemaName 2
<null> string
0 255 false
true true true true false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 0 255
10 mmuuid:53a84865-334e-!
4750-b343-de2411d56e3e <null>
117
-PartsSupplier SYS
Tables
SchemaName 2
<null> string
0 255 false
true true true true false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 0 255
10 mmuuid:95bd960c-fd84-!
44c9-9831-692376f69b46 <null>
150
+PartsSupplier SYS
Tables
SchemaName 2
<null> string
0 255 false
true true true true false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 0 255
10 mmuuid:95bd960c-fd84-!
44c9-9831-692376f69b46 <null>
151
PartsSupplier SYS
Columns
SearchType 22
<null> string
0 20 true
true false false false false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 20 20
10 mmuuid:3037138a-bb20-!
4485-ba01-75bc20b1a532 <null>
50
PartsSupplier SYS
DataTypes
SearchType 14
<null> string
0 20 true
true false false false false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 20 20
10 mmuuid:d8494fa3-40e4-!
44cd-b0d8-da5c83685a75 <null>
73
PartsSupplier SYS
Columns
SupportsSelect 11
<null> boolean
0 1 true
true false false false false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Boolean 1 1
10 mmuuid:c2a50f93-0040-!
41ec-ad7b-e8511296555f <null>
39
PartsSupplier SYS
Columns
SupportsUpdates 12
<null> boolean
0 1 true
true false false false false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Boolean 1 1
10 mmuuid:fab660d1-36bf-!
4a5b-bbe6-9a543e0ebd76 <null>
40
-PartsSupplier SYS
Tables
SupportsUpdates 7
<null> boolean
0 1 true
true false false false false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Boolean 1 1
10 mmuuid:5144d230-2b0e-!
4255-b321-65b9f6f6f76c <null>
155
+PartsSupplier SYS
Tables
SupportsUpdates 7
<null> boolean
0 1 true
true false false false false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Boolean 1 1
10 mmuuid:5144d230-2b0e-!
4255-b321-65b9f6f6f76c <null>
156
PartsSupplier SYS
Columns
TableName 3
<null> string
0 255 true
true false true false false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 255 255
10 mmuuid:2c09c9d1-2f25-!
45de-81cf-eeb2a5157d34 <null>
31
PartsSupplier SYS
KeyColumns
TableName 3
<null> string
0 2048 true
true false true false false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 2048 2048
10 mmuuid:c24fad72-0c0d-!
4260-96ae-f188ad77b137 <null>
81
PartsSupplier SYS
Keys
TableName 3
<null> string
0 2048 true
true false true false false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 2048 2048
10 mmuuid:7d9540bd-b51f-!
4206-8c33-b39c5ba8bb8b <null>
91
@@ -135,7 +136,7 @@
PartsSupplier SYSADMIN
MatViews
TargetSchemaName 4
<null> string
0 255 false
true false true true false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 0 255
10 mmuuid:a95dba1c-283e-!
4f48-9671-34cecdb7d0e3 <null>
21
PartsSupplier SYS
Keys
Type 7
<null> string
0 20 true
true false false false false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 20 20
10 mmuuid:29e73c18-afec-!
43a9-81ab-7378d6daf20b <null>
95
PartsSupplier SYS
ProcedureParams
Type 7
<null> string
0 100 true
true false false false false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 100 100
10 mmuuid:76a1981b-1226-!
4a55-9acf-82a061cc8642 <null>
106
-PartsSupplier SYS
Tables
Type 4
<null> string
0 20 true
true false false false false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 20 20
10 mmuuid:4814a0af-4e8f-!
4f55-9b25-3148d90d3d9b <null>
152
+PartsSupplier SYS
Tables
Type 4
<null> string
0 20 true
true false false false false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 20 20
10 mmuuid:4814a0af-4e8f-!
4f55-9b25-3148d90d3d9b <null>
153
PartsSupplier SYS
DataTypes
TypeLength 7
<null> integer
0 10 true
true false false false false false
No Nulls <null>
<null> -1 -1
Searchable <null>
(0) java.lang.Integer
10 10 10
mmuuid:0668382a-f9c3-!
4507-8b0f-df65a2ebbf2f <null>
66
PartsSupplier SYS
ProcedureParams
TypeLength 10
<null> integer
0 10 true
true false false false false false
No Nulls <null>
<null> -1 -1
Searchable <null>
(0) java.lang.Integer
10 10 10
mmuuid:791d7a29-8fc5-!
4735-9144-1accc114b58e <null>
109
PartsSupplier SYS
DataTypes
TypeName 4
<null> string
0 100 true
true false false false false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 100 100
10 mmuuid:48081cdd-9e90-!
4440-a956-4a32af96d7f4 <null>
63
@@ -146,9 +147,9 @@
PartsSupplier SYS
ProcedureParams
UID 14
<null> string
0 50 false
true true true true false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 0 50
10 mmuuid:a278de2e-89f1-!
4281-9e63-54aebb6062ce <null>
113
PartsSupplier SYS
Procedures
UID 6
<null> string
0 50 true
true false false false false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 50 50
10 mmuuid:de9df25a-c886-!
46e0-ae3a-8eb6792e43f4 <null>
121
PartsSupplier SYS
Properties
UID 3
<null> string
0 50 true
true false false true false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 50 50
10 mmuuid:b333969a-83e0-!
4010-9463-9a0088da6c83 <null>
126
-PartsSupplier SYS
Schemas
UID 4
<null> string
0 50 true
true false false false false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 50 50
10 mmuuid:ad232e4d-9c01-!
4d0c-bc57-0459d9db918a <null>
145
-PartsSupplier SYS
Tables
UID 8
<null> string
0 50 true
true false false false false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 50 50
10 mmuuid:6afe3737-26f9-!
43a8-88db-86531b5dc66c <null>
156
-PartsSupplier SYS
ReferenceKeyColumns
UPDATE_RULE 10
<null> integer
0 10 false
true true true true false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 10 10
10 mmuuid:30d5ae74-b19e-!
4186-97e1-aeff5801e44f <null>
137
+PartsSupplier SYS
Schemas
UID 4
<null> string
0 50 true
true false false false false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 50 50
10 mmuuid:ad232e4d-9c01-!
4d0c-bc57-0459d9db918a <null>
146
+PartsSupplier SYS
Tables
UID 8
<null> string
0 50 true
true false false false false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 50 50
10 mmuuid:6afe3737-26f9-!
43a8-88db-86531b5dc66c <null>
157
+PartsSupplier SYS
ReferenceKeyColumns
UPDATE_RULE 10
<null> integer
0 10 false
true true true true false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 10 10
10 mmuuid:30d5ae74-b19e-!
4186-97e1-aeff5801e44f <null>
138
PartsSupplier SYSADMIN
MatViews
Updated 8
<null>
timestamp 0 0
false true false true true false
false Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.sql.Timestamp 0 0
10 mmuuid:33970a66-7ad4-!
411f-a6c4-545746747fe6 <null>
25
PartsSupplier SYSADMIN
MatViews
VDBName 1
<null> string
0 255 false
true false true true false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 0 255
10 mmuuid:c1ce9841-e272-!
4839-8c78-777a5f68d241 <null>
18
PartsSupplier SYS
Columns
VDBName 1
<null> string
0 255 true
true false false false false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 255 255
10 mmuuid:83f19a81-1243-!
4751-8c99-daddbf37b1d7 <null>
29
@@ -156,102 +157,102 @@
PartsSupplier SYS
Keys
VDBName 1
<null> string
0 255 true
true false false false false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 255 255
10 mmuuid:5785b523-7da3-!
42c1-8920-66daa1f7fa1d <null>
89
PartsSupplier SYS
ProcedureParams
VDBName 1
<null> string
0 255 true
true false false false false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 255 255
10 mmuuid:f832f316-2403-!
43fa-9ccc-c3ab9d38acca <null>
100
PartsSupplier SYS
Procedures
VDBName 1
<null> string
0 255 true
true false false false false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 255 255
10 mmuuid:1d664747-4a95-!
4605-8b28-381bed3121f1 <null>
116
-PartsSupplier SYS
Schemas
VDBName 1
<null> string
0 255 false
true true true true false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 0 255
10 mmuuid:73dbf95b-a283-!
4f0a-81b9-9b98e09c2906 <null>
142
-PartsSupplier SYS
Tables
VDBName 1
<null> string
0 255 false
true true true true false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 0 255
10 mmuuid:58de905f-9d64-!
4831-a985-da6d082ff709 <null>
149
+PartsSupplier SYS
Schemas
VDBName 1
<null> string
0 255 false
true true true true false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 0 255
10 mmuuid:73dbf95b-a283-!
4f0a-81b9-9b98e09c2906 <null>
143
+PartsSupplier SYS
Tables
VDBName 1
<null> string
0 255 false
true true true true false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 0 255
10 mmuuid:58de905f-9d64-!
4831-a985-da6d082ff709 <null>
150
PartsSupplier SYSADMIN
MatViews
Valid 6
<null> boolean
0 0 false
true false true true false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Boolean 0 0
10 mmuuid:13098912-bce2-!
4842-9ea9-b162fcd7383e <null>
23
PartsSupplier SYS
Properties
Value 2
<null> string
0 255 true
true false true true false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 255 255
10 mmuuid:c917257d-06b7-!
41dd-a6cb-44c0ff0f897e <null>
125
-PartsSupplier SYS
VirtualDatabases
Version 2
<null> string
0 50 true
true false true false false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 50 50
10 mmuuid:c876d749-a512-!
4810-9910-3034ca524c45 <null>
163
-PartsSupplier pg_catalog
pg_attrdef
adbin 3
<null> string
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 0 0
0 mmuid:e22c521a-e208-4!
181-9dbd-89f5de7014b9 <null>
225
-PartsSupplier pg_catalog
pg_attrdef
adnum 2
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:e9b278d4-49af-4!
42f-9a5a-b699fe3b102b <null>
224
-PartsSupplier pg_catalog
pg_attrdef
adrelid 1
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:4589389f-4abd-4!
2a6-818f-ff1f2a085dfb <null>
223
-PartsSupplier pg_catalog
pg_attrdef
adsrc 4
<null> string
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 0 0
0 mmuid:492dd834-907f-4!
29b-aa6e-958ad65204c6 <null>
226
-PartsSupplier pg_catalog
pg_am
amname 2
<null> string
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 0 0
0 mmuid:da4b747e-7d87-4!
03a-8309-2cdf1399031b <null>
203
-PartsSupplier pg_catalog
pg_attribute
atthasdef 10
<null> boolean
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Boolean 0 0
0 mmuid:5868e549-4bbe-4!
79e-bc7e-632c05cc2329 <null>
184
-PartsSupplier pg_catalog
pg_attribute
attisdropped 9
<null> boolean
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Boolean 0 0
0 mmuid:7beb42a9-dfe6-4!
3de-98b6-7e8948b1a666 <null>
183
-PartsSupplier pg_catalog
pg_attribute
attlen 5
<null> short
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Short 0 0
0 mmuid:d1214249-95cd-4!
26f-b8f6-4bf68c0504c7 <null>
179
-PartsSupplier pg_catalog
pg_attribute
attname 3
<null> string
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 0 0
0 mmuid:6064d149-4102-4!
c2d-9132-582342f25e90 <null>
177
-PartsSupplier pg_catalog
matpg_relatt
attname 3
<null> string
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 0 0
0 mmuid:5cfb2b62-a912-4!
bfb-bf4f-51e107fe210c <null>
242
-PartsSupplier pg_catalog
pg_attribute
attnotnull 8
<null> boolean
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Boolean 0 0
0 mmuid:91ce8bde-8570-4!
867-be17-80acfa9275a6 <null>
182
-PartsSupplier pg_catalog
pg_attribute
attnum 6
<null> short
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Short 0 0
0 mmuid:141fd911-f2dd-4!
edd-8f08-ad8a67ffd0fb <null>
180
-PartsSupplier pg_catalog
matpg_relatt
attnum 2
<null> short
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Short 0 0
0 mmuid:0b0894ba-e1ea-4!
eaf-bcd2-ea9ebd05e47d <null>
241
-PartsSupplier pg_catalog
pg_attribute
attrelid 2
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:3be6b5de-2287-4!
279-93f3-4f5064799118 <null>
176
-PartsSupplier pg_catalog
matpg_relatt
attrelid 1
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:5c7bf056-ecc5-4!
1ea-a122-7a4b1de9908a <null>
240
-PartsSupplier pg_catalog
pg_attribute
atttypid 4
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:99782493-1cce-4!
e14-9c1b-4de7ce50e2c8 <null>
178
-PartsSupplier pg_catalog
pg_attribute
atttypmod 7
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:2e2bae3c-ab93-4!
9f5-b96c-7a7b9d66782d <null>
181
-PartsSupplier pg_catalog
matpg_relatt
autoinc 6
<null> boolean
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Boolean 0 0
0 mmuid:23454408-0347-4!
0d2-a3f9-3faa664fb5e9 <null>
245
+PartsSupplier SYS
VirtualDatabases
Version 2
<null> string
0 50 true
true false true false false false
No Nulls <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 50 50
10 mmuuid:c876d749-a512-!
4810-9910-3034ca524c45 <null>
164
+PartsSupplier pg_catalog
pg_attrdef
adbin 3
<null> string
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 0 0
0 mmuid:e22c521a-e208-4!
181-9dbd-89f5de7014b9 <null>
226
+PartsSupplier pg_catalog
pg_attrdef
adnum 2
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:e9b278d4-49af-4!
42f-9a5a-b699fe3b102b <null>
225
+PartsSupplier pg_catalog
pg_attrdef
adrelid 1
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:4589389f-4abd-4!
2a6-818f-ff1f2a085dfb <null>
224
+PartsSupplier pg_catalog
pg_attrdef
adsrc 4
<null> string
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 0 0
0 mmuid:492dd834-907f-4!
29b-aa6e-958ad65204c6 <null>
227
+PartsSupplier pg_catalog
pg_am
amname 2
<null> string
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 0 0
0 mmuid:da4b747e-7d87-4!
03a-8309-2cdf1399031b <null>
204
+PartsSupplier pg_catalog
pg_attribute
atthasdef 10
<null> boolean
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Boolean 0 0
0 mmuid:5868e549-4bbe-4!
79e-bc7e-632c05cc2329 <null>
185
+PartsSupplier pg_catalog
pg_attribute
attisdropped 9
<null> boolean
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Boolean 0 0
0 mmuid:7beb42a9-dfe6-4!
3de-98b6-7e8948b1a666 <null>
184
+PartsSupplier pg_catalog
pg_attribute
attlen 5
<null> short
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Short 0 0
0 mmuid:d1214249-95cd-4!
26f-b8f6-4bf68c0504c7 <null>
180
+PartsSupplier pg_catalog
pg_attribute
attname 3
<null> string
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 0 0
0 mmuid:6064d149-4102-4!
c2d-9132-582342f25e90 <null>
178
+PartsSupplier pg_catalog
matpg_relatt
attname 3
<null> string
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 0 0
0 mmuid:5cfb2b62-a912-4!
bfb-bf4f-51e107fe210c <null>
243
+PartsSupplier pg_catalog
pg_attribute
attnotnull 8
<null> boolean
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Boolean 0 0
0 mmuid:91ce8bde-8570-4!
867-be17-80acfa9275a6 <null>
183
+PartsSupplier pg_catalog
pg_attribute
attnum 6
<null> short
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Short 0 0
0 mmuid:141fd911-f2dd-4!
edd-8f08-ad8a67ffd0fb <null>
181
+PartsSupplier pg_catalog
matpg_relatt
attnum 2
<null> short
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Short 0 0
0 mmuid:0b0894ba-e1ea-4!
eaf-bcd2-ea9ebd05e47d <null>
242
+PartsSupplier pg_catalog
pg_attribute
attrelid 2
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:3be6b5de-2287-4!
279-93f3-4f5064799118 <null>
177
+PartsSupplier pg_catalog
matpg_relatt
attrelid 1
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:5c7bf056-ecc5-4!
1ea-a122-7a4b1de9908a <null>
241
+PartsSupplier pg_catalog
pg_attribute
atttypid 4
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:99782493-1cce-4!
e14-9c1b-4de7ce50e2c8 <null>
179
+PartsSupplier pg_catalog
pg_attribute
atttypmod 7
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:2e2bae3c-ab93-4!
9f5-b96c-7a7b9d66782d <null>
182
+PartsSupplier pg_catalog
matpg_relatt
autoinc 6
<null> boolean
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Boolean 0 0
0 mmuid:23454408-0347-4!
0d2-a3f9-3faa664fb5e9 <null>
246
PartsSupplier SYSADMIN
VDBResources
contents 2
<null> blob
0 0 false
true false true true false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
org.teiid.core.types.BlobType 0 0
10 mmuuid:f9421669-3564-!
451d-9293-96c1e5e72c4f <null>
28
-PartsSupplier pg_catalog
pg_database
datacl 7
<null> object
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Object 0 0
0 mmuid:8b993c11-de2b-4!
8bc-beb1-3e44c46811b4 <null>
233
-PartsSupplier pg_catalog
pg_database
datallowconn 5
<null> char
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Character 0 0
0 mmuid:5c9d54b2-433f-4!
43a-85ce-821f42ed109e <null>
231
-PartsSupplier pg_catalog
pg_database
datconfig 6
<null> object
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Object 0 0
0 mmuid:4b5beb14-03a0-4!
652-9d6f-5f8cc74d470c <null>
232
-PartsSupplier pg_catalog
pg_database
datdba 8
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:36db343d-e99a-4!
27c-a4e2-763a720ce4a4 <null>
234
-PartsSupplier pg_catalog
pg_database
datlastsysoid 4
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:c2bdf40c-ec58-4!
39c-a403-7adf604ceadd <null>
230
-PartsSupplier pg_catalog
pg_database
datname 2
<null> string
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 0 0
0 mmuid:1aedd02c-5801-4!
1e7-accd-da1f257c26e8 <null>
228
-PartsSupplier pg_catalog
pg_database
dattablespace 9
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:28d034eb-6f39-4!
02f-b642-9c9560e57247 <null>
235
-PartsSupplier pg_catalog
pg_database
encoding 3
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:3b621b25-171c-4!
05b-8bf9-635cf93f2273 <null>
229
-PartsSupplier pg_catalog
pg_index
indexprs 7
<null> string
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 0 0
0 mmuid:1e6dbecd-9a2d-4!
aef-afbe-665de7acb9d6 <null>
200
-PartsSupplier pg_catalog
pg_index
indexrelid 2
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:8709e084-48df-4!
17d-b3f8-f4e9b7d8802b <null>
195
-PartsSupplier pg_catalog
pg_index
indisclustered 4
<null> boolean
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Boolean 0 0
0 mmuid:9f873e0f-903d-4!
c9d-8c37-1073b5ec4c67 <null>
197
-PartsSupplier pg_catalog
pg_index
indisprimary 6
<null> boolean
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Boolean 0 0
0 mmuid:9ea3b6d2-b27b-4!
bb1-a99d-b703c3308384 <null>
199
-PartsSupplier pg_catalog
pg_index
indisunique 5
<null> boolean
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Boolean 0 0
0 mmuid:a52c714d-dfe9-4!
06c-906b-fadd53ac4e98 <null>
198
-PartsSupplier pg_catalog
pg_index
indkey 8
<null> string
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 0 0
0 mmuid:347ec08c-6b41-4!
1d0-8475-031ce7d99ac0 <null>
201
-PartsSupplier pg_catalog
pg_index
indrelid 3
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:16998907-e1dd-4!
47e-898d-780994d30619 <null>
196
-PartsSupplier pg_catalog
matpg_datatype
name 3
<null> string
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 0 0
0 mmuid:b4e04928-9a59-4!
718-a7f1-3a60bcae7449 <null>
249
-PartsSupplier pg_catalog
pg_namespace
nspname 2
<null> string
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 0 0
0 mmuid:0e513513-b35a-4!
8be-975d-5dbed6ace7e9 <null>
165
-PartsSupplier pg_catalog
matpg_relatt
nspname 5
<null> string
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 0 0
0 mmuid:f1998229-2c1a-4!
7b7-8f46-9dda81446db6 <null>
244
-PartsSupplier pg_catalog
pg_namespace
oid 1
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:688e5112-4083-4!
b67-b42c-62d9a614c59a <null>
164
-PartsSupplier pg_catalog
pg_class
oid 1
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:c1e736ac-c9d4-4!
026-8904-23c90e6eb1c0 <null>
166
-PartsSupplier pg_catalog
pg_attribute
oid 1
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:f735e545-a81c-4!
ee2-84d0-3ea35d4083a2 <null>
175
-PartsSupplier pg_catalog
pg_type
oid 1
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:b6f64d16-b147-4!
59d-8e84-1bd3048fb900 <null>
185
-PartsSupplier pg_catalog
pg_index
oid 1
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:83ae2247-7eec-4!
59f-b037-ffd3cdca0627 <null>
194
-PartsSupplier pg_catalog
pg_am
oid 1
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:3c67619c-7d8f-4!
378-b7e9-84a0451ea5e5 <null>
202
-PartsSupplier pg_catalog
pg_proc
oid 1
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:bdf3ee1e-b5b7-4!
8ab-b43c-4bbb2c8ae1e2 <null>
204
-PartsSupplier pg_catalog
pg_trigger
oid 1
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:635b6634-632c-4!
3c9-8cc7-bcaa016133e8 <null>
214
-PartsSupplier pg_catalog
pg_database
oid 1
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:689cde3b-a631-4!
f25-94b4-ff2ffe022b0f <null>
227
-PartsSupplier pg_catalog
pg_user
oid 1
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:bb78401d-d10c-4!
3b1-af84-e4fa6b95db42 <null>
236
-PartsSupplier pg_catalog
matpg_datatype
oid 1
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:053375a4-3971-4!
705-9146-9ecc640022c2 <null>
247
-PartsSupplier pg_catalog
pg_proc
proallargtypes 9
<null> object
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Object 0 0
0 mmuid:a385751f-a31a-4!
d5d-9197-3fbd390b0251 <null>
212
-PartsSupplier pg_catalog
pg_proc
proargmodes 8
<null> object
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Object 0 0
0 mmuid:bcbed548-176c-4!
116-a5d6-7638cb0206e1 <null>
211
-PartsSupplier pg_catalog
pg_proc
proargnames 7
<null> object
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Object 0 0
0 mmuid:d9f36bdc-7b25-4!
af0-b9f5-a96aac6d3094 <null>
210
-PartsSupplier pg_catalog
pg_proc
proargtypes 6
<null> object
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Object 0 0
0 mmuid:ffa4ac73-b549-4!
70e-931f-dc36330cb8c4 <null>
209
-PartsSupplier pg_catalog
pg_proc
proname 2
<null> string
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 0 0
0 mmuid:b288b3aa-37f2-4!
a8e-8b1b-e932a2ce3e25 <null>
205
-PartsSupplier pg_catalog
pg_proc
pronamespace 10
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:e5715456-245f-4!
846-b90b-01d06d1c3672 <null>
213
-PartsSupplier pg_catalog
pg_proc
pronargs 5
<null> short
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Short 0 0
0 mmuid:6796c2e7-48a4-4!
f9f-bc98-d47913e2491c <null>
208
-PartsSupplier pg_catalog
pg_proc
proretset 3
<null> boolean
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Boolean 0 0
0 mmuid:e0244e1d-431c-4!
1fa-8194-1e357e2b688b <null>
206
-PartsSupplier pg_catalog
pg_proc
prorettype 4
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:9fb5a34a-3a7e-4!
d38-b7cd-239f28a3504e <null>
207
-PartsSupplier pg_catalog
pg_class
relam 5
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:c2f92b1a-6ba0-4!
486-8936-f5185d926178 <null>
170
-PartsSupplier pg_catalog
pg_class
relhasoids 9
<null> boolean
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Boolean 0 0
0 mmuid:3ac5a14a-1f9e-4!
55b-8ea1-cf0878774fd7 <null>
174
-PartsSupplier pg_catalog
pg_class
relhasrules 8
<null> boolean
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Boolean 0 0
0 mmuid:6c26fd66-2a4a-4!
ccf-949a-a06a858db7f6 <null>
173
-PartsSupplier pg_catalog
pg_class
relkind 4
<null> char
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Character 0 0
0 mmuid:ef4359eb-6d51-4!
249-bfea-40bc0f407d10 <null>
169
-PartsSupplier pg_catalog
pg_class
relname 2
<null> string
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 0 0
0 mmuid:5f9b50fa-8188-4!
048-93c2-3ad1587915df <null>
167
-PartsSupplier pg_catalog
matpg_relatt
relname 4
<null> string
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 0 0
0 mmuid:ffbf69c1-2e34-4!
764-a9b3-9a1b61bfd4af <null>
243
-PartsSupplier pg_catalog
pg_class
relnamespace 3
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:4591ef08-bff8-4!
f3b-9de7-420f9c7f9d2b <null>
168
-PartsSupplier pg_catalog
pg_class
relpages 7
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:44dee7d6-b6ae-4!
4c7-85f2-e87364d8d059 <null>
172
-PartsSupplier pg_catalog
pg_class
reltuples 6
<null> float
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Float 0 0
0 mmuid:b9ed4b49-5a7b-4!
ba4-863a-37fd95b2a34c <null>
171
+PartsSupplier pg_catalog
pg_database
datacl 7
<null> object
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Object 0 0
0 mmuid:8b993c11-de2b-4!
8bc-beb1-3e44c46811b4 <null>
234
+PartsSupplier pg_catalog
pg_database
datallowconn 5
<null> char
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Character 0 0
0 mmuid:5c9d54b2-433f-4!
43a-85ce-821f42ed109e <null>
232
+PartsSupplier pg_catalog
pg_database
datconfig 6
<null> object
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Object 0 0
0 mmuid:4b5beb14-03a0-4!
652-9d6f-5f8cc74d470c <null>
233
+PartsSupplier pg_catalog
pg_database
datdba 8
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:36db343d-e99a-4!
27c-a4e2-763a720ce4a4 <null>
235
+PartsSupplier pg_catalog
pg_database
datlastsysoid 4
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:c2bdf40c-ec58-4!
39c-a403-7adf604ceadd <null>
231
+PartsSupplier pg_catalog
pg_database
datname 2
<null> string
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 0 0
0 mmuid:1aedd02c-5801-4!
1e7-accd-da1f257c26e8 <null>
229
+PartsSupplier pg_catalog
pg_database
dattablespace 9
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:28d034eb-6f39-4!
02f-b642-9c9560e57247 <null>
236
+PartsSupplier pg_catalog
pg_database
encoding 3
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:3b621b25-171c-4!
05b-8bf9-635cf93f2273 <null>
230
+PartsSupplier pg_catalog
pg_index
indexprs 7
<null> string
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 0 0
0 mmuid:1e6dbecd-9a2d-4!
aef-afbe-665de7acb9d6 <null>
201
+PartsSupplier pg_catalog
pg_index
indexrelid 2
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:8709e084-48df-4!
17d-b3f8-f4e9b7d8802b <null>
196
+PartsSupplier pg_catalog
pg_index
indisclustered 4
<null> boolean
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Boolean 0 0
0 mmuid:9f873e0f-903d-4!
c9d-8c37-1073b5ec4c67 <null>
198
+PartsSupplier pg_catalog
pg_index
indisprimary 6
<null> boolean
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Boolean 0 0
0 mmuid:9ea3b6d2-b27b-4!
bb1-a99d-b703c3308384 <null>
200
+PartsSupplier pg_catalog
pg_index
indisunique 5
<null> boolean
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Boolean 0 0
0 mmuid:a52c714d-dfe9-4!
06c-906b-fadd53ac4e98 <null>
199
+PartsSupplier pg_catalog
pg_index
indkey 8
<null> string
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 0 0
0 mmuid:347ec08c-6b41-4!
1d0-8475-031ce7d99ac0 <null>
202
+PartsSupplier pg_catalog
pg_index
indrelid 3
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:16998907-e1dd-4!
47e-898d-780994d30619 <null>
197
+PartsSupplier pg_catalog
matpg_datatype
name 3
<null> string
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 0 0
0 mmuid:b4e04928-9a59-4!
718-a7f1-3a60bcae7449 <null>
250
+PartsSupplier pg_catalog
pg_namespace
nspname 2
<null> string
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 0 0
0 mmuid:0e513513-b35a-4!
8be-975d-5dbed6ace7e9 <null>
166
+PartsSupplier pg_catalog
matpg_relatt
nspname 5
<null> string
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 0 0
0 mmuid:f1998229-2c1a-4!
7b7-8f46-9dda81446db6 <null>
245
+PartsSupplier pg_catalog
pg_namespace
oid 1
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:688e5112-4083-4!
b67-b42c-62d9a614c59a <null>
165
+PartsSupplier pg_catalog
pg_class
oid 1
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:c1e736ac-c9d4-4!
026-8904-23c90e6eb1c0 <null>
167
+PartsSupplier pg_catalog
pg_attribute
oid 1
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:f735e545-a81c-4!
ee2-84d0-3ea35d4083a2 <null>
176
+PartsSupplier pg_catalog
pg_type
oid 1
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:b6f64d16-b147-4!
59d-8e84-1bd3048fb900 <null>
186
+PartsSupplier pg_catalog
pg_index
oid 1
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:83ae2247-7eec-4!
59f-b037-ffd3cdca0627 <null>
195
+PartsSupplier pg_catalog
pg_am
oid 1
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:3c67619c-7d8f-4!
378-b7e9-84a0451ea5e5 <null>
203
+PartsSupplier pg_catalog
pg_proc
oid 1
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:bdf3ee1e-b5b7-4!
8ab-b43c-4bbb2c8ae1e2 <null>
205
+PartsSupplier pg_catalog
pg_trigger
oid 1
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:635b6634-632c-4!
3c9-8cc7-bcaa016133e8 <null>
215
+PartsSupplier pg_catalog
pg_database
oid 1
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:689cde3b-a631-4!
f25-94b4-ff2ffe022b0f <null>
228
+PartsSupplier pg_catalog
pg_user
oid 1
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:bb78401d-d10c-4!
3b1-af84-e4fa6b95db42 <null>
237
+PartsSupplier pg_catalog
matpg_datatype
oid 1
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:053375a4-3971-4!
705-9146-9ecc640022c2 <null>
248
+PartsSupplier pg_catalog
pg_proc
proallargtypes 9
<null> object
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Object 0 0
0 mmuid:a385751f-a31a-4!
d5d-9197-3fbd390b0251 <null>
213
+PartsSupplier pg_catalog
pg_proc
proargmodes 8
<null> object
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Object 0 0
0 mmuid:bcbed548-176c-4!
116-a5d6-7638cb0206e1 <null>
212
+PartsSupplier pg_catalog
pg_proc
proargnames 7
<null> object
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Object 0 0
0 mmuid:d9f36bdc-7b25-4!
af0-b9f5-a96aac6d3094 <null>
211
+PartsSupplier pg_catalog
pg_proc
proargtypes 6
<null> object
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Object 0 0
0 mmuid:ffa4ac73-b549-4!
70e-931f-dc36330cb8c4 <null>
210
+PartsSupplier pg_catalog
pg_proc
proname 2
<null> string
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 0 0
0 mmuid:b288b3aa-37f2-4!
a8e-8b1b-e932a2ce3e25 <null>
206
+PartsSupplier pg_catalog
pg_proc
pronamespace 10
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:e5715456-245f-4!
846-b90b-01d06d1c3672 <null>
214
+PartsSupplier pg_catalog
pg_proc
pronargs 5
<null> short
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Short 0 0
0 mmuid:6796c2e7-48a4-4!
f9f-bc98-d47913e2491c <null>
209
+PartsSupplier pg_catalog
pg_proc
proretset 3
<null> boolean
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Boolean 0 0
0 mmuid:e0244e1d-431c-4!
1fa-8194-1e357e2b688b <null>
207
+PartsSupplier pg_catalog
pg_proc
prorettype 4
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:9fb5a34a-3a7e-4!
d38-b7cd-239f28a3504e <null>
208
+PartsSupplier pg_catalog
pg_class
relam 5
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:c2f92b1a-6ba0-4!
486-8936-f5185d926178 <null>
171
+PartsSupplier pg_catalog
pg_class
relhasoids 9
<null> boolean
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Boolean 0 0
0 mmuid:3ac5a14a-1f9e-4!
55b-8ea1-cf0878774fd7 <null>
175
+PartsSupplier pg_catalog
pg_class
relhasrules 8
<null> boolean
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Boolean 0 0
0 mmuid:6c26fd66-2a4a-4!
ccf-949a-a06a858db7f6 <null>
174
+PartsSupplier pg_catalog
pg_class
relkind 4
<null> char
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Character 0 0
0 mmuid:ef4359eb-6d51-4!
249-bfea-40bc0f407d10 <null>
170
+PartsSupplier pg_catalog
pg_class
relname 2
<null> string
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 0 0
0 mmuid:5f9b50fa-8188-4!
048-93c2-3ad1587915df <null>
168
+PartsSupplier pg_catalog
matpg_relatt
relname 4
<null> string
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 0 0
0 mmuid:ffbf69c1-2e34-4!
764-a9b3-9a1b61bfd4af <null>
244
+PartsSupplier pg_catalog
pg_class
relnamespace 3
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:4591ef08-bff8-4!
f3b-9de7-420f9c7f9d2b <null>
169
+PartsSupplier pg_catalog
pg_class
relpages 7
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:44dee7d6-b6ae-4!
4c7-85f2-e87364d8d059 <null>
173
+PartsSupplier pg_catalog
pg_class
reltuples 6
<null> float
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Float 0 0
0 mmuid:b9ed4b49-5a7b-4!
ba4-863a-37fd95b2a34c <null>
172
PartsSupplier SYSADMIN
VDBResources
resourcePath 1
<null> string
0 255 false
true false true true false false
Nullable <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 0 255
10 mmuuid:b1bc5150-3dcc-!
452e-9e75-4a506997f612 <null>
27
-PartsSupplier pg_catalog
pg_trigger
tgargs 4
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:0c20dbe7-5d89-4!
11f-a8ab-3d77b999595b <null>
217
-PartsSupplier pg_catalog
pg_trigger
tgconstrname 8
<null> string
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 0 0
0 mmuid:c010d12f-2074-4!
5db-8e18-979cee2c45da <null>
221
-PartsSupplier pg_catalog
pg_trigger
tgconstrrelid 2
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:64977f3e-f2a0-4!
66e-a5d1-80bb058cbe08 <null>
215
-PartsSupplier pg_catalog
pg_trigger
tgdeferrable 6
<null> boolean
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Boolean 0 0
0 mmuid:bfbff036-caf2-4!
652-80cf-398af17ed7d1 <null>
219
-PartsSupplier pg_catalog
pg_trigger
tgfoid 3
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:250d7c06-728a-4!
b2a-b557-91f2a69bb184 <null>
216
-PartsSupplier pg_catalog
pg_trigger
tginitdeferred 7
<null> boolean
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Boolean 0 0
0 mmuid:da4b59ca-ebff-4!
5a8-ad68-9777bc587813 <null>
220
-PartsSupplier pg_catalog
pg_trigger
tgnargs 5
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:d70f020b-658c-4!
f58-86dc-0fbb12e2d8af <null>
218
-PartsSupplier pg_catalog
pg_trigger
tgrelid 9
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:71091853-c65e-4!
6a9-9947-aa024f806e2d <null>
222
-PartsSupplier pg_catalog
pg_type
typbasetype 6
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:a17d2f61-cd68-4!
c0d-8d25-132f68eb3b67 <null>
190
-PartsSupplier pg_catalog
pg_type
typelem 9
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:22ac431d-e6e6-4!
eef-9d74-b31795424e97 <null>
193
-PartsSupplier pg_catalog
pg_type
typlen 4
<null> short
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Short 0 0
0 mmuid:931c09e1-937a-4!
37e-aab2-2360f8d90e2b <null>
188
-PartsSupplier pg_catalog
matpg_datatype
typlen 5
<null> short
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Short 0 0
0 mmuid:0e9c4439-48d0-4!
115-a343-5baab7a236b6 <null>
251
-PartsSupplier pg_catalog
pg_type
typname 2
<null> string
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 0 0
0 mmuid:d600d818-2aad-4!
c92-9343-267d044dd97d <null>
186
-PartsSupplier pg_catalog
matpg_datatype
typname 2
<null> string
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 0 0
0 mmuid:0f312b3c-98ca-4!
a09-81fa-f1ff83f0a6c1 <null>
248
-PartsSupplier pg_catalog
pg_type
typnamespace 3
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:e47217d2-2b07-4!
353-bfbd-d7c883a5e7e0 <null>
187
-PartsSupplier pg_catalog
matpg_relatt
typoid 7
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:595a823f-cec1-4!
2dc-b8b2-c95c8b4e4e66 <null>
246
-PartsSupplier pg_catalog
pg_type
typrelid 8
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:bec25882-b292-4!
ed1-a610-cad5d504837d <null>
192
-PartsSupplier pg_catalog
pg_type
typtype 5
<null> char
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Character 0 0
0 mmuid:83199eba-7af4-4!
4a9-822f-006677b1b895 <null>
189
-PartsSupplier pg_catalog
pg_type
typtypmod 7
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:cee3559d-1ce6-4!
b17-ad57-2ecb79a9e1d2 <null>
191
-PartsSupplier pg_catalog
matpg_datatype
uid 4
<null> string
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 0 0
0 mmuid:87826ebc-98a5-4!
f19-a6d8-6b7b96cbed48 <null>
250
-PartsSupplier pg_catalog
pg_user
usecreatedb 3
<null> boolean
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Boolean 0 0
0 mmuid:6da98878-b46e-4!
ed1-b032-1bc72da595f4 <null>
238
-PartsSupplier pg_catalog
pg_user
usename 2
<null> string
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 0 0
0 mmuid:236445e1-408c-4!
0a1-a61c-40e96fb5dc9f <null>
237
-PartsSupplier pg_catalog
pg_user
usesuper 4
<null> boolean
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Boolean 0 0
0 mmuid:9bfddc66-af75-4!
366-8eac-b9fef3421219 <null>
239
-Row Count : 251
+PartsSupplier pg_catalog
pg_trigger
tgargs 4
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:0c20dbe7-5d89-4!
11f-a8ab-3d77b999595b <null>
218
+PartsSupplier pg_catalog
pg_trigger
tgconstrname 8
<null> string
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 0 0
0 mmuid:c010d12f-2074-4!
5db-8e18-979cee2c45da <null>
222
+PartsSupplier pg_catalog
pg_trigger
tgconstrrelid 2
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:64977f3e-f2a0-4!
66e-a5d1-80bb058cbe08 <null>
216
+PartsSupplier pg_catalog
pg_trigger
tgdeferrable 6
<null> boolean
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Boolean 0 0
0 mmuid:bfbff036-caf2-4!
652-80cf-398af17ed7d1 <null>
220
+PartsSupplier pg_catalog
pg_trigger
tgfoid 3
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:250d7c06-728a-4!
b2a-b557-91f2a69bb184 <null>
217
+PartsSupplier pg_catalog
pg_trigger
tginitdeferred 7
<null> boolean
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Boolean 0 0
0 mmuid:da4b59ca-ebff-4!
5a8-ad68-9777bc587813 <null>
221
+PartsSupplier pg_catalog
pg_trigger
tgnargs 5
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:d70f020b-658c-4!
f58-86dc-0fbb12e2d8af <null>
219
+PartsSupplier pg_catalog
pg_trigger
tgrelid 9
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:71091853-c65e-4!
6a9-9947-aa024f806e2d <null>
223
+PartsSupplier pg_catalog
pg_type
typbasetype 6
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:a17d2f61-cd68-4!
c0d-8d25-132f68eb3b67 <null>
191
+PartsSupplier pg_catalog
pg_type
typelem 9
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:22ac431d-e6e6-4!
eef-9d74-b31795424e97 <null>
194
+PartsSupplier pg_catalog
pg_type
typlen 4
<null> short
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Short 0 0
0 mmuid:931c09e1-937a-4!
37e-aab2-2360f8d90e2b <null>
189
+PartsSupplier pg_catalog
matpg_datatype
typlen 5
<null> short
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Short 0 0
0 mmuid:0e9c4439-48d0-4!
115-a343-5baab7a236b6 <null>
252
+PartsSupplier pg_catalog
pg_type
typname 2
<null> string
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 0 0
0 mmuid:d600d818-2aad-4!
c92-9343-267d044dd97d <null>
187
+PartsSupplier pg_catalog
matpg_datatype
typname 2
<null> string
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 0 0
0 mmuid:0f312b3c-98ca-4!
a09-81fa-f1ff83f0a6c1 <null>
249
+PartsSupplier pg_catalog
pg_type
typnamespace 3
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:e47217d2-2b07-4!
353-bfbd-d7c883a5e7e0 <null>
188
+PartsSupplier pg_catalog
matpg_relatt
typoid 7
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:595a823f-cec1-4!
2dc-b8b2-c95c8b4e4e66 <null>
247
+PartsSupplier pg_catalog
pg_type
typrelid 8
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:bec25882-b292-4!
ed1-a610-cad5d504837d <null>
193
+PartsSupplier pg_catalog
pg_type
typtype 5
<null> char
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Character 0 0
0 mmuid:83199eba-7af4-4!
4a9-822f-006677b1b895 <null>
190
+PartsSupplier pg_catalog
pg_type
typtypmod 7
<null> integer
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Integer 0 0
0 mmuid:cee3559d-1ce6-4!
b17-ad57-2ecb79a9e1d2 <null>
192
+PartsSupplier pg_catalog
matpg_datatype
uid 4
<null> string
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 0 0
0 mmuid:87826ebc-98a5-4!
f19-a6d8-6b7b96cbed48 <null>
251
+PartsSupplier pg_catalog
pg_user
usecreatedb 3
<null> boolean
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Boolean 0 0
0 mmuid:6da98878-b46e-4!
ed1-b032-1bc72da595f4 <null>
239
+PartsSupplier pg_catalog
pg_user
usename 2
<null> string
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.String 0 0
0 mmuid:236445e1-408c-4!
0a1-a61c-40e96fb5dc9f <null>
238
+PartsSupplier pg_catalog
pg_user
usesuper 4
<null> boolean
0 0 false
true false false false false false
Unknown <null>
<null> -1 -1
Searchable <null>
<null>
java.lang.Boolean 0 0
0 mmuid:9bfddc66-af75-4!
366-8eac-b9fef3421219 <null>
240
+Row Count : 252
getColumnName getColumnType getCatalogName getColumnClassName getColumnLabel
getColumnTypeName getSchemaName getTableName getColumnDisplaySize getPrecision
getScale isAutoIncrement isCaseSensitive isCurrency isDefinitelyWritable isNullable
isReadOnly isSearchable isSigned isWritable
VDBName 12 PartsSupplier java.lang.String VDBName
string SYS Columns 255 255 0
false false false false 0 true
true false false
SchemaName 12 PartsSupplier java.lang.String SchemaName
string SYS Columns 255 255 0
false true false true 1 false
true true true
Modified:
trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testProcedureParams.expected
===================================================================
---
trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testProcedureParams.expected 2011-04-29
18:34:21 UTC (rev 3133)
+++
trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testProcedureParams.expected 2011-05-02
17:02:28 UTC (rev 3134)
@@ -2,21 +2,25 @@
VDBName SchemaName
ProcedureName
Name
DataType Position Type
Optional Precision TypeLength Scale Radix NullType
UID Description
OID
PartsSupplier SYSADMIN
refreshMatView
Invalidate
boolean 2 In
false 0 0 0 10 No Nulls
mmuuid:5736cfd3-750f-42d8-b083-102061e11c60 <null>
5
PartsSupplier SYSADMIN
refreshMatViewRow
Key
object 2 In
false 0 0 0 10 No Nulls
mmuuid:7af5a63b-1b91-4d1e-912e-846a7e84c579 <null>
2
+PartsSupplier SYSADMIN
setProperty
Name
string 3 In
false 0 0 0 10 No Nulls
mmuuid:ea92812c-1516-4c75-b5d3-c531fdbd8475 <null>
15
+PartsSupplier SYSADMIN
setProperty
OldValue
clob 1 ReturnValue
false 0 2097152 0 10 No Nulls
mmuuid:48034d50-dd11-4653-aeae-b0d8d3d55656 <null>
13
PartsSupplier SYSADMIN
refreshMatViewRow
RowsUpdated
integer 3 ReturnValue
false 0 0 0 10 No Nulls
mmuuid:05a6a9be-c014-4d06-bcac-746cee4f118b <null>
3
PartsSupplier SYSADMIN
refreshMatView
RowsUpdated
integer 3 ReturnValue
false 0 0 0 10 No Nulls
mmuuid:d07a6a75-aa12-4dac-8eab-b2acdbaaffd8 <null>
6
+PartsSupplier SYSADMIN
setProperty
UID
string 2 In
false 0 50 0 10 No Nulls
mmuuid:d377510e-2ec5-445e-bdf0-59c7c0380962 <null>
14
+PartsSupplier SYSADMIN
setProperty
Value
clob 4 In
false 0 2097152 0 10 Nullable
mmuuid:ac5beeb8-2d0d-48ff-a533-4237d53b67e8 <null>
16
PartsSupplier SYSADMIN
refreshMatViewRow
ViewName
string 1 In
false 0 0 0 10 No Nulls
mmuuid:ba635c44-a052-496d-9c35-ca010c0ebebe <null>
1
PartsSupplier SYSADMIN
refreshMatView
ViewName
string 1 In
false 0 0 0 10 No Nulls
mmuuid:e0c28e00-d987-48e4-8c60-5f637f10bf33 <null>
4
-PartsSupplier SYSADMIN
setTableStats
cardinality
integer 2 In
false 0 0 0 10 No Nulls
mmuuid:0aba7849-7fd3-4bc6-a3d3-dfe433bc67a4 <null>
14
+PartsSupplier SYSADMIN
setTableStats
cardinality
integer 2 In
false 0 0 0 10 No Nulls
mmuuid:0aba7849-7fd3-4bc6-a3d3-dfe433bc67a4 <null>
18
PartsSupplier SYSADMIN
setColumnStats
columnName
string 2 In
false 0 0 0 10 No Nulls
mmuuid:76553706-632f-4e60-8489-9d0361f58541 <null>
8
PartsSupplier SYSADMIN
setColumnStats
distinctCount
integer 3 In
false 0 0 0 10 Nullable
mmuuid:2c61976e-abb5-4c74-bdae-278681b82aa3 <null>
9
-PartsSupplier SYS
getXMLSchemas
document
string 1 In
false 0 0 0 10 No Nulls
mmuuid:85b88af5-f0b8-401f-b35a-ccee56155492 <null>
15
+PartsSupplier SYS
getXMLSchemas
document
string 1 In
false 0 0 0 10 No Nulls
mmuuid:85b88af5-f0b8-401f-b35a-ccee56155492 <null>
19
PartsSupplier SYSADMIN
setColumnStats
max
string 5 In
false 0 0 0 10 Nullable
mmuuid:8f42e701-3609-413d-8c10-77e32cd816f2 <null>
11
PartsSupplier SYSADMIN
setColumnStats
min
string 6 In
false 0 0 0 10 Nullable
mmuuid:4511ea3f-f2d2-4abf-b363-afb5186bc2d2 <null>
12
PartsSupplier SYSADMIN
setColumnStats
nullCount
integer 4 In
false 0 0 0 10 Nullable
mmuuid:44b8c83c-9fcd-4bd2-a730-76e401205536 <null>
10
-PartsSupplier SYS
getXMLSchemas
schema xml
1 ResultSet
false 0 0 0 10 Nullable
mmuuid:003980bb-38bb-41ad-b8c2-c87ca47aa554 <null>
16
+PartsSupplier SYS
getXMLSchemas
schema xml
1 ResultSet
false 0 0 0 10 Nullable
mmuuid:003980bb-38bb-41ad-b8c2-c87ca47aa554 <null>
20
PartsSupplier SYSADMIN
setColumnStats
tableName
string 1 In
false 0 0 0 10 No Nulls
mmuuid:4dcab018-ca4a-467b-96cc-7f28734c840e <null>
7
-PartsSupplier SYSADMIN
setTableStats
tableName
string 1 In
false 0 0 0 10 No Nulls
mmuuid:28d8ad4a-e091-4934-afd9-7d27310bd370 <null>
13
-Row Count : 16
+PartsSupplier SYSADMIN
setTableStats
tableName
string 1 In
false 0 0 0 10 No Nulls
mmuuid:28d8ad4a-e091-4934-afd9-7d27310bd370 <null>
17
+Row Count : 20
getColumnName getColumnType getCatalogName getColumnClassName getColumnLabel
getColumnTypeName getSchemaName getTableName getColumnDisplaySize getPrecision
getScale isAutoIncrement isCaseSensitive isCurrency isDefinitelyWritable isNullable
isReadOnly isSearchable isSigned isWritable
VDBName 12 PartsSupplier java.lang.String VDBName string
SYS ProcedureParams 255 255 0
false false false false 0 true
true false false
SchemaName 12 PartsSupplier java.lang.String SchemaName string
SYS ProcedureParams 255 255 0
false true false true 1 false
true true true
Modified:
trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testProcedures.expected
===================================================================
---
trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testProcedures.expected 2011-04-29
18:34:21 UTC (rev 3133)
+++
trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testProcedures.expected 2011-05-02
17:02:28 UTC (rev 3134)
@@ -1,11 +1,12 @@
string string
string
string
boolean string string
integer
VDBName SchemaName
Name
NameInSource
ReturnsResults UID Description
OID
-PartsSupplier SYS
getXMLSchemas
<null>
true mmuuid:68497bd9-30f5-461b-bf13-6b26aeb2fc4f <null>
5
+PartsSupplier SYS
getXMLSchemas
<null>
true mmuuid:68497bd9-30f5-461b-bf13-6b26aeb2fc4f <null>
6
PartsSupplier SYSADMIN
refreshMatView
<null>
false mmuuid:52178344-dca8-4c76-8549-00a4515c7044 <null>
2
PartsSupplier SYSADMIN
refreshMatViewRow
<null>
false mmuuid:1674912b-af56-465a-a1b9-d1de8b761f10 <null>
1
PartsSupplier SYSADMIN
setColumnStats
<null>
false mmuuid:49c367be-918f-43be-8b9e-99e275179859 <null>
3
-PartsSupplier SYSADMIN
setTableStats
<null>
false mmuuid:6d167c35-04d1-41f6-83ff-888c39423823 <null>
4
-Row Count : 5
+PartsSupplier SYSADMIN
setProperty
<null>
false mmuuid:8db9b08e-3d6e-415a-9ceb-3fef726f424c <null>
4
+PartsSupplier SYSADMIN
setTableStats
<null>
false mmuuid:6d167c35-04d1-41f6-83ff-888c39423823 <null>
5
+Row Count : 6
getColumnName getColumnType getCatalogName getColumnClassName getColumnLabel
getColumnTypeName getSchemaName getTableName getColumnDisplaySize getPrecision
getScale isAutoIncrement isCaseSensitive isCurrency isDefinitelyWritable isNullable
isReadOnly isSearchable isSigned isWritable
VDBName 12 PartsSupplier java.lang.String VDBName string
SYS Procedures 255 255 0
false false false false 0 true
true false false
SchemaName 12 PartsSupplier java.lang.String SchemaName string
SYS Procedures 255 255 0
false true false true 1 false
true true true