teiid SVN: r2360 - trunk/documentation/reference/src/main/docbook/en-US/content.
by teiid-commits@lists.jboss.org
Author: shawkins
Date: 2010-07-20 16:06:35 -0400 (Tue, 20 Jul 2010)
New Revision: 2360
Modified:
trunk/documentation/reference/src/main/docbook/en-US/content/system_schema.xml
Log:
adding missing chapter title
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 2010-07-20 20:05:31 UTC (rev 2359)
+++ trunk/documentation/reference/src/main/docbook/en-US/content/system_schema.xml 2010-07-20 20:06:35 UTC (rev 2360)
@@ -1,6 +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="system_schema">
+ <title>System Schema</title>
<sect1 id="system_tables">
<title>System Tables</title>
<sect2>
14 years, 5 months
teiid SVN: r2359 - in trunk/build: kits/jboss-container and 1 other directory.
by teiid-commits@lists.jboss.org
Author: shawkins
Date: 2010-07-20 16:05:31 -0400 (Tue, 20 Jul 2010)
New Revision: 2359
Modified:
trunk/build/kits/jboss-container/teiid-releasenotes.html
trunk/build/pom.xml
Log:
fixing release notes and adding html to the filter to put in the project version
Modified: trunk/build/kits/jboss-container/teiid-releasenotes.html
===================================================================
--- trunk/build/kits/jboss-container/teiid-releasenotes.html 2010-07-20 18:41:23 UTC (rev 2358)
+++ trunk/build/kits/jboss-container/teiid-releasenotes.html 2010-07-20 20:05:31 UTC (rev 2359)
@@ -10,7 +10,7 @@
<P><A HREF="http://www.teiid.org/"><IMG SRC="https://www.jboss.org/dms/teiid/images/teiid_banner.png" NAME="graphics1" ALT="Teiid" ALIGN=BOTTOM WIDTH=800></A>
<H1>Teiid ${project.version} Release Notes</H1>
-<P>Teiid ${project.version} adds ODBC, clustering, and caching features.
+<P>Teiid ${project.version} adds ODBC and caching features.
<H2>Overview</H2>
<UL>
@@ -70,7 +70,7 @@
<h4>from 7.0</h4>
<ul>
<li>Rar file names no longer contain version numbers. -ds.xml files should be updated from connector-XXX-version.rar to teiid-connector-XXX.rar
-<ul>
+</ul>
<h4>from 6.2</h4>
<ul>
Modified: trunk/build/pom.xml
===================================================================
--- trunk/build/pom.xml 2010-07-20 18:41:23 UTC (rev 2358)
+++ trunk/build/pom.xml 2010-07-20 20:05:31 UTC (rev 2359)
@@ -20,6 +20,7 @@
<include>**/*.properties</include>
<include>**/*.sh</include>
<include>**/*.bat</include>
+ <include>**/*.html</include>
</includes>
</resource>
<resource>
@@ -30,6 +31,7 @@
<exclude>**/*.properties</exclude>
<exclude>**/*.sh</exclude>
<exclude>**/*.bat</exclude>
+ <exclude>**/*.html</exclude>
</excludes>
</resource>
</resources>
14 years, 5 months
teiid SVN: r2358 - trunk/documentation/client-developers-guide/src/main/docbook/en-US/content.
by teiid-commits@lists.jboss.org
Author: rareddy
Date: 2010-07-20 14:41:23 -0400 (Tue, 20 Jul 2010)
New Revision: 2358
Modified:
trunk/documentation/client-developers-guide/src/main/docbook/en-US/content/odbc.xml
Log:
TEIID-860: Adding DSN less connection string
Modified: trunk/documentation/client-developers-guide/src/main/docbook/en-US/content/odbc.xml
===================================================================
--- trunk/documentation/client-developers-guide/src/main/docbook/en-US/content/odbc.xml 2010-07-19 22:10:45 UTC (rev 2357)
+++ trunk/documentation/client-developers-guide/src/main/docbook/en-US/content/odbc.xml 2010-07-20 18:41:23 UTC (rev 2358)
@@ -231,4 +231,21 @@
</sect2>
</sect1>
+
+ <sect1>
+ <title>DSN Less Connection</title>
+ <para>You can also connect to Teiid VDB using ODBC with out explicitly creating a DSN. However, in these scenarios your
+ application needs, what is called as "DSN less connection string". The below is a sample connection string </para>
+
+ <para>For Windows:</para>
+ <programlisting><![CDATA[
+ ODBC;DRIVER={PostgreSQL Unicode};DATABASE=<vdb-name>;SERVER=<host-name>;PORT=<port>;Uid=<username>;Pwd=<password>
+ ]]></programlisting>
+
+ <para>>For *nix:</para>
+ <programlisting><![CDATA[
+ ODBC;DRIVER={PostgreSQL};DATABASE=<vdb-name>;SERVER=<host-name>;PORT=<port>;Uid=<username>;Pwd=<password>
+ ]]></programlisting>
+
+ </sect1>
</chapter>
\ No newline at end of file
14 years, 5 months
teiid SVN: r2357 - trunk/documentation/client-developers-guide/src/main/docbook/en-US/images.
by teiid-commits@lists.jboss.org
Author: rareddy
Date: 2010-07-19 18:10:45 -0400 (Mon, 19 Jul 2010)
New Revision: 2357
Added:
trunk/documentation/client-developers-guide/src/main/docbook/en-US/images/dsnsetup1.png
trunk/documentation/client-developers-guide/src/main/docbook/en-US/images/dsnsetup2.png
trunk/documentation/client-developers-guide/src/main/docbook/en-US/images/dsnsetup3.png
Log:
TEIID-860: Adding ODBC support chapter to Client Developer's Guide.
Added: trunk/documentation/client-developers-guide/src/main/docbook/en-US/images/dsnsetup1.png
===================================================================
(Binary files differ)
Property changes on: trunk/documentation/client-developers-guide/src/main/docbook/en-US/images/dsnsetup1.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/documentation/client-developers-guide/src/main/docbook/en-US/images/dsnsetup2.png
===================================================================
(Binary files differ)
Property changes on: trunk/documentation/client-developers-guide/src/main/docbook/en-US/images/dsnsetup2.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/documentation/client-developers-guide/src/main/docbook/en-US/images/dsnsetup3.png
===================================================================
(Binary files differ)
Property changes on: trunk/documentation/client-developers-guide/src/main/docbook/en-US/images/dsnsetup3.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
14 years, 5 months
teiid SVN: r2356 - in trunk/documentation/client-developers-guide/src/main/docbook/en-US: content and 1 other directories.
by teiid-commits@lists.jboss.org
Author: rareddy
Date: 2010-07-19 18:06:04 -0400 (Mon, 19 Jul 2010)
New Revision: 2356
Added:
trunk/documentation/client-developers-guide/src/main/docbook/en-US/content/odbc.xml
trunk/documentation/client-developers-guide/src/main/docbook/en-US/images/
trunk/documentation/client-developers-guide/src/main/docbook/en-US/images/winsetup1.png
trunk/documentation/client-developers-guide/src/main/docbook/en-US/images/winsetup2.png
trunk/documentation/client-developers-guide/src/main/docbook/en-US/images/winsetup3.png
trunk/documentation/client-developers-guide/src/main/docbook/en-US/images/winsetup4.png
trunk/documentation/client-developers-guide/src/main/docbook/en-US/images/winsetup5.png
Modified:
trunk/documentation/client-developers-guide/src/main/docbook/en-US/main.xml
Log:
TEIID-860: Adding ODBC support chapter to Client Developer's Guide.
Added: trunk/documentation/client-developers-guide/src/main/docbook/en-US/content/odbc.xml
===================================================================
--- trunk/documentation/client-developers-guide/src/main/docbook/en-US/content/odbc.xml (rev 0)
+++ trunk/documentation/client-developers-guide/src/main/docbook/en-US/content/odbc.xml 2010-07-19 22:06:04 UTC (rev 2356)
@@ -0,0 +1,234 @@
+<?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="ODBC">
+ <title>ODBC Support</title>
+
+ <para>Short for Open DataBase Connectivity, a standard database access method developed by the SQL Access group in 1992.
+ The goal of ODBC is to make it possible to access any data from any application, regardless of which database management
+ system (DBMS) is handling the data. ODBC manages this by inserting a middle layer, called a database driver ,
+ between an application and the DBMS. The purpose of this layer is to translate the application's data queries
+ into commands that the DBMS understands. For this to work, both the application and the DBMS must be ODBC-compliant
+ -- that is, the application must be capable of issuing ODBC commands and the
+ DBMS must be capable of responding to them</para>
+
+ <para>Teiid provides the ODBC access to deployed VDBs in the Teiid runtime through
+ <ulink url="http://www.postgresql.org/">PostgreSQL</ulink>'s ODBC driver. This is possible by redirecting the ODBC commands
+ from a client application to a different port than default PostgreSQL port.</para>
+
+ <note><para>By default, ODBC on the Teiid is enabled and running on on port <emphasis>35432</emphasis>.</para></note>
+
+ <para>Before your application can use the ODBC, you must first install ODBC driver on same machine that
+ your application is running and then create Data Source Name (DSN) for that represents a connection profile for your Teiid VDB.
+ </para>
+
+ <sect1 id="install">
+ <title>Installing the ODBC Driver Client</title>
+ <para>The PostgreSQL ODBC driver that is needed to make the ODBC connection to Teiid is <emphasis>not</emphasis>
+ bundled with Teiid distribution. The driver needs be <ulink url="http://www.postgresql.org/ftp/odbc/versions/">downloaded</ulink>
+ directly from PostgreSQL web site. We have tested with <emphasis>8.04.200</emphasis> version of the ODBC driver for
+ this release.</para>
+
+ <sect2>
+ <title>Microsoft Windows</title>
+ <orderedlist>
+ <listitem><para>Download the ODBC driver from <ulink url="http://wwwmaster.postgresql.org/download/mirrors-ftp/odbc/versions/msi/ps...">
+ PostgreSQL download site</ulink>.</para></listitem>
+ <listitem><para>Extract the contents of the ZIP file into a temporary location on you system. For example: "c:\temp\pgodbc"</para></listitem>
+ <listitem><para>Double click on "psqlodbc.msi" file to start installation of the driver.</para></listitem>
+ <listitem>
+ <para>The Wizard appears as</para>
+ <figure id="step1">
+ <title>Welcome Screen </title>
+ <graphic align="center" scale="100" fileref="../images/winsetup1.png" />
+ </figure>
+ <para>Click "Next".</para>
+ </listitem>
+ <listitem>
+ <para>The next step of the wizard displays.</para>
+ <figure id="step2">
+ <title>End-User License Agreement </title>
+ <graphic align="center" scale="100" fileref="../images/winsetup2.png" />
+ </figure>
+ <para>Carefully read it, and check the "I accept the terms in the License Agreement",
+ if you are agreeing to the licensing terms. Then click "Next".</para>
+ </listitem>
+ <listitem>
+ <para>The next step of the wizard displays.</para>
+ <figure id="step3">
+ <title>Setup</title>
+ <graphic align="center" scale="100" fileref="../images/winsetup3.png" />
+ </figure>
+ <para>If you want to install in a different directory than the default that is already selected,
+ click the "Browse" button and select a directory if you want install.
+ Click "Next" to start installing in the selected directory.</para>
+ </listitem>
+ <listitem>
+ <para>The next step of the wizard displays.</para>
+ <figure id="step4">
+ <title>Confirm the Install</title>
+ <graphic align="center" scale="100" fileref="../images/winsetup4.png" />
+ </figure>
+ <para>This step summarizes the choices you have made in the wizard. Review this information.
+ If you need to change anything, you can use the Back button to return to previous steps.
+ Click "Install" to proceed.</para>
+ </listitem>
+ <listitem>
+ <para>1.The installation wizard copies the necessary files to the location
+ you specified. When it finishes, the following screen displays.</para>
+ <figure id="step5">
+ <title>Finish</title>
+ <graphic align="center" scale="100" fileref="../images/winsetup5.png" />
+ </figure>
+ <para>Click "Finish" to complete.</para>
+ </listitem>
+ </orderedlist>
+ </sect2>
+ <sect2>
+ <title>Other *nix Platform Installations</title>
+ <para>For all other platforms other than Microsoft Windows, the ODBC driver needs compiled and built from the
+ source files provided. Download the ODBC driver source files from
+ <ulink url="http://wwwmaster.postgresql.org/download/mirrors-ftp/odbc/versions/src/ps...">
+ PostgreSQL download site</ulink>. Untar the files to a temporary location. For example: "~/tmp/pgodbc".
+ Build and install the driver by running the commands below.</para>
+ <note><para>You should use super user account or use "sudo" command for running the "make install" command. </para></note>
+ <programlisting><![CDATA[
+ perl Makefile.PL
+ make
+ make test
+ make install
+ ]]></programlisting>
+
+ <para>Make sure that there are no errors during the "make test" phase. The the next step in the process is to create a
+ DSN for accessing the Teiid VDB.</para>
+ </sect2>
+ </sect1>
+
+ <sect1>
+ <title>Configuring the Data Source Name (DSN)</title>
+ <sect2>
+ <title>Windows Installation</title>
+ <para>Once you have installed the ODBC Driver Client software on your workstation, you have to
+ configure it to connect to a Teiid Runtime. Note that the following instructions are specific
+ to the Microsoft Windows Platform.</para>
+
+ <para>To do this, you must have logged into the workstation with administrative rights, and you
+ need to use the Control Panel’s <emphasis>Data Sources (ODBC)</emphasis> applet to add a new data source name.
+ </para>
+
+ <para>Each data source name you configure can only access one VDB within a Teiid System. To make more than
+ one VDB available, you need to configure more than one data source name.</para>
+
+ <para>Follow the below steps in creating a data source name (DSN)</para>
+ <orderedlist numeration="arabic">
+ <listitem><para>From the Start menu, select Settings > Control Panel.</para></listitem>
+ <listitem><para>The Control Panel displays. Double click <emphasis>Administrative Tools</emphasis>.</para></listitem>
+ <listitem><para>Then Double-click <emphasis>Data Sources (ODBC)</emphasis>.</para></listitem>
+ <listitem><para>The ODBC Data Source Administrator applet displays. Click the tab
+ associated with the type of DSN you want to add.</para></listitem>
+ <listitem><para>The Create New Data Source dialog box displays. In the Select a driver for which you
+ want to set up a data source table, select <emphasis>PostgreSQL Unicode</emphasis>.</para></listitem>
+ <listitem><para>Click Finish</para></listitem>
+ <listitem><para>The PostgreSQL ODBC DSN Setup dialog box displays.</para></listitem>
+
+ <listitem>
+ <figure id="dsn1">
+ <title>Main Screen</title>
+ <graphic align="center" scale="100" fileref="../images/dsnsetup1.png" />
+ </figure>
+ <para>In the <emphasis>Data Source</emphasis> Name edit box, type the name you want to assign to this data source.</para>
+ <para>In the <emphasis>Database</emphasis> edit box, type the name of the virtual database you want to access through this data source.</para>
+ <para>In the <emphasis>Server</emphasis> edit box, type the host name or IP address of your Teiid runtime. If connecting
+ via a firewall or NAT address, the firewall address or NAT address should be entered. </para>
+ <para>In the Port edit box, type the port number to which the Teiid System listens for ODBC requests. By default, Teiid
+ listenes for ODBC requests on port 35432</para>
+ <para>In the <emphasis>User Name</emphasis> and <emphasis>Password</emphasis> edit boxes, supply the user name and password
+ for the Teiid runtime access.</para>
+ <para>Leave <emphasis>SSL Mode</emphasis> to disabled. SSL connections are currently not supported.</para>
+ <para>Provide any description about the data source in the <emphasis>Description</emphasis> field.</para>
+ </listitem>
+
+ <listitem>
+ <para>Click on the <emphasis>Datasource</emphasis> button, you will see this below figure. Configure options as shown.</para>
+ <figure id="dsn2">
+ <title>DSN Options Page-1</title>
+ <graphic align="center" scale="100" fileref="../images/dsnsetup2.png" />
+ </figure>
+
+ <para>Click on "page2" and make sure the options are selected as shown</para>
+ <figure id="dsn3">
+ <title>DSN Options Page-2</title>
+ <graphic align="center" scale="100" fileref="../images/dsnsetup3.png" />
+ </figure>
+ </listitem>
+
+ <listitem><para> Click "save" and you can optionally click "test" to validate your
+ connection if the Teiid is running.</para></listitem>
+ </orderedlist>
+ <para>You have configured a Teiid's virtual database as a data source for your ODBC applications. Now you can
+ use applications such as Excel, Access to query the data in the VDB</para>
+ </sect2>
+
+ <sect2>
+ <title>Other *nix Platform Installations</title>
+ <para>Before you can access Teiid using ODBC on any *nix platforms, you need to either install a ODBC driver manager or verify
+ that one already exists. As the ODBC Driver manager Teiid recommends <ulink url="http://www.unixodbc.org/">unixODBC</ulink>.
+ If you are working with RedHat Linux or Fedora you can check the graphical "yum" installer to search, find and install unixODBC.
+ Otherwise you can <ulink url="http://www.unixodbc.org/unixODBC-2.3.0.tar.gz">download</ulink> the unixODBC manager here.
+ To install, simply untar the contents of the file to a temporary location and execute the following commands as super user.</para>
+ <programlisting><![CDATA[
+ ./configure
+ make
+ make install
+ ]]></programlisting>
+ <para>Check <ulink url="http://www.unixodbc.org/">unixODBC</ulink> website site for more information, if you
+ run into any issues during the installation.</para>
+
+ <para>Now, to o verify that PostgreSQL driver installed correctly from earlier step, execute the following command</para>
+ <programlisting><![CDATA[
+ odbcinst -q -d
+ ]]></programlisting>
+
+ <para>That should show you all the ODBC drivers installed in your system. Now it is time to create a DSN.
+ Edit "/etc/odbc.ini" file and add the following </para>
+
+ <programlisting><![CDATA[
+ [<DSN name>]
+ Driver = /usr/lib/psqlodbc.so
+ Description = PostgreSQL Data Source
+ Servername = <Teiid Host name or ip>
+ Port = 35432
+ Protocol = 7.4
+ UserName = <user-name>
+ Password = <password>
+ Database = <vdb-name>
+ ReadOnly = no
+ ServerType = Postgres
+ ConnSettings =
+ UseServerSidePrepare=1
+ ByteaAsLongVarBinary=1
+ Optimizer=0
+ Ksqo=0
+ Trace = No
+ TraceFile = /var/log/trace.log
+ Debug = No
+ DebugFile = /var/log/debug.log
+ ]]></programlisting>
+
+ <para>Note that you need "sudo" permissions to edit the "/etc/odbc.ini" file.
+ For all the available configurable options that you can use in defining a DSN can be found <ulink url="http://psqlodbc.projects.postgresql.org/config.html">
+ here</ulink> on postgreSQL ODBC page.</para>
+
+ <para>Once you are done with defining the DSN, you can verify your DSN using the following command
+ </para>
+ <programlisting><![CDATA[
+ isql <DSN-name> [<user-name> <password>] < commands.sql
+ ]]></programlisting>
+
+ <para>where "commands.sql" file contains the SQL commands you would like to execute.</para>
+ </sect2>
+
+ </sect1>
+</chapter>
\ No newline at end of file
Property changes on: trunk/documentation/client-developers-guide/src/main/docbook/en-US/content/odbc.xml
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/documentation/client-developers-guide/src/main/docbook/en-US/images/winsetup1.png
===================================================================
(Binary files differ)
Property changes on: trunk/documentation/client-developers-guide/src/main/docbook/en-US/images/winsetup1.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/documentation/client-developers-guide/src/main/docbook/en-US/images/winsetup2.png
===================================================================
(Binary files differ)
Property changes on: trunk/documentation/client-developers-guide/src/main/docbook/en-US/images/winsetup2.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/documentation/client-developers-guide/src/main/docbook/en-US/images/winsetup3.png
===================================================================
(Binary files differ)
Property changes on: trunk/documentation/client-developers-guide/src/main/docbook/en-US/images/winsetup3.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/documentation/client-developers-guide/src/main/docbook/en-US/images/winsetup4.png
===================================================================
(Binary files differ)
Property changes on: trunk/documentation/client-developers-guide/src/main/docbook/en-US/images/winsetup4.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/documentation/client-developers-guide/src/main/docbook/en-US/images/winsetup5.png
===================================================================
(Binary files differ)
Property changes on: trunk/documentation/client-developers-guide/src/main/docbook/en-US/images/winsetup5.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: trunk/documentation/client-developers-guide/src/main/docbook/en-US/main.xml
===================================================================
--- trunk/documentation/client-developers-guide/src/main/docbook/en-US/main.xml 2010-07-16 19:13:15 UTC (rev 2355)
+++ trunk/documentation/client-developers-guide/src/main/docbook/en-US/main.xml 2010-07-19 22:06:04 UTC (rev 2356)
@@ -50,6 +50,7 @@
<xi:include href="content/jdbc-transactions.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="content/ssl.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="content/using-hibernate.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="content/odbc.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="content/appendix-unsupported-jdbc.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="content/appendix-selfcerts.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
14 years, 5 months
teiid SVN: r2355 - trunk/test-integration/common/src/test/resources/TestCase3473.
by teiid-commits@lists.jboss.org
Author: rareddy
Date: 2010-07-16 15:13:15 -0400 (Fri, 16 Jul 2010)
New Revision: 2355
Modified:
trunk/test-integration/common/src/test/resources/TestCase3473/testGetTables.expected
Log:
TEIID-860
Modified: trunk/test-integration/common/src/test/resources/TestCase3473/testGetTables.expected
===================================================================
--- trunk/test-integration/common/src/test/resources/TestCase3473/testGetTables.expected 2010-07-16 19:10:00 UTC (rev 2354)
+++ trunk/test-integration/common/src/test/resources/TestCase3473/testGetTables.expected 2010-07-16 19:13:15 UTC (rev 2355)
@@ -11,10 +11,21 @@
test SYS Schemas SYSTEM TABLE <null> <null> <null> <null> <null> <null> true
test SYS Tables SYSTEM TABLE <null> <null> <null> <null> <null> <null> true
test SYS VirtualDatabases SYSTEM TABLE <null> <null> <null> <null> <null> <null> true
+test pg_catalog pg_am SYSTEM TABLE <null> <null> <null> <null> <null> <null> false
+test pg_catalog pg_attrdef SYSTEM TABLE <null> <null> <null> <null> <null> <null> false
+test pg_catalog pg_attribute SYSTEM TABLE <null> <null> <null> <null> <null> <null> false
+test pg_catalog pg_class SYSTEM TABLE <null> <null> <null> <null> <null> <null> false
+test pg_catalog pg_database SYSTEM TABLE <null> <null> <null> <null> <null> <null> false
+test pg_catalog pg_index SYSTEM TABLE <null> <null> <null> <null> <null> <null> false
+test pg_catalog pg_namespace SYSTEM TABLE <null> <null> <null> <null> <null> <null> false
+test pg_catalog pg_proc SYSTEM TABLE <null> <null> <null> <null> <null> <null> false
+test pg_catalog pg_trigger SYSTEM TABLE <null> <null> <null> <null> <null> <null> false
+test pg_catalog pg_type SYSTEM TABLE <null> <null> <null> <null> <null> <null> false
+test pg_catalog pg_user SYSTEM TABLE <null> <null> <null> <null> <null> <null> false
test test all_databases TABLE <null> <null> <null> <null> <null> <null> false
test test all_models TABLE <null> <null> <null> <null> <null> <null> false
test test all_tables TABLE <null> <null> <null> <null> <null> <null> false
-Row Count : 14
+Row Count : 25
getColumnName getColumnType getCatalogName getColumnClassName getColumnLabel getColumnTypeName getSchemaName getTableName getColumnDisplaySize getPrecision getScale isAutoIncrement isCaseSensitive isCurrency isDefinitelyWritable isNullable isReadOnly isSearchable isSigned isWritable
TABLE_CAT 12 test java.lang.String TABLE_CAT string SYS Tables 255 255 0 false true false true 1 false true true true
TABLE_SCHEM 12 test java.lang.String TABLE_SCHEM string SYS Tables 255 255 0 false true false true 1 false true true true
14 years, 5 months
teiid SVN: r2354 - in trunk: build/kits/jboss-container/deploy/teiid and 21 other directories.
by teiid-commits@lists.jboss.org
Author: rareddy
Date: 2010-07-16 15:10:00 -0400 (Fri, 16 Jul 2010)
New Revision: 2354
Added:
trunk/runtime/src/main/java/org/teiid/deployers/PgCatalogMetadataStore.java
trunk/runtime/src/main/java/org/teiid/odbc/
trunk/runtime/src/main/java/org/teiid/odbc/ODBCClientRemote.java
trunk/runtime/src/main/java/org/teiid/odbc/ODBCServerRemote.java
trunk/runtime/src/main/java/org/teiid/odbc/ODBCServerRemoteImpl.java
trunk/runtime/src/main/java/org/teiid/odbc/ScriptReader.java
trunk/runtime/src/main/java/org/teiid/transport/ODBCClientInstance.java
trunk/runtime/src/main/java/org/teiid/transport/ODBCSocketListener.java
trunk/runtime/src/main/java/org/teiid/transport/PGCharsetConverter.java
trunk/runtime/src/main/java/org/teiid/transport/PgBackendProtocol.java
trunk/runtime/src/main/java/org/teiid/transport/PgFrontendProtocol.java
trunk/test-integration/common/src/test/java/org/teiid/systemmodel/TestODBCSchema.java
trunk/test-integration/common/src/test/resources/TestODBCSchema/
trunk/test-integration/common/src/test/resources/TestODBCSchema/test_PG_AM.expected
trunk/test-integration/common/src/test/resources/TestODBCSchema/test_PG_ATTRDEF.expected
trunk/test-integration/common/src/test/resources/TestODBCSchema/test_PG_ATTRIBUTE.expected
trunk/test-integration/common/src/test/resources/TestODBCSchema/test_PG_CLASS.expected
trunk/test-integration/common/src/test/resources/TestODBCSchema/test_PG_DATABASE.expected
trunk/test-integration/common/src/test/resources/TestODBCSchema/test_PG_INDEX.expected
trunk/test-integration/common/src/test/resources/TestODBCSchema/test_PG_NAMESPACE.expected
trunk/test-integration/common/src/test/resources/TestODBCSchema/test_PG_PROC.expected
trunk/test-integration/common/src/test/resources/TestODBCSchema/test_PG_TRIGGER.expected
trunk/test-integration/common/src/test/resources/TestODBCSchema/test_PG_TYPE.expected
trunk/test-integration/common/src/test/resources/TestODBCSchema/test_PG_USER.expected
Modified:
trunk/api/src/main/java/org/teiid/logging/LogConstants.java
trunk/build/kits/jboss-container/deploy/teiid/teiid-jboss-beans.xml
trunk/common-core/src/main/java/org/teiid/core/CoreConstants.java
trunk/documentation/reference/src/main/docbook/en-US/content/scalar_functions.xml
trunk/engine/src/main/java/org/teiid/dqp/internal/process/CachedFinder.java
trunk/engine/src/main/java/org/teiid/dqp/internal/process/DataTierManagerImpl.java
trunk/engine/src/main/java/org/teiid/query/function/FunctionMethods.java
trunk/engine/src/main/java/org/teiid/query/function/source/SystemSource.java
trunk/engine/src/main/resources/org/teiid/query/i18n.properties
trunk/jboss-integration/src/main/java/org/teiid/jboss/deployers/RuntimeEngineDeployer.java
trunk/jboss-integration/src/main/resources/org/teiid/jboss/i18n.properties
trunk/metadata/src/main/resources/System.vdb
trunk/runtime/src/main/java/org/teiid/deployers/CompositeVDB.java
trunk/runtime/src/main/java/org/teiid/deployers/DynamicVDBDeployer.java
trunk/runtime/src/main/java/org/teiid/deployers/VDBDeployer.java
trunk/runtime/src/main/java/org/teiid/deployers/VDBParserDeployer.java
trunk/runtime/src/main/java/org/teiid/deployers/VDBRepository.java
trunk/runtime/src/main/java/org/teiid/transport/SocketListener.java
trunk/runtime/src/main/resources/org/teiid/runtime/i18n.properties
trunk/test-integration/common/src/test/java/org/teiid/jdbc/AbstractQueryTest.java
trunk/test-integration/common/src/test/java/org/teiid/jdbc/FakeServer.java
trunk/test-integration/common/src/test/java/org/teiid/jdbc/TestMMDatabaseMetaData.java
trunk/test-integration/common/src/test/java/org/teiid/jdbc/TestVDBMerge.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/testGetSchemas.expected
trunk/test-integration/common/src/test/resources/TestMMDatabaseMetaData/testGetTables.expected
trunk/test-integration/common/src/test/resources/TestMMDatabaseMetaData/testGetTables_allTables.expected
trunk/test-integration/common/src/test/resources/TestPartsDatabaseMetadata/testColumns.expected
trunk/test-integration/common/src/test/resources/TestPartsDatabaseMetadata/testSchemas.expected
trunk/test-integration/common/src/test/resources/TestPartsDatabaseMetadata/testTables.expected
trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testColumns.expected
trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testDataTypes.expected
trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testKeyColumns.expected
trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testKeys.expected
trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testProcedureParams.expected
trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testProcedures.expected
trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testSchemas.expected
trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testTables.expected
Log:
TEIID-860: Adding the initial ODBC support for to teiid based upon the Postgresql wire protocol. Some parts of implementation and direction taken from h2 code base, which uses the same technique to support ODBC. We made the protocol to use which supports async messaging through Netty channel. Also implemented the PG's catalog using the Teiid metadata semantics.
Modified: trunk/api/src/main/java/org/teiid/logging/LogConstants.java
===================================================================
--- trunk/api/src/main/java/org/teiid/logging/LogConstants.java 2010-07-15 20:06:02 UTC (rev 2353)
+++ trunk/api/src/main/java/org/teiid/logging/LogConstants.java 2010-07-16 19:10:00 UTC (rev 2354)
@@ -36,6 +36,8 @@
public static final String CTX_AUDITLOGGING = "org.teiid.AUDIT_LOG"; //$NON-NLS-1$
public static final String CTX_ADMIN_API = "org.teiid.ADMIN_API"; //$NON-NLS-1$
public static final String CTX_RUNTIME = "org.teiid.RUNTIME"; //$NON-NLS-1$
+ public static final String CTX_ODBC = "org.teiid.ODBC"; //$NON-NLS-1$
+
// Query contexts
public static final String CTX_FUNCTION_TREE = CTX_QUERY_PLANNER + ".FUNCTION_TREE"; //$NON-NLS-1$
public static final String CTX_QUERY_RESOLVER = CTX_QUERY_PLANNER + ".RESOLVER"; //$NON-NLS-1$
Modified: trunk/build/kits/jboss-container/deploy/teiid/teiid-jboss-beans.xml
===================================================================
--- trunk/build/kits/jboss-container/deploy/teiid/teiid-jboss-beans.xml 2010-07-15 20:06:02 UTC (rev 2353)
+++ trunk/build/kits/jboss-container/deploy/teiid/teiid-jboss-beans.xml 2010-07-16 19:10:00 UTC (rev 2354)
@@ -51,6 +51,7 @@
<property name="profileService"><inject bean="ProfileService"/></property>
<property name="jdbcSocketConfiguration"><inject bean="JdbcSocketConfiguration"/></property>
<property name="adminSocketConfiguration"><inject bean="AdminSocketConfiguration"/></property>
+ <property name="odbcSocketConfiguration"><inject bean="OdbcSocketConfiguration"/></property>
<property name="workManager"><inject bean="WorkManager"/></property>
<property name="XATerminator"><inject bean="TransactionManager" property="XATerminator"/></property>
<property name="transactionManager"><inject bean="TransactionManager" property="transactionManager"/></property>
@@ -147,6 +148,34 @@
<property name="authenticationMode">anonymous</property>
<property name="clientEncryptionEnabled">true</property>
</bean>
+
+ <!-- JDBC Socket connection properties (SSL see below) -->
+ <bean name="OdbcSocketConfiguration" class="org.teiid.transport.SocketConfiguration">
+ <property name="enabled">true</property>
+ <!-- property name="bindAddress">localhost</property-->
+ <property name="portNumber">35432</property>
+ <!-- Max number of threads dedicated to initial request processing (default 15) -->
+ <property name="maxSocketThreads">15</property>
+ <!-- SO_RCVBUF size, 0 indicates that system default should be used (default 0) -->
+ <property name="inputBufferSize">0</property>
+ <!-- SO_SNDBUF size, 0 indicates that system default should be used (default 0) -->
+ <property name="outputBufferSize">0</property>
+ <property name="SSLConfiguration"><inject bean="JdbcSslConfiguration"/></property>
+ </bean>
+
+ <bean name="OdbcSslConfiguration" class="org.teiid.transport.SSLConfiguration">
+ <property name="sslEnabled">false</property>
+ <property name="keystoreFilename">cert.keystore</property>
+ <property name="keystorePassword">passwd</property>
+ <property name="keystoreType">JKS</property>
+ <property name="sslProtocol">SSLv3</property>
+ <property name="keymanagementAlgorithm">false</property>
+ <property name="truststoreFilename">cert.truststore</property>
+ <property name="truststorePassword">passwd</property>
+ <!-- 1-way, 2-way, anonymous -->
+ <property name="authenticationMode">1-way</property>
+ <property name="clientEncryptionEnabled">true</property>
+ </bean>
<!-- teiid's default security domain, replace this with your own if needs to be any other JAAS domain -->
<application-policy xmlns="urn:jboss:security-beans:1.0" name="teiid-security">
Modified: trunk/common-core/src/main/java/org/teiid/core/CoreConstants.java
===================================================================
--- trunk/common-core/src/main/java/org/teiid/core/CoreConstants.java 2010-07-15 20:06:02 UTC (rev 2353)
+++ trunk/common-core/src/main/java/org/teiid/core/CoreConstants.java 2010-07-16 19:10:00 UTC (rev 2354)
@@ -52,6 +52,8 @@
public static final String SYSTEM_MODEL = "SYS"; //$NON-NLS-1$
+ public static final String ODBC_MODEL = "pg_catalog"; //$NON-NLS-1$
+
public static final String SYSTEM_VDB = "System.vdb"; //$NON-NLS-1$
public static final String PRODUCT_OWNER_NAME_PROPERTY = "ownerName"; //$NON-NLS-1$
Modified: trunk/documentation/reference/src/main/docbook/en-US/content/scalar_functions.xml
===================================================================
--- trunk/documentation/reference/src/main/docbook/en-US/content/scalar_functions.xml 2010-07-15 20:06:02 UTC (rev 2353)
+++ trunk/documentation/reference/src/main/docbook/en-US/content/scalar_functions.xml 2010-07-16 19:10:00 UTC (rev 2354)
@@ -1923,6 +1923,17 @@
<para>return is string</para>
</entry>
</row>
+ <row>
+ <entry>
+ <para><code>CURRENT_DATABASE()</code></para>
+ </entry>
+ <entry>
+ <para>Retrieve the catalog name of the database. Currently VDB's name is also the catalog name.</para>
+ </entry>
+ <entry>
+ <para>return is string</para>
+ </entry>
+ </row>
</tbody>
</tgroup>
</informaltable>
Modified: trunk/engine/src/main/java/org/teiid/dqp/internal/process/CachedFinder.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/dqp/internal/process/CachedFinder.java 2010-07-15 20:06:02 UTC (rev 2353)
+++ trunk/engine/src/main/java/org/teiid/dqp/internal/process/CachedFinder.java 2010-07-16 19:10:00 UTC (rev 2354)
@@ -58,6 +58,7 @@
this.connectorRepo = repo;
this.vdb = vdb;
userCache.put(CoreConstants.SYSTEM_MODEL, SYSTEM_CAPS);
+ userCache.put(CoreConstants.ODBC_MODEL, SYSTEM_CAPS);
}
/**
Modified: trunk/engine/src/main/java/org/teiid/dqp/internal/process/DataTierManagerImpl.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/dqp/internal/process/DataTierManagerImpl.java 2010-07-15 20:06:02 UTC (rev 2353)
+++ trunk/engine/src/main/java/org/teiid/dqp/internal/process/DataTierManagerImpl.java 2010-07-16 19:10:00 UTC (rev 2354)
@@ -164,7 +164,7 @@
for (Datatype datatype : metadata.getDatatypes()) {
rows.add(Arrays.asList(datatype.getName(), datatype.isBuiltin(), datatype.isBuiltin(), datatype.getName(), datatype.getJavaClassName(), datatype.getScale(),
datatype.getLength(), datatype.getNullType().toString(), datatype.isSigned(), datatype.isAutoIncrement(), datatype.isCaseSensitive(), datatype.getPrecisionLength(),
- datatype.getRadix(), datatype.getSearchType().toString(), datatype.getUUID(), datatype.getRuntimeTypeName(), datatype.getBasetypeName(), datatype.getAnnotation()));
+ datatype.getRadix(), datatype.getSearchType().toString(), datatype.getUUID(), datatype.getRuntimeTypeName(), datatype.getBasetypeName(), datatype.getAnnotation(), datatype.getUUID().hashCode()));
}
break;
case VIRTUALDATABASES:
@@ -172,13 +172,13 @@
break;
case SCHEMAS:
for (Schema model : getVisibleSchemas(vdb, metadata)) {
- rows.add(Arrays.asList(vdbName, model.getName(), model.isPhysical(), model.getUUID(), model.getAnnotation(), model.getPrimaryMetamodelUri()));
+ rows.add(Arrays.asList(vdbName, model.getName(), model.isPhysical(), model.getUUID(), model.getAnnotation(), model.getPrimaryMetamodelUri(), model.getUUID().hashCode()));
}
break;
case PROCEDURES:
for (Schema schema : getVisibleSchemas(vdb, metadata)) {
for (Procedure proc : schema.getProcedures().values()) {
- rows.add(Arrays.asList(vdbName, proc.getParent().getName(), proc.getName(), proc.getNameInSource(), proc.getResultSet() != null, proc.getUUID(), proc.getAnnotation()));
+ rows.add(Arrays.asList(vdbName, proc.getParent().getName(), proc.getName(), proc.getNameInSource(), proc.getResultSet() != null, proc.getUUID(), proc.getAnnotation(),proc.getUUID().hashCode()));
}
}
break;
@@ -188,13 +188,13 @@
for (ProcedureParameter param : proc.getParameters()) {
Datatype dt = param.getDatatype();
rows.add(Arrays.asList(vdbName, proc.getParent().getName(), proc.getName(), param.getName(), dt!=null?dt.getRuntimeTypeName():null, param.getPosition(), param.getType().toString(), param.isOptional(),
- param.getPrecision(), param.getLength(), param.getScale(), param.getRadix(), param.getNullType().toString(), param.getUUID(), param.getAnnotation()));
+ param.getPrecision(), param.getLength(), param.getScale(), param.getRadix(), param.getNullType().toString(), param.getUUID(), param.getAnnotation(), param.getUUID().hashCode()));
}
if (proc.getResultSet() != null) {
for (Column param : proc.getResultSet().getColumns()) {
Datatype dt = param.getDatatype();
rows.add(Arrays.asList(vdbName, proc.getParent().getName(), proc.getName(), param.getName(), dt!=null?dt.getRuntimeTypeName():null, param.getPosition(), "ResultSet", false, //$NON-NLS-1$
- param.getPrecision(), param.getLength(), param.getScale(), param.getRadix(), param.getNullType().toString(), param.getUUID(), param.getAnnotation()));
+ param.getPrecision(), param.getLength(), param.getScale(), param.getRadix(), param.getNullType().toString(), param.getUUID(), param.getAnnotation(), param.getUUID().hashCode()));
}
}
}
@@ -221,7 +221,7 @@
}
for (AbstractMetadataRecord record : records) {
for (Map.Entry<String, String> entry : record.getProperties().entrySet()) {
- rows.add(Arrays.asList(entry.getKey(), entry.getValue(), record.getUUID()));
+ rows.add(Arrays.asList(entry.getKey(), entry.getValue(), record.getUUID(), record.getUUID().hashCode()));
}
}
break;
@@ -231,7 +231,7 @@
switch (sysTable) {
case TABLES:
rows.add(Arrays.asList(vdbName, schema.getName(), table.getName(), table.getTableType().toString(), table.getNameInSource(),
- table.isPhysical(), table.supportsUpdate(), table.getUUID(), table.getCardinality(), table.getAnnotation(), table.isSystem(), table.isMaterialized()));
+ table.isPhysical(), table.supportsUpdate(), table.getUUID(), table.getCardinality(), table.getAnnotation(), table.isSystem(), table.isMaterialized(), table.getUUID().hashCode()));
break;
case COLUMNS:
for (Column column : table.getColumns()) {
@@ -240,13 +240,13 @@
dt!=null?dt.getRuntimeTypeName():null, column.getScale(), column.getLength(), column.isFixedLength(), column.isSelectable(), column.isUpdatable(),
column.isCaseSensitive(), column.isSigned(), column.isCurrency(), column.isAutoIncremented(), column.getNullType().toString(), column.getMinimumValue(),
column.getMaximumValue(), column.getSearchType().toString(), column.getFormat(), column.getDefaultValue(), dt!=null?dt.getJavaClassName():null, column.getPrecision(),
- column.getCharOctetLength(), column.getRadix(), column.getUUID(), column.getAnnotation()));
+ column.getCharOctetLength(), column.getRadix(), column.getUUID(), column.getAnnotation(), column.getUUID().hashCode()));
}
break;
case KEYS:
for (KeyRecord key : table.getAllKeys()) {
rows.add(Arrays.asList(vdbName, table.getParent().getName(), table.getName(), key.getName(), key.getAnnotation(), key.getNameInSource(), key.getType().toString(),
- false, (key instanceof ForeignKey)?((ForeignKey)key).getUniqueKeyID():null, key.getUUID()));
+ false, (key instanceof ForeignKey)?((ForeignKey)key).getUniqueKeyID():null, key.getUUID(), key.getUUID().hashCode()));
}
break;
case KEYCOLUMNS:
@@ -254,7 +254,7 @@
int postition = 1;
for (Column column : key.getColumns()) {
rows.add(Arrays.asList(vdbName, schema.getName(), table.getName(), column.getName(), key.getName(), key.getType().toString(),
- (key instanceof ForeignKey)?((ForeignKey)key).getUniqueKeyID():null, key.getUUID(), postition++));
+ (key instanceof ForeignKey)?((ForeignKey)key).getUniqueKeyID():null, key.getUUID(), postition++, key.getUUID().hashCode()));
}
}
break;
Modified: trunk/engine/src/main/java/org/teiid/query/function/FunctionMethods.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/function/FunctionMethods.java 2010-07-15 20:06:02 UTC (rev 2353)
+++ trunk/engine/src/main/java/org/teiid/query/function/FunctionMethods.java 2010-07-16 19:10:00 UTC (rev 2354)
@@ -1196,6 +1196,10 @@
public static Object user(CommandContext context) {
return context.getUserName();
}
+
+ public static Object current_database(CommandContext context) {
+ return context.getVdbName();
+ }
// ================= Function - COMMANDPAYLOAD ========================
public static Object commandPayload(CommandContext context) {
Modified: trunk/engine/src/main/java/org/teiid/query/function/source/SystemSource.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/function/source/SystemSource.java 2010-07-15 20:06:02 UTC (rev 2353)
+++ trunk/engine/src/main/java/org/teiid/query/function/source/SystemSource.java 2010-07-16 19:10:00 UTC (rev 2354)
@@ -157,6 +157,7 @@
addDecodeFunctions();
addLookupFunctions();
addUserFunction();
+ addCurrentDatabaseFunction();
addEnvFunction();
addCommandPayloadFunctions();
addIfNullFunctions();
@@ -771,6 +772,12 @@
new FunctionParameter("result", DataTypeManager.DefaultDataTypes.STRING, QueryPlugin.Util.getString("SystemSource.User_result")), false, FunctionMethod.SESSION_DETERMINISTIC) ); //$NON-NLS-1$ //$NON-NLS-2$
}
+ private void addCurrentDatabaseFunction() {
+ functions.add(
+ new FunctionMethod("current_database", QueryPlugin.Util.getString("SystemSource.current_database_desc"), MISCELLANEOUS, FunctionMethod.CANNOT_PUSHDOWN, FUNCTION_CLASS, "current_database", null, //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ new FunctionParameter("result", DataTypeManager.DefaultDataTypes.STRING, QueryPlugin.Util.getString("current_database_result")), false, FunctionMethod.SESSION_DETERMINISTIC) ); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
private void addEnvFunction() {
functions.add(
new FunctionMethod("env", QueryPlugin.Util.getString("SystemSource.Env_desc"), MISCELLANEOUS, FunctionMethod.CANNOT_PUSHDOWN, FUNCTION_CLASS, "env", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
Modified: trunk/engine/src/main/resources/org/teiid/query/i18n.properties
===================================================================
--- trunk/engine/src/main/resources/org/teiid/query/i18n.properties 2010-07-15 20:06:02 UTC (rev 2353)
+++ trunk/engine/src/main/resources/org/teiid/query/i18n.properties 2010-07-16 19:10:00 UTC (rev 2354)
@@ -735,6 +735,8 @@
SystemSource.Lookup_result=Return value for key as specified in code table
SystemSource.User_desc=Get current user name
SystemSource.User_result=Return user name
+SystemSource.current_database_desc=Get current database name
+current_database_result=Returns the catalog name
SystemSource.Env_desc=Get the value of an environment variable
SystemSource.Env_varname=Name of the environment variable
SystemSource.Env_result=Return the string value of the environment variable
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 2010-07-15 20:06:02 UTC (rev 2353)
+++ trunk/jboss-integration/src/main/java/org/teiid/jboss/deployers/RuntimeEngineDeployer.java 2010-07-16 19:10:00 UTC (rev 2354)
@@ -79,6 +79,7 @@
import org.teiid.transport.ClientServiceRegistry;
import org.teiid.transport.ClientServiceRegistryImpl;
import org.teiid.transport.LogonImpl;
+import org.teiid.transport.ODBCSocketListener;
import org.teiid.transport.SocketConfiguration;
import org.teiid.transport.SocketListener;
@@ -88,9 +89,11 @@
private static final long serialVersionUID = -4676205340262775388L;
private transient SocketConfiguration jdbcSocketConfiguration;
- private transient SocketConfiguration adminSocketConfiguration;
+ private transient SocketConfiguration adminSocketConfiguration;
+ private transient SocketConfiguration odbcSocketConfiguration;
private transient SocketListener jdbcSocket;
private transient SocketListener adminSocket;
+ private transient SocketListener odbcSocket;
private transient TransactionServerImpl transactionServerImpl = new TransactionServerImpl();
private transient DQPCore dqpCore = new DQPCore();
@@ -142,6 +145,15 @@
} else {
LogManager.logInfo(LogConstants.CTX_RUNTIME, IntegrationPlugin.Util.getString("socket_not_enabled", "admin connections")); //$NON-NLS-1$ //$NON-NLS-2$
}
+
+ if (this.odbcSocketConfiguration.isEnabled()) {
+ this.vdbRepository.odbcEnabled();
+ this.odbcSocket = new ODBCSocketListener(this.odbcSocketConfiguration, csr, this.dqpCore.getBufferManager());
+ LogManager.logInfo(LogConstants.CTX_RUNTIME, IntegrationPlugin.Util.getString("odbc_enabled","Teiid ODBC - SSL=", (this.odbcSocketConfiguration.getSSLConfiguration().isSslEnabled()?"ON":"OFF")+" Host = "+this.odbcSocketConfiguration.getHostAddress().getHostName()+" Port = "+this.odbcSocketConfiguration.getPortNumber())); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
+ } else {
+ LogManager.logInfo(LogConstants.CTX_RUNTIME, IntegrationPlugin.Util.getString("odbc_not_enabled")); //$NON-NLS-1$
+ }
+
LogManager.logInfo(LogConstants.CTX_RUNTIME, IntegrationPlugin.Util.getString("engine_started", new Date(System.currentTimeMillis()).toString())); //$NON-NLS-1$
if (jndiName != null) {
final InitialContext ic ;
@@ -180,7 +192,12 @@
if (this.adminSocket != null) {
this.adminSocket.stop();
this.adminSocket = null;
- }
+ }
+
+ if (this.odbcSocket != null) {
+ this.odbcSocket.stop();
+ this.odbcSocket = null;
+ }
LogManager.logInfo(LogConstants.CTX_RUNTIME, IntegrationPlugin.Util.getString("engine_stopped", new Date(System.currentTimeMillis()).toString())); //$NON-NLS-1$
}
@@ -229,6 +246,10 @@
public void setAdminSocketConfiguration(SocketConfiguration socketConfig) {
this.adminSocketConfiguration = socketConfig;
}
+
+ public void setOdbcSocketConfiguration(SocketConfiguration socketConfig) {
+ this.odbcSocketConfiguration = socketConfig;
+ }
public void setXATerminator(XATerminator xaTerminator){
this.transactionServerImpl.setXaTerminator(xaTerminator);
Modified: trunk/jboss-integration/src/main/resources/org/teiid/jboss/i18n.properties
===================================================================
--- trunk/jboss-integration/src/main/resources/org/teiid/jboss/i18n.properties 2010-07-15 20:06:02 UTC (rev 2353)
+++ trunk/jboss-integration/src/main/resources/org/teiid/jboss/i18n.properties 2010-07-16 19:10:00 UTC (rev 2354)
@@ -23,6 +23,8 @@
engine_started=Teiid Engine Started = {0}
socket_not_enabled=Socket transport for {0} is not enabled in Teiid.
socket_enabled={0} {1}
+odbc_not_enabled=ODBC transport is not enabled in Teiid.
+odbc_enabled={0} {1}
engine_stopped=Teiid Engine stopped {0}
admin_connection_closed=Teiid admin connection is already closed.
translator_exists=Translator with name {0} already exists in the configuration
Modified: trunk/metadata/src/main/resources/System.vdb
===================================================================
(Binary files differ)
Modified: trunk/runtime/src/main/java/org/teiid/deployers/CompositeVDB.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/deployers/CompositeVDB.java 2010-07-15 20:06:02 UTC (rev 2353)
+++ trunk/runtime/src/main/java/org/teiid/deployers/CompositeVDB.java 2010-07-16 19:10:00 UTC (rev 2354)
@@ -45,17 +45,17 @@
private LinkedHashMap<String, Resource> visibilityMap;
private UDFMetaData udf;
private LinkedHashMap<VDBKey, CompositeVDB> children;
- private MetadataStore systemStore;
+ private MetadataStore[] additionalStores;
// used as cached item to avoid rebuilding
private VDBMetaData mergedVDB;
- public CompositeVDB(VDBMetaData vdb, MetadataStoreGroup stores, LinkedHashMap<String, Resource> visibilityMap, UDFMetaData udf, MetadataStore systemStore) {
+ public CompositeVDB(VDBMetaData vdb, MetadataStoreGroup stores, LinkedHashMap<String, Resource> visibilityMap, UDFMetaData udf, MetadataStore... additionalStores) {
this.vdb = vdb;
this.stores = stores;
this.visibilityMap = visibilityMap;
this.udf = udf;
- this.systemStore = systemStore;
+ this.additionalStores = additionalStores;
update(this.vdb);
}
@@ -88,7 +88,9 @@
}
CompositeMetadataStore compositeStore = new CompositeMetadataStore(stores.getStores());
- compositeStore.addMetadataStore(this.systemStore);
+ for (MetadataStore s:this.additionalStores) {
+ compositeStore.addMetadataStore(s);
+ }
TransformationMetadata metadata = new TransformationMetadata(vdb, compositeStore, visibilityMap, methods);
Modified: trunk/runtime/src/main/java/org/teiid/deployers/DynamicVDBDeployer.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/deployers/DynamicVDBDeployer.java 2010-07-15 20:06:02 UTC (rev 2353)
+++ trunk/runtime/src/main/java/org/teiid/deployers/DynamicVDBDeployer.java 2010-07-16 19:10:00 UTC (rev 2354)
@@ -26,10 +26,7 @@
import org.jboss.deployers.vfs.spi.deployer.AbstractVFSParsingDeployer;
import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit;
import org.jboss.virtual.VirtualFile;
-import org.teiid.adminapi.Model;
-import org.teiid.adminapi.impl.ModelMetaData;
import org.teiid.adminapi.impl.VDBMetaData;
-import org.teiid.core.CoreConstants;
import org.teiid.logging.LogConstants;
import org.teiid.logging.LogManager;
@@ -49,20 +46,10 @@
vdb.setUrl(unit.getRoot().toURL().toExternalForm());
vdb.setDynamic(true);
- // Add system model to the deployed VDB
- ModelMetaData system = new ModelMetaData();
- system.setName(CoreConstants.SYSTEM_MODEL);
- system.setVisible(true);
- system.setModelType(Model.Type.PHYSICAL);
- system.addSourceMapping(CoreConstants.SYSTEM_MODEL, CoreConstants.SYSTEM_MODEL, CoreConstants.SYSTEM_MODEL);
- system.setSupportsMultiSourceBindings(false);
- vdb.addModel(system);
-
LogManager.logDetail(LogConstants.CTX_RUNTIME,"VDB "+unit.getRoot().getName()+" has been parsed."); //$NON-NLS-1$ //$NON-NLS-2$
// The loading of metadata from data sources will be done during the real deploy
// as the resources are guaranteed to be available by that time.
-
return vdb;
}
}
Added: trunk/runtime/src/main/java/org/teiid/deployers/PgCatalogMetadataStore.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/deployers/PgCatalogMetadataStore.java (rev 0)
+++ trunk/runtime/src/main/java/org/teiid/deployers/PgCatalogMetadataStore.java 2010-07-16 19:10:00 UTC (rev 2354)
@@ -0,0 +1,417 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership. Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301 USA.
+ */
+package org.teiid.deployers;
+
+import org.teiid.core.CoreConstants;
+import org.teiid.core.types.DataTypeManager;
+import org.teiid.metadata.Column;
+import org.teiid.metadata.ColumnSet;
+import org.teiid.metadata.MetadataFactory;
+import org.teiid.metadata.MetadataStore;
+import org.teiid.metadata.Schema;
+import org.teiid.metadata.Table;
+import org.teiid.metadata.Table.Type;
+import org.teiid.translator.TranslatorException;
+
+public class PgCatalogMetadataStore {
+
+ private static final long serialVersionUID = 5391872008395637166L;
+ private MetadataFactory factory;
+
+ public PgCatalogMetadataStore(MetadataFactory factory) throws TranslatorException {
+ this.factory = factory;
+
+ Schema schema = factory.getMetadataStore().getSchemas().get(CoreConstants.ODBC_MODEL);
+ schema.setUUID("mmuuid:8294601c-9fe9-4244-9499-4a012c5e1476"); //$NON-NLS-1$
+
+ add_pg_namespace();
+ add_pg_class();
+ add_pg_attribute();
+ add_pg_type();
+ add_pg_index();
+ add_pg_am();
+ add_pg_proc();
+ add_pg_trigger();
+ add_pg_attrdef();
+ add_pg_database();
+ add_pg_user();
+ }
+
+ public MetadataStore getMetadataStore() {
+ return factory.getMetadataStore();
+ }
+
+ private Table createView(String name, String uuid) throws TranslatorException {
+ Table t = this.factory.addTable(name);
+ t.setSystem(true);
+ t.setSupportsUpdate(false);
+ t.setVirtual(true);
+ t.setTableType(Type.Table);
+ t.setUUID(uuid);
+ return t;
+ }
+
+ private void addColumn(String name, String type, ColumnSet<?> table, String uuid) throws TranslatorException {
+ Column c = this.factory.addColumn(name, type, table);
+ c.setUUID(uuid);
+ }
+
+ //index access methods
+ private Table add_pg_am() throws TranslatorException {
+ Table t = createView("pg_am", "mmuuid:069bf3d5-79ab-4c78-9ede-b6802e5a0dea"); //$NON-NLS-1$ //$NON-NLS-2$
+ addColumn("oid", DataTypeManager.DefaultDataTypes.INTEGER, t, "mmuuid:644ce6f8-a75f-46e6-a03a-294b02feb6fc"); //$NON-NLS-1$ //$NON-NLS-2$
+ addColumn("amname", DataTypeManager.DefaultDataTypes.STRING, t, "mmuuid:ed5b2740-5024-4c3c-a1ac-9187d0ab16c7"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ String transformation = "SELECT 0 as oid, 'btree' as amname"; //$NON-NLS-1$
+ t.setSelectTransformation(transformation);
+
+ return t;
+ }
+
+ // column defaul values
+ private Table add_pg_attrdef() throws TranslatorException {
+ Table t = createView("pg_attrdef", "mmuuid:a54429c7-cc41-4112-982b-df76ef3a507d"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ addColumn("oid", DataTypeManager.DefaultDataTypes.INTEGER, t, "mmuuid:280c0f10-ed7b-4d36-95a4-1409f22c3839"); //$NON-NLS-1$ //$NON-NLS-2$
+ addColumn("adsrc", DataTypeManager.DefaultDataTypes.INTEGER, t, "mmuuid:1f29af59-2a39-4cad-b6ff-986ff224db27"); //$NON-NLS-1$ //$NON-NLS-2$
+ addColumn("adrelid", DataTypeManager.DefaultDataTypes.INTEGER, t, "mmuuid:54648256-35de-4dd3-9d23-1cf7d14aac1f"); //$NON-NLS-1$ //$NON-NLS-2$
+ addColumn("adnum", DataTypeManager.DefaultDataTypes.INTEGER, t, "mmuuid:520aa08f-1341-4e8e-8abd-5785128d79ab"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ String transformation = "SELECT 0 as oid, 0 as adsrc, 0 as adrelid, 0 as adnum"; //$NON-NLS-1$
+ t.setSelectTransformation(transformation);
+ return t;
+ }
+
+ // table columns ("attributes")
+ private Table add_pg_attribute() throws TranslatorException {
+ Table t = createView("pg_attribute", "mmuuid:7f89ff91-4ae6-40ff-926d-346c5a61f817"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ addColumn("oid", DataTypeManager.DefaultDataTypes.INTEGER, t, "mmuuid:5142b0b5-b166-4e17-b18c-5bbdb023e1c3"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ // OID, The table this column belongs to
+ addColumn("attrelid", DataTypeManager.DefaultDataTypes.INTEGER, t, "mmuuid:5f18b807-9eef-41fa-b6d0-b83e2bf6fa5d"); //$NON-NLS-1$ //$NON-NLS-2$
+ // The column name
+ addColumn("attname", DataTypeManager.DefaultDataTypes.STRING, t, "mmuuid:7099d08f-4206-400e-ba65-fbeeb2066070"); //$NON-NLS-1$ //$NON-NLS-2$
+ // OID, The data type of this column
+ addColumn("atttypid", DataTypeManager.DefaultDataTypes.INTEGER, t, "mmuuid:8ef029fe-6410-4c34-8f35-301d25d7bd59"); //$NON-NLS-1$ //$NON-NLS-2$
+ // A copy of pg_type.typlen of this column's type
+ addColumn("attlen", DataTypeManager.DefaultDataTypes.SHORT, t, "mmuuid:36973b20-e707-460e-aaa5-ed38f9a1d90a"); //$NON-NLS-1$ //$NON-NLS-2$
+ // The number of the column. Ordinary columns are numbered from 1 up. System columns,
+ // such as oid, have (arbitrary) negative numbers
+ addColumn("attnum", DataTypeManager.DefaultDataTypes.SHORT, t, "mmuuid:ca1c8121-21d7-4a19-b009-a0ef482f5657"); //$NON-NLS-1$ //$NON-NLS-2$
+ // atttypmod records type-specific data supplied at table creation time (for example,
+ // the maximum length of a varchar column). It is passed to type-specific input functions and
+ // length coercion functions. The value will generally be -1 for types that do not need atttypmod
+ addColumn("atttypmod", DataTypeManager.DefaultDataTypes.INTEGER, t, "mmuuid:455e727b-8276-4bcd-bd65-9a43b990416a"); //$NON-NLS-1$ //$NON-NLS-2$
+ // This represents a not-null constraint. It is possible to change this column to enable or disable the constraint
+ addColumn("attnotnull", DataTypeManager.DefaultDataTypes.BOOLEAN, t, "mmuuid:e9230efa-bde9-49ea-b6da-6ede8c5fb3ee"); //$NON-NLS-1$ //$NON-NLS-2$
+ // This column has been dropped and is no longer valid. A dropped column is still physically present in the table,
+ // but is ignored by the parser and so cannot be accessed via SQL
+ addColumn("attisdropped", DataTypeManager.DefaultDataTypes.BOOLEAN, t, "mmuuid:910c0c60-63be-44fb-bc30-1ba5528cf471"); //$NON-NLS-1$ //$NON-NLS-2$
+ // This column has a default value, in which case there will be a corresponding entry in the pg_attrdef
+ // catalog that actually defines the value
+ addColumn("atthasdef", DataTypeManager.DefaultDataTypes.BOOLEAN, t, "mmuuid:be916cb0-0f48-44d7-ae5c-003822ee3e57"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ String transformation = "SELECT t1.OID as oid, " + //$NON-NLS-1$
+ "(SELECT OID FROM SYS.Tables WHERE Name = t1.TableName AND SchemaName = t1.SchemaName) as attrelid, " + //$NON-NLS-1$
+ "t1.Name as attname, " + //$NON-NLS-1$
+ "(SELECT pt.oid FROM pg_catalog.pg_type pt, SYS.DataTypes dt WHERE (dt.Name = t1.DataType AND dt.Name = pt.typname) " + //$NON-NLS-1$
+ "OR ((t1.DataType = 'clob' OR t1.DataType = 'blob') AND pt.typname = 'lo')) as atttypid, " + //$NON-NLS-1$
+ "convert(t1.Length, short) as attlen, " + //$NON-NLS-1$
+ "convert(t1.Position, short) as attnum, " + //$NON-NLS-1$
+ "t1.Length as atttypmod, " + //$NON-NLS-1$
+ "false as attnotnull, " + //$NON-NLS-1$
+ "false as attisdropped, " + //$NON-NLS-1$
+ "false as atthasdef " + //$NON-NLS-1$
+ "FROM SYS.Columns as t1"; //$NON-NLS-1$
+ t.setSelectTransformation(transformation);
+ return t;
+ }
+
+ // tables, indexes, sequences ("relations")
+ private Table add_pg_class() throws TranslatorException {
+ Table t = createView("pg_class", "mmuuid:ad51e389-9443-4a7b-984a-5c1875fbd329"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ addColumn("oid", DataTypeManager.DefaultDataTypes.INTEGER, t, "mmuuid:2a19b579-70b9-4923-a5df-6bbbbc642042"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ // Name of the table, index, view, etc
+ addColumn("relname", DataTypeManager.DefaultDataTypes.STRING, t, "mmuuid:e6534fee-6712-4574-b228-2787fb960e46"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ // The OID of the namespace that contains this relation (pg_namespace.oid)
+ addColumn("relnamespace", DataTypeManager.DefaultDataTypes.INTEGER, t, "mmuuid:6881bd36-92b9-4552-b953-028036d59f50"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ // r = ordinary table, i = index, S = sequence, v = view, c = composite type, t = TOAST table
+ addColumn("relkind", DataTypeManager.DefaultDataTypes.CHAR, t, "mmuuid:0a280f97-8dce-4123-bbc9-54bf3b5fd8f6"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ // If this is an index, the access method used (B-tree, hash, etc.)
+ addColumn("relam", DataTypeManager.DefaultDataTypes.INTEGER, t, "mmuuid:6d59ce95-63ef-445d-bf17-6bcb45850623"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ // Number of rows in the table. This is only an estimate used by the planner. It is updated
+ // by VACUUM, ANALYZE, and a few DDL commands such as CREATE INDEX
+ addColumn("reltuples", DataTypeManager.DefaultDataTypes.FLOAT, t, "mmuuid:d1b54420-5e09-41e0-a177-181e6a6b94d4"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ // Size of the on-disk representation of this table in pages (of size BLCKSZ). This is only an estimate
+ // used by the planner. It is updated by VACUUM, ANALYZE, and a few DDL commands such as CREATE INDEX
+ addColumn("relpages", DataTypeManager.DefaultDataTypes.INTEGER, t, "mmuuid:a74a4a3b-20b0-4a62-ac3a-4bd2047979fc"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ // True if table has (or once had) rules; see pg_rewrite catalog
+ addColumn("relhasrules", DataTypeManager.DefaultDataTypes.BOOLEAN, t, "mmuuid:712a6f1e-0c49-48dc-99ed-9f55a7c3d6d4"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ // True if we generate an OID for each row of the relation
+ addColumn("relhasoids", DataTypeManager.DefaultDataTypes.STRING, t, "mmuuid:e099cd49-b50b-4573-a931-9c9eb95d75ae"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ String transformation = "SELECT t1.OID as oid, t1.name as relname, " + //$NON-NLS-1$
+ "(SELECT OID FROM SYS.Schemas WHERE Name = t1.SchemaName) as relnamespace, " + //$NON-NLS-1$
+ "convert((CASE t1.isPhysical WHEN true THEN 'r' ELSE 'v' END), char) as relkind," + //$NON-NLS-1$
+ "0 as relam, " + //$NON-NLS-1$
+ "convert(0, float) as reltuples, " + //$NON-NLS-1$
+ "0 as relpages, " + //$NON-NLS-1$
+ "false as relhasrules, " + //$NON-NLS-1$
+ "false as relhasoids " + //$NON-NLS-1$
+ "FROM SYS.Tables t1"; //$NON-NLS-1$
+ t.setSelectTransformation(transformation);
+ return t;
+ }
+
+ // additional index information
+ private Table add_pg_index() throws TranslatorException {
+ Table t = createView("pg_index", "mmuuid:a3e60b50-8282-4562-81a3-164e2e1481ad"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ addColumn("oid", DataTypeManager.DefaultDataTypes.INTEGER, t, "mmuuid:f846b870-445f-4263-905b-f43ebdea385e"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ // The OID of the pg_class entry for this index
+ addColumn("indexrelid", DataTypeManager.DefaultDataTypes.INTEGER, t, "mmuuid:16e440fd-616a-4437-a630-abc2d90c728e"); //$NON-NLS-1$ //$NON-NLS-2$
+ // The OID of the pg_class entry for the table this index is for
+ addColumn("indrelid", DataTypeManager.DefaultDataTypes.INTEGER, t, "mmuuid:94eed371-461a-47b8-8ca1-0494fa0108fb"); //$NON-NLS-1$ //$NON-NLS-2$
+ // If true, the table was last clustered on this index
+ addColumn("indisclustered", DataTypeManager.DefaultDataTypes.BOOLEAN, t, "mmuuid:bce548a8-ac4a-4c71-a7ab-2ca0235e81ed"); //$NON-NLS-1$ //$NON-NLS-2$
+ // If true, this is a unique index
+ addColumn("indisunique", DataTypeManager.DefaultDataTypes.BOOLEAN, t, "mmuuid:48d79b76-983b-4291-89c2-41222c2f1296"); //$NON-NLS-1$ //$NON-NLS-2$
+ // If true, this index represents the primary key of the table (indisunique should always be true when this is true)
+ addColumn("indisprimary", DataTypeManager.DefaultDataTypes.BOOLEAN, t, "mmuuid:37e53c0f-08b4-403f-a8c6-5b28c367b62c"); //$NON-NLS-1$ //$NON-NLS-2$
+ // Expression trees (in nodeToString() representation) for index attributes that are not simple
+ // column references. This is a list with one element for each zero entry in indkey.
+ // NULL if all index attributes are simple references
+ addColumn("indexprs", DataTypeManager.DefaultDataTypes.STRING, t, "mmuuid:b99ce838-8576-423a-b5b7-e58080e3e65d"); //$NON-NLS-1$ //$NON-NLS-2$
+ // This is an array of indnatts values that indicate which table columns this index indexes.
+ addColumn("indkey", DataTypeManager.DefaultDataTypes.STRING, t, "mmuuid:4dfcc8eb-a131-4234-993f-051dfa15934e"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ String transformation = "SELECT t1.OID as oid, " + //$NON-NLS-1$
+ "t1.OID as indexrelid, " + //$NON-NLS-1$
+ "(SELECT OID FROM SYS.Tables WHERE SchemaName = t1.SchemaName AND Name = t1.TableName) as indrelid, " + //$NON-NLS-1$
+ "false indisclustered, " + //$NON-NLS-1$
+ "(CASE t1.KeyType WHEN 'Unique' THEN true ELSE false END) as indisunique, " + //$NON-NLS-1$
+ "(CASE t1.KeyType WHEN 'Primary' THEN true ELSE false END) as indisprimary, " + //$NON-NLS-1$
+ "'' as indexprs, " + //$NON-NLS-1$
+ "0 as indkey " + //$NON-NLS-1$
+ "FROM SYS.KeyColumns as t1"; //$NON-NLS-1$
+ t.setSelectTransformation(transformation);
+ return t;
+ }
+
+ // schemas
+ private Table add_pg_namespace() throws TranslatorException {
+ Table t = createView("pg_namespace", "mmuuid:38438f3b-7664-4449-8f06-be69b2555a4c"); //$NON-NLS-1$ //$NON-NLS-2$
+ addColumn("oid", DataTypeManager.DefaultDataTypes.INTEGER, t, "mmuuid:36d8ca5a-4747-4bb0-8b7b-9f50f6eb9a0e"); //$NON-NLS-1$ //$NON-NLS-2$
+ addColumn("nspname", DataTypeManager.DefaultDataTypes.STRING, t, "mmuuid:8e2c1f9f-359d-4c33-afa5-20fa87585442"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ String transformation = "SELECT t1.OID as oid, t1.Name as nspname " + //$NON-NLS-1$
+ "FROM SYS.Schemas as t1"; //$NON-NLS-1$
+
+ t.setSelectTransformation(transformation);
+
+ return t;
+ }
+
+ // functions and procedures
+ private Table add_pg_proc() throws TranslatorException {
+ Table t = createView("pg_proc", "mmuuid:3cffb0db-f326-40e6-890f-9ef7a0980784"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ addColumn("oid", DataTypeManager.DefaultDataTypes.INTEGER, t, "mmuuid:246f56c3-5268-42b8-a486-d3c77653f603"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ // Name of the function or procedure
+ addColumn("proname", DataTypeManager.DefaultDataTypes.STRING, t, "mmuuid:b9c340ba-bf6f-41ba-aa40-f3c607077280"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ // Function returns a set (i.e., multiple values of the specified data type)
+ addColumn("proretset", DataTypeManager.DefaultDataTypes.BOOLEAN, t, "mmuuid:0e2c6601-ecc9-41e2-be0d-3a27565b3714"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ // OID of Data type of the return value
+ addColumn("prorettype", DataTypeManager.DefaultDataTypes.INTEGER, t, "mmuuid:d5e2bf27-a413-4146-a059-37bf651a1b97"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ // Number of input arguments
+ addColumn("pronargs", DataTypeManager.DefaultDataTypes.SHORT, t, "mmuuid:1490582b-6223-44df-8b20-9bcd5d241aa8"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ addColumn("proargtypes", DataTypeManager.DefaultDataTypes.OBJECT, t, "mmuuid:4af1aac3-5d4c-47c5-ab6c-4a52b5b551b7"); //$NON-NLS-1$ //$NON-NLS-2$
+ addColumn("proargnames", DataTypeManager.DefaultDataTypes.OBJECT, t, "mmuuid:bfc2e071-c49d-40b1-b3e9-d4891af6a77c"); //$NON-NLS-1$ //$NON-NLS-2$
+ addColumn("proargmodes", DataTypeManager.DefaultDataTypes.OBJECT, t, "mmuuid:fd6e0be2-e336-4d3b-8217-f85cfcd0999b"); //$NON-NLS-1$ //$NON-NLS-2$
+ addColumn("proallargtypes", DataTypeManager.DefaultDataTypes.OBJECT, t, "mmuuid:f0e04ef7-1a8b-4007-bce2-e2beba667d53"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ // The OID of the namespace that contains this function
+ addColumn("pronamespace", DataTypeManager.DefaultDataTypes.INTEGER, t, "mmuuid:458f5136-4128-47e8-8063-3c97fb1add5c"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ String transformation = "SELECT t1.OID as oid, t1.Name as proname, false as proretset, " + //$NON-NLS-1$
+ "(SELECT dt.OID FROM ProcedureParams pp, DataTypes dt WHERE pp.ProcedureName = t1.Name AND pp.SchemaName = t1.SchemaName AND pp.Type = 'ResultSet' AND pp.Position = 1 AND dt.Name = pp.DataType) as prorettype, " + //$NON-NLS-1$
+ "(SELECT count(*) FROM ProcedureParams pp WHERE pp.ProcedureName = t1.Name AND pp.SchemaName = t1.SchemaName ) as pronargs, " + //$NON-NLS-1$
+ "null as proargtypes, " + //$NON-NLS-1$
+ "null as proargnames, " + //$NON-NLS-1$
+ "null as proargmodes, " + //$NON-NLS-1$
+ "null as proallargtypes, " + //$NON-NLS-1$
+ "(SELECT OID FROM SYS.Schemas WHERE Name = t1.SchemaName) as pronamespace " + //$NON-NLS-1$
+ "FROM SYS.Procedures as t1"; //$NON-NLS-1$
+ t.setSelectTransformation(transformation);
+ return t;
+ }
+
+
+ // triggers
+ private Table add_pg_trigger() throws TranslatorException {
+ Table t = createView("pg_trigger", "mmuuid:dbdacb28-7e78-4ae5-8a99-3e3e1c59f641"); //$NON-NLS-1$ //$NON-NLS-2$
+ addColumn("oid", DataTypeManager.DefaultDataTypes.INTEGER, t, "mmuuid:7b1632d0-8357-47d6-9233-24291059f37d"); //$NON-NLS-1$ //$NON-NLS-2$
+ addColumn("tgconstrrelid", DataTypeManager.DefaultDataTypes.INTEGER, t, "mmuuid:f78e6a3c-5c27-4381-9d76-870fd3b6b510"); //$NON-NLS-1$ //$NON-NLS-2$
+ addColumn("tgfoid", DataTypeManager.DefaultDataTypes.INTEGER, t, "mmuuid:9a9d2791-506e-4e06-88e2-fadb90cb8d8c"); //$NON-NLS-1$ //$NON-NLS-2$
+ addColumn("tgargs", DataTypeManager.DefaultDataTypes.INTEGER, t, "mmuuid:6ab14a63-9aa3-416c-872b-8f6a37131fa4"); //$NON-NLS-1$ //$NON-NLS-2$
+ addColumn("tgnargs", DataTypeManager.DefaultDataTypes.INTEGER, t, "mmuuid:ec283b19-42a0-441f-8198-b80f353720d1"); //$NON-NLS-1$ //$NON-NLS-2$
+ addColumn("tgdeferrable", DataTypeManager.DefaultDataTypes.BOOLEAN, t, "mmuuid:264a3677-584c-4ecd-808b-b837acd9c129"); //$NON-NLS-1$ //$NON-NLS-2$
+ addColumn("tginitdeferred", DataTypeManager.DefaultDataTypes.BOOLEAN, t, "mmuuid:034bb072-1571-4953-bc18-216478346304"); //$NON-NLS-1$ //$NON-NLS-2$
+ addColumn("tgconstrname", DataTypeManager.DefaultDataTypes.STRING, t, "mmuuid:ad972784-8dc3-4151-b113-3d95967dc19f"); //$NON-NLS-1$ //$NON-NLS-2$
+ addColumn("tgrelid", DataTypeManager.DefaultDataTypes.INTEGER, t, "mmuuid:3aecc7ac-d54a-4bf7-be75-f64b37eb59ab"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ String transformation = "SELECT 1 as oid, 1 as tgconstrrelid, " +//$NON-NLS-1$
+ "1 as tgfoid, " +//$NON-NLS-1$
+ "1 as tgargs, " +//$NON-NLS-1$
+ "1 as tgnargs, " +//$NON-NLS-1$
+ "false as tgdeferrable, " +//$NON-NLS-1$
+ "false as tginitdeferred, " +//$NON-NLS-1$
+ "'dummy' as tgconstrname, " +//$NON-NLS-1$
+ "1 as tgrelid " +//$NON-NLS-1$
+ "FROM SYS.Tables WHERE 1=2"; //$NON-NLS-1$
+ t.setSelectTransformation(transformation);
+ return t;
+ }
+
+ //data types
+ private Table add_pg_type () throws TranslatorException {
+ Table t = createView("pg_type", "mmuuid:8024e6eb-ba32-41a0-a250-95a36eb4b71f"); //$NON-NLS-1$ //$NON-NLS-2$
+ // Data type name
+ addColumn("oid", DataTypeManager.DefaultDataTypes.INTEGER, t, "mmuuid:83240e67-acd6-49d3-be86-a4e186d110ea"); //$NON-NLS-1$ //$NON-NLS-2$
+ // Data type name
+ addColumn("typname", DataTypeManager.DefaultDataTypes.STRING, t, "mmuuid:e9f471d8-7ad0-48a9-ab64-7adbe922ff9b"); //$NON-NLS-1$ //$NON-NLS-2$
+ // The OID of the namespace that contains this type
+ addColumn("typnamespace", DataTypeManager.DefaultDataTypes.INTEGER, t, "mmuuid:e1723124-4e26-4971-a407-ceefaf0f624d"); //$NON-NLS-1$ //$NON-NLS-2$
+ // For a fixed-size type, typlen is the number of bytes in the internal representation of the type.
+ // But for a variable-length type, typlen is negative. -1 indicates a "varlena" type (one that
+ // has a length word), -2 indicates a null-terminated C string.
+ addColumn("typlen", DataTypeManager.DefaultDataTypes.SHORT, t, "mmuuid:33b00d6a-aae5-4bcd-80cc-ec7052bdeca2"); //$NON-NLS-1$ //$NON-NLS-2$
+ // typtype is b for a base type, c for a composite type (e.g., a table's row type), d for a domain,
+ // e for an enum type, or p for a pseudo-type. See also typrelid and typbasetype
+ addColumn("typtype", DataTypeManager.DefaultDataTypes.CHAR, t, "mmuuid:496eb63b-7fb2-4d56-90ac-11e5717acadd"); //$NON-NLS-1$ //$NON-NLS-2$
+ // if this is a domain (see typtype), then typbasetype identifies the type that this one is based on.
+ // Zero if this type is not a domain
+ addColumn("typbasetype", DataTypeManager.DefaultDataTypes.INTEGER, t, "mmuuid:e7df7d7a-1ddd-4a56-8514-82272eef5aa3"); //$NON-NLS-1$ //$NON-NLS-2$
+ // Domains use typtypmod to record the typmod to be applied to their base type
+ // (-1 if base type does not use a typmod). -1 if this type is not a domain
+ addColumn("typtypmod", DataTypeManager.DefaultDataTypes.INTEGER, t, "mmuuid:800d1b55-c775-4a63-b5ed-e76d3b112f60"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ addColumn("typrelid", DataTypeManager.DefaultDataTypes.INTEGER, t, "mmuuid:d44fc440-a677-463f-a403-f04f1896a705"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ String transformation =
+ "SELECT 16 as oid, 'boolean' as typname, (SELECT OID FROM SYS.Schemas where Name = 'SYS') as typnamespace, convert(1, short) as typlen, convert('b', char) as typtype, 0 as typbasetype, -1 as typtypmod, 0 as typrelid FROM (SELECT 1) X" + //$NON-NLS-1$
+ " union " + //$NON-NLS-1$
+ //"SELECT 17 as oid, 'blob' as typname,(SELECT OID FROM SYS.Schemas where Name = 'SYS') as typnamespace, convert(1, short) as typlen, convert('b', char) as typtype, 0 as typbasetype, -1 as typtypmod, 0 as typrelid FROM (SELECT 1) X" + //$NON-NLS-1$
+ //" union " + //$NON-NLS-1$
+ "SELECT 1043 as oid, 'string' as typname, (SELECT OID FROM SYS.Schemas where Name = 'SYS') as typnamespace, convert(-1, short) as typlen, convert('b', char) as typtype, 0 as typbasetype, -1 as typtypmod, 0 as typrelid FROM (SELECT 1) X" + //$NON-NLS-1$
+ " union " + //$NON-NLS-1$
+ "SELECT 25 as oid, 'text' as typname, (SELECT OID FROM SYS.Schemas where Name = 'SYS') as typnamespace, convert(-1, short) as typlen, convert('b', char) as typtype, 0 as typbasetype, -1 as typtypmod, 0 as typrelid FROM (SELECT 1) X" + //$NON-NLS-1$
+ " union " + //$NON-NLS-1$
+ "SELECT 1042 as oid, 'char' as typname, (SELECT OID FROM SYS.Schemas where Name = 'SYS') as typnamespace, convert(1, short) as typlen, convert('b', char) as typtype, 0 as typbasetype, -1 as typtypmod, 0 as typrelid FROM (SELECT 1) X" + //$NON-NLS-1$
+ " union " + //$NON-NLS-1$
+ "SELECT 21 as oid, 'short' as typname, (SELECT OID FROM SYS.Schemas where Name = 'SYS') as typnamespace, convert(2, short) as typlen, convert('b', char) as typtype, 0 as typbasetype, -1 as typtypmod, 0 as typrelid FROM (SELECT 1) X" + //$NON-NLS-1$
+ " union " + //$NON-NLS-1$
+ "SELECT 20 as oid, 'long' as typname, (SELECT OID FROM SYS.Schemas where Name = 'SYS') as typnamespace, convert(8, short) as typlen, convert('b', char) as typtype, 0 as typbasetype, -1 as typtypmod, 0 as typrelid FROM (SELECT 1) X" + //$NON-NLS-1$
+ " union " + //$NON-NLS-1$
+ "SELECT 23 as oid, 'int' as typname, (SELECT OID FROM SYS.Schemas where Name = 'SYS') as typnamespace, convert(4, short) as typlen, convert('b', char) as typtype, 0 as typbasetype, -1 as typtypmod, 0 as typrelid FROM (SELECT 1) X" + //$NON-NLS-1$
+ " union " + //$NON-NLS-1$
+ "SELECT 26 as oid, 'oid' as typname, (SELECT OID FROM SYS.Schemas where Name = 'SYS') as typname, convert(4, short) as typlen, convert('b', char) as typtype, 0 as typbasetype, -1 as typtypmod, 0 as typrelid FROM (SELECT 1) X" + //$NON-NLS-1$
+ " union " + //$NON-NLS-1$
+ "SELECT 700 as oid, 'float' as typname,(SELECT OID FROM SYS.Schemas where Name = 'SYS') as typnamespace, convert(4, short) as typlen, convert('b', char) as typtype, 0 as typbasetype, -1 as typtypmod, 0 as typrelid FROM (SELECT 1) X" + //$NON-NLS-1$
+ " union " + //$NON-NLS-1$
+ "SELECT 701 as oid, 'double' as typname, (SELECT OID FROM SYS.Schemas where Name = 'SYS') as typnamespace, convert(8, short) as typlen, convert('b', char) as typtype, 0 as typbasetype, -1 as typtypmod, 0 as typrelid FROM (SELECT 1) X" + //$NON-NLS-1$
+ " union " + //$NON-NLS-1$
+ //"SELECT 1009 as oid, 'clob' as typname,(SELECT OID FROM SYS.Schemas where Name = 'SYS') as typnamespace, convert(-1, short) as typlen, convert('b', char) as typtype, 0 as typbasetype, -1 as typtypmod, 0 as typrelid FROM (SELECT 1) X" + //$NON-NLS-1$
+ //" union " + //$NON-NLS-1$
+ "SELECT 1082 as oid, 'date' as typname, (SELECT OID FROM SYS.Schemas where Name = 'SYS') as typnamespace, convert(4, short) as typlen, convert('b', char) as typtype, 0 as typbasetype, -1 as typtypmod, 0 as typrelid FROM (SELECT 1) X" + //$NON-NLS-1$
+ " union " + //$NON-NLS-1$
+ "SELECT 1083 as oid, 'datetime' as typname,(SELECT OID FROM SYS.Schemas where Name = 'SYS') as typnamespace, convert(8, short) as typlen, convert('b', char) as typtype, 0 as typbasetype, -1 as typtypmod, 0 as typrelid FROM (SELECT 1) X" + //$NON-NLS-1$
+ " union " + //$NON-NLS-1$
+ "SELECT 1114 as oid, 'timestamp' as typname, (SELECT OID FROM SYS.Schemas where Name = 'SYS') as typnamespace, convert(8, short) as typlen, convert('b', char) as typtype, 0 as typbasetype, -1 as typtypmod, 0 as typrelid FROM (SELECT 1) X" + //$NON-NLS-1$
+ " union " + //$NON-NLS-1$
+ "SELECT 1700 as oid, 'decimal' as typname, (SELECT OID FROM SYS.Schemas where Name = 'SYS') as typnamespace, convert(-1, short) as typlen, convert('b', char) as typtype, 0 as typbasetype, -1 as typtypmod, 0 as typrelid FROM (SELECT 1) X" + //$NON-NLS-1$
+ " union " + //$NON-NLS-1$
+ "SELECT 142 as oid, 'xml' as typname, (SELECT OID FROM SYS.Schemas where Name = 'SYS') as typnamespace, convert(-1, short) as typlen, convert('b', char) as typtype, 0 as typbasetype, -1 as typtypmod, 0 as typrelid FROM (SELECT 1) X" + //$NON-NLS-1$
+ " union " + //$NON-NLS-1$
+ "SELECT 14939 as oid, 'lo' as typname, (SELECT OID FROM SYS.Schemas where Name = 'SYS') as typnamespace, convert(-1, short) as typlen, convert('b', char) as typtype, 0 as typbasetype, -1 as typtypmod, 0 as typrelid FROM (SELECT 1) X"; //$NON-NLS-1$
+
+ t.setSelectTransformation(transformation);
+ return t;
+ }
+
+ private Table add_pg_database() throws TranslatorException {
+ Table t = createView("pg_database", "mmuuid:6ae73c29-0c6f-4ec3-9c09-a262d8e41ac2"); //$NON-NLS-1$ //$NON-NLS-2$
+ addColumn("oid", DataTypeManager.DefaultDataTypes.INTEGER, t, "mmuuid:a2be6d15-b504-4257-962e-2c3fa90e3c16"); //$NON-NLS-1$ //$NON-NLS-2$
+ addColumn("datname", DataTypeManager.DefaultDataTypes.STRING, t, "mmuuid:e751d595-6afe-430e-9f57-a56cee474765"); //$NON-NLS-1$ //$NON-NLS-2$
+ addColumn("encoding", DataTypeManager.DefaultDataTypes.INTEGER, t, "mmuuid:637b6fec-e56a-461b-b714-7c88976d7cde"); //$NON-NLS-1$ //$NON-NLS-2$
+ addColumn("datlastsysoid", DataTypeManager.DefaultDataTypes.INTEGER, t, "mmuuid:c93379b9-1b4d-4068-890f-deed28338a54"); //$NON-NLS-1$ //$NON-NLS-2$
+ // this is is boolean type but the query coming in is in the form dataallowconn = 't'
+ addColumn("datallowconn", DataTypeManager.DefaultDataTypes.CHAR, t, "mmuuid:7be945c4-6bca-4f65-b655-b055b6d31c56"); //$NON-NLS-1$ //$NON-NLS-2$
+ addColumn("datconfig", DataTypeManager.DefaultDataTypes.OBJECT, t, "mmuuid:dde7619f-7071-490f-85c8-ba8c68cb0e78"); //$NON-NLS-1$ //$NON-NLS-2$
+ addColumn("datacl", DataTypeManager.DefaultDataTypes.OBJECT, t, "mmuuid:80ed5897-0b9c-4b3a-95ee-0e5ff4faad34"); //$NON-NLS-1$ //$NON-NLS-2$
+ addColumn("datdba", DataTypeManager.DefaultDataTypes.INTEGER, t, "mmuuid:1190357d-63d4-4b19-a0cd-f9f23b11e23e"); //$NON-NLS-1$ //$NON-NLS-2$
+ addColumn("dattablespace", DataTypeManager.DefaultDataTypes.INTEGER, t, "mmuuid:6261ae76-3d53-4bda-bb5c-a353818292ae"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ String transformation = "SELECT 0 as oid, " + //$NON-NLS-1$
+ "'teiid' as datname, " + //$NON-NLS-1$
+ "6 as encoding, " + //$NON-NLS-1$
+ "100000 as datlastsysoid, " + //$NON-NLS-1$
+ "convert('t', char) as datallowconn, " + //$NON-NLS-1$
+ "null, " + //$NON-NLS-1$
+ "null, " + //$NON-NLS-1$
+ "0 as datdba, " + //$NON-NLS-1$
+ "0 as dattablespace" ; //$NON-NLS-1$
+ t.setSelectTransformation(transformation);
+ return t;
+ }
+
+ private Table add_pg_user() throws TranslatorException {
+ Table t = createView("pg_user", "mmuuid:0da462b7-bacf-41da-9335-9a12224c462a"); //$NON-NLS-1$ //$NON-NLS-2$
+ addColumn("oid", DataTypeManager.DefaultDataTypes.INTEGER, t, "mmuuid:dcebd4db-ba52-4909-ab57-528c818e94b7"); //$NON-NLS-1$ //$NON-NLS-2$
+ addColumn("usename", DataTypeManager.DefaultDataTypes.STRING, t, "mmuuid:8d148996-16a1-44d8-b5ff-06f9421415d4"); //$NON-NLS-1$ //$NON-NLS-2$
+ addColumn("usecreatedb", DataTypeManager.DefaultDataTypes.BOOLEAN, t, "mmuuid:7f20dc11-f376-4da5-9fe5-139c2562b4c2"); //$NON-NLS-1$ //$NON-NLS-2$
+ addColumn("usesuper", DataTypeManager.DefaultDataTypes.BOOLEAN, t, "mmuuid:f3434529-3e9a-4f11-90c0-b74374947902"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ String transformation = "SELECT 0 as oid, " + //$NON-NLS-1$
+ "null as usename, " + //$NON-NLS-1$
+ "false as usecreatedb, " + //$NON-NLS-1$
+ "false as usesuper "; //$NON-NLS-1$
+ t.setSelectTransformation(transformation);
+ return t;
+ }
+}
Property changes on: trunk/runtime/src/main/java/org/teiid/deployers/PgCatalogMetadataStore.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/runtime/src/main/java/org/teiid/deployers/VDBDeployer.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/deployers/VDBDeployer.java 2010-07-15 20:06:02 UTC (rev 2353)
+++ trunk/runtime/src/main/java/org/teiid/deployers/VDBDeployer.java 2010-07-16 19:10:00 UTC (rev 2354)
@@ -114,7 +114,7 @@
if (store == null && deployment.isDynamic()) {
MetadataStoreGroup dynamicStore = new MetadataStoreGroup();
for (Model model:deployment.getModels()) {
- if (model.getName().equals(CoreConstants.SYSTEM_MODEL)){
+ if (model.getName().equals(CoreConstants.SYSTEM_MODEL) || model.getName().equals(CoreConstants.ODBC_MODEL)){
continue;
}
dynamicStore.addStore(buildDynamicMetadataStore((VFSDeploymentUnit)unit, deployment, (ModelMetaData)model));
@@ -138,6 +138,7 @@
// add the metadata objects as attachments
deployment.removeAttachment(IndexMetadataFactory.class);
deployment.removeAttachment(UDFMetaData.class);
+ deployment.removeAttachment(MetadataStoreGroup.class);
// add transformation metadata to the repository.
this.vdbRepository.addVDB(deployment, store, visibilityMap, udf);
@@ -169,7 +170,7 @@
IdentityHashMap<Translator, ExecutionFactory<Object, Object>> map = new IdentityHashMap<Translator, ExecutionFactory<Object, Object>>();
for (Model model:deployment.getModels()) {
- if (model.getName().equals(CoreConstants.SYSTEM_MODEL)){
+ if (model.getName().equals(CoreConstants.SYSTEM_MODEL) || model.getName().equals(CoreConstants.ODBC_MODEL)){
continue;
}
for (String source:model.getSourceNames()) {
@@ -202,7 +203,7 @@
ModelMetaData model = (ModelMetaData)m;
List<SourceMappingMetadata> mappings = model.getSourceMappings();
for (SourceMappingMetadata mapping:mappings) {
- if (mapping.getName().equals(CoreConstants.SYSTEM_MODEL)) {
+ if (mapping.getName().equals(CoreConstants.SYSTEM_MODEL) || model.getName().equals(CoreConstants.ODBC_MODEL)) {
continue;
}
ConnectorManager cm = this.connectorManagerRepository.getConnectorManager(mapping.getName());
@@ -228,7 +229,7 @@
// there is chance that two different VDBs using the same source name, and their
// connector manager is removed. should we prefix vdb name??
for (Model model:deployment.getModels()) {
- if (model.getName().equals(CoreConstants.SYSTEM_MODEL)){
+ if (model.getName().equals(CoreConstants.SYSTEM_MODEL) || model.getName().equals(CoreConstants.ODBC_MODEL)){
continue;
}
for (String source:model.getSourceNames()) {
Modified: trunk/runtime/src/main/java/org/teiid/deployers/VDBParserDeployer.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/deployers/VDBParserDeployer.java 2010-07-15 20:06:02 UTC (rev 2353)
+++ trunk/runtime/src/main/java/org/teiid/deployers/VDBParserDeployer.java 2010-07-16 19:10:00 UTC (rev 2354)
@@ -168,16 +168,7 @@
// If the UDF file is enclosed then attach it to the deployment artifact
unit.addAttachment(UDFMetaData.class, udf);
}
-
- // Add system model to the deployed VDB
- ModelMetaData system = new ModelMetaData();
- system.setName(CoreConstants.SYSTEM_MODEL);
- system.setVisible(true);
- system.setModelType(Model.Type.PHYSICAL);
- system.addSourceMapping(CoreConstants.SYSTEM_MODEL, CoreConstants.SYSTEM_MODEL, CoreConstants.SYSTEM_MODEL);
- system.setSupportsMultiSourceBindings(false);
- vdb.addModel(system);
-
+
LogManager.logTrace(LogConstants.CTX_RUNTIME, "VDB "+unit.getRoot().getName()+" has been parsed."); //$NON-NLS-1$ //$NON-NLS-2$
return vdb;
}
@@ -200,7 +191,7 @@
if (vdbMO != null) {
VDBMetaData vdb = (VDBMetaData) vdbMO.getAttachment();
for (Model m : vdb.getModels()) {
- if (m.getName().equals(CoreConstants.SYSTEM_MODEL)) {
+ if (m.getName().equals(CoreConstants.SYSTEM_MODEL) || m.getName().equals(CoreConstants.ODBC_MODEL) ) {
continue;
}
ManagedObject mo = this.mof.initManagedObject(m, ModelMetaData.class, m.getName(),m.getName());
Modified: trunk/runtime/src/main/java/org/teiid/deployers/VDBRepository.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/deployers/VDBRepository.java 2010-07-15 20:06:02 UTC (rev 2353)
+++ trunk/runtime/src/main/java/org/teiid/deployers/VDBRepository.java 2010-07-16 19:10:00 UTC (rev 2354)
@@ -28,18 +28,26 @@
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
+import java.util.Properties;
import java.util.concurrent.ConcurrentHashMap;
import org.jboss.deployers.spi.DeploymentException;
import org.teiid.adminapi.AdminException;
import org.teiid.adminapi.AdminProcessingException;
+import org.teiid.adminapi.Model;
import org.teiid.adminapi.VDB;
+import org.teiid.adminapi.impl.ModelMetaData;
import org.teiid.adminapi.impl.VDBMetaData;
+import org.teiid.core.CoreConstants;
import org.teiid.core.types.DataTypeManager;
+import org.teiid.logging.LogConstants;
+import org.teiid.logging.LogManager;
import org.teiid.metadata.Datatype;
+import org.teiid.metadata.MetadataFactory;
import org.teiid.metadata.MetadataStore;
import org.teiid.metadata.TransformationMetadata.Resource;
import org.teiid.runtime.RuntimePlugin;
+import org.teiid.translator.TranslatorException;
import org.teiid.vdb.runtime.VDBKey;
@@ -51,6 +59,8 @@
private Map<VDBKey, CompositeVDB> vdbRepo = new ConcurrentHashMap<VDBKey, CompositeVDB>();
private MetadataStore systemStore;
+ private MetadataStore odbcStore;
+ private boolean odbcEnabled = false;
public void addVDB(VDBMetaData vdb, MetadataStoreGroup stores, LinkedHashMap<String, Resource> visibilityMap, UDFMetaData udf) throws DeploymentException {
if (getVDB(vdb.getName(), vdb.getVersion()) != null) {
@@ -60,11 +70,43 @@
// get the system VDB metadata store
if (this.systemStore == null) {
throw new DeploymentException(RuntimePlugin.Util.getString("system_vdb_load_error")); //$NON-NLS-1$
- }
+ }
- this.vdbRepo.put(vdbId(vdb), new CompositeVDB(vdb, stores, visibilityMap, udf, this.systemStore));
+ if (this.odbcEnabled && odbcStore == null) {
+ this.odbcStore = getODBCMetadataStore();
+ }
+
+ if (this.odbcStore == null) {
+ addSystemModel(vdb);
+ this.vdbRepo.put(vdbId(vdb), new CompositeVDB(vdb, stores, visibilityMap, udf, this.systemStore));
+ }
+ else {
+ addSystemModel(vdb);
+ addODBCModel(vdb);
+ this.vdbRepo.put(vdbId(vdb), new CompositeVDB(vdb, stores, visibilityMap, udf, this.systemStore, odbcStore));
+ }
}
+
+ private void addODBCModel(VDBMetaData vdb) {
+ // add the ODBC model
+ ModelMetaData odbcSystem = new ModelMetaData();
+ odbcSystem.setName(CoreConstants.ODBC_MODEL);
+ odbcSystem.setVisible(true);
+ odbcSystem.setModelType(Model.Type.VIRTUAL);
+ vdb.addModel(odbcSystem);
+ }
+ private void addSystemModel(VDBMetaData vdb) {
+ // Add system model to the deployed VDB
+ ModelMetaData system = new ModelMetaData();
+ system.setName(CoreConstants.SYSTEM_MODEL);
+ system.setVisible(true);
+ system.setModelType(Model.Type.PHYSICAL);
+ system.addSourceMapping(CoreConstants.SYSTEM_MODEL, CoreConstants.SYSTEM_MODEL, CoreConstants.SYSTEM_MODEL);
+ system.setSupportsMultiSourceBindings(false);
+ vdb.addModel(system);
+ }
+
public VDBMetaData getVDB(String name, int version) {
CompositeVDB v = this.vdbRepo.get(new VDBKey(name, version));
if (v != null) {
@@ -113,10 +155,29 @@
return systemStore;
}
+ public MetadataStore getODBCStore() {
+ return this.odbcStore;
+ }
+
public void setSystemStore(MetadataStore store) {
this.systemStore = store;
}
+
+ private MetadataStore getODBCMetadataStore() {
+ MetadataFactory factory = new MetadataFactory(CoreConstants.ODBC_MODEL, getBuiltinDatatypes(), new Properties());
+ try {
+ PgCatalogMetadataStore pg = new PgCatalogMetadataStore(factory);
+ return pg.getMetadataStore();
+ } catch (TranslatorException e) {
+ LogManager.logError(LogConstants.CTX_DQP, RuntimePlugin.Util.getString("failed_to_load_odbc_metadata")); //$NON-NLS-1$
+ }
+ return null;
+ }
+ public void odbcEnabled() {
+ this.odbcEnabled = true;
+ }
+
public synchronized void removeVDB(String vdbName, int vdbVersion) {
VDBKey key = new VDBKey(vdbName, vdbVersion);
this.vdbRepo.remove(key);
@@ -144,15 +205,22 @@
public void mergeVDBs(String sourceVDBName, int sourceVDBVersion, String targetVDBName, int targetVDBVersion) throws AdminException{
CompositeVDB source = this.vdbRepo.get(new VDBKey(sourceVDBName, sourceVDBVersion));
if (source == null) {
- throw new AdminProcessingException(RuntimePlugin.Util.getString("vdb_not_found", sourceVDBName, sourceVDBVersion));
+ throw new AdminProcessingException(RuntimePlugin.Util.getString("vdb_not_found", sourceVDBName, sourceVDBVersion)); //$NON-NLS-1$
}
CompositeVDB target = this.vdbRepo.get(new VDBKey(targetVDBName, targetVDBVersion));
if (target == null) {
- throw new AdminProcessingException(RuntimePlugin.Util.getString("vdb_not_found", sourceVDBName, sourceVDBVersion));
+ throw new AdminProcessingException(RuntimePlugin.Util.getString("vdb_not_found", sourceVDBName, sourceVDBVersion)); //$NON-NLS-1$
}
// merge them
target.addChild(source);
}
+
+ // this is called by mc
+ public void start() {
+ if (this.odbcEnabled) {
+ this.odbcStore = getODBCMetadataStore();
+ }
+ }
}
Added: trunk/runtime/src/main/java/org/teiid/odbc/ODBCClientRemote.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/odbc/ODBCClientRemote.java (rev 0)
+++ trunk/runtime/src/main/java/org/teiid/odbc/ODBCClientRemote.java 2010-07-16 19:10:00 UTC (rev 2354)
@@ -0,0 +1,107 @@
+/*
+ * 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.odbc;
+
+import java.nio.charset.Charset;
+import java.sql.ParameterMetaData;
+import java.sql.ResultSet;
+import java.sql.ResultSetMetaData;
+import java.util.Properties;
+
+public interface ODBCClientRemote {
+
+ void initialized(Properties props);
+
+ void setEncoding(Charset value);
+
+ // AuthenticationCleartextPassword (B)
+ void useClearTextAuthentication();
+
+ // AuthenticationOk (B)
+ // BackendKeyData (B)
+ // ParameterStatus (B)
+ void authenticationSucess(int processId, int screctKey);
+
+ // ParseComplete (B)
+ void prepareCompleted(String preparedName);
+
+ // ErrorResponse (B)
+ void errorOccurred(String msg);
+
+ // ErrorResponse (B)
+ void errorOccurred(Throwable e);
+
+ void terminated();
+
+ // ParameterDescription (B)
+ void sendParameterDescription(ParameterMetaData parameterMetaData, int[] paramType);
+
+ // BindComplete (B)
+ void bindComplete();
+
+ // RowDescription (B)
+ // NoData (B)
+ void sendResultSetDescription(ResultSetMetaData metaData);
+
+ // DataRow (B)
+ // CommandComplete (B)
+ void sendResults(String sql, ResultSet rs, boolean describeRows);
+
+ // CommandComplete (B)
+ void sendUpdateCount(String sql, int updateCount);
+
+ // ReadyForQuery (B)
+ void ready(boolean inTransaction, boolean failedTransaction);
+
+ void statementClosed();
+
+ // EmptyQueryResponse (B)
+ void emptyQueryReceived();
+
+ void flush();
+
+ // unimplemented backend messages
+
+ // AuthenticationKerberosV5 (B)
+ // AuthenticationMD5Password (B)
+ // AuthenticationSCMCredential (B)
+ // AuthenticationGSS (B)
+ // AuthenticationSSPI (B)
+ // AuthenticationGSSContinue (B)
+
+ // CloseComplete (B)
+
+ // CopyData (F & B)
+ // CopyDone (F & B)
+ // CopyInResponse (B)
+ // CopyOutResponse (B)
+
+ // FunctionCallResponse (B)
+
+ // NoticeResponse (B)
+ // NotificationResponse (B)
+
+ // PortalSuspended (B)
+
+
+
+}
Property changes on: trunk/runtime/src/main/java/org/teiid/odbc/ODBCClientRemote.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/runtime/src/main/java/org/teiid/odbc/ODBCServerRemote.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/odbc/ODBCServerRemote.java (rev 0)
+++ trunk/runtime/src/main/java/org/teiid/odbc/ODBCServerRemote.java 2010-07-16 19:10:00 UTC (rev 2354)
@@ -0,0 +1,68 @@
+/*
+ * 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.odbc;
+
+import java.util.Properties;
+
+public interface ODBCServerRemote {
+ enum AuthenticationType {CLEARTEXT, MD5};
+
+ void initialize(Properties props);
+
+ void logon(String databaseName, String userid, String password);
+
+ void prepare(String prepareName, String sql, int[] paramType);
+
+ void bindParameters(String bindName, String prepareName, int paramCount, Object[] paramdata, int resultCodeCount, int[] resultColumnFormat);
+
+ void execute(String bindName, int maxrows);
+
+ void getParameterDescription(String prepareName);
+
+ void getResultSetMetaDataDescription(String bindName);
+
+ void sync();
+
+ void executeQuery(String sql);
+
+ void terminate();
+
+ void cancel();
+
+ void closePreparedStatement(String preparedName);
+
+ void closeBoundStatement(String bindName);
+
+ void unsupportedOperation(String msg);
+
+ void flush();
+
+ // unimplemented frontend messages
+ // CopyData (F & B)
+ // CopyDone (F & B)
+ // CopyFail (F)
+ // Flush (F)
+ // FunctionCall (F)
+ // SSLRequest (F)
+}
+
+
Property changes on: trunk/runtime/src/main/java/org/teiid/odbc/ODBCServerRemote.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/runtime/src/main/java/org/teiid/odbc/ODBCServerRemoteImpl.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/odbc/ODBCServerRemoteImpl.java (rev 0)
+++ trunk/runtime/src/main/java/org/teiid/odbc/ODBCServerRemoteImpl.java 2010-07-16 19:10:00 UTC (rev 2354)
@@ -0,0 +1,640 @@
+/*
+ * 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.odbc;
+
+import java.io.IOException;
+import java.io.StringReader;
+import java.sql.DriverManager;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Properties;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import org.teiid.jdbc.ConnectionImpl;
+import org.teiid.logging.LogConstants;
+import org.teiid.logging.LogManager;
+import org.teiid.runtime.RuntimePlugin;
+import org.teiid.transport.PGCharsetConverter;
+
+/**
+ * While executing the multiple prepared statements I see this bug currently
+ * http://pgfoundry.org/tracker/?func=detail&atid=538&aid=1007690&group_id=1...
+ */
+public class ODBCServerRemoteImpl implements ODBCServerRemote {
+
+ private static final String UNNAMED = "UNNAMED"; //$NON-NLS-1$
+ private static Pattern setPattern = Pattern.compile("(SET|set)\\s+(\\w+)\\s+(TO|to)\\s+'(\\w+\\d*)'");//$NON-NLS-1$
+
+ private static Pattern pkPattern = Pattern.compile("select ta.attname, ia.attnum, ic.relname, n.nspname, tc.relname " +//$NON-NLS-1$
+ "from pg_catalog.pg_attribute ta, pg_catalog.pg_attribute ia, pg_catalog.pg_class tc, pg_catalog.pg_index i, " +//$NON-NLS-1$
+ "pg_catalog.pg_namespace n, pg_catalog.pg_class ic where tc.relname = E'(\\w+)' AND n.nspname = E'(\\w+)'.*" );//$NON-NLS-1$
+
+
+ private static Pattern pkKeyPattern = Pattern.compile("select ta.attname, ia.attnum, ic.relname, n.nspname, NULL .*"); //$NON-NLS-1$
+
+ private Pattern fkPattern = Pattern.compile("select\\s+'(\\w+)'::name as PKTABLE_CAT," + //$NON-NLS-1$
+ "\\s+n2.nspname as PKTABLE_SCHEM," + //$NON-NLS-1$
+ "\\s+c2.relname as PKTABLE_NAME," + //$NON-NLS-1$
+ "\\s+a2.attname as PKCOLUMN_NAME," + //$NON-NLS-1$
+ "\\s+'(\\w+)'::name as FKTABLE_CAT," + //$NON-NLS-1$
+ "\\s+n1.nspname as FKTABLE_SCHEM," + //$NON-NLS-1$
+ "\\s+c1.relname as FKTABLE_NAME," + //$NON-NLS-1$
+ "\\s+a1.attname as FKCOLUMN_NAME," + //$NON-NLS-1$
+ "\\s+i::int2 as KEY_SEQ," + //$NON-NLS-1$
+ "\\s+case ref.confupdtype" + //$NON-NLS-1$
+ "\\s+when 'c' then (\\d)::int2" + //$NON-NLS-1$
+ "\\s+when 'n' then (\\d)::int2" + //$NON-NLS-1$
+ "\\s+when 'd' then (\\d)::int2" + //$NON-NLS-1$
+ "\\s+when 'r' then (\\d)::int2" + //$NON-NLS-1$
+ "\\s+else 3::int2" + //$NON-NLS-1$
+ "\\s+end as UPDATE_RULE," + //$NON-NLS-1$
+ "\\s+case ref.confdeltype" + //$NON-NLS-1$
+ "\\s+when 'c' then (\\d)::int2" + //$NON-NLS-1$
+ "\\s+when 'n' then (\\d)::int2" + //$NON-NLS-1$
+ "\\s+when 'd' then (\\d)::int2" + //$NON-NLS-1$
+ "\\s+when 'r' then (\\d)::int2" + //$NON-NLS-1$
+ "\\s+else 3::int2" + //$NON-NLS-1$
+ "\\s+end as DELETE_RULE," + //$NON-NLS-1$
+ "\\s+ref.conname as FK_NAME," + //$NON-NLS-1$
+ "\\s+cn.conname as PK_NAME," + //$NON-NLS-1$
+ "\\s+case" + //$NON-NLS-1$
+ "\\s+when ref.condeferrable then" + //$NON-NLS-1$
+ "\\s+case" + //$NON-NLS-1$
+ "\\s+when ref.condeferred then (\\d)::int2" + //$NON-NLS-1$
+ "\\s+else (\\d)::int2" + //$NON-NLS-1$
+ "\\s+end" + //$NON-NLS-1$
+ "\\s+else (\\d)::int2" + //$NON-NLS-1$
+ "\\s+end as DEFERRABLITY" + //$NON-NLS-1$
+ "\\s+from" + //$NON-NLS-1$
+ "\\s+\\(\\(\\(\\(\\(\\(\\( \\(select cn.oid, conrelid, conkey, confrelid, confkey," + //$NON-NLS-1$
+ "\\s+generate_series\\(array_lower\\(conkey, 1\\), array_upper\\(conkey, 1\\)\\) as i," + //$NON-NLS-1$
+ "\\s+confupdtype, confdeltype, conname," + //$NON-NLS-1$
+ "\\s+condeferrable, condeferred" + //$NON-NLS-1$
+ "\\s+from pg_catalog.pg_constraint cn," + //$NON-NLS-1$
+ "\\s+pg_catalog.pg_class c," + //$NON-NLS-1$
+ "\\s+pg_catalog.pg_namespace n" + //$NON-NLS-1$
+ "\\s+where contype = 'f' " + //$NON-NLS-1$
+ "\\s+and conrelid = c.oid" + //$NON-NLS-1$
+ "\\s+and relname = E'(\\w+)'" + //$NON-NLS-1$
+ "\\s+and n.oid = c.relnamespace" + //$NON-NLS-1$
+ "\\s+and n.nspname = E'(\\w+)'" + //$NON-NLS-1$
+ "\\s+\\) ref" + //$NON-NLS-1$
+ "\\s+inner join pg_catalog.pg_class c1" + //$NON-NLS-1$
+ "\\s+on c1.oid = ref.conrelid\\)" + //$NON-NLS-1$
+ "\\s+inner join pg_catalog.pg_namespace n1" + //$NON-NLS-1$
+ "\\s+on n1.oid = c1.relnamespace\\)" + //$NON-NLS-1$
+ "\\s+inner join pg_catalog.pg_attribute a1" + //$NON-NLS-1$
+ "\\s+on a1.attrelid = c1.oid" + //$NON-NLS-1$
+ "\\s+and a1.attnum = conkey\\[i\\]\\)" + //$NON-NLS-1$
+ "\\s+inner join pg_catalog.pg_class c2" + //$NON-NLS-1$
+ "\\s+on c2.oid = ref.confrelid\\)" + //$NON-NLS-1$
+ "\\s+inner join pg_catalog.pg_namespace n2" + //$NON-NLS-1$
+ "\\s+on n2.oid = c2.relnamespace\\)" + //$NON-NLS-1$
+ "\\s+inner join pg_catalog.pg_attribute a2" + //$NON-NLS-1$
+ "\\s+on a2.attrelid = c2.oid" + //$NON-NLS-1$
+ "\\s+and a2.attnum = confkey\\[i\\]\\)" + //$NON-NLS-1$
+ "\\s+left outer join pg_catalog.pg_constraint cn" + //$NON-NLS-1$
+ "\\s+on cn.conrelid = ref.confrelid" + //$NON-NLS-1$
+ "\\s+and cn.contype = 'p'\\)" + //$NON-NLS-1$
+ "\\s+order by ref.oid, ref.i"); //$NON-NLS-1$
+
+ private static Pattern procParametersPattern = Pattern.compile("select proname, proretset, prorettype, pronargs, proargtypes, " + //$NON-NLS-1$
+ "nspname, p.oid, atttypid, attname, proargnames, proargmodes, proallargtypes from ((pg_catalog.pg_namespace n inner join " + //$NON-NLS-1$
+ "pg_catalog.pg_proc p on p.pronamespace = n.oid) inner join pg_type t on t.oid = p.prorettype) left outer join " + //$NON-NLS-1$
+ "pg_attribute a on a.attrelid = t.typrelid and attnum > 0 and not attisdropped " + //$NON-NLS-1$
+ "where has_function_privilege(p.oid, 'EXECUTE') and nspname like E'(\\w+)' " + //$NON-NLS-1$
+ "and proname like E'(\\w+)' " + //$NON-NLS-1$
+ "order by nspname, proname, p.oid, attnum"); //$NON-NLS-1$
+
+
+
+ private static Pattern deallocatePattern = Pattern.compile("DEALLOCATE \"(\\w+\\d+_*)\""); //$NON-NLS-1$
+ private static Pattern releasePattern = Pattern.compile("RELEASE (\\w+\\d+_*)"); //$NON-NLS-1$
+ private static Pattern savepointPattern = Pattern.compile("SAVEPOINT (\\w+\\d+_*)"); //$NON-NLS-1$
+ private static Pattern rollbackPattern = Pattern.compile("ROLLBACK\\s*(to)*\\s*(\\w+\\d+_*)*"); //$NON-NLS-1$
+
+ private ODBCClientRemote client;
+ private Properties props;
+ private AuthenticationType authType;
+ private ConnectionImpl connection;
+
+ // TODO: this is unbounded map; need to define some boundaries as to how many stmts each session can have
+ private Map<String, Prepared> preparedMap = Collections.synchronizedMap(new HashMap<String, Prepared>());
+ private Map<String, Portal> portalMap = Collections.synchronizedMap(new HashMap<String, Portal>());
+
+ public ODBCServerRemoteImpl(ODBCClientRemote client, AuthenticationType authType) {
+ this.client = client;
+ this.authType = authType;
+ }
+
+ @Override
+ public void initialize(Properties props) {
+ this.props = props;
+
+ this.client.initialized(this.props);
+
+ if (this.authType.equals(AuthenticationType.CLEARTEXT)) {
+ this.client.useClearTextAuthentication();
+ }
+ else if (this.authType.equals(AuthenticationType.MD5)) {
+ // TODO: implement MD5 auth type
+ }
+ }
+
+ @Override
+ public void logon(String databaseName, String user, String password) {
+ try {
+ this.connection = (ConnectionImpl)DriverManager.getConnection("jdbc:teiid:"+databaseName, user, password); //$NON-NLS-1$
+ int hash = this.connection.getConnectionId().hashCode();
+ this.client.authenticationSucess(hash, hash);
+ sync();
+ } catch (SQLException e) {
+ this.client.errorOccurred(e);
+ terminate();
+ }
+ }
+
+ @Override
+ public void prepare(String prepareName, String sql, int[] paramType) {
+ if (this.connection != null) {
+
+ if (prepareName == null || prepareName.length() == 0) {
+ prepareName = UNNAMED;
+ }
+
+ if (sql != null) {
+ String modfiedSQL = sql.replaceAll("\\$\\d+", "?");//$NON-NLS-1$ //$NON-NLS-2$
+ try {
+ // close if the name is already used or the unnamed prepare; otherwise
+ // stmt is alive until session ends.
+ Prepared previous = this.preparedMap.remove(prepareName);
+ if (previous != null) {
+ previous.stmt.close();
+ }
+
+ PreparedStatement stmt = this.connection.prepareStatement(modfiedSQL);
+ this.preparedMap.put(prepareName, new Prepared(prepareName, sql, stmt, paramType));
+ this.client.prepareCompleted(prepareName);
+ } catch (SQLException e) {
+ this.client.errorOccurred(e);
+ }
+ }
+ }
+ else {
+ this.client.errorOccurred(RuntimePlugin.Util.getString("no_active_connection")); //$NON-NLS-1$
+ }
+ }
+
+ @Override
+ public void bindParameters(String bindName, String prepareName, int paramCount, Object[] params, int resultCodeCount, int[] resultColumnFormat) {
+ // An unnamed portal is destroyed at the end of the transaction, or as soon as
+ // the next Bind statement specifying the unnamed portal as destination is issued.
+ this.portalMap.remove(UNNAMED);
+
+ if (prepareName == null || prepareName.length() == 0) {
+ prepareName = UNNAMED;
+ }
+
+ Prepared previous = this.preparedMap.get(prepareName);
+ if (previous == null) {
+ this.client.errorOccurred(RuntimePlugin.Util.getString("bad_binding", prepareName)); //$NON-NLS-1$
+ }
+
+ if (bindName == null || bindName.length() == 0) {
+ bindName = UNNAMED;
+ }
+
+ try {
+ for (int i = 0; i < paramCount; i++) {
+ previous.stmt.setObject(i+1, params[i]);
+ }
+ } catch (SQLException e) {
+ this.client.errorOccurred(e);
+ }
+
+ this.portalMap.put(bindName, new Portal(bindName, prepareName, previous.sql, previous.stmt, resultColumnFormat));
+ this.client.bindComplete();
+ }
+
+ @Override
+ public void unsupportedOperation(String msg) {
+ this.client.errorOccurred(msg);
+ sync();
+ }
+
+ @Override
+ public void execute(String bindName, int maxRows) {
+ if (bindName == null || bindName.length() == 0) {
+ bindName = UNNAMED;
+ }
+
+ Portal query = this.portalMap.get(bindName);
+ if (query == null) {
+ this.client.errorOccurred(RuntimePlugin.Util.getString("not_bound", bindName)); //$NON-NLS-1$
+ sync();
+ }
+ else {
+ if (query.sql.trim().isEmpty()) {
+ this.client.emptyQueryReceived();
+ return;
+ }
+
+ PreparedStatement stmt = query.stmt;
+ try {
+ // maxRows = 0, means unlimited.
+ if (maxRows != 0) {
+ stmt.setMaxRows(maxRows);
+ }
+
+ boolean result = stmt.execute();
+ if (result) {
+ try {
+ ResultSet rs = stmt.getResultSet();
+ this.client.sendResults(query.sql, rs, true);
+ } catch (SQLException e) {
+ this.client.errorOccurred(e);
+ }
+ } else {
+ this.client.sendUpdateCount(query.sql, stmt.getUpdateCount());
+ }
+ } catch (SQLException e) {
+ this.client.errorOccurred(e);
+ }
+ }
+ }
+
+ private String fixSQL(String sql) {
+ String modified = sql;
+ // select current_schema()
+ // set client_encoding to 'WIN1252'
+ if (sql != null) {
+ // selects are coming with "select\t" so using a space after "select" does not always work
+ if (sql.startsWith("select") || sql.startsWith("SELECT")) { //$NON-NLS-1$ //$NON-NLS-2$
+ modified = sql.replace('\n', ' ');
+
+ Matcher m = null;
+ if ((m = pkPattern.matcher(modified)).matches()) {
+ modified = new StringBuffer("SELECT k.Name AS attname, convert(Position, short) AS attnum, TableName AS relname, SchemaName AS nspname, TableName AS relname") //$NON-NLS-1$
+ .append(" FROM SYS.KeyColumns k") //$NON-NLS-1$
+ .append(" WHERE ") //$NON-NLS-1$
+ .append(" UCASE(SchemaName)").append(" LIKE '").append(m.group(2)).append("'")//$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ .append(" AND UCASE(TableName)") .append(" LIKE '").append(m.group(1)).append("'")//$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ .append(" AND KeyType LIKE 'Primary'") //$NON-NLS-1$
+ .append(" ORDER BY attnum").toString(); //$NON-NLS-1$
+ }
+ else if ((m = pkKeyPattern.matcher(modified)).matches()) {
+ modified = "SELECT NULL, NULL, NULL, NULL, NULL FROM (SELECT 1) as X WHERE 0=1"; //$NON-NLS-1$
+ }
+ else if ((m = fkPattern.matcher(modified)).matches()){
+ modified = "SELECT PKTABLE_CAT, PKTABLE_SCHEM, PKTABLE_NAME, PKCOLUMN_NAME, FKTABLE_CAT, FKTABLE_SCHEM, "+//$NON-NLS-1$
+ "FKTABLE_NAME, FKCOLUMN_NAME, KEY_SEQ, UPDATE_RULE, DELETE_RULE, FK_NAME, PK_NAME, DEFERRABILITY "+//$NON-NLS-1$
+ "FROM SYS.ReferenceKeyColumns WHERE PKTABLE_NAME LIKE '"+m.group(14)+"' and PKTABLE_SCHEM LIKE '"+m.group(15)+"'";//$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ }
+ else {
+ modified = modified.replaceAll("E'", "'"); //$NON-NLS-1$ //$NON-NLS-2$
+ modified = modified.replaceAll("::[A-Za-z0-9]*", " "); //$NON-NLS-1$ //$NON-NLS-2$
+ modified = modified.replaceAll("'pg_toast'", "'SYS'"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ // since teiid can work with multiple schemas at a given time
+ // this call resolution is ambiguous
+ if (sql.equalsIgnoreCase("select current_schema()")) { //$NON-NLS-1$
+ modified = "SELECT ''"; //$NON-NLS-1$
+ }
+ }
+
+ }
+ else if (sql.equalsIgnoreCase("show max_identifier_length")){ //$NON-NLS-1$
+ modified = "select 63"; //$NON-NLS-1$
+ }
+ else {
+ Matcher m = setPattern.matcher(sql);
+ if (m.matches()) {
+ if (m.group(2).equalsIgnoreCase("client_encoding")) { //$NON-NLS-1$
+ this.client.setEncoding(PGCharsetConverter.getCharset(m.group(4)));
+ modified = "SELECT 'SET'"; //$NON-NLS-1$
+ }
+ }
+ else if (modified.equalsIgnoreCase("BEGIN")) { //$NON-NLS-1$
+ try {
+ this.connection.setAutoCommit(false);
+ modified = "SELECT 'BEGIN'"; //$NON-NLS-1$
+ } catch (SQLException e) {
+ this.client.errorOccurred(e);
+ }
+ }
+ else if (modified.equalsIgnoreCase("COMMIT")) { //$NON-NLS-1$
+ try {
+ this.connection.setAutoCommit(true);
+ modified = "SELECT 'COMMIT'"; //$NON-NLS-1$
+ } catch (SQLException e) {
+ this.client.errorOccurred(e);
+ }
+ }
+ else if ((m = rollbackPattern.matcher(modified)).matches()) {
+ try {
+ if (!this.connection.getAutoCommit()) {
+ this.connection.rollback();
+ this.connection.setAutoCommit(true);
+ modified = "SELECT 'ROLLBACK'"; //$NON-NLS-1$
+ }
+ } catch (SQLException e) {
+ this.client.errorOccurred(e);
+ }
+ }
+ else if ((m = savepointPattern.matcher(modified)).matches()) {
+ modified = "SELECT 'SAVEPOINT'"; //$NON-NLS-1$
+ }
+ else if ((m = releasePattern.matcher(modified)).matches()) {
+ modified = "SELECT 'RELEASE'"; //$NON-NLS-1$
+ }
+ else if ((m = deallocatePattern.matcher(modified)).matches()) {
+ closePreparedStatement(m.group(1));
+ modified = "SELECT 'DEALLOCATE'"; //$NON-NLS-1$
+ }
+ }
+ if (modified != null && !modified.equalsIgnoreCase(sql)) {
+ LogManager.logDetail(LogConstants.CTX_ODBC, "Modified Query:"+modified); //$NON-NLS-1$
+ }
+ }
+ return modified;
+ }
+
+ @Override
+ public void executeQuery(String query) {
+
+ //46.2.3 Note that a simple Query message also destroys the unnamed portal.
+ this.portalMap.remove(UNNAMED);
+ this.preparedMap.remove(UNNAMED);
+
+ if (query.trim().length() == 0) {
+ this.client.emptyQueryReceived();
+ sync();
+ return;
+ }
+
+ try {
+ ScriptReader reader = new ScriptReader(new StringReader(query));
+ String s = fixSQL(reader.readStatement());
+ while (s != null) {
+ Statement stmt = null;
+ try {
+ stmt = this.connection.createStatement();
+ boolean result = stmt.execute(s);
+ if (result) {
+ this.client.sendResults(s, stmt.getResultSet(), true);
+ } else {
+ this.client.sendUpdateCount(s, stmt.getUpdateCount());
+ }
+ s = fixSQL(reader.readStatement());
+ } catch (SQLException e) {
+ this.client.errorOccurred(e);
+ break;
+ } finally {
+ try {
+ stmt.close();
+ } catch (SQLException e) {
+ this.client.errorOccurred(e);
+ break;
+ }
+ }
+ }
+ } catch(IOException e) {
+ this.client.errorOccurred(e);
+ }
+ sync();
+ }
+
+ @Override
+ public void getParameterDescription(String prepareName) {
+ if (prepareName == null || prepareName.length() == 0) {
+ prepareName = UNNAMED;
+ }
+ Prepared query = this.preparedMap.get(prepareName);
+ if (query == null) {
+ this.client.errorOccurred(RuntimePlugin.Util.getString("no_stmt_found", prepareName)); //$NON-NLS-1$
+ sync();
+ }
+ else {
+ try {
+ this.client.sendParameterDescription(query.stmt.getParameterMetaData(), query.paramType);
+ } catch (SQLException e) {
+ this.client.errorOccurred(e);
+ }
+ }
+ }
+
+ @Override
+ public void getResultSetMetaDataDescription(String bindName) {
+ if (bindName == null || bindName.length() == 0) {
+ bindName = UNNAMED;
+ }
+ Portal query = this.portalMap.get(bindName);
+ if (query == null) {
+ this.client.errorOccurred(RuntimePlugin.Util.getString("not_bound", bindName)); //$NON-NLS-1$
+ }
+ else {
+ try {
+ this.client.sendResultSetDescription(query.stmt.getMetaData());
+ } catch (SQLException e) {
+ this.client.errorOccurred(e);
+ }
+ }
+ }
+
+ @Override
+ public void sync() {
+ boolean inTxn = false;
+ boolean failedTxn = false;
+ try {
+ if (!this.connection.getAutoCommit()) {
+ inTxn = true;
+ }
+ } catch (SQLException e) {
+ failedTxn = true;
+ }
+ this.client.ready(inTxn, failedTxn);
+ }
+
+ @Override
+ public void cancel() {
+ // TODO Auto-generated method stub
+ }
+
+ @Override
+ public void closeBoundStatement(String bindName) {
+ if (bindName == null || bindName.length() == 0) {
+ bindName = UNNAMED;
+ }
+ Portal query = this.portalMap.remove(bindName);
+ if (query == null) {
+ this.client.errorOccurred(RuntimePlugin.Util.getString("not_bound", bindName)); //$NON-NLS-1$
+ }
+ else {
+ try {
+ if (this.connection.getAutoCommit()) {
+ // After checking the pg's client code I do not see it send a
+ // close of the Prepare stmt as per the wire protocol, it only sends
+ // bound close. Since it also have issue with
+ // http://pgfoundry.org/tracker/?func=detail&atid=538&aid=1007690&group_id=1...
+ // treating the prepare and bound as same for now.
+ closePreparedStatement(bindName);
+ }
+ } catch (SQLException e) {
+ closePreparedStatement(bindName);
+ }
+ }
+ }
+
+ @Override
+ public void closePreparedStatement(String preparedName) {
+ if (preparedName == null || preparedName.length() == 0) {
+ preparedName = UNNAMED;
+ }
+ Prepared query = this.preparedMap.remove(preparedName);
+ if (query == null) {
+ this.client.errorOccurred(RuntimePlugin.Util.getString("no_stmt_found", preparedName)); //$NON-NLS-1$
+ }
+ else {
+ // Close all the bound messages off of this prepared
+ // TODO: can there be more than one?
+ this.portalMap.remove(preparedName);
+
+ try {
+ query.stmt.close();
+ this.client.statementClosed();
+ } catch (SQLException e) {
+ this.client.errorOccurred(RuntimePlugin.Util.getString("error_closing_stmt", preparedName)); //$NON-NLS-1$
+ }
+ }
+ }
+
+ @Override
+ public void terminate() {
+
+ for (Portal p: this.portalMap.values()) {
+ try {
+ p.stmt.close();
+ } catch (SQLException e) {
+ //ignore
+ }
+ }
+
+ for (Prepared p:this.preparedMap.values()) {
+ try {
+ p.stmt.close();
+ } catch (SQLException e) {
+ //ignore
+ }
+ }
+
+ try {
+ if (this.connection != null) {
+ this.connection.close();
+ }
+ } catch (SQLException e) {
+ //ignore
+ }
+ this.client.terminated();
+ }
+
+ @Override
+ public void flush() {
+ this.client.flush();
+ }
+
+ /**
+ * Represents a PostgreSQL Prepared object.
+ */
+ static class Prepared {
+
+ public Prepared (String name, String sql, PreparedStatement stmt, int[] paramType) {
+ this.name = name;
+ this.sql = sql;
+ this.stmt = stmt;
+ this.paramType = paramType;
+ }
+
+ /**
+ * The object name.
+ */
+ String name;
+
+ /**
+ * The SQL statement.
+ */
+ String sql;
+
+ /**
+ * The prepared statement.
+ */
+ PreparedStatement stmt;
+
+ /**
+ * The list of parameter types (if set).
+ */
+ int[] paramType;
+ }
+
+ /**
+ * Represents a PostgreSQL Portal object.
+ */
+ static class Portal {
+
+ public Portal(String name, String preparedName, String sql, PreparedStatement stmt, int[] resultColumnformat) {
+ this.name = name;
+ this.preparedName = preparedName;
+ this.sql = sql;
+ this.stmt = stmt;
+ this.resultColumnFormat = resultColumnformat;
+ }
+ /**
+ * The portal name.
+ */
+ String name;
+
+
+ String preparedName;
+
+ /**
+ * The SQL statement.
+ */
+ String sql;
+
+ /**
+ * The format used in the result set columns (if set).
+ */
+ int[] resultColumnFormat;
+
+ /**
+ * The prepared statement.
+ */
+ PreparedStatement stmt;
+ }
+
+
+}
Property changes on: trunk/runtime/src/main/java/org/teiid/odbc/ODBCServerRemoteImpl.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/runtime/src/main/java/org/teiid/odbc/ScriptReader.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/odbc/ScriptReader.java (rev 0)
+++ trunk/runtime/src/main/java/org/teiid/odbc/ScriptReader.java 2010-07-16 19:10:00 UTC (rev 2354)
@@ -0,0 +1,274 @@
+/*
+ * Copyright 2004-2010 H2 Group. Multiple-Licensed under the H2 License,
+ * Version 1.0, and under the Eclipse Public License, Version 1.0
+ * (http://h2database.com/html/license.html).
+ * Initial Developer: H2 Group
+ */
+package org.teiid.odbc;
+
+import java.io.IOException;
+import java.io.Reader;
+import java.util.Arrays;
+
+/**
+ * This class can split SQL scripts to single SQL statements.
+ * Each SQL statement ends with the character ';', however it is ignored
+ * in comments and quotes.
+ */
+public class ScriptReader {
+ private Reader reader;
+ private char[] buffer;
+ private int bufferPos;
+ private int bufferStart = -1;
+ private int bufferEnd;
+ private boolean endOfFile;
+ private boolean insideRemark;
+ private boolean blockRemark;
+ private boolean skipRemarks;
+ private int remarkStart;
+
+ private static int IO_BUFFER_SIZE = 4096;
+
+ /**
+ * Create a new SQL script reader from the given reader
+ *
+ * @param reader the reader
+ */
+ public ScriptReader(Reader reader) {
+ this.reader = reader;
+ buffer = new char[IO_BUFFER_SIZE * 2];
+ }
+
+ /**
+ * Close the underlying reader.
+ */
+ public void close() throws IOException{
+ reader.close();
+ }
+
+ /**
+ * Read a statement from the reader. This method returns null if the end has
+ * been reached.
+ *
+ * @return the SQL statement or null
+ */
+ public String readStatement() throws IOException{
+ if (endOfFile) {
+ return null;
+ }
+ return readStatementLoop();
+ }
+
+ private String readStatementLoop() throws IOException {
+ bufferStart = bufferPos;
+ int c = read();
+ while (true) {
+ if (c < 0) {
+ endOfFile = true;
+ if (bufferPos - 1 == bufferStart) {
+ return null;
+ }
+ break;
+ } else if (c == ';') {
+ break;
+ }
+ switch (c) {
+ case '$': {
+ c = read();
+ if (c == '$' && (bufferPos - bufferStart < 3 || buffer[bufferPos - 3] <= ' ')) {
+ // dollar quoted string
+ while (true) {
+ c = read();
+ if (c < 0) {
+ break;
+ }
+ if (c == '$') {
+ c = read();
+ if (c < 0) {
+ break;
+ }
+ if (c == '$') {
+ break;
+ }
+ }
+ }
+ c = read();
+ }
+ break;
+ }
+ case '\'':
+ while (true) {
+ c = read();
+ if (c < 0) {
+ break;
+ }
+ if (c == '\'') {
+ break;
+ }
+ }
+ c = read();
+ break;
+ case '"':
+ while (true) {
+ c = read();
+ if (c < 0) {
+ break;
+ }
+ if (c == '\"') {
+ break;
+ }
+ }
+ c = read();
+ break;
+ case '/': {
+ c = read();
+ if (c == '*') {
+ // block comment
+ startRemark(false);
+ while (true) {
+ c = read();
+ if (c < 0) {
+ break;
+ }
+ if (c == '*') {
+ c = read();
+ if (c < 0) {
+ clearRemark();
+ break;
+ }
+ if (c == '/') {
+ endRemark();
+ break;
+ }
+ }
+ }
+ c = read();
+ } else if (c == '/') {
+ // single line comment
+ startRemark(false);
+ while (true) {
+ c = read();
+ if (c < 0) {
+ clearRemark();
+ break;
+ }
+ if (c == '\r' || c == '\n') {
+ endRemark();
+ break;
+ }
+ }
+ c = read();
+ }
+ break;
+ }
+ case '-': {
+ c = read();
+ if (c == '-') {
+ // single line comment
+ startRemark(false);
+ while (true) {
+ c = read();
+ if (c < 0) {
+ clearRemark();
+ break;
+ }
+ if (c == '\r' || c == '\n') {
+ endRemark();
+ break;
+ }
+ }
+ c = read();
+ }
+ break;
+ }
+ default: {
+ c = read();
+ }
+ }
+ }
+ return new String(buffer, bufferStart, bufferPos - 1 - bufferStart);
+ }
+
+ private void startRemark(boolean block) {
+ blockRemark = block;
+ remarkStart = bufferPos - 2;
+ insideRemark = true;
+ }
+
+ private void endRemark() {
+ clearRemark();
+ insideRemark = false;
+ }
+
+ private void clearRemark() {
+ if (skipRemarks) {
+ Arrays.fill(buffer, remarkStart, bufferPos, ' ');
+ }
+ }
+
+ private int read() throws IOException {
+ if (bufferPos >= bufferEnd) {
+ return readBuffer();
+ }
+ return buffer[bufferPos++];
+ }
+
+ private int readBuffer() throws IOException {
+ if (endOfFile) {
+ return -1;
+ }
+ int keep = bufferPos - bufferStart;
+ if (keep > 0) {
+ char[] src = buffer;
+ if (keep + IO_BUFFER_SIZE > src.length) {
+ buffer = new char[src.length * 2];
+ }
+ System.arraycopy(src, bufferStart, buffer, 0, keep);
+ }
+ remarkStart -= bufferStart;
+ bufferStart = 0;
+ bufferPos = keep;
+ int len = reader.read(buffer, keep, IO_BUFFER_SIZE);
+ if (len == -1) {
+ // ensure bufferPos > bufferEnd
+ bufferEnd = -1024;
+ endOfFile = true;
+ // ensure the right number of characters are read
+ // in case the input buffer is still used
+ bufferPos++;
+ return -1;
+ }
+ bufferEnd = keep + len;
+ return buffer[bufferPos++];
+ }
+
+ /**
+ * Check if this is the last statement, and if the single line or block
+ * comment is not finished yet.
+ *
+ * @return true if the current position is inside a remark
+ */
+ public boolean isInsideRemark() {
+ return insideRemark;
+ }
+
+ /**
+ * If currently inside a remark, this method tells if it is a block comment
+ * (true) or single line comment (false)
+ *
+ * @return true if inside a block comment
+ */
+ public boolean isBlockRemark() {
+ return blockRemark;
+ }
+
+ /**
+ * If comments should be skipped completely by this reader.
+ *
+ * @param skipRemarks true if comments should be skipped
+ */
+ public void setSkipRemarks(boolean skipRemarks) {
+ this.skipRemarks = skipRemarks;
+ }
+
+}
Property changes on: trunk/runtime/src/main/java/org/teiid/odbc/ScriptReader.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/runtime/src/main/java/org/teiid/transport/ODBCClientInstance.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/transport/ODBCClientInstance.java (rev 0)
+++ trunk/runtime/src/main/java/org/teiid/transport/ODBCClientInstance.java 2010-07-16 19:10:00 UTC (rev 2354)
@@ -0,0 +1,92 @@
+/*
+ * 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.transport;
+
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.lang.reflect.Proxy;
+
+import org.teiid.core.util.ReflectionHelper;
+import org.teiid.net.CommunicationException;
+import org.teiid.net.socket.ObjectChannel;
+import org.teiid.net.socket.ServiceInvocationStruct;
+import org.teiid.odbc.ODBCClientRemote;
+import org.teiid.odbc.ODBCServerRemote;
+import org.teiid.odbc.ODBCServerRemoteImpl;
+
+public class ODBCClientInstance implements ChannelListener{
+
+ private ODBCClientRemote client;
+ private ODBCServerRemoteImpl server;
+ private ReflectionHelper serverProxy = new ReflectionHelper(ODBCServerRemote.class);
+
+ public ODBCClientInstance(final ObjectChannel channel, ODBCServerRemote.AuthenticationType authType) {
+ this.client = (ODBCClientRemote)Proxy.newProxyInstance(this.getClass().getClassLoader(), new Class[] {ODBCClientRemote.class}, new InvocationHandler() {
+ @Override
+ public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
+ ServiceInvocationStruct message = new ServiceInvocationStruct(args, method.getName(),ODBCServerRemote.class);
+ channel.write(message);
+ return null;
+ }
+ });
+ this.server = new ODBCServerRemoteImpl(this.client, authType);
+ }
+
+ @Override
+ public void disconnected() {
+ server.terminate();
+ }
+
+ @Override
+ public void exceptionOccurred(Throwable t) {
+ server.terminate();
+ }
+
+ @Override
+ public void onConnection() throws CommunicationException {
+ }
+
+ @Override
+ public void receivedMessage(Object msg) throws CommunicationException {
+ if (msg instanceof ServiceInvocationStruct) {
+ processMessage((ServiceInvocationStruct)msg);
+ }
+ }
+
+ private void processMessage(ServiceInvocationStruct serviceStruct) {
+ try {
+ Method m = this.serverProxy.findBestMethodOnTarget(serviceStruct.methodName, serviceStruct.args);
+ try {
+ // since the postgres protocol can produce more than single response
+ // objects to a request, all the methods are designed to return void.
+ // and relies on client interface to build the responses.
+ m.invoke(this.server, serviceStruct.args);
+ } catch (InvocationTargetException e) {
+ throw e.getCause();
+ }
+ } catch (Throwable e) {
+ this.client.errorOccurred(e);
+ }
+ }
+
+}
Property changes on: trunk/runtime/src/main/java/org/teiid/transport/ODBCClientInstance.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/runtime/src/main/java/org/teiid/transport/ODBCSocketListener.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/transport/ODBCSocketListener.java (rev 0)
+++ trunk/runtime/src/main/java/org/teiid/transport/ODBCSocketListener.java 2010-07-16 19:10:00 UTC (rev 2354)
@@ -0,0 +1,67 @@
+/*
+ * 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.transport;
+
+import javax.net.ssl.SSLEngine;
+
+import org.jboss.netty.channel.ChannelPipeline;
+import org.jboss.netty.channel.DefaultChannelPipeline;
+import org.jboss.netty.handler.ssl.SslHandler;
+import org.teiid.common.buffer.StorageManager;
+import org.teiid.net.socket.ObjectChannel;
+import org.teiid.odbc.ODBCServerRemote;
+
+public class ODBCSocketListener extends SocketListener {
+ private ODBCServerRemote.AuthenticationType authType = ODBCServerRemote.AuthenticationType.CLEARTEXT;
+
+ public ODBCSocketListener(SocketConfiguration config, ClientServiceRegistryImpl csr, StorageManager storageManager) {
+ super(config, csr, storageManager);
+ }
+
+ @Override
+ protected SSLAwareChannelHandler createChannelPipelineFactory(final SSLConfiguration config, final StorageManager storageManager) {
+ return new SSLAwareChannelHandler(this, config, Thread.currentThread().getContextClassLoader(), storageManager) {
+ public ChannelPipeline getPipeline() throws Exception {
+ ChannelPipeline pipeline = new DefaultChannelPipeline();
+
+ SSLEngine engine = config.getServerSSLEngine();
+ if (engine != null) {
+ pipeline.addLast("ssl", new SslHandler(engine)); //$NON-NLS-1$
+ }
+ pipeline.addLast("odbcFrontendProtocol", new PgFrontendProtocol(1 << 20)); //$NON-NLS-1$
+ pipeline.addLast("odbcBackendProtocol", new PgBackendProtocol()); //$NON-NLS-1$
+ pipeline.addLast("handler", this); //$NON-NLS-1$
+ return pipeline;
+ }
+ };
+ }
+
+ @Override
+ public ChannelListener createChannelListener(ObjectChannel channel) {
+ return new ODBCClientInstance(channel, this.authType);
+ }
+
+ public void setAuthenticationType(String value) {
+ this.authType = ODBCServerRemote.AuthenticationType.valueOf(value);
+ }
+
+}
Property changes on: trunk/runtime/src/main/java/org/teiid/transport/ODBCSocketListener.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/runtime/src/main/java/org/teiid/transport/PGCharsetConverter.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/transport/PGCharsetConverter.java (rev 0)
+++ trunk/runtime/src/main/java/org/teiid/transport/PGCharsetConverter.java 2010-07-16 19:10:00 UTC (rev 2354)
@@ -0,0 +1,72 @@
+/*
+ * 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.transport;
+
+import java.nio.charset.Charset;
+import java.util.HashMap;
+
+/**
+ * These are mappings between the Postgres supported character sets to the Java character sets.
+ */
+public class PGCharsetConverter {
+ private static HashMap<String, Charset> charSetMap = new HashMap<String, Charset>();
+
+ static {
+ charSetMap.put("BIG5", Charset.forName("Big5")); //$NON-NLS-1$ //$NON-NLS-2$
+ charSetMap.put("EUC_CN", Charset.forName("GB2312")); //$NON-NLS-1$ //$NON-NLS-2$
+ charSetMap.put("EUC_JP", Charset.forName("EUC-JP")); //$NON-NLS-1$ //$NON-NLS-2$
+ charSetMap.put("EUC_KR", Charset.forName("EUC-KR")); //$NON-NLS-1$ //$NON-NLS-2$
+ charSetMap.put("EUC_TW", Charset.forName("EUC-TW")); //$NON-NLS-1$ //$NON-NLS-2$
+ charSetMap.put("GB18030", Charset.forName("GB18030")); //$NON-NLS-1$ //$NON-NLS-2$
+ charSetMap.put("GBK", Charset.forName("GBK")); //$NON-NLS-1$ //$NON-NLS-2$
+ charSetMap.put("JOHAB", Charset.forName("JOHAB")); //$NON-NLS-1$ //$NON-NLS-2$
+ charSetMap.put("KOI8", Charset.forName("KOI8-U")); //$NON-NLS-1$ //$NON-NLS-2$
+ charSetMap.put("ISO_8859_5", Charset.forName("ISO-8859-5")); //$NON-NLS-1$ //$NON-NLS-2$
+ charSetMap.put("ISO_8859_5", Charset.forName("ISO-8859-6")); //$NON-NLS-1$ //$NON-NLS-2$
+ charSetMap.put("ISO_8859_5", Charset.forName("ISO-8859-7")); //$NON-NLS-1$ //$NON-NLS-2$
+ charSetMap.put("ISO_8859_5", Charset.forName("ISO-8859-8")); //$NON-NLS-1$ //$NON-NLS-2$
+ charSetMap.put("LATIN1", Charset.forName("ISO-8859-1")); //$NON-NLS-1$ //$NON-NLS-2$
+ charSetMap.put("LATIN2", Charset.forName("ISO-8859-2")); //$NON-NLS-1$ //$NON-NLS-2$
+ charSetMap.put("LATIN3", Charset.forName("ISO-8859-3")); //$NON-NLS-1$ //$NON-NLS-2$
+ charSetMap.put("LATIN4", Charset.forName("ISO-8859-4")); //$NON-NLS-1$ //$NON-NLS-2$
+ charSetMap.put("LATIN5", Charset.forName("ISO-8859-9")); //$NON-NLS-1$ //$NON-NLS-2$
+ //charSetMap.put("LATIN6", Charset.forName("ISO-8859-10")); //$NON-NLS-1$ //$NON-NLS-2$
+ charSetMap.put("LATIN7", Charset.forName("ISO-8859-13")); //$NON-NLS-1$ //$NON-NLS-2$
+ //charSetMap.put("LATIN8", Charset.forName("ISO-8859-14")); //$NON-NLS-1$ //$NON-NLS-2$
+ charSetMap.put("LATIN9", Charset.forName("ISO-8859-15")); //$NON-NLS-1$ //$NON-NLS-2$
+ //charSetMap.put("LATIN10", Charset.forName("ISO-8859-16")); //$NON-NLS-1$ //$NON-NLS-2$
+ charSetMap.put("SJIS", Charset.forName("windows-932")); //$NON-NLS-1$ //$NON-NLS-2$
+ charSetMap.put("UHC", Charset.forName("windows-949")); //$NON-NLS-1$ //$NON-NLS-2$
+ charSetMap.put("UTF8", Charset.forName("UTF-8")); //$NON-NLS-1$ //$NON-NLS-2$
+ charSetMap.put("WIN866", Charset.forName("cp866")); //$NON-NLS-1$ //$NON-NLS-2$
+ charSetMap.put("WIN874", Charset.forName("cp874")); //$NON-NLS-1$ //$NON-NLS-2$
+ charSetMap.put("WIN1250", Charset.forName("windows-1250")); //$NON-NLS-1$ //$NON-NLS-2$
+ charSetMap.put("WIN1251", Charset.forName("windows-1251")); //$NON-NLS-1$ //$NON-NLS-2$
+ charSetMap.put("WIN1252", Charset.forName("windows-1252")); //$NON-NLS-1$ //$NON-NLS-2$
+ charSetMap.put("WIN1256", Charset.forName("windows-1256")); //$NON-NLS-1$ //$NON-NLS-2$
+ charSetMap.put("WIN1258", Charset.forName("windows-1258")); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ public static Charset getCharset(String name) {
+ return charSetMap.get(name);
+ }
+}
Property changes on: trunk/runtime/src/main/java/org/teiid/transport/PGCharsetConverter.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/runtime/src/main/java/org/teiid/transport/PgBackendProtocol.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/transport/PgBackendProtocol.java (rev 0)
+++ trunk/runtime/src/main/java/org/teiid/transport/PgBackendProtocol.java 2010-07-16 19:10:00 UTC (rev 2354)
@@ -0,0 +1,586 @@
+
+/*
+ * 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.transport;
+
+import java.io.ByteArrayOutputStream;
+import java.io.DataOutputStream;
+import java.io.IOException;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.nio.charset.Charset;
+import java.sql.ParameterMetaData;
+import java.sql.ResultSet;
+import java.sql.ResultSetMetaData;
+import java.sql.SQLException;
+import java.sql.Types;
+import java.util.Properties;
+
+import org.jboss.netty.buffer.ChannelBuffer;
+import org.jboss.netty.buffer.ChannelBuffers;
+import org.jboss.netty.channel.ChannelDownstreamHandler;
+import org.jboss.netty.channel.ChannelEvent;
+import org.jboss.netty.channel.ChannelHandlerContext;
+import org.jboss.netty.channel.ChannelPipelineCoverage;
+import org.jboss.netty.channel.Channels;
+import org.jboss.netty.channel.MessageEvent;
+import org.teiid.core.util.ReflectionHelper;
+import org.teiid.jdbc.TeiidSQLException;
+import org.teiid.logging.LogConstants;
+import org.teiid.logging.LogManager;
+import org.teiid.net.socket.ServiceInvocationStruct;
+import org.teiid.odbc.ODBCClientRemote;
+
+/**
+ * Represents the messages going from Server --> PG ODBC Client
+ * Some parts of this code is taken from H2's implementation of ODBC
+ */
+@SuppressWarnings("nls")
+@ChannelPipelineCoverage("one")
+public class PgBackendProtocol implements ChannelDownstreamHandler, ODBCClientRemote {
+
+ private static final int PG_TYPE_VARCHAR = 1043;
+
+ private static final int PG_TYPE_BOOL = 16;
+ private static final int PG_TYPE_BYTEA = 17;
+ private static final int PG_TYPE_BPCHAR = 1042;
+ private static final int PG_TYPE_INT8 = 20;
+ private static final int PG_TYPE_INT2 = 21;
+ private static final int PG_TYPE_INT4 = 23;
+ private static final int PG_TYPE_TEXT = 25;
+ private static final int PG_TYPE_OID = 26;
+ private static final int PG_TYPE_FLOAT4 = 700;
+ private static final int PG_TYPE_FLOAT8 = 701;
+ private static final int PG_TYPE_UNKNOWN = 705;
+ private static final int PG_TYPE_TEXTARRAY = 1009;
+ private static final int PG_TYPE_DATE = 1082;
+ private static final int PG_TYPE_TIME = 1083;
+ private static final int PG_TYPE_TIMESTAMP_NO_TMZONE = 1114;
+ private static final int PG_TYPE_NUMERIC = 1700;
+
+ private DataOutputStream dataOut;
+ private ByteArrayOutputStream outBuffer;
+ private char messageType;
+ private Properties props;
+ private Charset encoding = Charset.forName("UTF-8");
+ private ReflectionHelper clientProxy = new ReflectionHelper(ODBCClientRemote.class);
+ private ChannelHandlerContext ctx;
+ private MessageEvent message;
+
+ @Override
+ public void handleDownstream(ChannelHandlerContext ctx, ChannelEvent evt) throws Exception {
+ if (!(evt instanceof MessageEvent)) {
+ ctx.sendDownstream(evt);
+ return;
+ }
+
+ MessageEvent me = (MessageEvent) evt;
+ if (!(me.getMessage() instanceof ServiceInvocationStruct)) {
+ ctx.sendDownstream(evt);
+ return;
+ }
+ this.ctx = ctx;
+ this.message = me;
+ ServiceInvocationStruct serviceStruct = (ServiceInvocationStruct)me.getMessage();
+
+ try {
+ Method m = this.clientProxy.findBestMethodOnTarget(serviceStruct.methodName, serviceStruct.args);
+ try {
+ m.invoke(this, serviceStruct.args);
+ } catch (InvocationTargetException e) {
+ throw e.getCause();
+ }
+ } catch (Throwable e) {
+ // TODO: handle this.
+ }
+ }
+
+ @Override
+ public void initialized(Properties props) {
+ this.props = props;
+ this.encoding = Charset.forName(props.getProperty("client_encoding", "UTF-8"));
+ }
+
+ @Override
+ public void useClearTextAuthentication() {
+ try {
+ sendAuthenticationCleartextPassword();
+ } catch (IOException e) {
+ terminate(e);
+ }
+ }
+
+ @Override
+ public void authenticationSucess(int processId, int screctKey) {
+ try {
+ sendAuthenticationOk();
+ // server_version, server_encoding, client_encoding, application_name,
+ // is_superuser, session_authorization, DateStyle, IntervalStyle, TimeZone,
+ // integer_datetimes, and standard_conforming_strings.
+ // (server_encoding, TimeZone, and integer_datetimes were not reported
+ // by releases before 8.0; standard_conforming_strings was not reported by
+ // releases before 8.1; IntervalStyle was not reported by releases before 8.4;
+ // application_name was not reported by releases before 9.0.)
+
+ sendParameterStatus("client_encoding", this.encoding.name());
+ sendParameterStatus("DateStyle", this.props.getProperty("DateStyle"));
+ sendParameterStatus("integer_datetimes", "off");
+ sendParameterStatus("is_superuser", "off");
+ sendParameterStatus("server_encoding", "SQL_ASCII");
+ sendParameterStatus("server_version", "8.1.4");
+ sendParameterStatus("session_authorization", this.props.getProperty("user"));
+ sendParameterStatus("standard_conforming_strings", "off");
+ sendParameterStatus("application_name", this.props.getProperty("application_name", "ODBCClient"));
+
+ // TODO PostgreSQL TimeZone
+ sendParameterStatus("TimeZone", "CET");
+
+ sendBackendKeyData(processId, screctKey);
+ } catch (IOException e) {
+ terminate(e);
+ }
+ }
+
+ @Override
+ public void prepareCompleted(String preparedName) {
+ sendParseComplete();
+ }
+
+ @Override
+ public void bindComplete() {
+ sendBindComplete();
+ }
+
+ @Override
+ public void errorOccurred(String msg) {
+ try {
+ sendErrorResponse(msg);
+ } catch (IOException e) {
+ terminate(e);
+ }
+ }
+
+ @Override
+ public void errorOccurred(Throwable t) {
+ try {
+ sendErrorResponse(t);
+ } catch (IOException e) {
+ terminate(e);
+ }
+ }
+
+ @Override
+ public void ready(boolean inTransaction, boolean failedTransaction) {
+ try {
+ sendReadyForQuery(inTransaction, failedTransaction);
+ } catch (IOException e) {
+ terminate(e);
+ }
+ }
+
+ public void setEncoding(Charset value) {
+ this.encoding = value;
+ }
+
+ @Override
+ public void sendParameterDescription(ParameterMetaData meta, int[] paramType) {
+ try {
+ try {
+ int count = meta.getParameterCount();
+ startMessage('t');
+ writeShort(count);
+ for (int i = 0; i < count; i++) {
+ int type;
+ if (paramType != null && paramType[i] != 0) {
+ type = paramType[i];
+ } else {
+ type = PG_TYPE_VARCHAR;
+ }
+ writeInt(type);
+ }
+ sendMessage();
+ } catch (SQLException e) {
+ sendErrorResponse(e);
+ }
+ } catch (IOException e) {
+ terminate(e);
+ }
+ }
+
+ @Override
+ public void sendResultSetDescription(ResultSetMetaData metaData) {
+ try {
+ try {
+ sendRowDescription(metaData);
+ } catch (SQLException e) {
+ sendErrorResponse(e);
+ }
+ } catch (IOException e) {
+ terminate(e);
+ }
+ }
+
+ @Override
+ public void sendResults(String sql, ResultSet rs, boolean describeRows) {
+ try {
+ try {
+ if (describeRows) {
+ ResultSetMetaData meta = rs.getMetaData();
+ sendRowDescription(meta);
+ }
+ while (rs.next()) {
+ sendDataRow(rs);
+ }
+ sendCommandComplete(sql, 0);
+ } catch (SQLException e) {
+ sendErrorResponse(e);
+ }
+ } catch (IOException e) {
+ terminate(e);
+ }
+ }
+
+ @Override
+ public void sendUpdateCount(String sql, int updateCount) {
+ try {
+ sendCommandComplete(sql, updateCount);
+ } catch (IOException e) {
+ terminate(e);
+ }
+ }
+
+ @Override
+ public void statementClosed() {
+ startMessage('3');
+ sendMessage();
+ }
+
+ @Override
+ public void terminated() {
+ try {
+ trace("channel being terminated");
+ this.sendNoticeResponse("Connection closed");
+ this.ctx.getChannel().close();
+ } catch (IOException e) {
+ trace(e.getMessage());
+ }
+ }
+
+ @Override
+ public void flush() {
+ try {
+ this.dataOut.flush();
+ this.dataOut = null;
+ Channels.write(this.ctx.getChannel(), null);
+ } catch (IOException e) {
+ terminate(e);
+ }
+ }
+
+ @Override
+ public void emptyQueryReceived() {
+ sendEmptyQueryResponse();
+ }
+
+ private void terminate(Throwable t) {
+ trace("channel being terminated - "+t.getMessage());
+ this.ctx.getChannel().close();
+ }
+
+ private void sendEmptyQueryResponse() {
+ startMessage('I');
+ sendMessage();
+ }
+
+ private void sendCommandComplete(String sql, int updateCount) throws IOException {
+ startMessage('C');
+ sql = sql.trim().toUpperCase();
+ // TODO remove remarks at the beginning
+ String tag;
+ if (sql.startsWith("INSERT")) {
+ tag = "INSERT 0 " + updateCount;
+ } else if (sql.startsWith("DELETE")) {
+ tag = "DELETE " + updateCount;
+ } else if (sql.startsWith("UPDATE")) {
+ tag = "UPDATE " + updateCount;
+ } else if (sql.startsWith("SELECT") || sql.startsWith("CALL")) {
+ tag = "SELECT";
+ } else if (sql.startsWith("BEGIN")) {
+ tag = "BEGIN";
+ } else {
+ trace("Check command tag: " + sql);
+ tag = "UPDATE " + updateCount;
+ }
+ writeString(tag);
+ sendMessage();
+ }
+
+ private void sendDataRow(ResultSet rs) throws SQLException, IOException {
+ int columns = rs.getMetaData().getColumnCount();
+ String[] values = new String[columns];
+ for (int i = 0; i < columns; i++) {
+ values[i] = rs.getString(i + 1);
+ }
+ startMessage('D');
+ writeShort(columns);
+ for (String s : values) {
+ if (s == null) {
+ writeInt(-1);
+ } else {
+ // TODO write Binary data
+ byte[] d2 = s.getBytes(this.encoding);
+ writeInt(d2.length);
+ write(d2);
+ }
+ }
+ sendMessage();
+ }
+
+ private void sendErrorResponse(Throwable t) throws IOException {
+ trace(t.getMessage());
+ SQLException e = TeiidSQLException.create(t);
+ startMessage('E');
+ write('S');
+ writeString("ERROR");
+ write('C');
+ writeString(e.getSQLState());
+ write('M');
+ writeString(e.getMessage());
+ write('D');
+ writeString(e.toString());
+ write(0);
+ sendMessage();
+ }
+
+ private void sendNoData() {
+ startMessage('n');
+ sendMessage();
+ }
+
+ private void sendRowDescription(ResultSetMetaData meta) throws SQLException, IOException {
+ if (meta == null) {
+ sendNoData();
+ } else {
+ int columns = meta.getColumnCount();
+ int[] types = new int[columns];
+ int[] precision = new int[columns];
+ String[] names = new String[columns];
+ for (int i = 0; i < columns; i++) {
+ names[i] = meta.getColumnName(i + 1);
+ int type = meta.getColumnType(i + 1);
+ type = convertType(type);
+ precision[i] = meta.getColumnDisplaySize(i + 1);
+ types[i] = type;
+ }
+ startMessage('T');
+ writeShort(columns);
+ for (int i = 0; i < columns; i++) {
+ writeString(names[i].toLowerCase());
+ // object ID
+ writeInt(0);
+ // attribute number of the column
+ writeShort(0);
+ // data type
+ writeInt(types[i]);
+ // pg_type.typlen
+ writeShort(getTypeSize(types[i], precision[i]));
+ // pg_attribute.atttypmod
+ writeInt(-1);
+ // text
+ writeShort(0);
+ }
+ sendMessage();
+ }
+ }
+
+ private int getTypeSize(int pgType, int precision) {
+ switch (pgType) {
+ case PG_TYPE_VARCHAR:
+ return Math.max(255, precision + 10);
+ default:
+ return precision + 4;
+ }
+ }
+
+ private void sendErrorResponse(String message) throws IOException {
+ trace("Exception: " + message);
+ startMessage('E');
+ write('S');
+ writeString("ERROR");
+ write('C');
+ // PROTOCOL VIOLATION
+ writeString("08P01");
+ write('M');
+ writeString(message);
+ sendMessage();
+ }
+
+ private void sendNoticeResponse(String message) throws IOException {
+ trace("notice: " + message);
+ startMessage('N');
+ write('S');
+ writeString("ERROR");
+ write('M');
+ writeString(message);
+ sendMessage();
+ }
+
+ private void sendParseComplete() {
+ startMessage('1');
+ sendMessage();
+ }
+
+ private void sendBindComplete() {
+ startMessage('2');
+ sendMessage();
+ }
+
+ private void sendAuthenticationCleartextPassword() throws IOException {
+ startMessage('R');
+ writeInt(3);
+ sendMessage();
+ }
+
+ private void sendAuthenticationOk() throws IOException {
+ startMessage('R');
+ writeInt(0);
+ sendMessage();
+ }
+
+ private void sendReadyForQuery(boolean inTransaction, boolean failedTransaction) throws IOException {
+ startMessage('Z');
+ char c;
+ if (failedTransaction) {
+ // failed transaction block
+ c = 'E';
+ }
+ else {
+ if (inTransaction) {
+ // in a transaction block
+ c = 'T';
+ } else {
+ // idle
+ c = 'I';
+ }
+ }
+ write((byte) c);
+ sendMessage();
+ }
+
+ private void sendBackendKeyData(int processId, int screctKey) throws IOException {
+ startMessage('K');
+ writeInt(processId);
+ writeInt(screctKey);
+ sendMessage();
+ }
+
+ private void sendParameterStatus(String param, String value) throws IOException {
+ startMessage('S');
+ writeString(param);
+ writeString(value);
+ sendMessage();
+ }
+
+ private void writeString(String s) throws IOException {
+ write(s.getBytes(this.encoding));
+ write(0);
+ }
+
+ private void writeInt(int i) throws IOException {
+ dataOut.writeInt(i);
+ }
+
+ private void writeShort(int i) throws IOException {
+ dataOut.writeShort(i);
+ }
+
+ private void write(byte[] data) throws IOException {
+ dataOut.write(data);
+ }
+
+ private void write(int b) throws IOException {
+ dataOut.write(b);
+ }
+
+ private void startMessage(char newMessageType) {
+ this.messageType = newMessageType;
+ this.outBuffer = new ByteArrayOutputStream();
+ this.dataOut = new DataOutputStream(this.outBuffer);
+ }
+
+ private void sendMessage() {
+ byte[] buff = outBuffer.toByteArray();
+ int len = buff.length;
+ this.outBuffer = null;
+ this.dataOut = null;
+
+ // now build the wire contents.
+ ChannelBuffer buffer = ChannelBuffers.directBuffer(len+5);
+ buffer.writeByte((byte)this.messageType);
+ buffer.writeInt(len+4);
+ buffer.writeBytes(buff);
+
+ Channels.write(this.ctx, this.message.getFuture(), buffer, this.message.getRemoteAddress());
+ }
+
+ private static void trace(String msg) {
+ LogManager.logTrace(LogConstants.CTX_ODBC, msg);
+ }
+
+ private static int convertType(final int type) {
+ switch (type) {
+ case Types.BOOLEAN:
+ return PG_TYPE_BOOL;
+ case Types.VARCHAR:
+ return PG_TYPE_VARCHAR;
+ case Types.CLOB:
+ return PG_TYPE_TEXT;
+ case Types.CHAR:
+ return PG_TYPE_BPCHAR;
+ case Types.SMALLINT:
+ return PG_TYPE_INT2;
+ case Types.INTEGER:
+ return PG_TYPE_INT4;
+ case Types.BIGINT:
+ return PG_TYPE_INT8;
+ case Types.DECIMAL:
+ return PG_TYPE_NUMERIC;
+ case Types.REAL:
+ return PG_TYPE_FLOAT4;
+ case Types.DOUBLE:
+ return PG_TYPE_FLOAT8;
+ case Types.TIME:
+ return PG_TYPE_TIME;
+ case Types.DATE:
+ return PG_TYPE_DATE;
+ case Types.TIMESTAMP:
+ return PG_TYPE_TIMESTAMP_NO_TMZONE;
+ case Types.VARBINARY:
+ return PG_TYPE_BYTEA;
+ case Types.BLOB:
+ return PG_TYPE_OID;
+ case Types.ARRAY:
+ return PG_TYPE_TEXTARRAY;
+ default:
+ return PG_TYPE_UNKNOWN;
+ }
+ }
+}
Property changes on: trunk/runtime/src/main/java/org/teiid/transport/PgBackendProtocol.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/runtime/src/main/java/org/teiid/transport/PgFrontendProtocol.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/transport/PgFrontendProtocol.java (rev 0)
+++ trunk/runtime/src/main/java/org/teiid/transport/PgFrontendProtocol.java 2010-07-16 19:10:00 UTC (rev 2354)
@@ -0,0 +1,351 @@
+/*
+ * 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.transport;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.DataInputStream;
+import java.io.IOException;
+import java.io.StreamCorruptedException;
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.Method;
+import java.lang.reflect.Proxy;
+import java.util.Properties;
+
+import org.jboss.netty.buffer.ChannelBuffer;
+import org.jboss.netty.channel.Channel;
+import org.jboss.netty.channel.ChannelHandlerContext;
+import org.jboss.netty.channel.ChannelPipelineCoverage;
+import org.jboss.netty.handler.codec.frame.FrameDecoder;
+import org.teiid.logging.LogConstants;
+import org.teiid.logging.LogManager;
+import org.teiid.net.socket.ServiceInvocationStruct;
+import org.teiid.odbc.ODBCServerRemote;
+
+/**
+ * Represents the messages going from PG ODBC Client --> back end Server
+ * Some parts of this code is taken from H2's implementation of ODBC
+ */
+@SuppressWarnings("nls")
+@ChannelPipelineCoverage("one")
+public class PgFrontendProtocol extends FrameDecoder {
+
+ private int maxObjectSize;
+ private Byte messageType;
+ private Integer dataLength;
+ private boolean initialized = false;
+ private String encoding = "UTF-8"; // client can override this
+ private ODBCServerRemote odbcProxy;
+ private ServiceInvocationStruct message;
+ private String user;
+ private String databaseName;
+
+ public PgFrontendProtocol(int maxObjectSize) {
+
+ if (maxObjectSize <= 0) {
+ throw new IllegalArgumentException("maxObjectSize: " + maxObjectSize); //$NON-NLS-1$
+ }
+
+ if (encoding == null) {
+ this.encoding = "UTF-8"; //$NON-NLS-1$
+ }
+
+ this.maxObjectSize = maxObjectSize;
+
+ // the proxy is used for generating the object based message based on ServiceInvocationStruct class.
+ this.odbcProxy = (ODBCServerRemote)Proxy.newProxyInstance(this.getClass().getClassLoader(), new Class[] {ODBCServerRemote.class}, new InvocationHandler() {
+ @Override
+ public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
+ message = new ServiceInvocationStruct(args, method.getName(),ODBCServerRemote.class);
+ return null;
+ }
+ });
+ }
+
+ @Override
+ protected Object decode(ChannelHandlerContext ctx, Channel channel, ChannelBuffer buffer) throws Exception {
+
+ if (this.initialized && this.messageType == null) {
+ if (buffer.readableBytes() < 1 ) {
+ return null;
+ }
+
+ this.messageType = buffer.readByte();
+ if (this.messageType < 0 ) {
+ this.odbcProxy.terminate();
+ return message;
+ }
+ }
+
+ if (!this.initialized) {
+ this.messageType = 'I';
+ }
+
+ if (this.dataLength == null) {
+ if (buffer.readableBytes() < 4) {
+ return null;
+ }
+
+ this.dataLength = buffer.readInt();
+ if (this.dataLength <= 0) {
+ throw new StreamCorruptedException("invalid data length: " + this.dataLength); //$NON-NLS-1$
+ }
+ if (this.dataLength > this.maxObjectSize) {
+ throw new StreamCorruptedException("data length too big: " + this.dataLength + " (max: " + this.maxObjectSize + ')'); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ }
+
+ if (buffer.readableBytes() < this.dataLength - 4) {
+ return null;
+ }
+
+ byte[] data = createByteArray(this.dataLength - 4);
+ buffer.readBytes(data);
+ Object message = createRequestMessage(this.messageType, new NullTerminatedStringDataInputStream(new DataInputStream(new ByteArrayInputStream(data, 0, this.dataLength-4)), this.encoding));
+ this.dataLength = null;
+ this.messageType = null;
+ return message;
+ }
+
+ private Object createRequestMessage(byte messageType, NullTerminatedStringDataInputStream data) throws IOException{
+ switch(messageType) {
+ case 'I':
+ this.initialized = true;
+ return buildInitialize(data);
+ case 'p':
+ return buildLogin(data);
+ case 'P':
+ return buildParse(data);
+ case 'B':
+ return buildBind(data);
+ case 'E':
+ return buildExecute(data);
+ case 'Q':
+ return buildExecuteQuery(data);
+ case 'D':
+ return buildDescribe(data);
+ case 'X':
+ return buildTeminate();
+ case 'S':
+ return buildSync();
+ case 'C':
+ return buildClose(data);
+ case 'H':
+ return buildFlush();
+ default:
+ return buildError();
+ }
+ }
+
+ private Object buildError() {
+ trace("error");
+ this.odbcProxy.unsupportedOperation("option not suported");
+ return message;
+ }
+
+ private Object buildFlush() {
+ trace("flush");
+ this.odbcProxy.flush();
+ return message;
+ }
+
+ private Object buildTeminate() {
+ trace("terminate");
+ this.odbcProxy.terminate();
+ return message;
+ }
+
+ private Object buildInitialize(NullTerminatedStringDataInputStream data) throws IOException{
+ trace("Init");
+ Properties props = new Properties();
+
+ int version = data.readInt();
+ props.setProperty("version", Integer.toString(version));
+
+ trace("StartupMessage");
+ trace(" version " + version + " (" + (version >> 16) + "." + (version & 0xff) + ")");
+
+ while (true) {
+ String param = data.readString();
+ if (param.length() == 0) {
+ break;
+ }
+ String value = data.readString();
+ props.setProperty(param, value);
+ trace(" param " + param + "=" + value);
+ }
+ this.user = props.getProperty("user");
+ this.databaseName = props.getProperty("database");
+ this.encoding = props.getProperty("client_encoding", "UTF-8");
+ this.odbcProxy.initialize(props);
+ return message;
+ }
+
+ private Object buildLogin(NullTerminatedStringDataInputStream data) throws IOException{
+ trace("PasswordMessage");
+ String password = data.readString();
+ this.odbcProxy.logon(this.databaseName, this.user, password);
+ return message;
+ }
+
+ private Object buildParse(NullTerminatedStringDataInputStream data) throws IOException {
+ trace("Parse");
+ String name = data.readString();
+ String sql = data.readString();
+
+ //The number of parameter data types specified (can be zero). Note that this is not
+ //an indication of the number of parameters that might appear in the query string, only
+ //the number that the frontend wants to prespecify types for.
+ int count = data.readShort();
+ int[] paramType = new int[count];
+ for (int i = 0; i < count; i++) {
+ int type = data.readInt();
+ paramType[i] = type;
+ }
+ this.odbcProxy.prepare(name, sql, paramType);
+ return message;
+ }
+
+ private Object buildBind(NullTerminatedStringDataInputStream data) throws IOException {
+ trace("Bind");
+ String bindName = data.readString();
+ String prepName = data.readString();
+
+ int formatCodeCount = data.readShort();
+ int[] formatCodes = new int[formatCodeCount];
+ for (int i = 0; i < formatCodeCount; i++) {
+ formatCodes[i] = data.readShort();
+ }
+
+ int paramCount = data.readShort();
+ Object[] params = new String[paramCount];
+ for (int i = 0; i < paramCount; i++) {
+ int paramLen = data.readInt();
+ byte[] paramdata = createByteArray(paramLen);
+ data.readFully(paramdata);
+
+ // the params can be either text or binary
+ if (formatCodeCount == 0 || (formatCodeCount == 1 && formatCodes[0] == 0) || formatCodes[i] == 0) {
+ params[i] = new String(paramdata, this.encoding);
+ }
+ else {
+ params[i] = paramdata;
+ }
+ }
+
+ int resultCodeCount = data.readShort();
+ int[] resultColumnFormat = new int[resultCodeCount];
+ for (int i = 0; i < resultCodeCount; i++) {
+ resultColumnFormat[i] = data.readShort();
+ }
+ this.odbcProxy.bindParameters(bindName, prepName, paramCount, params, resultCodeCount, resultColumnFormat);
+ return message;
+ }
+
+ private Object buildExecute(NullTerminatedStringDataInputStream data) throws IOException {
+ String portalName = data.readString();
+ trace("Execute "+ portalName);
+ int maxRows = data.readShort();
+ this.odbcProxy.execute(portalName, maxRows);
+ return message;
+ }
+
+
+ private Object buildDescribe(NullTerminatedStringDataInputStream data) throws IOException{
+ char type = (char) data.readByte();
+ String name = data.readString();
+ trace("Describe");
+ if (type == 'S') {
+ this.odbcProxy.getParameterDescription(name);
+ return message;
+ } else if (type == 'P') {
+ this.odbcProxy.getResultSetMetaDataDescription(name);
+ return message;
+ } else {
+ trace("expected S or P, got " + type);
+ this.odbcProxy.unsupportedOperation("expected S or P");
+ return message;
+ }
+ }
+
+
+ private Object buildSync() {
+ trace("sync");
+ this.odbcProxy.sync();
+ return message;
+ }
+
+ private Object buildExecuteQuery(NullTerminatedStringDataInputStream data) throws IOException {
+ String query = data.readString();
+ trace("Query:"+query);
+ this.odbcProxy.executeQuery(query);
+ return message;
+ }
+
+ private byte[] createByteArray(int length) throws StreamCorruptedException{
+ try {
+ return new byte[length];
+ } catch(OutOfMemoryError e) {
+ throw new StreamCorruptedException("data too big: " + e.getMessage()); //$NON-NLS-1$
+ }
+ }
+
+ private Object buildClose(NullTerminatedStringDataInputStream data) throws IOException {
+ char type = (char)data.read();
+ String name = data.readString();
+ if (type == 'S') {
+ this.odbcProxy.closePreparedStatement(name);
+ }
+ else if (type == 'P') {
+ this.odbcProxy.closeBoundStatement(name);
+ }
+ else {
+ this.odbcProxy.unsupportedOperation("unknown close type specified");
+ }
+ return message;
+ }
+
+ static class NullTerminatedStringDataInputStream extends DataInputStream{
+ private String encoding;
+
+ public NullTerminatedStringDataInputStream(DataInputStream in, String encoding) {
+ super(in);
+ this.encoding = encoding;
+ }
+
+ public String readString() throws IOException {
+ ByteArrayOutputStream buff = new ByteArrayOutputStream();
+ while (true) {
+ int x = read();
+ if (x <= 0) {
+ break;
+ }
+ buff.write(x);
+ }
+ return new String(buff.toByteArray(), this.encoding);
+ }
+ }
+
+ private static void trace(String msg) {
+ LogManager.logTrace(LogConstants.CTX_ODBC, msg);
+ }
+}
Property changes on: trunk/runtime/src/main/java/org/teiid/transport/PgFrontendProtocol.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/runtime/src/main/java/org/teiid/transport/SocketListener.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/transport/SocketListener.java 2010-07-15 20:06:02 UTC (rev 2353)
+++ trunk/runtime/src/main/java/org/teiid/transport/SocketListener.java 2010-07-16 19:10:00 UTC (rev 2354)
@@ -82,7 +82,7 @@
ChannelFactory factory = new NioServerSocketChannelFactory(this.nettyPool, this.nettyPool, Math.min(Runtime.getRuntime().availableProcessors(), maxWorkers));
ServerBootstrap bootstrap = new ServerBootstrap(factory);
- this.channelHandler = new SSLAwareChannelHandler(this, config, Thread.currentThread().getContextClassLoader(), storageManager);
+ this.channelHandler = createChannelPipelineFactory(config, storageManager);
bootstrap.setPipelineFactory(channelHandler);
if (inputBufferSize != 0) {
bootstrap.setOption("receiveBufferSize", new Integer(inputBufferSize)); //$NON-NLS-1$
@@ -117,6 +117,10 @@
return stats;
}
+ protected SSLAwareChannelHandler createChannelPipelineFactory(SSLConfiguration config, StorageManager storageManager) {
+ return new SSLAwareChannelHandler(this, config, Thread.currentThread().getContextClassLoader(), storageManager);
+ }
+
public ChannelListener createChannelListener(ObjectChannel channel) {
return new SocketClientInstance(channel, csr, this.isClientEncryptionEnabled);
}
Modified: trunk/runtime/src/main/resources/org/teiid/runtime/i18n.properties
===================================================================
--- trunk/runtime/src/main/resources/org/teiid/runtime/i18n.properties 2010-07-15 20:06:02 UTC (rev 2353)
+++ trunk/runtime/src/main/resources/org/teiid/runtime/i18n.properties 2010-07-16 19:10:00 UTC (rev 2354)
@@ -306,3 +306,9 @@
required_property_not_exists=Required property "{0}" has no value. Deployment is incomplete.
name_not_found=Translator property "name" not defined for the deployment "{0}"
translator_type_not_found=The parent translator defined not found in configuration "{0}"
+failed_to_load_odbc_metadata=Failed to load the ODBC metadata repository.
+no_active_connection=No active connection found
+bad_binding=Binding on a statement, that has not been prepared:{0}
+not_bound=No bound statement found with name {0}
+no_stmt_found=No prepared statement found with name {0}
+error_closing_stmt=Error closing portal statement {0}
\ No newline at end of file
Modified: trunk/test-integration/common/src/test/java/org/teiid/jdbc/AbstractQueryTest.java
===================================================================
--- trunk/test-integration/common/src/test/java/org/teiid/jdbc/AbstractQueryTest.java 2010-07-15 20:06:02 UTC (rev 2353)
+++ trunk/test-integration/common/src/test/java/org/teiid/jdbc/AbstractQueryTest.java 2010-07-16 19:10:00 UTC (rev 2354)
@@ -471,7 +471,7 @@
assertResults(expected);
}
else {
- printResults();
+ printResults(true);
}
}
}
\ No newline at end of file
Modified: trunk/test-integration/common/src/test/java/org/teiid/jdbc/FakeServer.java
===================================================================
--- trunk/test-integration/common/src/test/java/org/teiid/jdbc/FakeServer.java 2010-07-15 20:06:02 UTC (rev 2353)
+++ trunk/test-integration/common/src/test/java/org/teiid/jdbc/FakeServer.java 2010-07-16 19:10:00 UTC (rev 2354)
@@ -62,7 +62,11 @@
public FakeServer() {
this.logon = new LogonImpl(sessionService, null);
+
this.repo.setSystemStore(VDBMetadataFactory.getSystem());
+ this.repo.odbcEnabled();
+ this.repo.start();
+
this.sessionService.setVDBRepository(repo);
this.dqp.setBufferService(new FakeBufferService());
this.dqp.setTransactionService(new FakeTransactionService());
@@ -93,17 +97,15 @@
vdbMetaData.setStatus(VDB.Status.ACTIVE);
for (Schema schema : repo.getSystemStore().getSchemas().values()) {
- ModelMetaData model = new ModelMetaData();
- model.setName(schema.getName());
- vdbMetaData.addModel(model);
- model.addSourceMapping("source", "translator", "jndi:source");
+ addModel(vdbMetaData, schema);
}
+ for (Schema schema : repo.getODBCStore().getSchemas().values()) {
+ addModel(vdbMetaData, schema);
+ }
+
for (Schema schema : metadata.getSchemas().values()) {
- ModelMetaData model = new ModelMetaData();
- model.setName(schema.getName());
- vdbMetaData.addModel(model);
- model.addSourceMapping("source", "translator", "jndi:source");
+ addModel(vdbMetaData, schema);
}
try {
@@ -114,6 +116,13 @@
throw new RuntimeException(e);
}
}
+
+ private void addModel(VDBMetaData vdbMetaData, Schema schema) {
+ ModelMetaData model = new ModelMetaData();
+ model.setName(schema.getName());
+ vdbMetaData.addModel(model);
+ model.addSourceMapping("source", "translator", "jndi:source");
+ }
public void undeployVDB(String vdbName) {
this.repo.removeVDB(vdbName, 1);
Modified: trunk/test-integration/common/src/test/java/org/teiid/jdbc/TestMMDatabaseMetaData.java
===================================================================
--- trunk/test-integration/common/src/test/java/org/teiid/jdbc/TestMMDatabaseMetaData.java 2010-07-15 20:06:02 UTC (rev 2353)
+++ trunk/test-integration/common/src/test/java/org/teiid/jdbc/TestMMDatabaseMetaData.java 2010-07-16 19:10:00 UTC (rev 2354)
@@ -59,7 +59,7 @@
- private static final boolean REPLACE_EXPECTED = false;
+ private static final boolean REPLACE_EXPECTED = true;
private static final boolean WRITE_ACTUAL_RESULTS_TO_FILE = false;
private static final boolean PRINT_RESULTSETS_TO_CONSOLE = false;
Modified: trunk/test-integration/common/src/test/java/org/teiid/jdbc/TestVDBMerge.java
===================================================================
--- trunk/test-integration/common/src/test/java/org/teiid/jdbc/TestVDBMerge.java 2010-07-15 20:06:02 UTC (rev 2353)
+++ trunk/test-integration/common/src/test/java/org/teiid/jdbc/TestVDBMerge.java 2010-07-16 19:10:00 UTC (rev 2354)
@@ -18,28 +18,28 @@
this.internalConnection = server.createConnection("jdbc:teiid:"+VDB1);
String[] expected = {
- "VDBName[string] SchemaName[string] Name[string] Type[string] NameInSource[string] IsPhysical[boolean] SupportsUpdates[boolean] UID[string] Cardinality[integer] Description[string] IsSystem[boolean] IsMaterialized[boolean]",
- "PartsSupplier PartsSupplier PARTSSUPPLIER.PARTS Table PARTS true true mmuuid:f6276601-73fe-1edc-a81c-ecf397b10590 16 null false false",
- "PartsSupplier PartsSupplier PARTSSUPPLIER.SHIP_VIA Table SHIP_VIA true true mmuuid:0f4e9b80-73ff-1edc-a81c-ecf397b10590 4 null false false",
- "PartsSupplier PartsSupplier PARTSSUPPLIER.STATUS Table STATUS true true mmuuid:1f297200-73ff-1edc-a81c-ecf397b10590 3 null false false",
- "PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER_PARTS Table SUPPLIER_PARTS true true mmuuid:3deafb00-73ff-1edc-a81c-ecf397b10590 227 null false false",
- "PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER Table SUPPLIER true true mmuuid:2c371ec0-73ff-1edc-a81c-ecf397b10590 16 null false false"
- };
+ "VDBName[string] SchemaName[string] Name[string] Type[string] NameInSource[string] IsPhysical[boolean] SupportsUpdates[boolean] UID[string] Cardinality[integer] Description[string] IsSystem[boolean] IsMaterialized[boolean] OID[integer]",
+ "PartsSupplier PartsSupplier PARTSSUPPLIER.PARTS Table PARTS true true mmuuid:f6276601-73fe-1edc-a81c-ecf397b10590 16 null false false 1623654648",
+ "PartsSupplier PartsSupplier PARTSSUPPLIER.SHIP_VIA Table SHIP_VIA true true mmuuid:0f4e9b80-73ff-1edc-a81c-ecf397b10590 4 null false false 1136825257",
+ "PartsSupplier PartsSupplier PARTSSUPPLIER.STATUS Table STATUS true true mmuuid:1f297200-73ff-1edc-a81c-ecf397b10590 3 null false false -1690137928",
+ "PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER_PARTS Table SUPPLIER_PARTS true true mmuuid:3deafb00-73ff-1edc-a81c-ecf397b10590 227 null false false 2040149098",
+ "PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER Table SUPPLIER true true mmuuid:2c371ec0-73ff-1edc-a81c-ecf397b10590 16 null false false 940336727"
+ };
executeTest("select * from tables where schemaname ='PartsSupplier'", expected); //$NON-NLS-1$
String[] expectedBefore = {
- "VDBName[string] SchemaName[string] Name[string] Type[string] NameInSource[string] IsPhysical[boolean] SupportsUpdates[boolean] UID[string] Cardinality[integer] Description[string] IsSystem[boolean] IsMaterialized[boolean]",
+ "VDBName[string] SchemaName[string] Name[string] Type[string] NameInSource[string] IsPhysical[boolean] SupportsUpdates[boolean] UID[string] Cardinality[integer] Description[string] IsSystem[boolean] IsMaterialized[boolean] OID[integer]",
};
String[] expectedAfter = {
- "VDBName[string] SchemaName[string] Name[string] Type[string] NameInSource[string] IsPhysical[boolean] SupportsUpdates[boolean] UID[string] Cardinality[integer] Description[string] IsSystem[boolean] IsMaterialized[boolean]",
- "PartsSupplier BQT1 HugeA Table null true false mmuuid:7c66fc80-33d2-1dfa-9931-e83d04ce10a0 500000 null false false",
- "PartsSupplier BQT1 HugeB Table null true false mmuuid:b0369400-33f8-1dfa-9931-e83d04ce10a0 500000 null false false",
- "PartsSupplier BQT1 LargeA Table null true false mmuuid:3976a800-33b2-1dfa-9931-e83d04ce10a0 10000 null false false",
- "PartsSupplier BQT1 LargeB Table null true false mmuuid:5fb40600-33c3-1dfa-9931-e83d04ce10a0 10000 null false false",
- "PartsSupplier BQT1 MediumA Table null true false mmuuid:61074980-338d-1dfa-9931-e83d04ce10a0 1000 null false false",
- "PartsSupplier BQT1 MediumB Table null true false mmuuid:e24bd1c0-33a4-1dfa-9931-e83d04ce10a0 1000 null false false",
- "PartsSupplier BQT1 SmallA Table null true false mmuuid:0968424f-e6a0-1df9-ac06-b890ff96f710 50 null false false",
- "PartsSupplier BQT1 SmallB Table null true false mmuuid:06fb8980-3377-1dfa-9931-e83d04ce10a0 50 null false false"
+ "VDBName[string] SchemaName[string] Name[string] Type[string] NameInSource[string] IsPhysical[boolean] SupportsUpdates[boolean] UID[string] Cardinality[integer] Description[string] IsSystem[boolean] IsMaterialized[boolean] OID[integer]",
+ "PartsSupplier BQT1 HugeA Table null true false mmuuid:7c66fc80-33d2-1dfa-9931-e83d04ce10a0 500000 null false false -70645926",
+ "PartsSupplier BQT1 HugeB Table null true false mmuuid:b0369400-33f8-1dfa-9931-e83d04ce10a0 500000 null false false 1906808737",
+ "PartsSupplier BQT1 LargeA Table null true false mmuuid:3976a800-33b2-1dfa-9931-e83d04ce10a0 10000 null false false 1317837587",
+ "PartsSupplier BQT1 LargeB Table null true false mmuuid:5fb40600-33c3-1dfa-9931-e83d04ce10a0 10000 null false false -655406176",
+ "PartsSupplier BQT1 MediumA Table null true false mmuuid:61074980-338d-1dfa-9931-e83d04ce10a0 1000 null false false -122563142",
+ "PartsSupplier BQT1 MediumB Table null true false mmuuid:e24bd1c0-33a4-1dfa-9931-e83d04ce10a0 1000 null false false -1189500311",
+ "PartsSupplier BQT1 SmallA Table null true false mmuuid:0968424f-e6a0-1df9-ac06-b890ff96f710 50 null false false 97548178",
+ "PartsSupplier BQT1 SmallB Table null true false mmuuid:06fb8980-3377-1dfa-9931-e83d04ce10a0 50 null false false -1716729278"
};
executeTest("select * from tables where schemaname='BQT1'", expectedBefore); //$NON-NLS-1$
Added: trunk/test-integration/common/src/test/java/org/teiid/systemmodel/TestODBCSchema.java
===================================================================
--- trunk/test-integration/common/src/test/java/org/teiid/systemmodel/TestODBCSchema.java (rev 0)
+++ trunk/test-integration/common/src/test/java/org/teiid/systemmodel/TestODBCSchema.java 2010-07-16 19:10:00 UTC (rev 2354)
@@ -0,0 +1,83 @@
+package org.teiid.systemmodel;
+
+import java.sql.SQLException;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.teiid.core.util.UnitTestUtil;
+import org.teiid.jdbc.AbstractMMQueryTestCase;
+import org.teiid.jdbc.FakeServer;
+import org.teiid.jdbc.TestMMDatabaseMetaData;
+
+@SuppressWarnings("nls")
+public class TestODBCSchema extends AbstractMMQueryTestCase {
+ private static final String VDB = "PartsSupplier"; //$NON-NLS-1$
+
+ public TestODBCSchema() {
+ // this is needed because the result files are generated
+ // with another tool which uses tab as delimiter
+ super.DELIMITER = "\t"; //$NON-NLS-1$
+ }
+
+ @Before public void setUp() throws Exception {
+ FakeServer server = new FakeServer();
+ server.deployVDB(VDB, UnitTestUtil.getTestDataPath() + "/PartsSupplier.vdb");
+ this.internalConnection = server.createConnection("jdbc:teiid:" + VDB); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ @Test public void test_PG_AM() throws Exception {
+ execute("select * FROM pg_am"); //$NON-NLS-1$
+ TestMMDatabaseMetaData.compareResultSet(this.internalResultSet);
+ }
+
+ @Test public void test_PG_ATTRDEF() throws Exception {
+ execute("select * FROM pg_attrdef"); //$NON-NLS-1$
+ TestMMDatabaseMetaData.compareResultSet(this.internalResultSet);
+ }
+
+ @Test public void test_PG_ATTRIBUTE() throws Exception {
+ execute("select * FROM pg_attribute"); //$NON-NLS-1$
+ TestMMDatabaseMetaData.compareResultSet(this.internalResultSet);
+ }
+
+ @Test public void test_PG_CLASS() throws Exception {
+ execute("select * FROM pg_class"); //$NON-NLS-1$
+ TestMMDatabaseMetaData.compareResultSet(this.internalResultSet);
+ }
+
+ @Test public void test_PG_INDEX() throws Exception {
+ execute("select * FROM pg_index"); //$NON-NLS-1$
+ TestMMDatabaseMetaData.compareResultSet(this.internalResultSet);
+ }
+
+ @Test public void test_PG_NAMESPACE() throws Exception {
+ execute("select * FROM pg_namespace"); //$NON-NLS-1$
+ TestMMDatabaseMetaData.compareResultSet(this.internalResultSet);
+ }
+
+ @Test public void test_PG_PROC() throws Exception {
+ execute("select * FROM pg_proc"); //$NON-NLS-1$
+ TestMMDatabaseMetaData.compareResultSet(this.internalResultSet);
+ }
+
+ @Test public void test_PG_TRIGGER() throws Exception {
+ execute("select * FROM pg_trigger"); //$NON-NLS-1$
+ TestMMDatabaseMetaData.compareResultSet(this.internalResultSet);
+ }
+
+ @Test public void test_PG_TYPE() throws Exception {
+ execute("select * FROM pg_type"); //$NON-NLS-1$
+ TestMMDatabaseMetaData.compareResultSet(this.internalResultSet);
+ }
+
+ @Test public void test_PG_DATABASE() throws Exception {
+ execute("select* FROM pg_database"); //$NON-NLS-1$
+ TestMMDatabaseMetaData.compareResultSet(this.internalResultSet);
+ }
+
+ @Test public void test_PG_USER() throws Exception {
+ execute("select * FROM pg_user"); //$NON-NLS-1$
+ TestMMDatabaseMetaData.compareResultSet(this.internalResultSet);
+ }
+
+}
Property changes on: trunk/test-integration/common/src/test/java/org/teiid/systemmodel/TestODBCSchema.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/test-integration/common/src/test/java/org/teiid/systemmodel/TestSystemVirtualModel.java
===================================================================
--- trunk/test-integration/common/src/test/java/org/teiid/systemmodel/TestSystemVirtualModel.java 2010-07-15 20:06:02 UTC (rev 2353)
+++ trunk/test-integration/common/src/test/java/org/teiid/systemmodel/TestSystemVirtualModel.java 2010-07-16 19:10:00 UTC (rev 2354)
@@ -23,7 +23,6 @@
package org.teiid.systemmodel;
import org.junit.Before;
-import org.junit.Ignore;
import org.junit.Test;
import org.teiid.core.util.UnitTestUtil;
import org.teiid.jdbc.AbstractMMQueryTestCase;
@@ -49,22 +48,7 @@
server.deployVDB(VDB, UnitTestUtil.getTestDataPath() + "/PartsSupplier.vdb");
this.internalConnection = server.createConnection("jdbc:teiid:" + VDB); //$NON-NLS-1$ //$NON-NLS-2$
}
-
- @Ignore("ODBC support to be readded")
- @Test public void testDefect23534() {
- String[] expected = { "SCOPE[short] COLUMN_NAME[string] DATA_TYPE[short] TYPE_NAME[string] PRECISION[integer] LENGTH[integer] SCALE[integer] PSEUDO_COLUMN[short]" }; //$NON-NLS-1$
- executeAndAssertResults(
- "SELECT OA_SCOPE as \"SCOPE\" , COLUMN_NAME, DATA_TYPE, TYPE_NAME, OA_PRECISION as \"PRECISION\", " + //$NON-NLS-1$
- "OA_LENGTH as \"LENGTH\", OA_SCALE as \"SCALE\", PSEUDO_COLUMN " + //$NON-NLS-1$
- "FROM SYS.ODBC.OA_COLUMNS " + //$NON-NLS-1$
- "WHERE TABLE_NAME = N'AUTHORS' AND TABLE_OWNER = N's1' AND " + //$NON-NLS-1$
- "(OA_COLUMNTYPE = 2 OR OA_COLUMNTYPE = 3) " + //$NON-NLS-1$
- "AND (OA_SCOPE is null OR OA_SCOPE >= 1) " + //$NON-NLS-1$
- "AND (OA_NULLABLE = 0 OR OA_NULLABLE = 1) " + //$NON-NLS-1$
- "ORDER BY \"SCOPE\"", //$NON-NLS-1$
- expected);
- }
-
+
protected void checkResult(String testName, String query) throws Exception {
execute(query);
TestMMDatabaseMetaData.compareResultSet("TestSystemVirtualModel/" + testName, this.internalResultSet);
@@ -95,7 +79,7 @@
}
@Test public void testProperties() {
- String[] expected = { "Name[string] Value[string] UID[string]", }; //$NON-NLS-1$
+ String[] expected = { "Name[string] Value[string] UID[string] OID[integer]", }; //$NON-NLS-1$
executeAndAssertResults("select* from SYS.Properties", expected); //$NON-NLS-1$
}
@@ -139,410 +123,6 @@
checkResult("testTableIsSystem", "select Name from SYS.Tables where IsSystem = 'false' order by Name"); //$NON-NLS-1$ //$NON-NLS-2$
}
- @Ignore("ODBC support to be readded")
- @Test public void test_OA_PROC() {
-
- String[] expected = {
- "OA_QUALIFIER[string] OA_OWNER[string] OA_NAME[string] NUM_INPUT_PARAMS[integer] NUM_OUTPUT_PARAMS[integer] NUM_RESULT_SETS[integer] REMARKS[string] PROCEDURE_TYPE[short]", //$NON-NLS-1$
- "PartsSupplier System describe 0 0 0 null 1", //$NON-NLS-1$
- "PartsSupplier System getBinaryVDBResource 0 0 0 null 1", //$NON-NLS-1$
- "PartsSupplier System getCharacterVDBResource 0 0 0 null 1", //$NON-NLS-1$
- "PartsSupplier System getUpdatedCharacterVDBResource 0 0 0 null 1", //$NON-NLS-1$
- "PartsSupplier System getVDBResourcePaths 0 0 0 null 1", //$NON-NLS-1$
-
- };
- executeAndAssertResults("select* FROM SYS.ODBC.OA_PROC", expected); //$NON-NLS-1$
- }
-
- @Ignore("ODBC support to be readded")
- @Test public void test_OA_PROCCOLUMNS() {
-
- String[] expected = {
- "OA_QUALIFIER[string] OA_OWNER[string] OA_NAME[string] COLUMN_NAME[string] OA_COLUMNTYPE[short] DATA_TYPE[short] TYPE_NAME[string] OA_PRECISION[integer] OA_LENGTH[integer] OA_RADIX[integer] OA_SCALE[integer] OA_NULLABLE[short] OA_SCOPE[short] REMARKS[string]", //$NON-NLS-1$
- "PartsSupplier System describe Description 0 12 VARCHAR 128 128 10 0 0 0 ", //$NON-NLS-1$
- "PartsSupplier System describe entity 0 12 VARCHAR 0 0 10 0 0 0 ", //$NON-NLS-1$
- "PartsSupplier System getBinaryVDBResource VdbResource 0 12 VARCHAR 0 0 10 0 1 0 ", //$NON-NLS-1$
- "PartsSupplier System getBinaryVDBResource resourcePath 0 12 VARCHAR 50 50 10 0 0 0 ", //$NON-NLS-1$
- "PartsSupplier System getCharacterVDBResource VdbResource 0 12 VARCHAR 0 0 10 0 1 0 ", //$NON-NLS-1$
- "PartsSupplier System getCharacterVDBResource resourcePath 0 12 VARCHAR 50 50 10 0 0 0 ", //$NON-NLS-1$
- "PartsSupplier System getUpdatedCharacterVDBResource VdbResource 0 12 VARCHAR 0 0 10 0 1 0 ", //$NON-NLS-1$
- "PartsSupplier System getUpdatedCharacterVDBResource resourcePath 0 12 VARCHAR 50 50 10 0 0 0 ", //$NON-NLS-1$
- "PartsSupplier System getUpdatedCharacterVDBResource tokenReplacements 0 12 VARCHAR 0 0 10 0 0 0 ", //$NON-NLS-1$
- "PartsSupplier System getUpdatedCharacterVDBResource tokens 0 12 VARCHAR 0 0 10 0 0 0 ", //$NON-NLS-1$
- "PartsSupplier System getVDBResourcePaths ResourcePath 0 12 VARCHAR 50 50 10 0 1 0 ", //$NON-NLS-1$
- "PartsSupplier System getVDBResourcePaths isBinary 0 5 SMALLINT 1 1 10 0 1 0", //$NON-NLS-1$
-
- };
- executeAndAssertResults(
- "select* FROM SYS.ODBC.OA_PROCCOLUMNS ORDER BY OA_NAME, COLUMN_NAME ", //$NON-NLS-1$
- expected);
- }
-
- @Ignore("ODBC support to be readded")
- @Test public void testOATYPES() {
- String[] expected = { "TYPE_NAME[string] DATA_TYPE[short] PRECISION[integer] LITERAL_PREFIX[string] LITERAL_SUFFIX[string] CREATE_PARAMS[string] NULLABLE[short] CASE_SENSITIVE[short] SEARCHABLE[short] UNSIGNED_ATTRIBUTE[short] MONEY[short] AUTO_INCREMENT[short] LOCAL_TYPE_NAME[string] MINIMUM_SCALE[short] MAXIMUM_SCALE[short]", }; //$NON-NLS-1$
-
- executeAndAssertResults(
- "select TYPE_NAME, DATA_TYPE, OA_PRECISION as PRECISION, LITERAL_PREFIX, LITERAL_SUFFIX, " //$NON-NLS-1$
- + " CREATE_PARAMS, OA_NULLABLE as NULLABLE, CASE_SENSITIVE, OA_SEARCHABLE as SEARCHABLE, " //$NON-NLS-1$
- + " UNSIGNED_ATTRIB as UNSIGNED_ATTRIBUTE, OA_MONEY as MONEY, AUTO_INCREMENT, LOCAL_TYPE_NAME, " //$NON-NLS-1$
- + " MINIMUM_SCALE, MAXIMUM_SCALE FROM SYS.ODBC.OA_TYPES WHERE DATA_TYPE = -6", //$NON-NLS-1$
- expected);
- }
-
- @Ignore("ODBC support to be readded")
- @Test public void testOACOLUMNSAll() {
-
- String[] expected = {
- "TABLE_QUALIFIER[string] TABLE_OWNER[string] TABLE_NAME[string] COLUMN_NAME[string] DATA_TYPE[short] TYPE_NAME[string] OA_LENGTH[integer] OA_PRECISION[integer] OA_SCALE[integer] OA_RADIX[integer] OA_NULLABLE[short] OA_SCOPE[short] PSEUDO_COLUMN[short] OA_COLUMNTYPE[short] REMARKS[string]", //$NON-NLS-1$
- "PartsSupplier PartsSupplier/PARTSSUPPLIER PARTS PART_COLOR 12 VARCHAR 30 0 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier PartsSupplier/PARTSSUPPLIER PARTS PART_ID 12 VARCHAR 4 0 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier PartsSupplier/PARTSSUPPLIER PARTS PART_NAME 12 VARCHAR 255 0 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier PartsSupplier/PARTSSUPPLIER PARTS PART_WEIGHT 12 VARCHAR 255 0 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier PartsSupplier/PARTSSUPPLIER SHIP_VIA SHIPPER_ID 5 SMALLINT 0 2 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier PartsSupplier/PARTSSUPPLIER SHIP_VIA SHIPPER_NAME 12 VARCHAR 30 0 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier PartsSupplier/PARTSSUPPLIER STATUS STATUS_ID 5 SMALLINT 0 2 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier PartsSupplier/PARTSSUPPLIER STATUS STATUS_NAME 12 VARCHAR 30 0 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier PartsSupplier/PARTSSUPPLIER SUPPLIER SUPPLIER_CITY 12 VARCHAR 30 0 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier PartsSupplier/PARTSSUPPLIER SUPPLIER SUPPLIER_ID 12 VARCHAR 10 0 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier PartsSupplier/PARTSSUPPLIER SUPPLIER SUPPLIER_NAME 12 VARCHAR 30 0 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier PartsSupplier/PARTSSUPPLIER SUPPLIER SUPPLIER_STATE 12 VARCHAR 2 0 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier PartsSupplier/PARTSSUPPLIER SUPPLIER SUPPLIER_STATUS 5 SMALLINT 0 2 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier PartsSupplier/PARTSSUPPLIER SUPPLIER_PARTS PART_ID 12 VARCHAR 4 0 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier PartsSupplier/PARTSSUPPLIER SUPPLIER_PARTS QUANTITY 5 SMALLINT 0 3 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier PartsSupplier/PARTSSUPPLIER SUPPLIER_PARTS SHIPPER_ID 5 SMALLINT 0 2 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier PartsSupplier/PARTSSUPPLIER SUPPLIER_PARTS SUPPLIER_ID 12 VARCHAR 10 0 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System DataTypeElementProperties DataTypeElementName 12 VARCHAR 255 255 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System DataTypeElementProperties DataTypeName 12 VARCHAR 100 100 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System DataTypeElementProperties Name 12 VARCHAR 50 50 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System DataTypeElementProperties UID 12 VARCHAR 50 50 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System DataTypeElementProperties Value 12 VARCHAR 255 255 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System DataTypeElements DataTypeName 12 VARCHAR 100 100 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System DataTypeElements ElementLength 4 INTEGER 10 10 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System DataTypeElements Name 12 VARCHAR 255 255 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System DataTypeElements Position 4 INTEGER 10 10 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System DataTypeElements Scale 4 INTEGER 10 10 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System DataTypeElements UID 12 VARCHAR 50 50 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System DataTypeProperties DataType 12 VARCHAR 100 100 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System DataTypeProperties Name 12 VARCHAR 50 50 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System DataTypeProperties UID 12 VARCHAR 50 50 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System DataTypeProperties Value 12 VARCHAR 255 255 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System DataTypes BaseType 12 VARCHAR 64 64 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System DataTypes Description 12 VARCHAR 255 255 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System DataTypes IsAutoIncremented 5 SMALLINT 1 1 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System DataTypes IsCaseSensitive 5 SMALLINT 1 1 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System DataTypes IsPhysical 5 SMALLINT 1 1 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System DataTypes IsSigned 5 SMALLINT 1 1 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System DataTypes IsStandard 5 SMALLINT 1 1 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System DataTypes JavaClass 12 VARCHAR 500 500 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System DataTypes Name 12 VARCHAR 100 100 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System DataTypes NullType 12 VARCHAR 20 20 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System DataTypes Precision 4 INTEGER 10 10 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System DataTypes Radix 4 INTEGER 10 10 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System DataTypes RuntimeType 12 VARCHAR 64 64 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System DataTypes Scale 4 INTEGER 10 10 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System DataTypes SearchType 12 VARCHAR 20 20 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System DataTypes TypeLength 4 INTEGER 10 10 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System DataTypes TypeName 12 VARCHAR 100 100 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System DataTypes UID 12 VARCHAR 50 50 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System ElementProperties ElementName 12 VARCHAR 255 255 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System ElementProperties ElementUpperName 12 VARCHAR 255 255 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System ElementProperties GroupFullName 12 VARCHAR 2048 2048 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System ElementProperties GroupName 12 VARCHAR 255 255 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System ElementProperties GroupUpperName 12 VARCHAR 255 255 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System ElementProperties ModelName 12 VARCHAR 255 255 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System ElementProperties Name 12 VARCHAR 255 255 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System ElementProperties UID 12 VARCHAR 50 50 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System ElementProperties Value 12 VARCHAR 255 255 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Elements CharOctetLength 4 INTEGER 10 10 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Elements DataType 12 VARCHAR 100 100 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Elements DefaultValue 12 VARCHAR 255 255 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Elements Description 12 VARCHAR 255 255 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Elements ElementLength 4 INTEGER 10 10 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Elements Format 12 VARCHAR 255 255 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Elements GroupFullName 12 VARCHAR 2048 2048 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Elements GroupName 12 VARCHAR 255 255 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Elements GroupUpperName 12 VARCHAR 255 255 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Elements IsAutoIncremented 5 SMALLINT 1 1 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Elements IsCaseSensitive 5 SMALLINT 1 1 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Elements IsCurrency 5 SMALLINT 1 1 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Elements IsLengthFixed 5 SMALLINT 1 1 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Elements IsSigned 5 SMALLINT 1 1 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Elements JavaClass 12 VARCHAR 500 500 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Elements MaxRange 12 VARCHAR 50 50 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Elements MinRange 12 VARCHAR 50 50 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Elements ModelName 12 VARCHAR 255 255 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Elements Name 12 VARCHAR 255 255 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Elements NameInSource 12 VARCHAR 255 255 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Elements NullType 12 VARCHAR 20 20 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Elements Position 4 INTEGER 10 10 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Elements Precision 4 INTEGER 10 10 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Elements Radix 4 INTEGER 10 10 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Elements Scale 4 INTEGER 10 10 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Elements SearchType 12 VARCHAR 20 20 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Elements SupportsSelect 5 SMALLINT 1 1 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Elements SupportsUpdates 5 SMALLINT 1 1 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Elements UID 12 VARCHAR 50 50 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Elements UpperName 12 VARCHAR 255 255 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System GroupProperties GroupFullName 12 VARCHAR 2048 2048 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System GroupProperties GroupName 12 VARCHAR 255 255 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System GroupProperties GroupUpperName 12 VARCHAR 255 255 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System GroupProperties ModelName 12 VARCHAR 255 255 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System GroupProperties Name 12 VARCHAR 255 255 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System GroupProperties UID 12 VARCHAR 50 50 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System GroupProperties Value 12 VARCHAR 255 255 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Groups Cardinality 4 INTEGER 10 10 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Groups Description 12 VARCHAR 255 255 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Groups FullName 12 VARCHAR 2048 2048 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Groups IsMaterialized 5 SMALLINT 0 0 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Groups IsPhysical 5 SMALLINT 1 1 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Groups IsSystem 5 SMALLINT 1 1 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Groups ModelName 12 VARCHAR 255 255 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Groups Name 12 VARCHAR 255 255 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Groups NameInSource 12 VARCHAR 255 255 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Groups SupportsUpdates 5 SMALLINT 1 1 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Groups Type 12 VARCHAR 20 20 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Groups UID 12 VARCHAR 50 50 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Groups UpperName 12 VARCHAR 255 255 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System KeyElements GroupFullName 12 VARCHAR 2048 2048 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System KeyElements GroupName 12 VARCHAR 255 255 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System KeyElements GroupUpperName 12 VARCHAR 255 255 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System KeyElements KeyName 12 VARCHAR 255 255 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System KeyElements KeyType 12 VARCHAR 20 20 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System KeyElements ModelName 12 VARCHAR 255 255 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System KeyElements Name 12 VARCHAR 255 255 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System KeyElements Position 4 INTEGER 10 10 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System KeyElements RefKeyUID 12 VARCHAR 50 50 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System KeyElements UID 12 VARCHAR 50 50 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System KeyProperties GroupFullName 12 VARCHAR 2048 2048 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System KeyProperties GroupName 12 VARCHAR 255 255 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System KeyProperties GroupUpperName 12 VARCHAR 255 255 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System KeyProperties KeyName 12 VARCHAR 255 0 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System KeyProperties ModelName 12 VARCHAR 255 255 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System KeyProperties Name 12 VARCHAR 255 0 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System KeyProperties UID 12 VARCHAR 50 50 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System KeyProperties Value 12 VARCHAR 255 0 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Keys Description 12 VARCHAR 255 255 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Keys GroupFullName 12 VARCHAR 2048 2048 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Keys GroupName 12 VARCHAR 255 255 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Keys GroupUpperName 12 VARCHAR 255 255 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Keys IsIndexed 5 SMALLINT 1 1 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Keys ModelName 12 VARCHAR 255 255 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Keys Name 12 VARCHAR 255 255 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Keys NameInSource 12 VARCHAR 255 255 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Keys RefKeyUID 12 VARCHAR 50 50 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Keys Type 12 VARCHAR 20 20 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Keys UID 12 VARCHAR 50 50 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System ModelProperties ModelName 12 VARCHAR 255 255 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System ModelProperties Name 12 VARCHAR 255 255 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System ModelProperties UID 12 VARCHAR 50 50 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System ModelProperties Value 12 VARCHAR 255 255 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Models Description 12 VARCHAR 255 255 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Models IsPhysical 5 SMALLINT 1 1 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Models MaxSetSize 4 INTEGER 10 10 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Models Name 12 VARCHAR 255 255 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Models PrimaryMetamodelURI 12 VARCHAR 255 255 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Models SupportsDistinct 5 SMALLINT 1 1 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Models SupportsJoin 5 SMALLINT 1 1 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Models SupportsOrderBy 5 SMALLINT 1 1 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Models SupportsOuterJoin 5 SMALLINT 1 1 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Models SupportsWhereAll 5 SMALLINT 1 1 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Models UID 12 VARCHAR 50 50 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System ProcedureParams DataType 12 VARCHAR 25 25 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System ProcedureParams ModelName 12 VARCHAR 255 255 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System ProcedureParams Name 12 VARCHAR 255 255 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System ProcedureParams NullType 12 VARCHAR 10 10 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System ProcedureParams Optional 5 SMALLINT 1 1 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System ProcedureParams Position 4 INTEGER 10 10 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System ProcedureParams Precision 4 INTEGER 10 10 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System ProcedureParams ProcedureName 12 VARCHAR 255 255 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System ProcedureParams Radix 4 INTEGER 10 10 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System ProcedureParams Scale 4 INTEGER 10 10 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System ProcedureParams Type 12 VARCHAR 100 100 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System ProcedureParams TypeLength 4 INTEGER 10 10 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System ProcedureProperties ModelName 12 VARCHAR 255 255 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System ProcedureProperties Name 12 VARCHAR 255 255 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System ProcedureProperties ProcedureName 12 VARCHAR 255 255 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System ProcedureProperties UID 12 VARCHAR 50 50 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System ProcedureProperties Value 12 VARCHAR 255 255 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Procedures Description 12 VARCHAR 255 225 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Procedures FullName 12 VARCHAR 2048 2048 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Procedures ModelName 12 VARCHAR 255 255 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Procedures ModelUID 12 VARCHAR 50 50 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Procedures Name 12 VARCHAR 255 255 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Procedures NameInSource 12 VARCHAR 255 255 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Procedures ReturnsResults 5 SMALLINT 1 1 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System Procedures UID 12 VARCHAR 50 50 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System VirtualDatabases Name 12 VARCHAR 255 255 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System VirtualDatabases Version 12 VARCHAR 50 50 0 10 0 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/JDBC ReferenceKeyColumns DEFERRABILITY 4 INTEGER 10 10 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/JDBC ReferenceKeyColumns DELETE_RULE 4 INTEGER 10 10 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/JDBC ReferenceKeyColumns FKCOLUMN_NAME 12 VARCHAR 255 255 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/JDBC ReferenceKeyColumns FKTABLE_CAT 12 VARCHAR 1 1 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/JDBC ReferenceKeyColumns FKTABLE_NAME 12 VARCHAR 255 255 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/JDBC ReferenceKeyColumns FKTABLE_SCHEM 12 VARCHAR 255 255 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/JDBC ReferenceKeyColumns FK_NAME 12 VARCHAR 255 255 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/JDBC ReferenceKeyColumns KEY_SEQ 5 SMALLINT 5 5 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/JDBC ReferenceKeyColumns PKCOLUMN_NAME 12 VARCHAR 255 255 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/JDBC ReferenceKeyColumns PKTABLE_CAT 12 VARCHAR 1 1 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/JDBC ReferenceKeyColumns PKTABLE_NAME 12 VARCHAR 255 255 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/JDBC ReferenceKeyColumns PKTABLE_SCHEM 12 VARCHAR 255 255 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/JDBC ReferenceKeyColumns PK_NAME 12 VARCHAR 255 255 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/JDBC ReferenceKeyColumns UPDATE_RULE 4 INTEGER 10 10 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_COLUMNS COLUMN_NAME 12 VARCHAR 128 128 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_COLUMNS DATA_TYPE 5 SMALLINT 5 5 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_COLUMNS OA_COLUMNTYPE 5 SMALLINT 5 5 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_COLUMNS OA_LENGTH 4 INTEGER 10 10 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_COLUMNS OA_NULLABLE 5 SMALLINT 5 5 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_COLUMNS OA_PRECISION 4 INTEGER 10 10 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_COLUMNS OA_RADIX 4 INTEGER 10 10 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_COLUMNS OA_SCALE 4 INTEGER 10 10 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_COLUMNS OA_SCOPE 5 SMALLINT 5 5 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_COLUMNS PSEUDO_COLUMN 5 SMALLINT 5 5 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_COLUMNS REMARKS 12 VARCHAR 254 254 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_COLUMNS TABLE_NAME 12 VARCHAR 128 128 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_COLUMNS TABLE_OWNER 12 VARCHAR 128 128 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_COLUMNS TABLE_QUALIFIER 12 VARCHAR 128 128 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_COLUMNS TYPE_NAME 12 VARCHAR 100 100 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_FKEYS DELETE_RULE 5 SMALLINT 5 5 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_FKEYS FKCOLUMN_NAME 12 VARCHAR 128 128 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_FKEYS FKTABLE_NAME 12 VARCHAR 128 128 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_FKEYS FKTABLE_OWNER 12 VARCHAR 128 128 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_FKEYS FKTABLE_QUALIFIER 12 VARCHAR 128 128 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_FKEYS FK_NAME 12 VARCHAR 128 128 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_FKEYS KEY_SEQ 5 SMALLINT 5 5 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_FKEYS PKCOLUMN_NAME 12 VARCHAR 128 128 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_FKEYS PKTABLE_NAME 12 VARCHAR 128 128 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_FKEYS PKTABLE_OWNER 12 VARCHAR 128 128 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_FKEYS PKTABLE_QUALIFIER 12 VARCHAR 128 128 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_FKEYS PK_NAME 12 VARCHAR 128 128 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_FKEYS UPDATE_RULE 5 SMALLINT 5 5 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_PROC NUM_INPUT_PARAMS 4 INTEGER 10 10 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_PROC NUM_OUTPUT_PARAMS 4 INTEGER 10 10 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_PROC NUM_RESULT_SETS 4 INTEGER 10 10 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_PROC OA_NAME 12 VARCHAR 128 128 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_PROC OA_OWNER 12 VARCHAR 128 128 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_PROC OA_QUALIFIER 12 VARCHAR 128 128 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_PROC PROCEDURE_TYPE 5 SMALLINT 5 5 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_PROC REMARKS 12 VARCHAR 254 254 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_PROCCOLUMNS COLUMN_NAME 12 VARCHAR 128 128 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_PROCCOLUMNS DATA_TYPE 5 SMALLINT 5 5 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_PROCCOLUMNS OA_COLUMNTYPE 5 SMALLINT 5 5 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_PROCCOLUMNS OA_LENGTH 4 INTEGER 10 10 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_PROCCOLUMNS OA_NAME 12 VARCHAR 128 128 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_PROCCOLUMNS OA_NULLABLE 5 SMALLINT 5 5 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_PROCCOLUMNS OA_OWNER 12 VARCHAR 128 128 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_PROCCOLUMNS OA_PRECISION 4 INTEGER 10 10 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_PROCCOLUMNS OA_QUALIFIER 12 VARCHAR 128 128 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_PROCCOLUMNS OA_RADIX 4 INTEGER 10 10 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_PROCCOLUMNS OA_SCALE 4 INTEGER 10 10 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_PROCCOLUMNS OA_SCOPE 5 SMALLINT 5 5 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_PROCCOLUMNS REMARKS 12 VARCHAR 254 254 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_PROCCOLUMNS TYPE_NAME 12 VARCHAR 100 100 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_STATISTICS COLUMN_NAME 12 VARCHAR 128 128 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_STATISTICS FILTER_CONDITIONS 12 VARCHAR 128 128 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_STATISTICS INDEX_NAME 12 VARCHAR 128 128 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_STATISTICS INDEX_QUALIFIER 12 VARCHAR 128 128 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_STATISTICS NON_UNIQUE 5 SMALLINT 5 5 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_STATISTICS OA_CARDINALITY 12 VARCHAR 10 10 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_STATISTICS OA_COLLATION 12 VARCHAR 128 128 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_STATISTICS OA_PAGES 12 VARCHAR 10 10 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_STATISTICS OA_TYPE 5 SMALLINT 5 5 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_STATISTICS SEQ_IN_INDEX 5 SMALLINT 5 5 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_STATISTICS TABLE_NAME 12 VARCHAR 128 128 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_STATISTICS TABLE_OWNER 12 VARCHAR 128 128 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_STATISTICS TABLE_QUALIFIER 12 VARCHAR 128 128 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_TABLES REMARKS 12 VARCHAR 254 254 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_TABLES TABLE_NAME 12 VARCHAR 128 128 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_TABLES TABLE_OWNER 12 VARCHAR 128 128 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_TABLES TABLE_QUALIFIER 12 VARCHAR 128 128 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_TABLES TABLE_TYPE 12 VARCHAR 128 128 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_TYPES AUTO_INCREMENT 5 SMALLINT 5 5 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_TYPES CASE_SENSITIVE 5 SMALLINT 5 5 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_TYPES CREATE_PARAMS 12 VARCHAR 10 10 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_TYPES DATA_TYPE 5 SMALLINT 5 5 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_TYPES LITERAL_PREFIX 12 VARCHAR 10 10 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_TYPES LITERAL_SUFFIX 12 VARCHAR 10 10 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_TYPES LOCAL_TYPE_NAME 12 VARCHAR 128 128 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_TYPES MAXIMUM_SCALE 5 SMALLINT 5 5 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_TYPES MINIMUM_SCALE 5 SMALLINT 5 5 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_TYPES OA_MONEY 5 SMALLINT 5 5 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_TYPES OA_NULLABLE 5 SMALLINT 5 5 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_TYPES OA_PRECISION 4 INTEGER 10 10 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_TYPES OA_SEARCHABLE 5 SMALLINT 5 5 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_TYPES TYPE_NAME 12 VARCHAR 100 100 0 10 1 0 0 0 null", //$NON-NLS-1$
- "PartsSupplier System/ODBC OA_TYPES UNSIGNED_ATTRIB 5 SMALLINT 5 5 0 10 1 0 0 0 null", //$NON-NLS-1$
-
- };
-
- executeAndAssertResults(
- "select* FROM SYS.ODBC.OA_COLUMNS ORDER BY TABLE_QUALIFIER, TABLE_OWNER, TABLE_NAME, COLUMN_NAME", //$NON-NLS-1$
- expected);
- }
-
- @Ignore("ODBC support to be readded")
- @Test public void testOATYPESAll() {
- String[] expected = {
- "TYPE_NAME[string] DATA_TYPE[short] OA_PRECISION[integer] LITERAL_PREFIX[string] LITERAL_SUFFIX[string] CREATE_PARAMS[string] OA_NULLABLE[short] CASE_SENSITIVE[short] OA_SEARCHABLE[short] UNSIGNED_ATTRIB[short] OA_MONEY[short] AUTO_INCREMENT[short] MINIMUM_SCALE[short] MAXIMUM_SCALE[short] LOCAL_TYPE_NAME[string]", //$NON-NLS-1$
- "CHAR 1 2147483647 ' ' null 1 1 3 0 0 0 null null CHAR", //$NON-NLS-1$
- "DATE 9 10 {d ' '} null 1 0 2 0 0 0 null null DATE", //$NON-NLS-1$
- "DOUBLE 8 15 null null null 1 0 2 0 0 0 null null DOUBLE", //$NON-NLS-1$
- "FLOAT 6 15 null null null 1 0 2 0 0 0 null null FLOAT", //$NON-NLS-1$
- "INTEGER 4 10 null null null 1 0 2 0 0 0 null null INTEGER", //$NON-NLS-1$
- "LONGVARBINARY -4 2147483647 0x null null 1 0 0 0 0 0 null null null", //$NON-NLS-1$
- "NUMERIC 2 32 null null null 1 0 2 0 0 0 0 32 NUMERIC", //$NON-NLS-1$
- "REAL 7 7 null null null 1 0 2 0 0 0 null null REAL", //$NON-NLS-1$
- "SMALLINT 5 5 null null null 1 0 2 0 0 0 null null SMALLINT", //$NON-NLS-1$
- "TIME 10 8 {t ' '} null 1 0 2 0 0 0 null null TIME", //$NON-NLS-1$
- "TIMESTAMP 11 19 {ts ' '} null 1 0 2 0 0 0 null null TIMESTAMP", //$NON-NLS-1$
- "VARCHAR 12 2147483647 ' ' null 1 1 3 0 0 0 null null VARCHAR", }; //$NON-NLS-1$
- executeAndAssertResults(
- "select* FROM SYS.ODBC.OA_TYPES ORDER BY TYPE_NAME", //$NON-NLS-1$
- expected);
-
- }
-
- @Ignore("ODBC support to be readded")
- @Test public void testOAFKEYS() {
- String[] expected = {
- "PKTABLE_QUALIFIER[string] PKTABLE_OWNER[string] PKTABLE_NAME[string] PKCOLUMN_NAME[string] FKTABLE_QUALIFIER[string] FKTABLE_OWNER[string] FKTABLE_NAME[string] FKCOLUMN_NAME[string] KEY_SEQ[short] UPDATE_RULE[short] DELETE_RULE[short] FK_NAME[string] PK_NAME[string]", //$NON-NLS-1$
- "PartsSupplier PartsSupplier/PARTSSUPPLIER PARTS PART_ID PartsSupplier PartsSupplier/PARTSSUPPLIER null null 1 null null null PK_PARTS", //$NON-NLS-1$
- "PartsSupplier PartsSupplier/PARTSSUPPLIER PARTS PART_ID PartsSupplier PartsSupplier/PARTSSUPPLIER SUPPLIER_PARTS PART_ID 1 null null FK_SPLIER_PRTS_PRTS PK_PARTS", //$NON-NLS-1$
- "PartsSupplier PartsSupplier/PARTSSUPPLIER SHIP_VIA SHIPPER_ID PartsSupplier PartsSupplier/PARTSSUPPLIER null null 1 null null null PK_SHIP_VIA", //$NON-NLS-1$
- "PartsSupplier PartsSupplier/PARTSSUPPLIER STATUS STATUS_ID PartsSupplier PartsSupplier/PARTSSUPPLIER null null 1 null null null PK_STATUS", //$NON-NLS-1$
- "PartsSupplier PartsSupplier/PARTSSUPPLIER STATUS STATUS_ID PartsSupplier PartsSupplier/PARTSSUPPLIER SUPPLIER SUPPLIER_STATUS 1 null null FK_SPLIER_STATS PK_STATUS", //$NON-NLS-1$
- "PartsSupplier PartsSupplier/PARTSSUPPLIER SUPPLIER SUPPLIER_ID PartsSupplier PartsSupplier/PARTSSUPPLIER null null 1 null null null PK_SUPPLIER", //$NON-NLS-1$
- "PartsSupplier PartsSupplier/PARTSSUPPLIER SUPPLIER SUPPLIER_ID PartsSupplier PartsSupplier/PARTSSUPPLIER SUPPLIER_PARTS SUPPLIER_ID 1 null null FK_SPLY_PRTS_SPLY PK_SUPPLIER", //$NON-NLS-1$
- "PartsSupplier PartsSupplier/PARTSSUPPLIER SUPPLIER_PARTS SUPPLIER_ID PartsSupplier PartsSupplier/PARTSSUPPLIER null null 1 null null null PK_SUPPLIER_PARTS", //$NON-NLS-1$
- "PartsSupplier PartsSupplier/PARTSSUPPLIER SUPPLIER_PARTS PART_ID PartsSupplier PartsSupplier/PARTSSUPPLIER null null 2 null null null PK_SUPPLIER_PARTS", //$NON-NLS-1$
-
- };
- executeAndAssertResults(
- "select* FROM SYS.ODBC.OA_FKEYS ORDER BY PK_NAME, KEY_SEQ", //$NON-NLS-1$
- expected);
-
- }
-
- @Ignore("ODBC support to be readded")
- @Test public void testOASTATISTICS() {
- String[] expected = {
- "TABLE_QUALIFIER[string] TABLE_OWNER[string] TABLE_NAME[string] NON_UNIQUE[short] INDEX_QUALIFIER[string] INDEX_NAME[string] OA_TYPE[short] SEQ_IN_INDEX[short] COLUMN_NAME[string] OA_COLLATION[string] OA_CARDINALITY[string] OA_PAGES[string] FILTER_CONDITIONS[string]", //$NON-NLS-1$
- "PartsSupplier PartsSupplier/PARTSSUPPLIER PARTS 0 PK_PARTS 3 1 PART_ID null null null", //$NON-NLS-1$
- "PartsSupplier PartsSupplier/PARTSSUPPLIER SHIP_VIA 0 PK_SHIP_VIA 3 1 SHIPPER_ID null null null ", //$NON-NLS-1$
- "PartsSupplier PartsSupplier/PARTSSUPPLIER STATUS 0 PK_STATUS 3 1 STATUS_ID null null null ", //$NON-NLS-1$
- "PartsSupplier PartsSupplier/PARTSSUPPLIER SUPPLIER 1 FK_SPLIER_STATS 3 1 SUPPLIER_STATUS null null null ", //$NON-NLS-1$
- "PartsSupplier PartsSupplier/PARTSSUPPLIER SUPPLIER 0 PK_SUPPLIER 3 1 SUPPLIER_ID null null null ", //$NON-NLS-1$
- "PartsSupplier PartsSupplier/PARTSSUPPLIER SUPPLIER_PARTS 1 FK_SPLIER_PRTS_PRTS 3 1 PART_ID null null null ", //$NON-NLS-1$
- "PartsSupplier PartsSupplier/PARTSSUPPLIER SUPPLIER_PARTS 1 FK_SPLY_PRTS_SPLY 3 1 SUPPLIER_ID null null null ", //$NON-NLS-1$
- "PartsSupplier PartsSupplier/PARTSSUPPLIER SUPPLIER_PARTS 0 PK_SUPPLIER_PARTS 3 2 PART_ID null null null ", //$NON-NLS-1$
- "PartsSupplier PartsSupplier/PARTSSUPPLIER SUPPLIER_PARTS 0 PK_SUPPLIER_PARTS 3 1 SUPPLIER_ID null null null ", //$NON-NLS-1$
-
- };
- executeAndAssertResults("select* FROM SYS.ODBC.OA_STATISTICS order by TABLE_NAME, INDEX_NAME, COLUMN_NAME", //$NON-NLS-1$
- expected);
-
- }
-
@Test public void testDefect12064() {
String[] expected = {
"KeyName[string] RefKeyUID[string] ", //$NON-NLS-1$
Modified: trunk/test-integration/common/src/test/resources/TestMMDatabaseMetaData/testGetColumns.expected
===================================================================
--- trunk/test-integration/common/src/test/resources/TestMMDatabaseMetaData/testGetColumns.expected 2010-07-15 20:06:02 UTC (rev 2353)
+++ trunk/test-integration/common/src/test/resources/TestMMDatabaseMetaData/testGetColumns.expected 2010-07-16 19:10:00 UTC (rev 2354)
@@ -186,6 +186,7 @@
QT_Ora9DS SYS Columns Radix 4 integer 10 <null> 0 10 0 <null> <null> <null> <null> 10 26 YES <null> <null> <null> !
<null> NO
QT_Ora9DS SYS Columns UID 12 string 50 <null> 0 10 0 <null> <null> <null> <null> 50 27 YES <null> <null> <null> !
<null> NO
QT_Ora9DS SYS Columns Description 12 string 255 <null> 0 10 1 <null> <null> <null> <null> 255 28 NO <null> <null> <null> !
<null> NO
+QT_Ora9DS SYS Columns OID 4 integer 10 <null> 0 10 0 <null> <null> <null> <null> 10 29 YES <null> <null> <null> !
<null> NO
QT_Ora9DS SYS DataTypes Name 12 string 100 <null> 0 10 0 <null> <null> <null> <null> 100 1 YES <null> <null> <null> !
<null> NO
QT_Ora9DS SYS DataTypes IsStandard -7 boolean 1 <null> 0 10 1 <null> <null> <null> <null> 1 2 NO <null> <null> <null> !
<null> NO
QT_Ora9DS SYS DataTypes IsPhysical -7 boolean 1 <null> 0 10 1 <null> <null> <null> <null> 1 3 NO <null> <null> <null> !
<null> NO
@@ -204,6 +205,7 @@
QT_Ora9DS SYS DataTypes RuntimeType 12 string 64 <null> 0 10 1 <null> <null> <null> <null> 64 16 NO <null> <null> <null> !
<null> NO
QT_Ora9DS SYS DataTypes BaseType 12 string 64 <null> 0 10 1 <null> <null> <null> <null> 64 17 NO <null> <null> <null> !
<null> NO
QT_Ora9DS SYS DataTypes Description 12 string 255 <null> 0 10 1 <null> <null> <null> <null> 255 18 NO <null> <null> <null> !
<null> NO
+QT_Ora9DS SYS DataTypes OID 4 integer 10 <null> 0 10 0 <null> <null> <null> <null> 10 19 YES <null> <null> <null> !
<null> NO
QT_Ora9DS BQT1 HugeA IntKey 4 integer 22 <null> 0 10 0 <null> <null> <null> <null> 0 1 YES <null> <null> <null> !
<null> NO
QT_Ora9DS BQT2 HugeA IntKey 4 integer 22 <null> 0 10 0 <null> <null> <null> <null> 0 1 YES <null> <null> <null> !
<null> NO
QT_Ora9DS BQT1 HugeA StringKey 12 string 10 <null> 0 10 0 <null> <null> <null> <null> 10 2 YES <null> <null> <null> !
<null> NO
@@ -281,6 +283,7 @@
QT_Ora9DS SYS KeyColumns RefKeyUID 12 string 50 <null> 0 10 1 <null> <null> <null> <null> 50 7 NO <null> <null> <null> !
<null> NO
QT_Ora9DS SYS KeyColumns UID 12 string 50 <null> 0 10 0 <null> <null> <null> <null> 50 8 YES <null> <null> <null> !
<null> NO
QT_Ora9DS SYS KeyColumns Position 4 integer 10 <null> 0 10 1 <null> <null> <null> <null> 10 9 NO <null> <null> <null> !
<null> NO
+QT_Ora9DS SYS KeyColumns OID 4 integer 10 <null> 0 10 0 <null> <null> <null> <null> 10 10 YES <null> <null> <null> !
<null> NO
QT_Ora9DS SYS Keys VDBName 12 string 255 <null> 0 10 0 <null> <null> <null> <null> 255 1 YES <null> <null> <null> !
<null> NO
QT_Ora9DS SYS Keys SchemaName 12 string 255 <null> 0 10 1 <null> <null> <null> <null> 255 2 NO <null> <null> <null> !
<null> NO
QT_Ora9DS SYS Keys TableName 12 string 2048 <null> 0 10 0 <null> <null> <null> <null> 2048 3 YES <null> <null> <null> !
<null> NO
@@ -291,6 +294,7 @@
QT_Ora9DS SYS Keys IsIndexed -7 boolean 1 <null> 0 10 0 <null> <null> <null> <null> 1 8 YES <null> <null> <null> !
<null> NO
QT_Ora9DS SYS Keys RefKeyUID 12 string 50 <null> 0 10 1 <null> <null> <null> <null> 50 9 NO <null> <null> <null> !
<null> NO
QT_Ora9DS SYS Keys UID 12 string 50 <null> 0 10 0 <null> <null> <null> <null> 50 10 YES <null> <null> <null> !
<null> NO
+QT_Ora9DS SYS Keys OID 4 integer 10 <null> 0 10 0 <null> <null> <null> <null> 10 11 YES <null> <null> <null> !
<null> NO
QT_Ora9DS BQT1 LargeA IntKey 4 integer 22 <null> 0 10 0 <null> <null> <null> <null> 0 1 YES <null> <null> <null> !
<null> NO
QT_Ora9DS BQT2 LargeA IntKey 4 integer 22 <null> 0 10 0 <null> <null> <null> <null> 0 1 YES <null> <null> <null> !
<null> NO
QT_Ora9DS BQT1 LargeA StringKey 12 string 10 <null> 0 10 0 <null> <null> <null> <null> 10 2 YES <null> <null> <null> !
<null> NO
@@ -442,6 +446,7 @@
QT_Ora9DS SYS ProcedureParams NullType 12 string 10 <null> 0 10 0 <null> <null> <null> <null> 10 13 YES <null> <null> <null> !
<null> NO
QT_Ora9DS SYS ProcedureParams UID 12 string 50 <null> 0 10 1 <null> <null> <null> <null> 50 14 NO <null> <null> <null> !
<null> NO
QT_Ora9DS SYS ProcedureParams Description 12 string 255 <null> 0 10 1 <null> <null> <null> <null> 255 15 NO <null> <null> <null> !
<null> NO
+QT_Ora9DS SYS ProcedureParams OID 4 integer 10 <null> 0 10 0 <null> <null> <null> <null> 10 16 YES <null> <null> <null> !
<null> NO
QT_Ora9DS SYS Procedures VDBName 12 string 255 <null> 0 10 0 <null> <null> <null> <null> 255 1 YES <null> <null> <null> !
<null> NO
QT_Ora9DS SYS Procedures SchemaName 12 string 255 <null> 0 10 1 <null> <null> <null> <null> 255 2 NO <null> <null> <null> !
<null> NO
QT_Ora9DS SYS Procedures Name 12 string 255 <null> 0 10 0 <null> <null> <null> <null> 255 3 YES <null> <null> <null> !
<null> NO
@@ -449,9 +454,11 @@
QT_Ora9DS SYS Procedures ReturnsResults -7 boolean 1 <null> 0 10 0 <null> <null> <null> <null> 1 5 YES <null> <null> <null> !
<null> NO
QT_Ora9DS SYS Procedures UID 12 string 50 <null> 0 10 0 <null> <null> <null> <null> 50 6 YES <null> <null> <null> !
<null> NO
QT_Ora9DS SYS Procedures Description 12 string 255 <null> 0 10 1 <null> <null> <null> <null> 255 7 NO <null> <null> <null> !
<null> NO
+QT_Ora9DS SYS Procedures OID 4 integer 10 <null> 0 10 0 <null> <null> <null> <null> 10 8 YES <null> <null> <null> !
<null> NO
QT_Ora9DS SYS Properties Name 12 string 255 <null> 0 10 0 <null> <null> <null> <null> 255 1 YES <null> <null> <null> !
<null> NO
QT_Ora9DS SYS Properties Value 12 string 255 <null> 0 10 0 <null> <null> <null> <null> 255 2 YES <null> <null> <null> !
<null> NO
QT_Ora9DS SYS Properties UID 12 string 50 <null> 0 10 0 <null> <null> <null> <null> 50 3 YES <null> <null> <null> !
<null> NO
+QT_Ora9DS SYS Properties OID 4 integer 10 <null> 0 10 0 <null> <null> <null> <null> 10 4 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 NO <null> <null> <null> !
<null> NO
QT_Ora9DS SYS ReferenceKeyColumns PKTABLE_SCHEM 12 string 255 <null> 0 10 1 <null> <null> <null> <null> 255 2 NO <null> <null> <null> !
<null> NO
QT_Ora9DS SYS ReferenceKeyColumns PKTABLE_NAME 12 string 255 <null> 0 10 1 <null> <null> <null> <null> 255 3 NO <null> <null> <null> !
<null> NO
@@ -472,6 +479,7 @@
QT_Ora9DS SYS Schemas UID 12 string 50 <null> 0 10 0 <null> <null> <null> <null> 50 4 YES <null> <null> <null> !
<null> NO
QT_Ora9DS SYS Schemas Description 12 string 255 <null> 0 10 1 <null> <null> <null> <null> 255 5 NO <null> <null> <null> !
<null> NO
QT_Ora9DS SYS Schemas PrimaryMetamodelURI 12 string 255 <null> 0 10 0 <null> <null> <null> <null> 255 6 YES <null> <null> <null> !
<null> NO
+QT_Ora9DS SYS Schemas OID 4 integer 10 <null> 0 10 0 <null> <null> <null> <null> 10 7 YES <null> <null> <null> !
<null> NO
QT_Ora9DS BQT1 SmallA IntKey 4 integer 22 <null> 0 10 0 <null> <null> <null> <null> 0 1 YES <null> <null> <null> !
<null> NO
QT_Ora9DS BQT2 SmallA IntKey 4 integer 22 <null> 0 10 0 <null> <null> <null> <null> 0 1 YES <null> <null> <null> !
<null> NO
QT_Ora9DS BQT1 SmallA StringKey 12 string 10 <null> 0 10 0 <null> <null> <null> <null> 10 2 YES <null> <null> <null> !
<null> NO
@@ -552,6 +560,7 @@
QT_Ora9DS SYS Tables Description 12 string 255 <null> 0 10 1 <null> <null> <null> <null> 255 10 NO <null> <null> <null> !
<null> NO
QT_Ora9DS SYS Tables IsSystem -7 boolean 1 <null> 0 10 1 <null> <null> <null> <null> 1 11 NO <null> <null> <null> !
<null> NO
QT_Ora9DS SYS Tables IsMaterialized -7 boolean 1 <null> 0 10 0 <null> <null> <null> <null> 0 12 YES <null> <null> <null> !
<null> NO
+QT_Ora9DS SYS Tables OID 4 integer 10 <null> 0 10 0 <null> <null> <null> <null> 10 13 YES <null> <null> <null> !
<null> NO
QT_Ora9DS VQT Union.U1 IntKey 4 integer 22 <null> 0 10 0 <null> <null> <null> <null> 0 1 YES <null> <null> <null> !
<null> NO
QT_Ora9DS VQT Union.U1 StringKey 12 string 10 <null> 0 10 0 <null> <null> <null> <null> 10 2 YES <null> <null> <null> !
<null> NO
QT_Ora9DS VQT Union.U1 IntNum 4 integer 22 <null> 0 10 1 <null> <null> <null> <null> 0 3 NO <null> <null> <null> !
<null> NO
@@ -754,6 +763,81 @@
QT_Ora9DS XQTDoc nillableTestDocument nillableTest 12 string 4000 <null> 0 0 1 <null> <null> <null> <null> 0 0 NO <null> <null> <null> !
<null> NO
QT_Ora9DS XQTDoc nillableTestDocument.MappingClasses.wrapper key 2 biginteger 19 <null> 0 0 1 <null> <null> <null> <null> 0 1 NO <null> <null> <null> !
<null> NO
QT_Ora9DS XQTDoc nillableTestDocument.MappingClasses.wrapper nillableField 2 biginteger 19 <null> 0 0 1 <null> <null> <null> <null> 0 2 NO <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_am oid 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 1 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_am amname 12 string 4000 <null> 0 0 2 <null> <null> <null> <null> 0 2 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_attrdef oid 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 1 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_attrdef adsrc 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 2 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_attrdef adrelid 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 3 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_attrdef adnum 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 4 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_attribute oid 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 1 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_attribute attrelid 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 2 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_attribute attname 12 string 4000 <null> 0 0 2 <null> <null> <null> <null> 0 3 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_attribute atttypid 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 4 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_attribute attlen 5 short 5 <null> 0 0 2 <null> <null> <null> <null> 0 5 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_attribute attnum 5 short 5 <null> 0 0 2 <null> <null> <null> <null> 0 6 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_attribute atttypmod 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 7 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_attribute attnotnull -7 boolean 1 <null> 0 0 2 <null> <null> <null> <null> 0 8 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_attribute attisdropped -7 boolean 1 <null> 0 0 2 <null> <null> <null> <null> 0 9 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_attribute atthasdef -7 boolean 1 <null> 0 0 2 <null> <null> <null> <null> 0 10 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_class oid 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 1 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_class relname 12 string 4000 <null> 0 0 2 <null> <null> <null> <null> 0 2 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_class relnamespace 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 3 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_class relkind 1 char 1 <null> 0 0 2 <null> <null> <null> <null> 0 4 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_class relam 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 5 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_class reltuples 7 float 20 <null> 0 0 2 <null> <null> <null> <null> 0 6 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_class relpages 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 7 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_class relhasrules -7 boolean 1 <null> 0 0 2 <null> <null> <null> <null> 0 8 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_class relhasoids 12 string 4000 <null> 0 0 2 <null> <null> <null> <null> 0 9 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_database oid 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 1 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_database datname 12 string 4000 <null> 0 0 2 <null> <null> <null> <null> 0 2 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_database encoding 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 3 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_database datlastsysoid 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 4 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_database datallowconn 1 char 1 <null> 0 0 2 <null> <null> <null> <null> 0 5 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_database datconfig 2000 object 2147483647 <null> 0 0 2 <null> <null> <null> <null> 0 6 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_database datacl 2000 object 2147483647 <null> 0 0 2 <null> <null> <null> <null> 0 7 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_database datdba 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 8 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_database dattablespace 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 9 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_index oid 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 1 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_index indexrelid 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 2 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_index indrelid 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 3 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_index indisclustered -7 boolean 1 <null> 0 0 2 <null> <null> <null> <null> 0 4 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_index indisunique -7 boolean 1 <null> 0 0 2 <null> <null> <null> <null> 0 5 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_index indisprimary -7 boolean 1 <null> 0 0 2 <null> <null> <null> <null> 0 6 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_index indexprs 12 string 4000 <null> 0 0 2 <null> <null> <null> <null> 0 7 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_index indkey 12 string 4000 <null> 0 0 2 <null> <null> <null> <null> 0 8 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_namespace oid 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 1 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_namespace nspname 12 string 4000 <null> 0 0 2 <null> <null> <null> <null> 0 2 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_proc oid 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 1 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_proc proname 12 string 4000 <null> 0 0 2 <null> <null> <null> <null> 0 2 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_proc proretset -7 boolean 1 <null> 0 0 2 <null> <null> <null> <null> 0 3 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_proc prorettype 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 4 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_proc pronargs 5 short 5 <null> 0 0 2 <null> <null> <null> <null> 0 5 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_proc proargtypes 2000 object 2147483647 <null> 0 0 2 <null> <null> <null> <null> 0 6 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_proc proargnames 2000 object 2147483647 <null> 0 0 2 <null> <null> <null> <null> 0 7 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_proc proargmodes 2000 object 2147483647 <null> 0 0 2 <null> <null> <null> <null> 0 8 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_proc proallargtypes 2000 object 2147483647 <null> 0 0 2 <null> <null> <null> <null> 0 9 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_proc pronamespace 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 10 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_trigger oid 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 1 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_trigger tgconstrrelid 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 2 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_trigger tgfoid 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 3 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_trigger tgargs 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 4 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_trigger tgnargs 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 5 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_trigger tgdeferrable -7 boolean 1 <null> 0 0 2 <null> <null> <null> <null> 0 6 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_trigger tginitdeferred -7 boolean 1 <null> 0 0 2 <null> <null> <null> <null> 0 7 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_trigger tgconstrname 12 string 4000 <null> 0 0 2 <null> <null> <null> <null> 0 8 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_trigger tgrelid 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 9 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_type oid 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 1 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_type typname 12 string 4000 <null> 0 0 2 <null> <null> <null> <null> 0 2 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_type typnamespace 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 3 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_type typlen 5 short 5 <null> 0 0 2 <null> <null> <null> <null> 0 4 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_type typtype 1 char 1 <null> 0 0 2 <null> <null> <null> <null> 0 5 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_type typbasetype 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 6 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_type typtypmod 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 7 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_type typrelid 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 8 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_user oid 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 1 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_user usename 12 string 4000 <null> 0 0 2 <null> <null> <null> <null> 0 2 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_user usecreatedb -7 boolean 1 <null> 0 0 2 <null> <null> <null> <null> 0 3 <null> <null> <null> !
<null> NO
+QT_Ora9DS pg_catalog pg_user usesuper -7 boolean 1 <null> 0 0 2 <null> <null> <null> <null> 0 4 <null> <null> <null> !
<null> NO
QT_Ora9DS XQTNestedDoc testBoundTempTable testSimple.recursiveRoot.data 12 string 4000 <null> 0 0 1 <null> <null> <null> <null> 0 0 NO <null> <null> <null> !
<null> NO
QT_Ora9DS XQTNestedDoc testBoundTempTable testSimple.recursiveRoot.key 12 string 4000 <null> 0 0 1 <null> <null> <null> <null> 0 0 NO <null> <null> <null> !
<null> NO
QT_Ora9DS XQTNestedDoc testBoundTempTable testSimple.recursiveRoot.nextKey 12 string 4000 <null> 0 0 1 <null> <null> <null> <null> 0 0 NO <null> <null> <null> !
<null> NO
@@ -973,7 +1057,7 @@
QT_Ora9DS XQT xqtFullData BigIntegerValue 2 biginteger 19 <null> 0 10 1 <null> <null> <null> <null> 28 15 NO <null> <null> <null> !
<null> NO
QT_Ora9DS XQT xqtFullData BigDecimalValue 2 bigdecimal 20 <null> 0 10 1 <null> <null> <null> <null> 126 16 NO <null> <null> <null> !
<null> NO
QT_Ora9DS XQT xqtFullData ObjectValue 2000 object 2048 <null> 0 10 1 <null> <null> <null> <null> 2048 17 NO <null> <null> <null> !
<null> NO
-Row Count : 973
+Row Count : 1057
getColumnName getColumnType getCatalogName getColumnClassName getColumnLabel getColumnTypeName getSchemaName getTableName getColumnDisplaySize getPrecision getScale isAutoIncrement isCaseSensitive isCurrency isDefinitelyWritable isNullable isReadOnly isSearchable isSigned isWritable
TABLE_CAT 12 QT_Ora9DS java.lang.String TABLE_CAT string SYS Columns 255 255 0 false false false false 0 true true false false
TABLE_SCHEM 12 QT_Ora9DS java.lang.String TABLE_SCHEM string SYS Columns 255 255 0 false true false true 1 false true true true
Modified: trunk/test-integration/common/src/test/resources/TestMMDatabaseMetaData/testGetSchemas.expected
===================================================================
--- trunk/test-integration/common/src/test/resources/TestMMDatabaseMetaData/testGetSchemas.expected 2010-07-15 20:06:02 UTC (rev 2353)
+++ trunk/test-integration/common/src/test/resources/TestMMDatabaseMetaData/testGetSchemas.expected 2010-07-16 19:10:00 UTC (rev 2354)
@@ -9,7 +9,8 @@
XQTDoc QT_Ora9DS
XQTNestedDoc QT_Ora9DS
XQTRecursiveDoc QT_Ora9DS
-Row Count : 9
+pg_catalog QT_Ora9DS
+Row Count : 10
getColumnName getColumnType getCatalogName getColumnClassName getColumnLabel getColumnTypeName getSchemaName getTableName getColumnDisplaySize getPrecision getScale isAutoIncrement isCaseSensitive isCurrency isDefinitelyWritable isNullable isReadOnly isSearchable isSigned isWritable
TABLE_SCHEM 12 QT_Ora9DS java.lang.String TABLE_SCHEM string SYS Schemas 255 255 0 false true false true 1 false true true true
TABLE_CATALOG 12 QT_Ora9DS java.lang.String TABLE_CATALOG string SYS Schemas 255 255 0 false true false true 1 false true true true
Modified: trunk/test-integration/common/src/test/resources/TestMMDatabaseMetaData/testGetTables.expected
===================================================================
--- trunk/test-integration/common/src/test/resources/TestMMDatabaseMetaData/testGetTables.expected 2010-07-15 20:06:02 UTC (rev 2353)
+++ trunk/test-integration/common/src/test/resources/TestMMDatabaseMetaData/testGetTables.expected 2010-07-16 19:10:00 UTC (rev 2354)
@@ -29,6 +29,17 @@
QT_Ora9DS SYS Schemas SYSTEM TABLE <null> <null> <null> <null> <null> <null> true
QT_Ora9DS SYS Tables SYSTEM TABLE <null> <null> <null> <null> <null> <null> true
QT_Ora9DS SYS VirtualDatabases SYSTEM TABLE <null> <null> <null> <null> <null> <null> true
+QT_Ora9DS pg_catalog pg_am SYSTEM TABLE <null> <null> <null> <null> <null> <null> false
+QT_Ora9DS pg_catalog pg_attrdef SYSTEM TABLE <null> <null> <null> <null> <null> <null> false
+QT_Ora9DS pg_catalog pg_attribute SYSTEM TABLE <null> <null> <null> <null> <null> <null> false
+QT_Ora9DS pg_catalog pg_class SYSTEM TABLE <null> <null> <null> <null> <null> <null> false
+QT_Ora9DS pg_catalog pg_database SYSTEM TABLE <null> <null> <null> <null> <null> <null> false
+QT_Ora9DS pg_catalog pg_index SYSTEM TABLE <null> <null> <null> <null> <null> <null> false
+QT_Ora9DS pg_catalog pg_namespace SYSTEM TABLE <null> <null> <null> <null> <null> <null> false
+QT_Ora9DS pg_catalog pg_proc SYSTEM TABLE <null> <null> <null> <null> <null> <null> false
+QT_Ora9DS pg_catalog pg_trigger SYSTEM TABLE <null> <null> <null> <null> <null> <null> false
+QT_Ora9DS pg_catalog pg_type SYSTEM TABLE <null> <null> <null> <null> <null> <null> false
+QT_Ora9DS pg_catalog pg_user SYSTEM TABLE <null> <null> <null> <null> <null> <null> false
QT_Ora9DS BQT1 HugeA TABLE <null> <null> <null> <null> <null> <null> true
QT_Ora9DS BQT1 HugeB TABLE <null> <null> <null> <null> <null> <null> true
QT_Ora9DS BQT1 LargeA TABLE <null> <null> <null> <null> <null> <null> true
@@ -121,7 +132,7 @@
QT_Ora9DS XQTNestedDoc testOptimizableTempTable.MappingClasses.moveToRootTempTable XMLSTAGINGTABLE <null> <null> <null> <null> <null> <null> false
QT_Ora9DS XQTNestedDoc testRootTempTable.MappingClasses.TemporaryTable1 XMLSTAGINGTABLE <null> <null> <null> <null> <null> <null> false
QT_Ora9DS XQTRecursiveDoc testSimpleTempTable.MappingClasses.TemporaryTable1 XMLSTAGINGTABLE <null> <null> <null> <null> <null> <null> false
-Row Count : 121
+Row Count : 132
getColumnName getColumnType getCatalogName getColumnClassName getColumnLabel getColumnTypeName getSchemaName getTableName getColumnDisplaySize getPrecision getScale isAutoIncrement isCaseSensitive isCurrency isDefinitelyWritable isNullable isReadOnly isSearchable isSigned isWritable
TABLE_CAT 12 QT_Ora9DS java.lang.String TABLE_CAT string SYS Tables 255 255 0 false true false true 1 false true true true
TABLE_SCHEM 12 QT_Ora9DS java.lang.String TABLE_SCHEM string SYS Tables 255 255 0 false true false true 1 false true true true
Modified: trunk/test-integration/common/src/test/resources/TestMMDatabaseMetaData/testGetTables_allTables.expected
===================================================================
--- trunk/test-integration/common/src/test/resources/TestMMDatabaseMetaData/testGetTables_allTables.expected 2010-07-15 20:06:02 UTC (rev 2353)
+++ trunk/test-integration/common/src/test/resources/TestMMDatabaseMetaData/testGetTables_allTables.expected 2010-07-16 19:10:00 UTC (rev 2354)
@@ -29,6 +29,17 @@
QT_Ora9DS SYS Schemas SYSTEM TABLE <null> <null> <null> <null> <null> <null> true
QT_Ora9DS SYS Tables SYSTEM TABLE <null> <null> <null> <null> <null> <null> true
QT_Ora9DS SYS VirtualDatabases SYSTEM TABLE <null> <null> <null> <null> <null> <null> true
+QT_Ora9DS pg_catalog pg_am SYSTEM TABLE <null> <null> <null> <null> <null> <null> false
+QT_Ora9DS pg_catalog pg_attrdef SYSTEM TABLE <null> <null> <null> <null> <null> <null> false
+QT_Ora9DS pg_catalog pg_attribute SYSTEM TABLE <null> <null> <null> <null> <null> <null> false
+QT_Ora9DS pg_catalog pg_class SYSTEM TABLE <null> <null> <null> <null> <null> <null> false
+QT_Ora9DS pg_catalog pg_database SYSTEM TABLE <null> <null> <null> <null> <null> <null> false
+QT_Ora9DS pg_catalog pg_index SYSTEM TABLE <null> <null> <null> <null> <null> <null> false
+QT_Ora9DS pg_catalog pg_namespace SYSTEM TABLE <null> <null> <null> <null> <null> <null> false
+QT_Ora9DS pg_catalog pg_proc SYSTEM TABLE <null> <null> <null> <null> <null> <null> false
+QT_Ora9DS pg_catalog pg_trigger SYSTEM TABLE <null> <null> <null> <null> <null> <null> false
+QT_Ora9DS pg_catalog pg_type SYSTEM TABLE <null> <null> <null> <null> <null> <null> false
+QT_Ora9DS pg_catalog pg_user SYSTEM TABLE <null> <null> <null> <null> <null> <null> false
QT_Ora9DS BQT1 HugeA TABLE <null> <null> <null> <null> <null> <null> true
QT_Ora9DS BQT1 HugeB TABLE <null> <null> <null> <null> <null> <null> true
QT_Ora9DS BQT1 LargeA TABLE <null> <null> <null> <null> <null> <null> true
@@ -121,7 +132,7 @@
QT_Ora9DS XQTNestedDoc testOptimizableTempTable.MappingClasses.moveToRootTempTable XMLSTAGINGTABLE <null> <null> <null> <null> <null> <null> false
QT_Ora9DS XQTNestedDoc testRootTempTable.MappingClasses.TemporaryTable1 XMLSTAGINGTABLE <null> <null> <null> <null> <null> <null> false
QT_Ora9DS XQTRecursiveDoc testSimpleTempTable.MappingClasses.TemporaryTable1 XMLSTAGINGTABLE <null> <null> <null> <null> <null> <null> false
-Row Count : 121
+Row Count : 132
getColumnName getColumnType getCatalogName getColumnClassName getColumnLabel getColumnTypeName getSchemaName getTableName getColumnDisplaySize getPrecision getScale isAutoIncrement isCaseSensitive isCurrency isDefinitelyWritable isNullable isReadOnly isSearchable isSigned isWritable
TABLE_CAT 12 QT_Ora9DS java.lang.String TABLE_CAT string SYS Tables 255 255 0 false true false true 1 false true true true
TABLE_SCHEM 12 QT_Ora9DS java.lang.String TABLE_SCHEM string SYS Tables 255 255 0 false true false true 1 false true true true
Added: trunk/test-integration/common/src/test/resources/TestODBCSchema/test_PG_AM.expected
===================================================================
--- trunk/test-integration/common/src/test/resources/TestODBCSchema/test_PG_AM.expected (rev 0)
+++ trunk/test-integration/common/src/test/resources/TestODBCSchema/test_PG_AM.expected 2010-07-16 19:10:00 UTC (rev 2354)
@@ -0,0 +1,7 @@
+integer string
+oid amname
+0 btree
+Row Count : 1
+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_am 11 10 0 false false false false 2 true true false false
+amname 12 PartsSupplier java.lang.String amname string pg_catalog pg_am 4000 4000 0 false false false false 2 true true false false
Added: trunk/test-integration/common/src/test/resources/TestODBCSchema/test_PG_ATTRDEF.expected
===================================================================
--- trunk/test-integration/common/src/test/resources/TestODBCSchema/test_PG_ATTRDEF.expected (rev 0)
+++ trunk/test-integration/common/src/test/resources/TestODBCSchema/test_PG_ATTRDEF.expected 2010-07-16 19:10:00 UTC (rev 2354)
@@ -0,0 +1,9 @@
+integer integer integer integer
+oid adsrc adrelid adnum
+0 0 0 0
+Row Count : 1
+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_attrdef 11 10 0 false false false false 2 true true false false
+adsrc 4 PartsSupplier java.lang.Integer adsrc integer pg_catalog pg_attrdef 11 10 0 false false false false 2 true true false false
+adrelid 4 PartsSupplier java.lang.Integer adrelid integer pg_catalog pg_attrdef 11 10 0 false false false false 2 true true false false
+adnum 4 PartsSupplier java.lang.Integer adnum integer pg_catalog pg_attrdef 11 10 0 false false false false 2 true true false false
Added: trunk/test-integration/common/src/test/resources/TestODBCSchema/test_PG_ATTRIBUTE.expected
===================================================================
--- trunk/test-integration/common/src/test/resources/TestODBCSchema/test_PG_ATTRIBUTE.expected (rev 0)
+++ trunk/test-integration/common/src/test/resources/TestODBCSchema/test_PG_ATTRIBUTE.expected 2010-07-16 19:10:00 UTC (rev 2354)
@@ -0,0 +1,239 @@
+integer integer string integer short short integer boolean boolean boolean
+oid attrelid attname atttypid attlen attnum atttypmod attnotnull attisdropped atthasdef
+-1088265444 1623654648 PART_ID 1043 4 1 4 false false false
+2032364534 1623654648 PART_NAME 1043 255 2 255 false false false
+-1794301564 1623654648 PART_COLOR 1043 30 3 30 false false false
+-1101199867 1623654648 PART_WEIGHT 1043 255 4 255 false false false
+1264644385 1136825257 SHIPPER_ID 21 0 1 0 false false false
+-797147767 1136825257 SHIPPER_NAME 1043 30 2 30 false false false
+-1477852881 -1690137928 STATUS_ID 21 0 1 0 false false false
+-784751184 -1690137928 STATUS_NAME 1043 30 2 30 false false false
+39358754 2040149098 SUPPLIER_ID 1043 10 1 10 false false false
+14793330 2040149098 PART_ID 1043 4 2 4 false false false
+707895027 2040149098 QUANTITY 21 0 3 0 false false false
+1400996724 2040149098 SHIPPER_ID 21 0 4 0 false false false
+173333941 940336727 SUPPLIER_ID 1043 10 1 10 false false false
+866435638 940336727 SUPPLIER_NAME 1043 30 2 30 false false false
+1559537335 940336727 SUPPLIER_STATUS 21 0 3 0 false false false
+1834223700 940336727 SUPPLIER_CITY 1043 30 4 30 false false false
+-1767641899 940336727 SUPPLIER_STATE 1043 2 5 2 false false false
+625775649 1125375648 VDBName 1043 255 1 255 false false false
+1944775942 1125375648 SchemaName 1043 255 2 255 false false false
+37248193 1125375648 TableName 1043 255 3 255 false false false
+-1412388946 1125375648 Name 1043 255 4 255 false false false
+-187678130 1125375648 Position <null> 10 5 10 false false false
+-826716590 1125375648 NameInSource 1043 255 6 255 false false false
+104049003 1125375648 DataType 1043 100 7 100 false false false
+-1960637886 1125375648 Scale <null> 10 8 10 false false false
+1552424938 1125375648 Length <null> 10 9 10 false false false
+1175465478 1125375648 IsLengthFixed 16 1 10 1 false false false
+-1799446175 1125375648 SupportsSelect 16 1 11 1 false false false
+1376383558 1125375648 SupportsUpdates 16 1 12 1 false false false
+1838086626 1125375648 IsCaseSensitive 16 1 13 1 false false false
+1504393951 1125375648 IsSigned 16 1 14 1 false false false
+-227498353 1125375648 IsCurrency 16 1 15 1 false false false
+1025501313 1125375648 IsAutoIncremented 16 1 16 1 false false false
+220538653 1125375648 NullType 1043 20 17 20 false false false
+1127616920 1125375648 MinRange 1043 50 18 50 false false false
+-1431993426 1125375648 MaxRange 1043 50 19 50 false false false
+-917271927 1125375648 SearchType 1043 20 20 20 false false false
+99434351 1125375648 Format 1043 255 21 255 false false false
+2081463498 1125375648 DefaultValue 1043 255 22 255 false false false
+2038419570 1125375648 JavaClass 1043 500 23 500 false false false
+-207752578 1125375648 Precision <null> 10 24 10 false false false
+1904600238 1125375648 CharOctetLength <null> 10 25 10 false false false
+741988173 1125375648 Radix <null> 10 26 10 false false false
+-710939971 1125375648 UID 1043 50 27 50 false false false
+-1798385399 1125375648 Description 1043 255 28 255 false false false
+-488975294 1125375648 OID <null> 10 29 10 false false false
+988889238 407729263 Name 1043 100 1 100 false false false
+2044345153 407729263 IsStandard 16 1 2 1 false false false
+388003599 407729263 IsPhysical 16 1 3 1 false false false
+1747073036 407729263 TypeName 1043 100 4 100 false false false
+-553383651 407729263 JavaClass 1043 500 5 500 false false false
+616923420 407729263 Scale <null> 10 6 10 false false false
+-352113497 407729263 TypeLength <null> 10 7 10 false false false
+-252713441 407729263 NullType 1043 20 8 20 false false false
+-1410117530 407729263 IsSigned 16 1 9 1 false false false
+1589184032 407729263 IsAutoIncremented 16 1 10 1 false false false
+810689849 407729263 IsCaseSensitive 16 1 11 1 false false false
+748017945 407729263 Precision <null> 10 12 10 false false false
+2009321453 407729263 Radix <null> 10 13 10 false false false
+920862690 407729263 SearchType 1043 20 14 20 false false false
+996977955 407729263 UID 1043 50 15 50 false false false
+-202037504 407729263 RuntimeType 1043 64 16 64 false false false
+449930315 407729263 BaseType 1043 64 17 64 false false false
+-1742254424 407729263 Description 1043 255 18 255 false false false
+1702443356 407729263 OID <null> 10 19 10 false false false
+854014254 1906549043 VDBName 1043 255 1 255 false false false
+-1759292119 1906549043 SchemaName 1043 255 2 255 false false false
+-1594935697 1906549043 TableName 1043 2048 3 2048 false false false
+2034926350 1906549043 Name 1043 255 4 255 false false false
+-211689398 1906549043 KeyName 1043 255 5 255 false false false
+-2096082716 1906549043 KeyType 1043 20 6 20 false false false
+-22652004 1906549043 RefKeyUID 1043 50 7 50 false false false
+2018331904 1906549043 UID 1043 50 8 50 false false false
+-732937332 1906549043 Position <null> 10 9 10 false false false
+-2084878595 1906549043 OID <null> 10 10 10 false false false
+-1451894484 -1056482755 VDBName 1043 255 1 255 false false false
+1074685596 -1056482755 SchemaName 1043 255 2 255 false false false
+-1862131168 -1056482755 TableName 1043 2048 3 2048 false false false
+425155393 -1056482755 Name 1043 255 4 255 false false false
+156365359 -1056482755 Description 1043 255 5 255 false false false
+-1100843962 -1056482755 NameInSource 1043 255 6 255 false false false
+846555123 -1056482755 Type 1043 20 7 20 false false false
+-1736557250 -1056482755 IsIndexed 16 1 8 1 false false false
+1957953763 -1056482755 RefKeyUID 1043 50 9 50 false false false
+-1864727535 -1056482755 UID 1043 50 10 50 false false false
+120374768 -1056482755 OID <null> 10 11 10 false false false
+1975537358 1809992480 VDBName 1043 255 1 255 false false false
+-944775923 1809992480 SchemaName 1043 255 2 255 false false false
+2030457340 1809992480 ProcedureName 1043 255 3 255 false false false
+-1008332542 1809992480 Name 1043 255 4 255 false false false
+-33148063 1809992480 DataType 1043 25 5 25 false false false
+1214741362 1809992480 Position <null> 10 6 10 false false false
+1405495099 1809992480 Type 1043 100 7 100 false false false
+-1986083814 1809992480 Optional 16 1 8 1 false false false
+1013266093 1809992480 Precision <null> 10 9 10 false false false
+-948014349 1809992480 TypeLength <null> 10 10 10 false false false
+-1799226271 1809992480 Scale <null> 10 11 10 false false false
+-460741195 1809992480 Radix <null> 10 12 10 false false false
+-1768740125 1809992480 NullType 1043 10 13 10 false false false
+633179490 1809992480 UID 1043 50 14 50 false false false
+1549159280 1809992480 Description 1043 255 15 255 false false false
+1413251219 1809992480 OID <null> 10 16 10 false false false
+675421827 -364939653 VDBName 1043 255 1 255 false false false
+-1162137751 -364939653 SchemaName 1043 255 2 255 false false false
+-1887591430 -364939653 Name 1043 255 3 255 false false false
+-593996602 -364939653 NameInSource 1043 255 4 255 false false false
+1612225140 -364939653 ReturnsResults 16 1 5 1 false false false
+-908438290 -364939653 UID 1043 50 6 50 false false false
+-1392258153 -364939653 Description 1043 255 7 255 false false false
+415310936 -364939653 OID <null> 10 8 10 false false false
+1640613833 -1169068629 Name 1043 255 1 255 false false false
+411746507 -1169068629 Value 1043 255 2 255 false false false
+-1166122209 -1169068629 UID 1043 50 3 50 false false false
+-601712965 -1169068629 OID <null> 10 4 10 false false false
+549758030 -2944282 PKTABLE_CAT 1043 255 1 255 false false false
+-1959434503 -2944282 PKTABLE_SCHEM 1043 255 2 255 false false false
+-1715655065 -2944282 PKTABLE_NAME 1043 255 3 255 false false false
+1551740858 -2944282 PKCOLUMN_NAME 1043 255 4 255 false false false
+1816028845 -2944282 FKTABLE_CAT 1043 255 5 255 false false false
+-302000488 -2944282 FKTABLE_SCHEM 1043 255 6 255 false false false
+1346376866 -2944282 FKTABLE_NAME 1043 255 7 255 false false false
+-716350485 -2944282 FKCOLUMN_NAME 1043 255 8 255 false false false
+304004456 -2944282 KEY_SEQ 21 5 9 5 false false false
+-449329715 -2944282 UPDATE_RULE <null> 10 10 10 false false false
+-1881787205 -2944282 DELETE_RULE <null> 10 11 10 false false false
+-318434336 -2944282 FK_NAME 1043 255 12 255 false false false
+1849512787 -2944282 PK_NAME 1043 255 13 255 false false false
+1757202753 -2944282 DEFERRABILITY <null> 10 14 10 false false false
+1083046346 -69424901 VDBName 1043 255 1 255 false false false
+-1915969202 -69424901 Name 1043 255 2 255 false false false
+-708799924 -69424901 IsPhysical 16 1 3 1 false false false
+1001441719 -69424901 UID 1043 50 4 50 false false false
+-639211628 -69424901 Description 1043 255 5 255 false false false
+-1878816788 -69424901 PrimaryMetamodelURI 1043 255 6 255 false false false
+98394392 -69424901 OID <null> 10 7 10 false false false
+743485616 -820106652 VDBName 1043 255 1 255 false false false
+-1168783734 -820106652 SchemaName 1043 255 2 255 false false false
+690430606 -820106652 Name 1043 255 3 255 false false false
+880927430 -820106652 Type 1043 20 4 20 false false false
+239676287 -820106652 NameInSource 1043 255 5 255 false false false
+-800318605 -820106652 IsPhysical 16 1 6 1 false false false
+-1060614397 -820106652 SupportsUpdates 16 1 7 1 false false false
+-175171634 -820106652 UID 1043 50 8 50 false false false
+-827418434 -820106652 Cardinality <null> 10 9 10 false false false
+-627255997 -820106652 Description 1043 255 10 255 false false false
+-852036943 -820106652 IsSystem 16 1 11 1 false false false
+-439386537 -820106652 IsMaterialized 16 0 12 0 false false false
+2006785825 -820106652 OID <null> 10 13 10 false false false
+-1192264541 767013857 Name 1043 255 1 255 false false false
+-357731549 767013857 Version 1043 50 2 50 false false false
+373628435 150756069 oid <null> 0 1 0 false false false
+-628173568 150756069 nspname 1043 0 2 0 false false false
+1625508050 332420260 oid <null> 0 1 0 false false false
+-1521761894 332420260 relname 1043 0 2 0 false false false
+559270286 332420260 relnamespace <null> 0 3 0 false false false
+-2108781653 332420260 relkind 1042 0 4 0 false false false
+-1870447130 332420260 relam <null> 0 5 0 false false false
+1412069305 332420260 reltuples 700 0 6 0 false false false
+-1131535092 332420260 relpages <null> 0 7 0 false false false
+2022840685 332420260 relhasrules 16 0 8 0 false false false
+-723255984 332420260 relhasoids 1043 0 9 0 false false false
+2103741346 -224365397 oid <null> 0 1 0 false false false
+1817835217 -224365397 attrelid <null> 0 2 0 false false false
+-574665690 -224365397 attname 1043 0 3 0 false false false
+-1055354453 -224365397 atttypid <null> 0 4 0 false false false
+-1795441436 -224365397 attlen 21 0 5 0 false false false
+-368889602 -224365397 attnum 21 0 6 0 false false false
+-1832736504 -224365397 atttypmod <null> 0 7 0 false false false
+1919642235 -224365397 attnotnull 16 0 8 0 false false false
+-2003496118 -224365397 attisdropped 16 0 9 0 false false false
+2145379509 -224365397 atthasdef 16 0 10 0 false false false
+1257605974 -136764222 oid <null> 0 1 0 false false false
+-2137383909 -136764222 typname 1043 0 2 0 false false false
+-664776960 -136764222 typnamespace <null> 0 3 0 false false false
+30131224 -136764222 typlen 21 0 4 0 false false false
+622706593 -136764222 typtype 1042 0 5 0 false false false
+-1602004266 -136764222 typbasetype <null> 0 6 0 false false false
+-919158145 -136764222 typtypmod <null> 0 7 0 false false false
+-1112999853 -136764222 typrelid <null> 0 8 0 false false false
+1364472411 -1762024459 oid <null> 0 1 0 false false false
+-1332345703 -1762024459 indexrelid <null> 0 2 0 false false false
+842922062 -1762024459 indrelid <null> 0 3 0 false false false
+-572843177 -1762024459 indisclustered 16 0 4 0 false false false
+375662166 -1762024459 indisunique 16 0 5 0 false false false
+-1371913171 -1762024459 indisprimary 16 0 6 0 false false false
+129149326 -1762024459 indexprs 1043 0 7 0 false false false
+-501867330 -1762024459 indkey 1043 0 8 0 false false false
+348003813 -1477143417 oid <null> 0 1 0 false false false
+1511248377 -1477143417 amname 1043 0 2 0 false false false
+-1984635687 -710458066 oid <null> 0 1 0 false false false
+-834139826 -710458066 proname 1043 0 2 0 false false false
+499803309 -710458066 proretset 16 0 3 0 false false false
+1397859651 -710458066 prorettype <null> 0 4 0 false false false
+-139838005 -710458066 pronargs 21 0 5 0 false false false
+-664211823 -710458066 proargtypes <null> 0 6 0 false false false
+112570388 -710458066 proargnames <null> 0 7 0 false false false
+-1648420405 -710458066 proargmodes <null> 0 8 0 false false false
+1421812587 -710458066 proallargtypes <null> 0 9 0 false false false
+-1460928205 -710458066 pronamespace <null> 0 10 0 false false false
+1255466367 -77334293 oid <null> 0 1 0 false false false
+-1839359651 -77334293 tgconstrrelid <null> 0 2 0 false false false
+-175657451 -77334293 tgfoid <null> 0 3 0 false false false
+-1427817109 -77334293 tgargs <null> 0 4 0 false false false
+1345190695 -77334293 tgnargs <null> 0 5 0 false false false
+224520183 -77334293 tgdeferrable 16 0 6 0 false false false
+1760818902 -77334293 tginitdeferred 16 0 7 0 false false false
+1978541887 -77334293 tgconstrname 1043 0 8 0 false false false
+824464965 -77334293 tgrelid <null> 0 9 0 false false false
+-607267013 1533609944 oid <null> 0 1 0 false false false
+-331283891 1533609944 adsrc <null> 0 2 0 false false false
+1059469691 1533609944 adrelid <null> 0 3 0 false false false
+-1546672787 1533609944 adnum <null> 0 4 0 false false false
+446356164 209142477 oid <null> 0 1 0 false false false
+-1631782981 209142477 datname 1043 0 2 0 false false false
+190169626 209142477 encoding <null> 0 3 0 false false false
+-1897406238 209142477 datlastsysoid <null> 0 4 0 false false false
+2090011815 209142477 datallowconn 1042 0 5 0 false false false
+1265212944 209142477 datconfig <null> 0 6 0 false false false
+-639480338 209142477 datacl <null> 0 7 0 false false false
+-1356986869 209142477 datdba <null> 0 8 0 false false false
+1220708103 209142477 dattablespace <null> 0 9 0 false false false
+-311176298 -164161188 oid <null> 0 1 0 false false false
+717511814 -164161188 usename 1043 0 2 0 false false false
+1288630002 -164161188 usecreatedb 16 0 3 0 false false false
+1033115127 -164161188 usesuper 16 0 4 0 false false false
+Row Count : 225
+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
+attname 12 PartsSupplier java.lang.String attname string pg_catalog pg_attribute 4000 4000 0 false false false false 2 true true false false
+atttypid 4 PartsSupplier java.lang.Integer atttypid integer pg_catalog pg_attribute 11 10 0 false false false false 2 true true false false
+attlen 5 PartsSupplier java.lang.Short attlen short pg_catalog pg_attribute 6 5 0 false false false false 2 true true false false
+attnum 5 PartsSupplier java.lang.Short attnum short pg_catalog pg_attribute 6 5 0 false false false false 2 true true false false
+atttypmod 4 PartsSupplier java.lang.Integer atttypmod integer pg_catalog pg_attribute 11 10 0 false false false false 2 true true false false
+attnotnull -7 PartsSupplier java.lang.Boolean attnotnull boolean pg_catalog pg_attribute 5 1 0 false false false false 2 true true false false
+attisdropped -7 PartsSupplier java.lang.Boolean attisdropped boolean pg_catalog pg_attribute 5 1 0 false false false false 2 true true false false
+atthasdef -7 PartsSupplier java.lang.Boolean atthasdef boolean pg_catalog pg_attribute 5 1 0 false false false false 2 true true false false
Added: trunk/test-integration/common/src/test/resources/TestODBCSchema/test_PG_CLASS.expected
===================================================================
--- trunk/test-integration/common/src/test/resources/TestODBCSchema/test_PG_CLASS.expected (rev 0)
+++ trunk/test-integration/common/src/test/resources/TestODBCSchema/test_PG_CLASS.expected 2010-07-16 19:10:00 UTC (rev 2354)
@@ -0,0 +1,40 @@
+integer string integer char integer float integer boolean string
+oid relname relnamespace relkind relam reltuples relpages relhasrules relhasoids
+1623654648 PARTSSUPPLIER.PARTS 152010958 r 0 0.0 0 false false
+1136825257 PARTSSUPPLIER.SHIP_VIA 152010958 r 0 0.0 0 false false
+-1690137928 PARTSSUPPLIER.STATUS 152010958 r 0 0.0 0 false false
+2040149098 PARTSSUPPLIER.SUPPLIER_PARTS 152010958 r 0 0.0 0 false false
+940336727 PARTSSUPPLIER.SUPPLIER 152010958 r 0 0.0 0 false false
+1125375648 Columns -2075981161 r 0 0.0 0 false false
+407729263 DataTypes -2075981161 r 0 0.0 0 false false
+1906549043 KeyColumns -2075981161 r 0 0.0 0 false false
+-1056482755 Keys -2075981161 r 0 0.0 0 false false
+1809992480 ProcedureParams -2075981161 r 0 0.0 0 false false
+-364939653 Procedures -2075981161 r 0 0.0 0 false false
+-1169068629 Properties -2075981161 r 0 0.0 0 false false
+-2944282 ReferenceKeyColumns -2075981161 r 0 0.0 0 false false
+-69424901 Schemas -2075981161 r 0 0.0 0 false false
+-820106652 Tables -2075981161 r 0 0.0 0 false false
+767013857 VirtualDatabases -2075981161 r 0 0.0 0 false false
+150756069 pg_namespace -915078125 v 0 0.0 0 false false
+332420260 pg_class -915078125 v 0 0.0 0 false false
+-224365397 pg_attribute -915078125 v 0 0.0 0 false false
+-136764222 pg_type -915078125 v 0 0.0 0 false false
+-1762024459 pg_index -915078125 v 0 0.0 0 false false
+-1477143417 pg_am -915078125 v 0 0.0 0 false false
+-710458066 pg_proc -915078125 v 0 0.0 0 false false
+-77334293 pg_trigger -915078125 v 0 0.0 0 false false
+1533609944 pg_attrdef -915078125 v 0 0.0 0 false false
+209142477 pg_database -915078125 v 0 0.0 0 false false
+-164161188 pg_user -915078125 v 0 0.0 0 false false
+Row Count : 27
+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_class 11 10 0 false false false false 2 true true false false
+relname 12 PartsSupplier java.lang.String relname string pg_catalog pg_class 4000 4000 0 false false false false 2 true true false false
+relnamespace 4 PartsSupplier java.lang.Integer relnamespace integer pg_catalog pg_class 11 10 0 false false false false 2 true true false false
+relkind 1 PartsSupplier java.lang.String relkind char pg_catalog pg_class 1 1 0 false false false false 2 true true false false
+relam 4 PartsSupplier java.lang.Integer relam integer pg_catalog pg_class 11 10 0 false false false false 2 true true false false
+reltuples 7 PartsSupplier java.lang.Float reltuples float pg_catalog pg_class 22 20 0 false false false false 2 true true false false
+relpages 4 PartsSupplier java.lang.Integer relpages integer pg_catalog pg_class 11 10 0 false false false false 2 true true false false
+relhasrules -7 PartsSupplier java.lang.Boolean relhasrules boolean pg_catalog pg_class 5 1 0 false false false false 2 true true false false
+relhasoids 12 PartsSupplier java.lang.String relhasoids string pg_catalog pg_class 4000 4000 0 false false false false 2 true true false false
Added: trunk/test-integration/common/src/test/resources/TestODBCSchema/test_PG_DATABASE.expected
===================================================================
--- trunk/test-integration/common/src/test/resources/TestODBCSchema/test_PG_DATABASE.expected (rev 0)
+++ trunk/test-integration/common/src/test/resources/TestODBCSchema/test_PG_DATABASE.expected 2010-07-16 19:10:00 UTC (rev 2354)
@@ -0,0 +1,14 @@
+integer string integer integer char object object integer integer
+oid datname encoding datlastsysoid datallowconn datconfig datacl datdba dattablespace
+0 teiid 6 100000 t <null> <null> 0 0
+Row Count : 1
+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_database 11 10 0 false false false false 2 true true false false
+datname 12 PartsSupplier java.lang.String datname string pg_catalog pg_database 4000 4000 0 false false false false 2 true true false false
+encoding 4 PartsSupplier java.lang.Integer encoding integer pg_catalog pg_database 11 10 0 false false false false 2 true true false false
+datlastsysoid 4 PartsSupplier java.lang.Integer datlastsysoid integer pg_catalog pg_database 11 10 0 false false false false 2 true true false false
+datallowconn 1 PartsSupplier java.lang.String datallowconn char pg_catalog pg_database 1 1 0 false false false false 2 true true false false
+datconfig 2000 PartsSupplier java.lang.Object datconfig object pg_catalog pg_database 2147483647 2147483647 0 false false false false 2 true true false false
+datacl 2000 PartsSupplier java.lang.Object datacl object pg_catalog pg_database 2147483647 2147483647 0 false false false false 2 true true false false
+datdba 4 PartsSupplier java.lang.Integer datdba integer pg_catalog pg_database 11 10 0 false false false false 2 true true false false
+dattablespace 4 PartsSupplier java.lang.Integer dattablespace integer pg_catalog pg_database 11 10 0 false false false false 2 true true false false
Added: trunk/test-integration/common/src/test/resources/TestODBCSchema/test_PG_INDEX.expected
===================================================================
--- trunk/test-integration/common/src/test/resources/TestODBCSchema/test_PG_INDEX.expected (rev 0)
+++ trunk/test-integration/common/src/test/resources/TestODBCSchema/test_PG_INDEX.expected 2010-07-16 19:10:00 UTC (rev 2354)
@@ -0,0 +1,21 @@
+integer integer integer boolean boolean boolean string string
+oid indexrelid indrelid indisclustered indisunique indisprimary indexprs indkey
+-954501376 -954501376 1623654648 false false true 0
+84802949 84802949 1136825257 false false true 0
+-567580883 -567580883 -1690137928 false false true 0
+-1122313299 -1122313299 2040149098 false false true 0
+-1122313299 -1122313299 2040149098 false false true 0
+1607355935 1607355935 2040149098 false false false 0
+-1994509664 -1994509664 2040149098 false false false 0
+-1590144858 -1590144858 940336727 false false true 0
+-2018582450 -2018582450 940336727 false false false 0
+Row Count : 9
+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_index 11 10 0 false false false false 2 true true false false
+indexrelid 4 PartsSupplier java.lang.Integer indexrelid integer pg_catalog pg_index 11 10 0 false false false false 2 true true false false
+indrelid 4 PartsSupplier java.lang.Integer indrelid integer pg_catalog pg_index 11 10 0 false false false false 2 true true false false
+indisclustered -7 PartsSupplier java.lang.Boolean indisclustered boolean pg_catalog pg_index 5 1 0 false false false false 2 true true false false
+indisunique -7 PartsSupplier java.lang.Boolean indisunique boolean pg_catalog pg_index 5 1 0 false false false false 2 true true false false
+indisprimary -7 PartsSupplier java.lang.Boolean indisprimary boolean pg_catalog pg_index 5 1 0 false false false false 2 true true false false
+indexprs 12 PartsSupplier java.lang.String indexprs string pg_catalog pg_index 4000 4000 0 false false false false 2 true true false false
+indkey 12 PartsSupplier java.lang.String indkey string pg_catalog pg_index 4000 4000 0 false false false false 2 true true false false
Added: trunk/test-integration/common/src/test/resources/TestODBCSchema/test_PG_NAMESPACE.expected
===================================================================
--- trunk/test-integration/common/src/test/resources/TestODBCSchema/test_PG_NAMESPACE.expected (rev 0)
+++ trunk/test-integration/common/src/test/resources/TestODBCSchema/test_PG_NAMESPACE.expected 2010-07-16 19:10:00 UTC (rev 2354)
@@ -0,0 +1,9 @@
+integer string
+oid nspname
+152010958 PartsSupplier
+-2075981161 SYS
+-915078125 pg_catalog
+Row Count : 3
+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_namespace 11 10 0 false false false false 2 true true false false
+nspname 12 PartsSupplier java.lang.String nspname string pg_catalog pg_namespace 4000 4000 0 false false false false 2 true true false false
Added: trunk/test-integration/common/src/test/resources/TestODBCSchema/test_PG_PROC.expected
===================================================================
--- trunk/test-integration/common/src/test/resources/TestODBCSchema/test_PG_PROC.expected (rev 0)
+++ trunk/test-integration/common/src/test/resources/TestODBCSchema/test_PG_PROC.expected 2010-07-16 19:10:00 UTC (rev 2354)
@@ -0,0 +1,18 @@
+integer string boolean integer short object object object object integer
+oid proname proretset prorettype pronargs proargtypes proargnames proargmodes proallargtypes pronamespace
+962621677 getBinaryVDBResource false -2019895717 2 <null> <null> <null> <null> -2075981161
+-11263229 getCharacterVDBResource false -957808587 2 <null> <null> <null> <null> -2075981161
+-269626231 getVDBResourcePaths false 1224777906 2 <null> <null> <null> <null> -2075981161
+-1846147944 getXMLSchemas false <null> 2 <null> <null> <null> <null> -2075981161
+Row Count : 4
+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_proc 11 10 0 false false false false 2 true true false false
+proname 12 PartsSupplier java.lang.String proname string pg_catalog pg_proc 4000 4000 0 false false false false 2 true true false false
+proretset -7 PartsSupplier java.lang.Boolean proretset boolean pg_catalog pg_proc 5 1 0 false false false false 2 true true false false
+prorettype 4 PartsSupplier java.lang.Integer prorettype integer pg_catalog pg_proc 11 10 0 false false false false 2 true true false false
+pronargs 5 PartsSupplier java.lang.Short pronargs short pg_catalog pg_proc 6 5 0 false false false false 2 true true false false
+proargtypes 2000 PartsSupplier java.lang.Object proargtypes object pg_catalog pg_proc 2147483647 2147483647 0 false false false false 2 true true false false
+proargnames 2000 PartsSupplier java.lang.Object proargnames object pg_catalog pg_proc 2147483647 2147483647 0 false false false false 2 true true false false
+proargmodes 2000 PartsSupplier java.lang.Object proargmodes object pg_catalog pg_proc 2147483647 2147483647 0 false false false false 2 true true false false
+proallargtypes 2000 PartsSupplier java.lang.Object proallargtypes object pg_catalog pg_proc 2147483647 2147483647 0 false false false false 2 true true false false
+pronamespace 4 PartsSupplier java.lang.Integer pronamespace integer pg_catalog pg_proc 11 10 0 false false false false 2 true true false false
Added: trunk/test-integration/common/src/test/resources/TestODBCSchema/test_PG_TRIGGER.expected
===================================================================
--- trunk/test-integration/common/src/test/resources/TestODBCSchema/test_PG_TRIGGER.expected (rev 0)
+++ trunk/test-integration/common/src/test/resources/TestODBCSchema/test_PG_TRIGGER.expected 2010-07-16 19:10:00 UTC (rev 2354)
@@ -0,0 +1,13 @@
+integer integer integer integer integer boolean boolean string integer
+oid tgconstrrelid tgfoid tgargs tgnargs tgdeferrable tginitdeferred tgconstrname tgrelid
+Row Count : 0
+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_trigger 11 10 0 false false false false 2 true true false false
+tgconstrrelid 4 PartsSupplier java.lang.Integer tgconstrrelid integer pg_catalog pg_trigger 11 10 0 false false false false 2 true true false false
+tgfoid 4 PartsSupplier java.lang.Integer tgfoid integer pg_catalog pg_trigger 11 10 0 false false false false 2 true true false false
+tgargs 4 PartsSupplier java.lang.Integer tgargs integer pg_catalog pg_trigger 11 10 0 false false false false 2 true true false false
+tgnargs 4 PartsSupplier java.lang.Integer tgnargs integer pg_catalog pg_trigger 11 10 0 false false false false 2 true true false false
+tgdeferrable -7 PartsSupplier java.lang.Boolean tgdeferrable boolean pg_catalog pg_trigger 5 1 0 false false false false 2 true true false false
+tginitdeferred -7 PartsSupplier java.lang.Boolean tginitdeferred boolean pg_catalog pg_trigger 5 1 0 false false false false 2 true true false false
+tgconstrname 12 PartsSupplier java.lang.String tgconstrname string pg_catalog pg_trigger 4000 4000 0 false false false false 2 true true false false
+tgrelid 4 PartsSupplier java.lang.Integer tgrelid integer pg_catalog pg_trigger 11 10 0 false false false false 2 true true false false
Added: trunk/test-integration/common/src/test/resources/TestODBCSchema/test_PG_TYPE.expected
===================================================================
--- trunk/test-integration/common/src/test/resources/TestODBCSchema/test_PG_TYPE.expected (rev 0)
+++ trunk/test-integration/common/src/test/resources/TestODBCSchema/test_PG_TYPE.expected 2010-07-16 19:10:00 UTC (rev 2354)
@@ -0,0 +1,28 @@
+integer string integer short char integer integer integer
+oid typname typnamespace typlen typtype typbasetype typtypmod typrelid
+16 boolean -2075981161 1 b 0 -1 0
+20 long -2075981161 8 b 0 -1 0
+21 short -2075981161 2 b 0 -1 0
+23 int -2075981161 4 b 0 -1 0
+25 text -2075981161 -1 b 0 -1 0
+26 oid -2075981161 4 b 0 -1 0
+142 xml -2075981161 -1 b 0 -1 0
+700 float -2075981161 4 b 0 -1 0
+701 double -2075981161 8 b 0 -1 0
+1042 char -2075981161 1 b 0 -1 0
+1043 string -2075981161 -1 b 0 -1 0
+1082 date -2075981161 4 b 0 -1 0
+1083 datetime -2075981161 8 b 0 -1 0
+1114 timestamp -2075981161 8 b 0 -1 0
+1700 decimal -2075981161 -1 b 0 -1 0
+14939 lo -2075981161 -1 b 0 -1 0
+Row Count : 16
+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_type 11 10 0 false false false false 2 true true false false
+typname 12 PartsSupplier java.lang.String typname string pg_catalog pg_type 4000 4000 0 false false false false 2 true true false false
+typnamespace 4 PartsSupplier java.lang.Integer typnamespace integer pg_catalog pg_type 11 10 0 false false false false 2 true true false false
+typlen 5 PartsSupplier java.lang.Short typlen short pg_catalog pg_type 6 5 0 false false false false 2 true true false false
+typtype 1 PartsSupplier java.lang.String typtype char pg_catalog pg_type 1 1 0 false false false false 2 true true false false
+typbasetype 4 PartsSupplier java.lang.Integer typbasetype integer pg_catalog pg_type 11 10 0 false false false false 2 true true false false
+typtypmod 4 PartsSupplier java.lang.Integer typtypmod integer pg_catalog pg_type 11 10 0 false false false false 2 true true false false
+typrelid 4 PartsSupplier java.lang.Integer typrelid integer pg_catalog pg_type 11 10 0 false false false false 2 true true false false
Added: trunk/test-integration/common/src/test/resources/TestODBCSchema/test_PG_USER.expected
===================================================================
--- trunk/test-integration/common/src/test/resources/TestODBCSchema/test_PG_USER.expected (rev 0)
+++ trunk/test-integration/common/src/test/resources/TestODBCSchema/test_PG_USER.expected 2010-07-16 19:10:00 UTC (rev 2354)
@@ -0,0 +1,9 @@
+integer string boolean boolean
+oid usename usecreatedb usesuper
+0 <null> false false
+Row Count : 1
+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_user 11 10 0 false false false false 2 true true false false
+usename 12 PartsSupplier java.lang.String usename string pg_catalog pg_user 4000 4000 0 false false false false 2 true true false false
+usecreatedb -7 PartsSupplier java.lang.Boolean usecreatedb boolean pg_catalog pg_user 5 1 0 false false false false 2 true true false false
+usesuper -7 PartsSupplier java.lang.Boolean usesuper boolean pg_catalog pg_user 5 1 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 2010-07-15 20:06:02 UTC (rev 2353)
+++ trunk/test-integration/common/src/test/resources/TestPartsDatabaseMetadata/testColumns.expected 2010-07-16 19:10:00 UTC (rev 2354)
@@ -28,6 +28,7 @@
PartsSupplier SYS Columns Radix 4 integer 10 <null> 0 10 0 <null> <null> <null> <null> 10 26 YES <null> <null> <null> !
<null> NO
PartsSupplier SYS Columns UID 12 string 50 <null> 0 10 0 <null> <null> <null> <null> 50 27 YES <null> <null> <null> !
<null> NO
PartsSupplier SYS Columns Description 12 string 255 <null> 0 10 1 <null> <null> <null> <null> 255 28 NO <null> <null> <null> !
<null> NO
+PartsSupplier SYS Columns OID 4 integer 10 <null> 0 10 0 <null> <null> <null> <null> 10 29 YES <null> <null> <null> !
<null> NO
PartsSupplier SYS DataTypes Name 12 string 100 <null> 0 10 0 <null> <null> <null> <null> 100 1 YES <null> <null> <null> !
<null> NO
PartsSupplier SYS DataTypes IsStandard -7 boolean 1 <null> 0 10 1 <null> <null> <null> <null> 1 2 NO <null> <null> <null> !
<null> NO
PartsSupplier SYS DataTypes IsPhysical -7 boolean 1 <null> 0 10 1 <null> <null> <null> <null> 1 3 NO <null> <null> <null> !
<null> NO
@@ -46,6 +47,7 @@
PartsSupplier SYS DataTypes RuntimeType 12 string 64 <null> 0 10 1 <null> <null> <null> <null> 64 16 NO <null> <null> <null> !
<null> NO
PartsSupplier SYS DataTypes BaseType 12 string 64 <null> 0 10 1 <null> <null> <null> <null> 64 17 NO <null> <null> <null> !
<null> NO
PartsSupplier SYS DataTypes Description 12 string 255 <null> 0 10 1 <null> <null> <null> <null> 255 18 NO <null> <null> <null> !
<null> NO
+PartsSupplier SYS DataTypes OID 4 integer 10 <null> 0 10 0 <null> <null> <null> <null> 10 19 YES <null> <null> <null> !
<null> NO
PartsSupplier SYS KeyColumns VDBName 12 string 255 <null> 0 10 0 <null> <null> <null> <null> 255 1 YES <null> <null> <null> !
<null> NO
PartsSupplier SYS KeyColumns SchemaName 12 string 255 <null> 0 10 1 <null> <null> <null> <null> 255 2 NO <null> <null> <null> !
<null> NO
PartsSupplier SYS KeyColumns TableName 12 string 2048 <null> 0 10 0 <null> <null> <null> <null> 2048 3 YES <null> <null> <null> !
<null> NO
@@ -55,6 +57,7 @@
PartsSupplier SYS KeyColumns RefKeyUID 12 string 50 <null> 0 10 1 <null> <null> <null> <null> 50 7 NO <null> <null> <null> !
<null> NO
PartsSupplier SYS KeyColumns UID 12 string 50 <null> 0 10 0 <null> <null> <null> <null> 50 8 YES <null> <null> <null> !
<null> NO
PartsSupplier SYS KeyColumns Position 4 integer 10 <null> 0 10 1 <null> <null> <null> <null> 10 9 NO <null> <null> <null> !
<null> NO
+PartsSupplier SYS KeyColumns OID 4 integer 10 <null> 0 10 0 <null> <null> <null> <null> 10 10 YES <null> <null> <null> !
<null> NO
PartsSupplier SYS Keys VDBName 12 string 255 <null> 0 10 0 <null> <null> <null> <null> 255 1 YES <null> <null> <null> !
<null> NO
PartsSupplier SYS Keys SchemaName 12 string 255 <null> 0 10 1 <null> <null> <null> <null> 255 2 NO <null> <null> <null> !
<null> NO
PartsSupplier SYS Keys TableName 12 string 2048 <null> 0 10 0 <null> <null> <null> <null> 2048 3 YES <null> <null> <null> !
<null> NO
@@ -65,6 +68,7 @@
PartsSupplier SYS Keys IsIndexed -7 boolean 1 <null> 0 10 0 <null> <null> <null> <null> 1 8 YES <null> <null> <null> !
<null> NO
PartsSupplier SYS Keys RefKeyUID 12 string 50 <null> 0 10 1 <null> <null> <null> <null> 50 9 NO <null> <null> <null> !
<null> NO
PartsSupplier SYS Keys UID 12 string 50 <null> 0 10 0 <null> <null> <null> <null> 50 10 YES <null> <null> <null> !
<null> NO
+PartsSupplier SYS Keys OID 4 integer 10 <null> 0 10 0 <null> <null> <null> <null> 10 11 YES <null> <null> <null> !
<null> NO
PartsSupplier PartsSupplier PARTSSUPPLIER.PARTS PART_ID 12 string 4 <null> 0 10 0 <null> <null> <null> <null> 4 1 YES <null> <null> <null> !
<null> NO
PartsSupplier PartsSupplier PARTSSUPPLIER.PARTS PART_NAME 12 string 255 <null> 0 10 1 <null> <null> <null> <null> 255 2 NO <null> <null> <null> !
<null> NO
PartsSupplier PartsSupplier PARTSSUPPLIER.PARTS PART_COLOR 12 string 30 <null> 0 10 1 <null> <null> <null> <null> 30 3 NO <null> <null> <null> !
<null> NO
@@ -97,6 +101,7 @@
PartsSupplier SYS ProcedureParams NullType 12 string 10 <null> 0 10 0 <null> <null> <null> <null> 10 13 YES <null> <null> <null> !
<null> NO
PartsSupplier SYS ProcedureParams UID 12 string 50 <null> 0 10 1 <null> <null> <null> <null> 50 14 NO <null> <null> <null> !
<null> NO
PartsSupplier SYS ProcedureParams Description 12 string 255 <null> 0 10 1 <null> <null> <null> <null> 255 15 NO <null> <null> <null> !
<null> NO
+PartsSupplier SYS ProcedureParams OID 4 integer 10 <null> 0 10 0 <null> <null> <null> <null> 10 16 YES <null> <null> <null> !
<null> NO
PartsSupplier SYS Procedures VDBName 12 string 255 <null> 0 10 0 <null> <null> <null> <null> 255 1 YES <null> <null> <null> !
<null> NO
PartsSupplier SYS Procedures SchemaName 12 string 255 <null> 0 10 1 <null> <null> <null> <null> 255 2 NO <null> <null> <null> !
<null> NO
PartsSupplier SYS Procedures Name 12 string 255 <null> 0 10 0 <null> <null> <null> <null> 255 3 YES <null> <null> <null> !
<null> NO
@@ -104,9 +109,11 @@
PartsSupplier SYS Procedures ReturnsResults -7 boolean 1 <null> 0 10 0 <null> <null> <null> <null> 1 5 YES <null> <null> <null> !
<null> NO
PartsSupplier SYS Procedures UID 12 string 50 <null> 0 10 0 <null> <null> <null> <null> 50 6 YES <null> <null> <null> !
<null> NO
PartsSupplier SYS Procedures Description 12 string 255 <null> 0 10 1 <null> <null> <null> <null> 255 7 NO <null> <null> <null> !
<null> NO
+PartsSupplier SYS Procedures OID 4 integer 10 <null> 0 10 0 <null> <null> <null> <null> 10 8 YES <null> <null> <null> !
<null> NO
PartsSupplier SYS Properties Name 12 string 255 <null> 0 10 0 <null> <null> <null> <null> 255 1 YES <null> <null> <null> !
<null> NO
PartsSupplier SYS Properties Value 12 string 255 <null> 0 10 0 <null> <null> <null> <null> 255 2 YES <null> <null> <null> !
<null> NO
PartsSupplier SYS Properties UID 12 string 50 <null> 0 10 0 <null> <null> <null> <null> 50 3 YES <null> <null> <null> !
<null> NO
+PartsSupplier SYS Properties OID 4 integer 10 <null> 0 10 0 <null> <null> <null> <null> 10 4 YES <null> <null> <null> !
<null> NO
PartsSupplier SYS ReferenceKeyColumns PKTABLE_CAT 12 string 255 <null> 0 10 1 <null> <null> <null> <null> 255 1 NO <null> <null> <null> !
<null> NO
PartsSupplier SYS ReferenceKeyColumns PKTABLE_SCHEM 12 string 255 <null> 0 10 1 <null> <null> <null> <null> 255 2 NO <null> <null> <null> !
<null> NO
PartsSupplier SYS ReferenceKeyColumns PKTABLE_NAME 12 string 255 <null> 0 10 1 <null> <null> <null> <null> 255 3 NO <null> <null> <null> !
<null> NO
@@ -127,6 +134,7 @@
PartsSupplier SYS Schemas UID 12 string 50 <null> 0 10 0 <null> <null> <null> <null> 50 4 YES <null> <null> <null> !
<null> NO
PartsSupplier SYS Schemas Description 12 string 255 <null> 0 10 1 <null> <null> <null> <null> 255 5 NO <null> <null> <null> !
<null> NO
PartsSupplier SYS Schemas PrimaryMetamodelURI 12 string 255 <null> 0 10 0 <null> <null> <null> <null> 255 6 YES <null> <null> <null> !
<null> NO
+PartsSupplier SYS Schemas OID 4 integer 10 <null> 0 10 0 <null> <null> <null> <null> 10 7 YES <null> <null> <null> !
<null> NO
PartsSupplier SYS Tables VDBName 12 string 255 <null> 0 10 1 <null> <null> <null> <null> 255 1 NO <null> <null> <null> !
<null> NO
PartsSupplier SYS Tables SchemaName 12 string 255 <null> 0 10 1 <null> <null> <null> <null> 255 2 NO <null> <null> <null> !
<null> NO
PartsSupplier SYS Tables Name 12 string 255 <null> 0 10 0 <null> <null> <null> <null> 255 3 YES <null> <null> <null> !
<null> NO
@@ -139,9 +147,85 @@
PartsSupplier SYS Tables Description 12 string 255 <null> 0 10 1 <null> <null> <null> <null> 255 10 NO <null> <null> <null> !
<null> NO
PartsSupplier SYS Tables IsSystem -7 boolean 1 <null> 0 10 1 <null> <null> <null> <null> 1 11 NO <null> <null> <null> !
<null> NO
PartsSupplier SYS Tables IsMaterialized -7 boolean 1 <null> 0 10 0 <null> <null> <null> <null> 0 12 YES <null> <null> <null> !
<null> NO
+PartsSupplier SYS Tables OID 4 integer 10 <null> 0 10 0 <null> <null> <null> <null> 10 13 YES <null> <null> <null> !
<null> NO
PartsSupplier SYS VirtualDatabases Name 12 string 255 <null> 0 10 0 <null> <null> <null> <null> 255 1 YES <null> <null> <null> !
<null> NO
PartsSupplier SYS VirtualDatabases Version 12 string 50 <null> 0 10 0 <null> <null> <null> <null> 50 2 YES <null> <null> <null> !
<null> NO
-Row Count : 141
+PartsSupplier pg_catalog pg_am oid 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 1 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_am amname 12 string 4000 <null> 0 0 2 <null> <null> <null> <null> 0 2 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_attrdef oid 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 1 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_attrdef adsrc 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 2 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_attrdef adrelid 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 3 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_attrdef adnum 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 4 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_attribute oid 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 1 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_attribute attrelid 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 2 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_attribute attname 12 string 4000 <null> 0 0 2 <null> <null> <null> <null> 0 3 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_attribute atttypid 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 4 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_attribute attlen 5 short 5 <null> 0 0 2 <null> <null> <null> <null> 0 5 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_attribute attnum 5 short 5 <null> 0 0 2 <null> <null> <null> <null> 0 6 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_attribute atttypmod 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 7 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_attribute attnotnull -7 boolean 1 <null> 0 0 2 <null> <null> <null> <null> 0 8 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_attribute attisdropped -7 boolean 1 <null> 0 0 2 <null> <null> <null> <null> 0 9 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_attribute atthasdef -7 boolean 1 <null> 0 0 2 <null> <null> <null> <null> 0 10 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_class oid 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 1 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_class relname 12 string 4000 <null> 0 0 2 <null> <null> <null> <null> 0 2 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_class relnamespace 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 3 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_class relkind 1 char 1 <null> 0 0 2 <null> <null> <null> <null> 0 4 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_class relam 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 5 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_class reltuples 7 float 20 <null> 0 0 2 <null> <null> <null> <null> 0 6 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_class relpages 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 7 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_class relhasrules -7 boolean 1 <null> 0 0 2 <null> <null> <null> <null> 0 8 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_class relhasoids 12 string 4000 <null> 0 0 2 <null> <null> <null> <null> 0 9 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_database oid 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 1 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_database datname 12 string 4000 <null> 0 0 2 <null> <null> <null> <null> 0 2 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_database encoding 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 3 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_database datlastsysoid 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 4 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_database datallowconn 1 char 1 <null> 0 0 2 <null> <null> <null> <null> 0 5 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_database datconfig 2000 object 2147483647 <null> 0 0 2 <null> <null> <null> <null> 0 6 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_database datacl 2000 object 2147483647 <null> 0 0 2 <null> <null> <null> <null> 0 7 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_database datdba 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 8 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_database dattablespace 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 9 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_index oid 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 1 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_index indexrelid 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 2 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_index indrelid 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 3 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_index indisclustered -7 boolean 1 <null> 0 0 2 <null> <null> <null> <null> 0 4 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_index indisunique -7 boolean 1 <null> 0 0 2 <null> <null> <null> <null> 0 5 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_index indisprimary -7 boolean 1 <null> 0 0 2 <null> <null> <null> <null> 0 6 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_index indexprs 12 string 4000 <null> 0 0 2 <null> <null> <null> <null> 0 7 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_index indkey 12 string 4000 <null> 0 0 2 <null> <null> <null> <null> 0 8 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_namespace oid 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 1 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_namespace nspname 12 string 4000 <null> 0 0 2 <null> <null> <null> <null> 0 2 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_proc oid 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 1 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_proc proname 12 string 4000 <null> 0 0 2 <null> <null> <null> <null> 0 2 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_proc proretset -7 boolean 1 <null> 0 0 2 <null> <null> <null> <null> 0 3 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_proc prorettype 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 4 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_proc pronargs 5 short 5 <null> 0 0 2 <null> <null> <null> <null> 0 5 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_proc proargtypes 2000 object 2147483647 <null> 0 0 2 <null> <null> <null> <null> 0 6 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_proc proargnames 2000 object 2147483647 <null> 0 0 2 <null> <null> <null> <null> 0 7 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_proc proargmodes 2000 object 2147483647 <null> 0 0 2 <null> <null> <null> <null> 0 8 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_proc proallargtypes 2000 object 2147483647 <null> 0 0 2 <null> <null> <null> <null> 0 9 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_proc pronamespace 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 10 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_trigger oid 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 1 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_trigger tgconstrrelid 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 2 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_trigger tgfoid 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 3 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_trigger tgargs 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 4 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_trigger tgnargs 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 5 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_trigger tgdeferrable -7 boolean 1 <null> 0 0 2 <null> <null> <null> <null> 0 6 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_trigger tginitdeferred -7 boolean 1 <null> 0 0 2 <null> <null> <null> <null> 0 7 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_trigger tgconstrname 12 string 4000 <null> 0 0 2 <null> <null> <null> <null> 0 8 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_trigger tgrelid 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 9 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_type oid 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 1 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_type typname 12 string 4000 <null> 0 0 2 <null> <null> <null> <null> 0 2 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_type typnamespace 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 3 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_type typlen 5 short 5 <null> 0 0 2 <null> <null> <null> <null> 0 4 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_type typtype 1 char 1 <null> 0 0 2 <null> <null> <null> <null> 0 5 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_type typbasetype 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 6 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_type typtypmod 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 7 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_type typrelid 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 8 <null> <null> <null> !
<null> NO
+PartsSupplier pg_catalog pg_user oid 4 integer 10 <null> 0 0 2 <null> <null> <null> <null> 0 1 <null> <null> <null> !
<null> NO
+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 : 225
getColumnName getColumnType getCatalogName getColumnClassName getColumnLabel getColumnTypeName getSchemaName getTableName getColumnDisplaySize getPrecision getScale isAutoIncrement isCaseSensitive isCurrency isDefinitelyWritable isNullable isReadOnly isSearchable isSigned isWritable
TABLE_CAT 12 PartsSupplier java.lang.String TABLE_CAT string SYS Columns 255 255 0 false false false false 0 true true false false
TABLE_SCHEM 12 PartsSupplier java.lang.String TABLE_SCHEM string SYS Columns 255 255 0 false true false true 1 false true true true
Modified: trunk/test-integration/common/src/test/resources/TestPartsDatabaseMetadata/testSchemas.expected
===================================================================
--- trunk/test-integration/common/src/test/resources/TestPartsDatabaseMetadata/testSchemas.expected 2010-07-15 20:06:02 UTC (rev 2353)
+++ trunk/test-integration/common/src/test/resources/TestPartsDatabaseMetadata/testSchemas.expected 2010-07-16 19:10:00 UTC (rev 2354)
@@ -2,7 +2,8 @@
TABLE_SCHEM TABLE_CATALOG
PartsSupplier PartsSupplier
SYS PartsSupplier
-Row Count : 2
+pg_catalog PartsSupplier
+Row Count : 3
getColumnName getColumnType getCatalogName getColumnClassName getColumnLabel getColumnTypeName getSchemaName getTableName getColumnDisplaySize getPrecision getScale isAutoIncrement isCaseSensitive isCurrency isDefinitelyWritable isNullable isReadOnly isSearchable isSigned isWritable
TABLE_SCHEM 12 PartsSupplier java.lang.String TABLE_SCHEM string SYS Schemas 255 255 0 false true false true 1 false true true true
TABLE_CATALOG 12 PartsSupplier java.lang.String TABLE_CATALOG string SYS Schemas 255 255 0 false true false true 1 false true true true
Modified: trunk/test-integration/common/src/test/resources/TestPartsDatabaseMetadata/testTables.expected
===================================================================
--- trunk/test-integration/common/src/test/resources/TestPartsDatabaseMetadata/testTables.expected 2010-07-15 20:06:02 UTC (rev 2353)
+++ trunk/test-integration/common/src/test/resources/TestPartsDatabaseMetadata/testTables.expected 2010-07-16 19:10:00 UTC (rev 2354)
@@ -11,12 +11,23 @@
PartsSupplier SYS Schemas SYSTEM TABLE <null> <null> <null> <null> <null> <null> true
PartsSupplier SYS Tables SYSTEM TABLE <null> <null> <null> <null> <null> <null> true
PartsSupplier SYS VirtualDatabases SYSTEM TABLE <null> <null> <null> <null> <null> <null> true
+PartsSupplier pg_catalog pg_am SYSTEM TABLE <null> <null> <null> <null> <null> <null> false
+PartsSupplier pg_catalog pg_attrdef SYSTEM TABLE <null> <null> <null> <null> <null> <null> false
+PartsSupplier pg_catalog pg_attribute SYSTEM TABLE <null> <null> <null> <null> <null> <null> false
+PartsSupplier pg_catalog pg_class SYSTEM TABLE <null> <null> <null> <null> <null> <null> false
+PartsSupplier pg_catalog pg_database SYSTEM TABLE <null> <null> <null> <null> <null> <null> false
+PartsSupplier pg_catalog pg_index SYSTEM TABLE <null> <null> <null> <null> <null> <null> false
+PartsSupplier pg_catalog pg_namespace SYSTEM TABLE <null> <null> <null> <null> <null> <null> false
+PartsSupplier pg_catalog pg_proc SYSTEM TABLE <null> <null> <null> <null> <null> <null> false
+PartsSupplier pg_catalog pg_trigger SYSTEM TABLE <null> <null> <null> <null> <null> <null> false
+PartsSupplier pg_catalog pg_type SYSTEM TABLE <null> <null> <null> <null> <null> <null> false
+PartsSupplier pg_catalog pg_user SYSTEM TABLE <null> <null> <null> <null> <null> <null> false
PartsSupplier PartsSupplier PARTSSUPPLIER.PARTS TABLE <null> <null> <null> <null> <null> <null> true
PartsSupplier PartsSupplier PARTSSUPPLIER.SHIP_VIA TABLE <null> <null> <null> <null> <null> <null> true
PartsSupplier PartsSupplier PARTSSUPPLIER.STATUS TABLE <null> <null> <null> <null> <null> <null> true
PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER TABLE <null> <null> <null> <null> <null> <null> true
PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER_PARTS TABLE <null> <null> <null> <null> <null> <null> true
-Row Count : 16
+Row Count : 27
getColumnName getColumnType getCatalogName getColumnClassName getColumnLabel getColumnTypeName getSchemaName getTableName getColumnDisplaySize getPrecision getScale isAutoIncrement isCaseSensitive isCurrency isDefinitelyWritable isNullable isReadOnly isSearchable isSigned isWritable
TABLE_CAT 12 PartsSupplier java.lang.String TABLE_CAT string SYS Tables 255 255 0 false true false true 1 false true true true
TABLE_SCHEM 12 PartsSupplier java.lang.String TABLE_SCHEM string SYS Tables 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 2010-07-15 20:06:02 UTC (rev 2353)
+++ trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testColumns.expected 2010-07-16 19:10:00 UTC (rev 2354)
@@ -1,147 +1,231 @@
-string string string string integer string string integer integer boolean boolean boolean boolean boolean boolean boolean string string string string string string string integer integer integer string !
string
-VDBName SchemaName TableName Name Position NameInSource DataType Scale Length IsLengthFixed SupportsSelect SupportsUpdates IsCaseSensitive IsSigned IsCurrency IsAutoIncremented NullType MinRange MaxRange SearchType Format DefaultValue JavaClass Precision CharOctetLength Radix UID !
Description
-PartsSupplier SYS DataTypes BaseType 17 <null> string 0 64 true true false true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 64 64 10 mmuuid:03beb57c-968b-4821-a6ae-cb1154cfadee !
<null>
-PartsSupplier SYS Tables Cardinality 9 <null> integer 0 10 false true false true true false false No Nulls <null> <null> All Except Like <null> <null> java.lang.Integer 10 10 10 mmuuid:24cdad3a-e8f7-4376-bb32-79f8bc8eeed2 !
<null>
-PartsSupplier SYS Columns CharOctetLength 25 <null> integer 0 10 true true false false false false false Nullable <null> <null> Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:de5def94-2804-4c91-91ed-26d630ce8afe !
<null>
-PartsSupplier SYS ReferenceKeyColumns DEFERRABILITY 14 <null> integer 0 10 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:88380f55-2cbd-4325-b9a3-9dcaa88a690e !
<null>
-PartsSupplier SYS ReferenceKeyColumns DELETE_RULE 11 <null> integer 0 10 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:9207f4df-a5ce-43bd-b3b2-fee57e459849 !
<null>
-PartsSupplier SYS Columns DataType 7 <null> string 0 100 true true false true true false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 100 100 10 mmuuid:9a8dc0d5-e65c-4032-a066-187f8d2e73ea !
<null>
-PartsSupplier SYS ProcedureParams DataType 5 <null> string 0 25 true true false true true false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 25 25 10 mmuuid:207a09af-65b8-405f-b1cb-537bc8632fa4 !
<null>
-PartsSupplier SYS Columns DefaultValue 22 <null> string 0 255 true true false false false false false Nullable <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:7e853988-356b-4c7c-83d4-a9f015bff279 !
<null>
-PartsSupplier SYS Columns Description 28 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:74d73b53-b723-419e-9fea-de56408409ee !
<null>
-PartsSupplier SYS DataTypes Description 18 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:b7d95ef6-63a3-441c-8de5-c98e2e577ea3 !
<null>
-PartsSupplier SYS Keys Description 5 <null> string 0 255 true true false false false false false Nullable <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:175e21b2-24c3-4677-a253-6d7cdb513a9a !
<null>
-PartsSupplier SYS ProcedureParams Description 15 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 0 255 10 mmuuid:05ac4703-5c2c-4410-93b7-19b39d90c803 !
<null>
-PartsSupplier SYS Procedures Description 7 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 225 255 10 mmuuid:fa0b5db7-acb1-4975-8410-d5d27df46040 !
<null>
-PartsSupplier SYS Schemas Description 5 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:1cb99300-a527-4a26-b4e6-08ebd92a781d !
<null>
-PartsSupplier SYS Tables Description 10 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:51605e41-5cb0-40ca-8c4a-4eca52780afc !
<null>
-PartsSupplier SYS ReferenceKeyColumns FKCOLUMN_NAME 8 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:f4b2b32c-e411-45e6-a236-fec4718f0874 !
<null>
-PartsSupplier SYS ReferenceKeyColumns FKTABLE_CAT 5 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 1 255 10 mmuuid:a0095da3-1258-44dc-bab9-33eacf886a28 !
<null>
-PartsSupplier SYS ReferenceKeyColumns FKTABLE_NAME 7 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:53284aaa-4c07-4930-8a0e-5e2aaa2da5cb !
<null>
-PartsSupplier SYS ReferenceKeyColumns FKTABLE_SCHEM 6 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:93a35adf-b6b1-4d9c-bdef-d336a84f478e !
<null>
-PartsSupplier SYS ReferenceKeyColumns FK_NAME 12 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:a9ca7516-6898-419d-b1ad-7d174d946d07 !
<null>
-PartsSupplier SYS Columns Format 21 <null> string 0 255 true true false false false false false Nullable <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:172b133e-5bf1-4020-953c-de4446b1e64a !
<null>
-PartsSupplier SYS Columns IsAutoIncremented 16 <null> boolean 0 1 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Boolean 1 1 10 mmuuid:0d41e284-f274-4fd1-8576-7696f4b758d0 !
<null>
-PartsSupplier SYS DataTypes IsAutoIncremented 10 <null> boolean 0 1 true true false true true false false No Nulls <null> <null> Searchable <null> ('0') java.lang.Boolean 1 1 10 mmuuid:2a1568e2-776a-474b-981f-040a6ad63361 !
<null>
-PartsSupplier SYS Columns IsCaseSensitive 13 <null> boolean 0 1 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Boolean 1 1 10 mmuuid:21ee166a-b462-41a1-b88d-dc79f63d6e17 !
<null>
-PartsSupplier SYS DataTypes IsCaseSensitive 11 <null> boolean 0 1 true true false true false false false No Nulls <null> <null> Searchable <null> ('0') java.lang.Boolean 1 1 10 mmuuid:1468aaf2-6481-4d10-9554-44d0363fe571 !
<null>
-PartsSupplier SYS Columns IsCurrency 15 <null> boolean 0 1 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Boolean 1 1 10 mmuuid:b28a2963-36e0-4b4a-a8f8-a2c06f2b440a !
<null>
-PartsSupplier SYS Keys IsIndexed 8 <null> boolean 0 1 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Boolean 1 1 10 mmuuid:ea96cb7c-2dcf-453c-b83a-1aaa921d8f92 !
<null>
-PartsSupplier SYS Columns IsLengthFixed 10 <null> boolean 0 1 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Boolean 1 1 10 mmuuid:571aa4ce-3254-4a2b-aa48-1cb23a0c47ed !
<null>
-PartsSupplier SYS Tables IsMaterialized 12 <null> boolean 0 0 false true true false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Boolean 0 0 10 mmuuid:89265cba-ab85-48c2-960a-a5a9594ba6d0 !
<null>
-PartsSupplier SYS DataTypes IsPhysical 3 <null> boolean 0 1 true true false true true false false Nullable <null> <null> Searchable <null> <null> java.lang.Boolean 1 1 10 mmuuid:983714a2-bd0b-4fad-b4e8-dfb7832e9c4b !
<null>
-PartsSupplier SYS Schemas IsPhysical 3 <null> boolean 0 1 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Boolean 1 1 10 mmuuid:bab257d7-cced-4605-9b40-8ca6c078aca7 !
<null>
-PartsSupplier SYS Tables IsPhysical 6 <null> boolean 0 1 true true false true false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Boolean 1 1 10 mmuuid:e27712f6-a0a6-452e-848d-9de77691e939 !
<null>
-PartsSupplier SYS Columns IsSigned 14 <null> boolean 0 1 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Boolean 1 1 10 mmuuid:36be2afa-8ebc-4af8-acc5-a887cf2b5a86 !
<null>
-PartsSupplier SYS DataTypes IsSigned 9 <null> boolean 0 1 true true false true false false false No Nulls <null> <null> Searchable <null> ('0') java.lang.Boolean 1 1 10 mmuuid:235cea48-b2b9-41d5-b296-8ab9c649b6e7 !
<null>
-PartsSupplier SYS DataTypes IsStandard 2 <null> boolean 0 1 true true false true true false false Nullable <null> <null> Searchable <null> <null> java.lang.Boolean 1 1 10 mmuuid:02f27c5d-af55-4677-b91b-8690793671b2 !
<null>
-PartsSupplier SYS Tables IsSystem 11 <null> boolean 0 1 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.Boolean 1 1 10 mmuuid:9fa7987c-7dc8-4102-9cc0-5658d5b46382 !
<null>
-PartsSupplier SYS Columns JavaClass 23 <null> string 0 500 true true false true false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 500 500 10 mmuuid:6b8d5df5-7bd2-425c-8b2b-e427e026ef66 !
<null>
-PartsSupplier SYS DataTypes JavaClass 5 <null> string 0 500 true true false true false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 500 500 10 mmuuid:4c68ef90-8042-44ab-896a-bb3890a8fe04 !
<null>
-PartsSupplier SYS ReferenceKeyColumns KEY_SEQ 9 <null> short 0 5 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.Short 5 5 10 mmuuid:4884ac83-84ed-4b67-9f1a-bd79c0199269 !
<null>
-PartsSupplier SYS KeyColumns KeyName 5 <null> string 0 255 true true false false false false false Nullable <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:da4bef58-83f4-4b88-8bb0-2dc8990be539 !
<null>
-PartsSupplier SYS KeyColumns KeyType 6 <null> string 0 20 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 20 20 10 mmuuid:df9e15e6-ab77-486d-bfe0-0adc378aa99d !
<null>
-PartsSupplier SYS Columns Length 9 <null> integer 0 10 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:b36ea0f6-cbff-4049-bc9c-8ec9928be048 !
<null>
-PartsSupplier SYS Columns MaxRange 19 <null> string 0 50 true true false false false false false Nullable <null> <null> Searchable <null> <null> java.lang.String 50 50 10 mmuuid:0b0df4a5-7de5-4315-94f7-22c84958302e !
<null>
-PartsSupplier SYS Columns MinRange 18 <null> string 0 50 true true false false false false false Nullable <null> <null> Searchable <null> <null> java.lang.String 50 50 10 mmuuid:dba0f97d-fab5-45f6-a1eb-3459ab3fcc74 !
<null>
-PartsSupplier SYS Columns Name 4 <null> string 0 255 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:d1f44a6d-3e39-4251-b873-1280c2b035b3 !
<null>
-PartsSupplier SYS DataTypes Name 1 <null> string 0 100 true true false true true false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 100 100 10 mmuuid:17f7de33-e6f0-4b9c-b55e-a87f6b7bb9b3 !
<null>
-PartsSupplier SYS KeyColumns Name 4 <null> string 0 255 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:08bda0c7-5f66-4fed-8285-d74b63eeb0e2 !
<null>
-PartsSupplier SYS Keys Name 4 <null> string 0 255 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:149de302-2107-45ca-839d-fc0dd1e7d7f4 !
<null>
-PartsSupplier SYS ProcedureParams Name 4 <null> string 0 255 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:2bf20c6f-5a95-436d-8f30-a24d164e77a4 !
<null>
-PartsSupplier SYS Procedures Name 3 <null> string 0 255 true true false true false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:bd17e98a-c40a-43b1-93ac-88d62937c051 !
<null>
-PartsSupplier SYS Properties Name 1 <null> string 0 255 true true false true true false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:ba007c56-04b6-4981-ab89-3fdd33ff0de8 !
<null>
-PartsSupplier SYS Schemas Name 2 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 0 255 10 mmuuid:654112f8-bb4c-4453-9e4d-f3a96fba61ec !
<null>
-PartsSupplier SYS Tables Name 3 <null> string 0 255 true true false true false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:ef487cc2-1214-439c-af6e-da431df00d2c !
<null>
-PartsSupplier SYS VirtualDatabases Name 1 <null> string 0 255 true true false true false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:42fa1249-8b24-4aae-a252-0a347db6ec30 !
<null>
-PartsSupplier SYS Columns NameInSource 6 <null> string 0 255 true true false false false false false Nullable <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:fac72c6e-41dc-4a1b-8af3-f0796690d9cc !
<null>
-PartsSupplier SYS Keys NameInSource 6 <null> string 0 255 true true false false false false false Nullable <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:a52a6169-99e0-4b7e-9dc6-3a93ffa6094a !
<null>
-PartsSupplier SYS Procedures NameInSource 4 <null> string 0 255 true true false false false false false Nullable <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:a4e7a0fd-c340-49a9-9ac0-8328caaffda8 !
<null>
-PartsSupplier SYS Tables NameInSource 5 <null> string 0 255 true true false true false false false Nullable <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:1f036fb0-b841-450c-8462-986cdd57e921 !
<null>
-PartsSupplier SYS Columns NullType 17 <null> string 0 20 true true false true false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 20 20 10 mmuuid:4d83bdbb-a7ce-44cc-a201-021a517d3c1a !
<null>
-PartsSupplier SYS DataTypes NullType 8 <null> string 0 20 true true false true false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 20 20 10 mmuuid:278b0534-1164-495e-a8c6-de45e0ff53a4 !
<null>
-PartsSupplier SYS ProcedureParams NullType 13 <null> string 0 10 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 10 10 10 mmuuid:d887c203-6bf5-462b-b2f0-f5302e2f4bcd !
<null>
-PartsSupplier SYS ProcedureParams Optional 8 <null> boolean 0 1 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Boolean 1 1 10 mmuuid:4033f891-5ef5-4a75-8a50-bd1d021e43ad !
<null>
-PartsSupplier PartsSupplier PARTSSUPPLIER.PARTS PART_COLOR 3 PART_COLOR string 0 30 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 0 30 10 mmuuid:015c0d00-73ff-1edc-a81c-ecf397b10590 !
<null>
-PartsSupplier PartsSupplier PARTSSUPPLIER.PARTS PART_ID 1 PART_ID string 0 4 true true true true true false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 0 4 10 mmuuid:fadcd7c0-73fe-1edc-a81c-ecf397b10590 !
<null>
-PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER_PARTS PART_ID 2 PART_ID string 0 4 true true true true true false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 0 4 10 mmuuid:3fc400c0-73ff-1edc-a81c-ecf397b10590 !
<null>
-PartsSupplier PartsSupplier PARTSSUPPLIER.PARTS PART_NAME 2 PART_NAME string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 0 255 10 mmuuid:0067e900-73ff-1edc-a81c-ecf397b10590 !
<null>
-PartsSupplier PartsSupplier PARTSSUPPLIER.PARTS PART_WEIGHT 4 PART_WEIGHT string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 0 255 10 mmuuid:015c0d01-73ff-1edc-a81c-ecf397b10590 !
<null>
-PartsSupplier SYS ReferenceKeyColumns PKCOLUMN_NAME 4 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:0125a80a-95f9-486f-aa90-debb21cb5f1b !
<null>
-PartsSupplier SYS ReferenceKeyColumns PKTABLE_CAT 1 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 1 255 10 mmuuid:f615a661-2c36-4ab1-b72b-5e13e99e052c !
<null>
-PartsSupplier SYS ReferenceKeyColumns PKTABLE_NAME 3 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:6d420bc2-0f85-4da9-833d-d71b428b0743 !
<null>
-PartsSupplier SYS ReferenceKeyColumns PKTABLE_SCHEM 2 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:ef7b3b79-fb51-42ef-a723-080ed0a6e3bc !
<null>
-PartsSupplier SYS ReferenceKeyColumns PK_NAME 13 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:ac210a6d-4de6-4d71-aa9b-e3d34baca81a !
<null>
-PartsSupplier SYS Columns Position 5 <null> integer 0 10 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:dbc8cd09-1b47-43c5-82ec-aba525b85cc4 !
<null>
-PartsSupplier SYS KeyColumns Position 9 <null> integer 0 10 true true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:92a4849c-ed0e-4f5f-a108-d7d71a5aba25 !
<null>
-PartsSupplier SYS ProcedureParams Position 6 <null> integer 0 10 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:5fdefd17-65f4-4350-9ee0-0ed3c34d10ae !
<null>
-PartsSupplier SYS Columns Precision 24 <null> integer 0 10 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:db3d49e2-fe1d-438b-8d07-847bf58506ab !
<null>
-PartsSupplier SYS DataTypes Precision 12 <null> integer 0 10 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:8673c810-7162-4331-ba0b-6fc3530d2d1c !
<null>
-PartsSupplier SYS ProcedureParams Precision 9 <null> integer 0 10 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:00fe7cad-0a83-42f0-90f2-d6a9584916b2 !
<null>
-PartsSupplier SYS Schemas PrimaryMetamodelURI 6 <null> string 0 255 false true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:eadfaba5-ce44-4529-816f-6af94666baec !
<null>
-PartsSupplier SYS ProcedureParams ProcedureName 3 <null> string 0 255 true true false true false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:8081b3a6-fc79-42fd-b7c9-a19d682a1658 !
<null>
-PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER_PARTS QUANTITY 3 QUANTITY short 0 0 true true true false true false false Nullable <null> <null> All Except Like <null> <null> java.lang.Short 3 0 10 mmuuid:3fc400c1-73ff-1edc-a81c-ecf397b10590 !
<null>
-PartsSupplier SYS Columns Radix 26 <null> integer 0 10 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:43a6124c-972f-4c4c-af05-24080c2a8ad7 !
<null>
-PartsSupplier SYS DataTypes Radix 13 <null> integer 0 10 true true false false false false false Nullable <null> <null> Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:967ab8fd-3226-4a78-8cf2-2eb7fbf2981a !
<null>
-PartsSupplier SYS ProcedureParams Radix 12 <null> integer 0 10 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:8df37c99-3b12-4789-8128-4aa496f895c4 !
<null>
-PartsSupplier SYS KeyColumns RefKeyUID 7 <null> string 0 50 true true false false false false false Nullable <null> <null> Searchable <null> <null> java.lang.String 50 50 10 mmuuid:aafbdf50-25aa-427b-b322-7cb36094a1e2 !
<null>
-PartsSupplier SYS Keys RefKeyUID 9 <null> string 0 50 true true false false false false false Nullable <null> <null> Searchable <null> <null> java.lang.String 50 50 10 mmuuid:1cf4c5ad-5932-47ec-8593-385b75bfeba8 !
<null>
-PartsSupplier SYS Procedures ReturnsResults 5 <null> boolean 0 1 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Boolean 1 1 10 mmuuid:b01164c8-dd10-410d-a91b-fcb2fc0450ce !
<null>
-PartsSupplier SYS DataTypes RuntimeType 16 <null> string 0 64 true true false true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 64 64 10 mmuuid:3c7bc9d0-b73f-49a0-b9ab-dc97a4d2a124 !
<null>
-PartsSupplier PartsSupplier PARTSSUPPLIER.SHIP_VIA SHIPPER_ID 1 SHIPPER_ID short 0 0 true true true false true false false No Nulls <null> <null> All Except Like <null> <null> java.lang.Short 2 0 10 mmuuid:121bc540-73ff-1edc-a81c-ecf397b10590 !
<null>
-PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER_PARTS SHIPPER_ID 4 SHIPPER_ID short 0 0 true true true false true false false Nullable <null> <null> All Except Like <null> <null> java.lang.Short 2 0 10 mmuuid:3fc400c2-73ff-1edc-a81c-ecf397b10590 !
<null>
-PartsSupplier PartsSupplier PARTSSUPPLIER.SHIP_VIA SHIPPER_NAME 2 SHIPPER_NAME string 0 30 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 0 30 10 mmuuid:130fe940-73ff-1edc-a81c-ecf397b10590 !
<null>
-PartsSupplier PartsSupplier PARTSSUPPLIER.STATUS STATUS_ID 1 STATUS_ID short 0 0 true true true false true false false No Nulls <null> <null> All Except Like <null> <null> java.lang.Short 2 0 10 mmuuid:201d9600-73ff-1edc-a81c-ecf397b10590 !
<null>
-PartsSupplier PartsSupplier PARTSSUPPLIER.STATUS STATUS_NAME 2 STATUS_NAME string 0 30 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 0 30 10 mmuuid:201d9601-73ff-1edc-a81c-ecf397b10590 !
<null>
-PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER SUPPLIER_CITY 4 SUPPLIER_CITY string 0 30 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 0 30 10 mmuuid:2fe92a40-73ff-1edc-a81c-ecf397b10590 !
<null>
-PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER_PARTS SUPPLIER_ID 1 SUPPLIER_ID string 0 10 false true true true true false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 0 10 10 mmuuid:3ecfdcc0-73ff-1edc-a81c-ecf397b10590 !
<null>
-PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER SUPPLIER_ID 1 SUPPLIER_ID string 0 10 false true true true true false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 0 10 10 mmuuid:2f044880-73ff-1edc-a81c-ecf397b10590 !
<null>
-PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER SUPPLIER_NAME 2 SUPPLIER_NAME string 0 30 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 0 30 10 mmuuid:2f044881-73ff-1edc-a81c-ecf397b10590 !
<null>
-PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER SUPPLIER_STATE 5 SUPPLIER_STATE string 0 2 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 0 2 10 mmuuid:2fe92a41-73ff-1edc-a81c-ecf397b10590 !
<null>
-PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER SUPPLIER_STATUS 3 SUPPLIER_STATUS short 0 0 true true true false true false false Nullable <null> <null> All Except Like <null> <null> java.lang.Short 2 0 10 mmuuid:2f044882-73ff-1edc-a81c-ecf397b10590 !
<null>
-PartsSupplier SYS Columns Scale 8 <null> integer 0 10 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:cc6c6113-8d70-40c8-84c0-94e17c14e22e !
<null>
-PartsSupplier SYS DataTypes Scale 6 <null> integer 0 10 true true false false false false false Nullable <null> <null> Searchable <null> (0) java.lang.Integer 10 10 10 mmuuid:e8655204-e97a-45cd-909b-1e37731e9546 !
<null>
-PartsSupplier SYS ProcedureParams Scale 11 <null> integer 0 10 true true true false false false false No Nulls <null> <null> Searchable <null> (0) java.lang.Integer 10 10 10 mmuuid:360c8b1d-4b3d-42fd-952c-bf5763cad69e !
<null>
-PartsSupplier SYS Columns SchemaName 2 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 0 255 10 mmuuid:859288c9-cd78-4407-90fc-61b5d310e2ab !
<null>
-PartsSupplier SYS KeyColumns SchemaName 2 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 0 255 10 mmuuid:787be966-cf12-4956-907f-a8e6dc1009dc !
<null>
-PartsSupplier SYS Keys SchemaName 2 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 0 255 10 mmuuid:4a7fc059-208e-4f98-b6ef-cb7c6102a327 !
<null>
-PartsSupplier SYS ProcedureParams SchemaName 2 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 0 255 10 mmuuid:88497911-619c-4ca8-b482-8885d940706a !
<null>
-PartsSupplier SYS Procedures SchemaName 2 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 0 255 10 mmuuid:53a84865-334e-4750-b343-de2411d56e3e !
<null>
-PartsSupplier SYS Tables SchemaName 2 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 0 255 10 mmuuid:95bd960c-fd84-44c9-9831-692376f69b46 !
<null>
-PartsSupplier SYS Columns SearchType 20 <null> string 0 20 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 20 20 10 mmuuid:3037138a-bb20-4485-ba01-75bc20b1a532 !
<null>
-PartsSupplier SYS DataTypes SearchType 14 <null> string 0 20 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 20 20 10 mmuuid:d8494fa3-40e4-44cd-b0d8-da5c83685a75 !
<null>
-PartsSupplier SYS Columns SupportsSelect 11 <null> boolean 0 1 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Boolean 1 1 10 mmuuid:c2a50f93-0040-41ec-ad7b-e8511296555f !
<null>
-PartsSupplier SYS Columns SupportsUpdates 12 <null> boolean 0 1 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Boolean 1 1 10 mmuuid:fab660d1-36bf-4a5b-bbe6-9a543e0ebd76 !
<null>
-PartsSupplier SYS Tables SupportsUpdates 7 <null> boolean 0 1 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Boolean 1 1 10 mmuuid:5144d230-2b0e-4255-b321-65b9f6f6f76c !
<null>
-PartsSupplier SYS Columns TableName 3 <null> string 0 255 true true false true false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:2c09c9d1-2f25-45de-81cf-eeb2a5157d34 !
<null>
-PartsSupplier SYS KeyColumns TableName 3 <null> string 0 2048 true true false true false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 2048 2048 10 mmuuid:c24fad72-0c0d-4260-96ae-f188ad77b137 !
<null>
-PartsSupplier SYS Keys TableName 3 <null> string 0 2048 true true false true false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 2048 2048 10 mmuuid:7d9540bd-b51f-4206-8c33-b39c5ba8bb8b !
<null>
-PartsSupplier SYS Keys Type 7 <null> string 0 20 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 20 20 10 mmuuid:29e73c18-afec-43a9-81ab-7378d6daf20b !
<null>
-PartsSupplier SYS ProcedureParams Type 7 <null> string 0 100 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 100 100 10 mmuuid:76a1981b-1226-4a55-9acf-82a061cc8642 !
<null>
-PartsSupplier SYS Tables Type 4 <null> string 0 20 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 20 20 10 mmuuid:4814a0af-4e8f-4f55-9b25-3148d90d3d9b !
<null>
-PartsSupplier SYS DataTypes TypeLength 7 <null> integer 0 10 true true false false false false false No Nulls <null> <null> Searchable <null> (0) java.lang.Integer 10 10 10 mmuuid:0668382a-f9c3-4507-8b0f-df65a2ebbf2f !
<null>
-PartsSupplier SYS ProcedureParams TypeLength 10 <null> integer 0 10 true true false false false false false No Nulls <null> <null> Searchable <null> (0) java.lang.Integer 10 10 10 mmuuid:791d7a29-8fc5-4735-9144-1accc114b58e !
<null>
-PartsSupplier SYS DataTypes TypeName 4 <null> string 0 100 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 100 100 10 mmuuid:48081cdd-9e90-4440-a956-4a32af96d7f4 !
<null>
-PartsSupplier SYS Columns UID 27 <null> string 0 50 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 50 50 10 mmuuid:5f491c75-769b-4908-9f68-2a9a486607bb !
<null>
-PartsSupplier SYS DataTypes UID 15 <null> string 0 50 true true false false true false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 50 50 10 mmuuid:dd57f577-ffc4-4b55-8f7f-355b9ea3ce37 !
<null>
-PartsSupplier SYS KeyColumns UID 8 <null> string 0 50 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 50 50 10 mmuuid:0d994a45-4f52-4b79-9b31-7ef22331fee2 !
<null>
-PartsSupplier SYS Keys UID 10 <null> string 0 50 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 50 50 10 mmuuid:782218d1-5337-48c6-9070-0aafd4c6cd20 !
<null>
-PartsSupplier SYS ProcedureParams UID 14 <null> string 0 50 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 0 50 10 mmuuid:a278de2e-89f1-4281-9e63-54aebb6062ce !
<null>
-PartsSupplier SYS Procedures UID 6 <null> string 0 50 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 50 50 10 mmuuid:de9df25a-c886-46e0-ae3a-8eb6792e43f4 !
<null>
-PartsSupplier SYS Properties UID 3 <null> string 0 50 true true false false true false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 50 50 10 mmuuid:b333969a-83e0-4010-9463-9a0088da6c83 !
<null>
-PartsSupplier SYS Schemas UID 4 <null> string 0 50 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 50 50 10 mmuuid:ad232e4d-9c01-4d0c-bc57-0459d9db918a !
<null>
-PartsSupplier SYS Tables UID 8 <null> string 0 50 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 50 50 10 mmuuid:6afe3737-26f9-43a8-88db-86531b5dc66c !
<null>
-PartsSupplier SYS ReferenceKeyColumns UPDATE_RULE 10 <null> integer 0 10 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:30d5ae74-b19e-4186-97e1-aeff5801e44f !
<null>
-PartsSupplier SYS Columns VDBName 1 <null> string 0 255 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:83f19a81-1243-4751-8c99-daddbf37b1d7 !
<null>
-PartsSupplier SYS KeyColumns VDBName 1 <null> string 0 255 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:f062eb9c-4854-47fb-b7bd-a4e23c782b62 !
<null>
-PartsSupplier SYS Keys VDBName 1 <null> string 0 255 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:5785b523-7da3-42c1-8920-66daa1f7fa1d !
<null>
-PartsSupplier SYS ProcedureParams VDBName 1 <null> string 0 255 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:f832f316-2403-43fa-9ccc-c3ab9d38acca !
<null>
-PartsSupplier SYS Procedures VDBName 1 <null> string 0 255 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:1d664747-4a95-4605-8b28-381bed3121f1 !
<null>
-PartsSupplier SYS Schemas VDBName 1 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 0 255 10 mmuuid:73dbf95b-a283-4f0a-81b9-9b98e09c2906 !
<null>
-PartsSupplier SYS Tables VDBName 1 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 0 255 10 mmuuid:58de905f-9d64-4831-a985-da6d082ff709 !
<null>
-PartsSupplier SYS Properties Value 2 <null> string 0 255 true true false true true false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:c917257d-06b7-41dd-a6cb-44c0ff0f897e !
<null>
-PartsSupplier SYS VirtualDatabases Version 2 <null> string 0 50 true true false true false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 50 50 10 mmuuid:c876d749-a512-4810-9910-3034ca524c45 !
<null>
-Row Count : 141
+string string string string integer string string integer integer boolean boolean boolean boolean boolean boolean boolean string string string string string string string integer integer integer string !
string integer
+VDBName SchemaName TableName Name Position NameInSource DataType Scale Length IsLengthFixed SupportsSelect SupportsUpdates IsCaseSensitive IsSigned IsCurrency IsAutoIncremented NullType MinRange MaxRange SearchType Format DefaultValue JavaClass Precision CharOctetLength Radix UID !
Description OID
+PartsSupplier SYS DataTypes BaseType 17 <null> string 0 64 true true false true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 64 64 10 mmuuid:03beb57c-968b-4821-a6ae-cb1154cfadee !
<null> 449930315
+PartsSupplier SYS Tables Cardinality 9 <null> integer 0 10 false true false true true false false No Nulls <null> <null> All Except Like <null> <null> java.lang.Integer 10 10 10 mmuuid:24cdad3a-e8f7-4376-bb32-79f8bc8eeed2 !
<null> -827418434
+PartsSupplier SYS Columns CharOctetLength 25 <null> integer 0 10 true true false false false false false Nullable <null> <null> Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:de5def94-2804-4c91-91ed-26d630ce8afe !
<null> 1904600238
+PartsSupplier SYS ReferenceKeyColumns DEFERRABILITY 14 <null> integer 0 10 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:88380f55-2cbd-4325-b9a3-9dcaa88a690e !
<null> 1757202753
+PartsSupplier SYS ReferenceKeyColumns DELETE_RULE 11 <null> integer 0 10 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:9207f4df-a5ce-43bd-b3b2-fee57e459849 !
<null> -1881787205
+PartsSupplier SYS Columns DataType 7 <null> string 0 100 true true false true true false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 100 100 10 mmuuid:9a8dc0d5-e65c-4032-a066-187f8d2e73ea !
<null> 104049003
+PartsSupplier SYS ProcedureParams DataType 5 <null> string 0 25 true true false true true false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 25 25 10 mmuuid:207a09af-65b8-405f-b1cb-537bc8632fa4 !
<null> -33148063
+PartsSupplier SYS Columns DefaultValue 22 <null> string 0 255 true true false false false false false Nullable <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:7e853988-356b-4c7c-83d4-a9f015bff279 !
<null> 2081463498
+PartsSupplier SYS Columns Description 28 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:74d73b53-b723-419e-9fea-de56408409ee !
<null> -1798385399
+PartsSupplier SYS DataTypes Description 18 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:b7d95ef6-63a3-441c-8de5-c98e2e577ea3 !
<null> -1742254424
+PartsSupplier SYS Keys Description 5 <null> string 0 255 true true false false false false false Nullable <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:175e21b2-24c3-4677-a253-6d7cdb513a9a !
<null> 156365359
+PartsSupplier SYS ProcedureParams Description 15 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 0 255 10 mmuuid:05ac4703-5c2c-4410-93b7-19b39d90c803 !
<null> 1549159280
+PartsSupplier SYS Procedures Description 7 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 225 255 10 mmuuid:fa0b5db7-acb1-4975-8410-d5d27df46040 !
<null> -1392258153
+PartsSupplier SYS Schemas Description 5 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:1cb99300-a527-4a26-b4e6-08ebd92a781d !
<null> -639211628
+PartsSupplier SYS Tables Description 10 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:51605e41-5cb0-40ca-8c4a-4eca52780afc !
<null> -627255997
+PartsSupplier SYS ReferenceKeyColumns FKCOLUMN_NAME 8 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:f4b2b32c-e411-45e6-a236-fec4718f0874 !
<null> -716350485
+PartsSupplier SYS ReferenceKeyColumns FKTABLE_CAT 5 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 1 255 10 mmuuid:a0095da3-1258-44dc-bab9-33eacf886a28 !
<null> 1816028845
+PartsSupplier SYS ReferenceKeyColumns FKTABLE_NAME 7 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:53284aaa-4c07-4930-8a0e-5e2aaa2da5cb !
<null> 1346376866
+PartsSupplier SYS ReferenceKeyColumns FKTABLE_SCHEM 6 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:93a35adf-b6b1-4d9c-bdef-d336a84f478e !
<null> -302000488
+PartsSupplier SYS ReferenceKeyColumns FK_NAME 12 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:a9ca7516-6898-419d-b1ad-7d174d946d07 !
<null> -318434336
+PartsSupplier SYS Columns Format 21 <null> string 0 255 true true false false false false false Nullable <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:172b133e-5bf1-4020-953c-de4446b1e64a !
<null> 99434351
+PartsSupplier SYS Columns IsAutoIncremented 16 <null> boolean 0 1 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Boolean 1 1 10 mmuuid:0d41e284-f274-4fd1-8576-7696f4b758d0 !
<null> 1025501313
+PartsSupplier SYS DataTypes IsAutoIncremented 10 <null> boolean 0 1 true true false true true false false No Nulls <null> <null> Searchable <null> ('0') java.lang.Boolean 1 1 10 mmuuid:2a1568e2-776a-474b-981f-040a6ad63361 !
<null> 1589184032
+PartsSupplier SYS Columns IsCaseSensitive 13 <null> boolean 0 1 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Boolean 1 1 10 mmuuid:21ee166a-b462-41a1-b88d-dc79f63d6e17 !
<null> 1838086626
+PartsSupplier SYS DataTypes IsCaseSensitive 11 <null> boolean 0 1 true true false true false false false No Nulls <null> <null> Searchable <null> ('0') java.lang.Boolean 1 1 10 mmuuid:1468aaf2-6481-4d10-9554-44d0363fe571 !
<null> 810689849
+PartsSupplier SYS Columns IsCurrency 15 <null> boolean 0 1 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Boolean 1 1 10 mmuuid:b28a2963-36e0-4b4a-a8f8-a2c06f2b440a !
<null> -227498353
+PartsSupplier SYS Keys IsIndexed 8 <null> boolean 0 1 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Boolean 1 1 10 mmuuid:ea96cb7c-2dcf-453c-b83a-1aaa921d8f92 !
<null> -1736557250
+PartsSupplier SYS Columns IsLengthFixed 10 <null> boolean 0 1 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Boolean 1 1 10 mmuuid:571aa4ce-3254-4a2b-aa48-1cb23a0c47ed !
<null> 1175465478
+PartsSupplier SYS Tables IsMaterialized 12 <null> boolean 0 0 false true true false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Boolean 0 0 10 mmuuid:89265cba-ab85-48c2-960a-a5a9594ba6d0 !
<null> -439386537
+PartsSupplier SYS DataTypes IsPhysical 3 <null> boolean 0 1 true true false true true false false Nullable <null> <null> Searchable <null> <null> java.lang.Boolean 1 1 10 mmuuid:983714a2-bd0b-4fad-b4e8-dfb7832e9c4b !
<null> 388003599
+PartsSupplier SYS Schemas IsPhysical 3 <null> boolean 0 1 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Boolean 1 1 10 mmuuid:bab257d7-cced-4605-9b40-8ca6c078aca7 !
<null> -708799924
+PartsSupplier SYS Tables IsPhysical 6 <null> boolean 0 1 true true false true false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Boolean 1 1 10 mmuuid:e27712f6-a0a6-452e-848d-9de77691e939 !
<null> -800318605
+PartsSupplier SYS Columns IsSigned 14 <null> boolean 0 1 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Boolean 1 1 10 mmuuid:36be2afa-8ebc-4af8-acc5-a887cf2b5a86 !
<null> 1504393951
+PartsSupplier SYS DataTypes IsSigned 9 <null> boolean 0 1 true true false true false false false No Nulls <null> <null> Searchable <null> ('0') java.lang.Boolean 1 1 10 mmuuid:235cea48-b2b9-41d5-b296-8ab9c649b6e7 !
<null> -1410117530
+PartsSupplier SYS DataTypes IsStandard 2 <null> boolean 0 1 true true false true true false false Nullable <null> <null> Searchable <null> <null> java.lang.Boolean 1 1 10 mmuuid:02f27c5d-af55-4677-b91b-8690793671b2 !
<null> 2044345153
+PartsSupplier SYS Tables IsSystem 11 <null> boolean 0 1 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.Boolean 1 1 10 mmuuid:9fa7987c-7dc8-4102-9cc0-5658d5b46382 !
<null> -852036943
+PartsSupplier SYS Columns JavaClass 23 <null> string 0 500 true true false true false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 500 500 10 mmuuid:6b8d5df5-7bd2-425c-8b2b-e427e026ef66 !
<null> 2038419570
+PartsSupplier SYS DataTypes JavaClass 5 <null> string 0 500 true true false true false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 500 500 10 mmuuid:4c68ef90-8042-44ab-896a-bb3890a8fe04 !
<null> -553383651
+PartsSupplier SYS ReferenceKeyColumns KEY_SEQ 9 <null> short 0 5 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.Short 5 5 10 mmuuid:4884ac83-84ed-4b67-9f1a-bd79c0199269 !
<null> 304004456
+PartsSupplier SYS KeyColumns KeyName 5 <null> string 0 255 true true false false false false false Nullable <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:da4bef58-83f4-4b88-8bb0-2dc8990be539 !
<null> -211689398
+PartsSupplier SYS KeyColumns KeyType 6 <null> string 0 20 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 20 20 10 mmuuid:df9e15e6-ab77-486d-bfe0-0adc378aa99d !
<null> -2096082716
+PartsSupplier SYS Columns Length 9 <null> integer 0 10 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:b36ea0f6-cbff-4049-bc9c-8ec9928be048 !
<null> 1552424938
+PartsSupplier SYS Columns MaxRange 19 <null> string 0 50 true true false false false false false Nullable <null> <null> Searchable <null> <null> java.lang.String 50 50 10 mmuuid:0b0df4a5-7de5-4315-94f7-22c84958302e !
<null> -1431993426
+PartsSupplier SYS Columns MinRange 18 <null> string 0 50 true true false false false false false Nullable <null> <null> Searchable <null> <null> java.lang.String 50 50 10 mmuuid:dba0f97d-fab5-45f6-a1eb-3459ab3fcc74 !
<null> 1127616920
+PartsSupplier SYS Columns Name 4 <null> string 0 255 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:d1f44a6d-3e39-4251-b873-1280c2b035b3 !
<null> -1412388946
+PartsSupplier SYS DataTypes Name 1 <null> string 0 100 true true false true true false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 100 100 10 mmuuid:17f7de33-e6f0-4b9c-b55e-a87f6b7bb9b3 !
<null> 988889238
+PartsSupplier SYS KeyColumns Name 4 <null> string 0 255 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:08bda0c7-5f66-4fed-8285-d74b63eeb0e2 !
<null> 2034926350
+PartsSupplier SYS Keys Name 4 <null> string 0 255 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:149de302-2107-45ca-839d-fc0dd1e7d7f4 !
<null> 425155393
+PartsSupplier SYS ProcedureParams Name 4 <null> string 0 255 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:2bf20c6f-5a95-436d-8f30-a24d164e77a4 !
<null> -1008332542
+PartsSupplier SYS Procedures Name 3 <null> string 0 255 true true false true false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:bd17e98a-c40a-43b1-93ac-88d62937c051 !
<null> -1887591430
+PartsSupplier SYS Properties Name 1 <null> string 0 255 true true false true true false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:ba007c56-04b6-4981-ab89-3fdd33ff0de8 !
<null> 1640613833
+PartsSupplier SYS Schemas Name 2 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 0 255 10 mmuuid:654112f8-bb4c-4453-9e4d-f3a96fba61ec !
<null> -1915969202
+PartsSupplier SYS Tables Name 3 <null> string 0 255 true true false true false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:ef487cc2-1214-439c-af6e-da431df00d2c !
<null> 690430606
+PartsSupplier SYS VirtualDatabases Name 1 <null> string 0 255 true true false true false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:42fa1249-8b24-4aae-a252-0a347db6ec30 !
<null> -1192264541
+PartsSupplier SYS Columns NameInSource 6 <null> string 0 255 true true false false false false false Nullable <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:fac72c6e-41dc-4a1b-8af3-f0796690d9cc !
<null> -826716590
+PartsSupplier SYS Keys NameInSource 6 <null> string 0 255 true true false false false false false Nullable <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:a52a6169-99e0-4b7e-9dc6-3a93ffa6094a !
<null> -1100843962
+PartsSupplier SYS Procedures NameInSource 4 <null> string 0 255 true true false false false false false Nullable <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:a4e7a0fd-c340-49a9-9ac0-8328caaffda8 !
<null> -593996602
+PartsSupplier SYS Tables NameInSource 5 <null> string 0 255 true true false true false false false Nullable <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:1f036fb0-b841-450c-8462-986cdd57e921 !
<null> 239676287
+PartsSupplier SYS Columns NullType 17 <null> string 0 20 true true false true false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 20 20 10 mmuuid:4d83bdbb-a7ce-44cc-a201-021a517d3c1a !
<null> 220538653
+PartsSupplier SYS DataTypes NullType 8 <null> string 0 20 true true false true false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 20 20 10 mmuuid:278b0534-1164-495e-a8c6-de45e0ff53a4 !
<null> -252713441
+PartsSupplier SYS ProcedureParams NullType 13 <null> string 0 10 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 10 10 10 mmuuid:d887c203-6bf5-462b-b2f0-f5302e2f4bcd !
<null> -1768740125
+PartsSupplier SYS Columns OID 29 <null> integer 0 10 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:b9e5ba07-4a8d-4589-8aa9-597ae70d18a4 !
<null> -488975294
+PartsSupplier SYS DataTypes OID 19 <null> integer 0 10 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:a3c41050-80b6-4fb5-9c6b-5e20c0839cda !
<null> 1702443356
+PartsSupplier SYS KeyColumns OID 10 <null> integer 0 10 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:207d123c-a3ff-4e4e-85ae-6f3b0debfc06 !
<null> -2084878595
+PartsSupplier SYS Keys OID 11 <null> integer 0 10 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:d781f893-bdf3-4dc1-956f-7e7b1a138c99 !
<null> 120374768
+PartsSupplier SYS ProcedureParams OID 16 <null> integer 0 10 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:72125f93-846f-413c-82e1-fa3227fb043f !
<null> 1413251219
+PartsSupplier SYS Procedures OID 8 <null> integer 0 10 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:c80c02d2-7174-4cc4-b347-e921a80f568c !
<null> 415310936
+PartsSupplier SYS Properties OID 4 <null> integer 0 10 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:54c1a7dc-5ca8-4d34-8672-e76d63fe3b95 !
<null> -601712965
+PartsSupplier SYS Schemas OID 7 <null> integer 0 10 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:31746839-e019-4321-90cb-a557e1d4754e !
<null> 98394392
+PartsSupplier SYS Tables OID 13 <null> integer 0 10 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:dae79c58-b381-4275-8c1c-b299d732d355 !
<null> 2006785825
+PartsSupplier SYS ProcedureParams Optional 8 <null> boolean 0 1 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Boolean 1 1 10 mmuuid:4033f891-5ef5-4a75-8a50-bd1d021e43ad !
<null> -1986083814
+PartsSupplier PartsSupplier PARTSSUPPLIER.PARTS PART_COLOR 3 PART_COLOR string 0 30 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 0 30 10 mmuuid:015c0d00-73ff-1edc-a81c-ecf397b10590 !
<null> -1794301564
+PartsSupplier PartsSupplier PARTSSUPPLIER.PARTS PART_ID 1 PART_ID string 0 4 true true true true true false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 0 4 10 mmuuid:fadcd7c0-73fe-1edc-a81c-ecf397b10590 !
<null> -1088265444
+PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER_PARTS PART_ID 2 PART_ID string 0 4 true true true true true false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 0 4 10 mmuuid:3fc400c0-73ff-1edc-a81c-ecf397b10590 !
<null> 14793330
+PartsSupplier PartsSupplier PARTSSUPPLIER.PARTS PART_NAME 2 PART_NAME string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 0 255 10 mmuuid:0067e900-73ff-1edc-a81c-ecf397b10590 !
<null> 2032364534
+PartsSupplier PartsSupplier PARTSSUPPLIER.PARTS PART_WEIGHT 4 PART_WEIGHT string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 0 255 10 mmuuid:015c0d01-73ff-1edc-a81c-ecf397b10590 !
<null> -1101199867
+PartsSupplier SYS ReferenceKeyColumns PKCOLUMN_NAME 4 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:0125a80a-95f9-486f-aa90-debb21cb5f1b !
<null> 1551740858
+PartsSupplier SYS ReferenceKeyColumns PKTABLE_CAT 1 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 1 255 10 mmuuid:f615a661-2c36-4ab1-b72b-5e13e99e052c !
<null> 549758030
+PartsSupplier SYS ReferenceKeyColumns PKTABLE_NAME 3 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:6d420bc2-0f85-4da9-833d-d71b428b0743 !
<null> -1715655065
+PartsSupplier SYS ReferenceKeyColumns PKTABLE_SCHEM 2 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:ef7b3b79-fb51-42ef-a723-080ed0a6e3bc !
<null> -1959434503
+PartsSupplier SYS ReferenceKeyColumns PK_NAME 13 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:ac210a6d-4de6-4d71-aa9b-e3d34baca81a !
<null> 1849512787
+PartsSupplier SYS Columns Position 5 <null> integer 0 10 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:dbc8cd09-1b47-43c5-82ec-aba525b85cc4 !
<null> -187678130
+PartsSupplier SYS KeyColumns Position 9 <null> integer 0 10 true true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:92a4849c-ed0e-4f5f-a108-d7d71a5aba25 !
<null> -732937332
+PartsSupplier SYS ProcedureParams Position 6 <null> integer 0 10 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:5fdefd17-65f4-4350-9ee0-0ed3c34d10ae !
<null> 1214741362
+PartsSupplier SYS Columns Precision 24 <null> integer 0 10 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:db3d49e2-fe1d-438b-8d07-847bf58506ab !
<null> -207752578
+PartsSupplier SYS DataTypes Precision 12 <null> integer 0 10 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:8673c810-7162-4331-ba0b-6fc3530d2d1c !
<null> 748017945
+PartsSupplier SYS ProcedureParams Precision 9 <null> integer 0 10 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:00fe7cad-0a83-42f0-90f2-d6a9584916b2 !
<null> 1013266093
+PartsSupplier SYS Schemas PrimaryMetamodelURI 6 <null> string 0 255 false true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:eadfaba5-ce44-4529-816f-6af94666baec !
<null> -1878816788
+PartsSupplier SYS ProcedureParams ProcedureName 3 <null> string 0 255 true true false true false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:8081b3a6-fc79-42fd-b7c9-a19d682a1658 !
<null> 2030457340
+PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER_PARTS QUANTITY 3 QUANTITY short 0 0 true true true false true false false Nullable <null> <null> All Except Like <null> <null> java.lang.Short 3 0 10 mmuuid:3fc400c1-73ff-1edc-a81c-ecf397b10590 !
<null> 707895027
+PartsSupplier SYS Columns Radix 26 <null> integer 0 10 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:43a6124c-972f-4c4c-af05-24080c2a8ad7 !
<null> 741988173
+PartsSupplier SYS DataTypes Radix 13 <null> integer 0 10 true true false false false false false Nullable <null> <null> Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:967ab8fd-3226-4a78-8cf2-2eb7fbf2981a !
<null> 2009321453
+PartsSupplier SYS ProcedureParams Radix 12 <null> integer 0 10 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:8df37c99-3b12-4789-8128-4aa496f895c4 !
<null> -460741195
+PartsSupplier SYS KeyColumns RefKeyUID 7 <null> string 0 50 true true false false false false false Nullable <null> <null> Searchable <null> <null> java.lang.String 50 50 10 mmuuid:aafbdf50-25aa-427b-b322-7cb36094a1e2 !
<null> -22652004
+PartsSupplier SYS Keys RefKeyUID 9 <null> string 0 50 true true false false false false false Nullable <null> <null> Searchable <null> <null> java.lang.String 50 50 10 mmuuid:1cf4c5ad-5932-47ec-8593-385b75bfeba8 !
<null> 1957953763
+PartsSupplier SYS Procedures ReturnsResults 5 <null> boolean 0 1 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Boolean 1 1 10 mmuuid:b01164c8-dd10-410d-a91b-fcb2fc0450ce !
<null> 1612225140
+PartsSupplier SYS DataTypes RuntimeType 16 <null> string 0 64 true true false true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 64 64 10 mmuuid:3c7bc9d0-b73f-49a0-b9ab-dc97a4d2a124 !
<null> -202037504
+PartsSupplier PartsSupplier PARTSSUPPLIER.SHIP_VIA SHIPPER_ID 1 SHIPPER_ID short 0 0 true true true false true false false No Nulls <null> <null> All Except Like <null> <null> java.lang.Short 2 0 10 mmuuid:121bc540-73ff-1edc-a81c-ecf397b10590 !
<null> 1264644385
+PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER_PARTS SHIPPER_ID 4 SHIPPER_ID short 0 0 true true true false true false false Nullable <null> <null> All Except Like <null> <null> java.lang.Short 2 0 10 mmuuid:3fc400c2-73ff-1edc-a81c-ecf397b10590 !
<null> 1400996724
+PartsSupplier PartsSupplier PARTSSUPPLIER.SHIP_VIA SHIPPER_NAME 2 SHIPPER_NAME string 0 30 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 0 30 10 mmuuid:130fe940-73ff-1edc-a81c-ecf397b10590 !
<null> -797147767
+PartsSupplier PartsSupplier PARTSSUPPLIER.STATUS STATUS_ID 1 STATUS_ID short 0 0 true true true false true false false No Nulls <null> <null> All Except Like <null> <null> java.lang.Short 2 0 10 mmuuid:201d9600-73ff-1edc-a81c-ecf397b10590 !
<null> -1477852881
+PartsSupplier PartsSupplier PARTSSUPPLIER.STATUS STATUS_NAME 2 STATUS_NAME string 0 30 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 0 30 10 mmuuid:201d9601-73ff-1edc-a81c-ecf397b10590 !
<null> -784751184
+PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER SUPPLIER_CITY 4 SUPPLIER_CITY string 0 30 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 0 30 10 mmuuid:2fe92a40-73ff-1edc-a81c-ecf397b10590 !
<null> 1834223700
+PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER_PARTS SUPPLIER_ID 1 SUPPLIER_ID string 0 10 false true true true true false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 0 10 10 mmuuid:3ecfdcc0-73ff-1edc-a81c-ecf397b10590 !
<null> 39358754
+PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER SUPPLIER_ID 1 SUPPLIER_ID string 0 10 false true true true true false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 0 10 10 mmuuid:2f044880-73ff-1edc-a81c-ecf397b10590 !
<null> 173333941
+PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER SUPPLIER_NAME 2 SUPPLIER_NAME string 0 30 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 0 30 10 mmuuid:2f044881-73ff-1edc-a81c-ecf397b10590 !
<null> 866435638
+PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER SUPPLIER_STATE 5 SUPPLIER_STATE string 0 2 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 0 2 10 mmuuid:2fe92a41-73ff-1edc-a81c-ecf397b10590 !
<null> -1767641899
+PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER SUPPLIER_STATUS 3 SUPPLIER_STATUS short 0 0 true true true false true false false Nullable <null> <null> All Except Like <null> <null> java.lang.Short 2 0 10 mmuuid:2f044882-73ff-1edc-a81c-ecf397b10590 !
<null> 1559537335
+PartsSupplier SYS Columns Scale 8 <null> integer 0 10 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:cc6c6113-8d70-40c8-84c0-94e17c14e22e !
<null> -1960637886
+PartsSupplier SYS DataTypes Scale 6 <null> integer 0 10 true true false false false false false Nullable <null> <null> Searchable <null> (0) java.lang.Integer 10 10 10 mmuuid:e8655204-e97a-45cd-909b-1e37731e9546 !
<null> 616923420
+PartsSupplier SYS ProcedureParams Scale 11 <null> integer 0 10 true true true false false false false No Nulls <null> <null> Searchable <null> (0) java.lang.Integer 10 10 10 mmuuid:360c8b1d-4b3d-42fd-952c-bf5763cad69e !
<null> -1799226271
+PartsSupplier SYS Columns SchemaName 2 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 0 255 10 mmuuid:859288c9-cd78-4407-90fc-61b5d310e2ab !
<null> 1944775942
+PartsSupplier SYS KeyColumns SchemaName 2 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 0 255 10 mmuuid:787be966-cf12-4956-907f-a8e6dc1009dc !
<null> -1759292119
+PartsSupplier SYS Keys SchemaName 2 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 0 255 10 mmuuid:4a7fc059-208e-4f98-b6ef-cb7c6102a327 !
<null> 1074685596
+PartsSupplier SYS ProcedureParams SchemaName 2 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 0 255 10 mmuuid:88497911-619c-4ca8-b482-8885d940706a !
<null> -944775923
+PartsSupplier SYS Procedures SchemaName 2 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 0 255 10 mmuuid:53a84865-334e-4750-b343-de2411d56e3e !
<null> -1162137751
+PartsSupplier SYS Tables SchemaName 2 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 0 255 10 mmuuid:95bd960c-fd84-44c9-9831-692376f69b46 !
<null> -1168783734
+PartsSupplier SYS Columns SearchType 20 <null> string 0 20 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 20 20 10 mmuuid:3037138a-bb20-4485-ba01-75bc20b1a532 !
<null> -917271927
+PartsSupplier SYS DataTypes SearchType 14 <null> string 0 20 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 20 20 10 mmuuid:d8494fa3-40e4-44cd-b0d8-da5c83685a75 !
<null> 920862690
+PartsSupplier SYS Columns SupportsSelect 11 <null> boolean 0 1 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Boolean 1 1 10 mmuuid:c2a50f93-0040-41ec-ad7b-e8511296555f !
<null> -1799446175
+PartsSupplier SYS Columns SupportsUpdates 12 <null> boolean 0 1 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Boolean 1 1 10 mmuuid:fab660d1-36bf-4a5b-bbe6-9a543e0ebd76 !
<null> 1376383558
+PartsSupplier SYS Tables SupportsUpdates 7 <null> boolean 0 1 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.Boolean 1 1 10 mmuuid:5144d230-2b0e-4255-b321-65b9f6f6f76c !
<null> -1060614397
+PartsSupplier SYS Columns TableName 3 <null> string 0 255 true true false true false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:2c09c9d1-2f25-45de-81cf-eeb2a5157d34 !
<null> 37248193
+PartsSupplier SYS KeyColumns TableName 3 <null> string 0 2048 true true false true false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 2048 2048 10 mmuuid:c24fad72-0c0d-4260-96ae-f188ad77b137 !
<null> -1594935697
+PartsSupplier SYS Keys TableName 3 <null> string 0 2048 true true false true false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 2048 2048 10 mmuuid:7d9540bd-b51f-4206-8c33-b39c5ba8bb8b !
<null> -1862131168
+PartsSupplier SYS Keys Type 7 <null> string 0 20 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 20 20 10 mmuuid:29e73c18-afec-43a9-81ab-7378d6daf20b !
<null> 846555123
+PartsSupplier SYS ProcedureParams Type 7 <null> string 0 100 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 100 100 10 mmuuid:76a1981b-1226-4a55-9acf-82a061cc8642 !
<null> 1405495099
+PartsSupplier SYS Tables Type 4 <null> string 0 20 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 20 20 10 mmuuid:4814a0af-4e8f-4f55-9b25-3148d90d3d9b !
<null> 880927430
+PartsSupplier SYS DataTypes TypeLength 7 <null> integer 0 10 true true false false false false false No Nulls <null> <null> Searchable <null> (0) java.lang.Integer 10 10 10 mmuuid:0668382a-f9c3-4507-8b0f-df65a2ebbf2f !
<null> -352113497
+PartsSupplier SYS ProcedureParams TypeLength 10 <null> integer 0 10 true true false false false false false No Nulls <null> <null> Searchable <null> (0) java.lang.Integer 10 10 10 mmuuid:791d7a29-8fc5-4735-9144-1accc114b58e !
<null> -948014349
+PartsSupplier SYS DataTypes TypeName 4 <null> string 0 100 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 100 100 10 mmuuid:48081cdd-9e90-4440-a956-4a32af96d7f4 !
<null> 1747073036
+PartsSupplier SYS Columns UID 27 <null> string 0 50 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 50 50 10 mmuuid:5f491c75-769b-4908-9f68-2a9a486607bb !
<null> -710939971
+PartsSupplier SYS DataTypes UID 15 <null> string 0 50 true true false false true false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 50 50 10 mmuuid:dd57f577-ffc4-4b55-8f7f-355b9ea3ce37 !
<null> 996977955
+PartsSupplier SYS KeyColumns UID 8 <null> string 0 50 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 50 50 10 mmuuid:0d994a45-4f52-4b79-9b31-7ef22331fee2 !
<null> 2018331904
+PartsSupplier SYS Keys UID 10 <null> string 0 50 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 50 50 10 mmuuid:782218d1-5337-48c6-9070-0aafd4c6cd20 !
<null> -1864727535
+PartsSupplier SYS ProcedureParams UID 14 <null> string 0 50 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 0 50 10 mmuuid:a278de2e-89f1-4281-9e63-54aebb6062ce !
<null> 633179490
+PartsSupplier SYS Procedures UID 6 <null> string 0 50 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 50 50 10 mmuuid:de9df25a-c886-46e0-ae3a-8eb6792e43f4 !
<null> -908438290
+PartsSupplier SYS Properties UID 3 <null> string 0 50 true true false false true false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 50 50 10 mmuuid:b333969a-83e0-4010-9463-9a0088da6c83 !
<null> -1166122209
+PartsSupplier SYS Schemas UID 4 <null> string 0 50 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 50 50 10 mmuuid:ad232e4d-9c01-4d0c-bc57-0459d9db918a !
<null> 1001441719
+PartsSupplier SYS Tables UID 8 <null> string 0 50 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 50 50 10 mmuuid:6afe3737-26f9-43a8-88db-86531b5dc66c !
<null> -175171634
+PartsSupplier SYS ReferenceKeyColumns UPDATE_RULE 10 <null> integer 0 10 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.Integer 10 10 10 mmuuid:30d5ae74-b19e-4186-97e1-aeff5801e44f !
<null> -449329715
+PartsSupplier SYS Columns VDBName 1 <null> string 0 255 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:83f19a81-1243-4751-8c99-daddbf37b1d7 !
<null> 625775649
+PartsSupplier SYS KeyColumns VDBName 1 <null> string 0 255 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:f062eb9c-4854-47fb-b7bd-a4e23c782b62 !
<null> 854014254
+PartsSupplier SYS Keys VDBName 1 <null> string 0 255 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:5785b523-7da3-42c1-8920-66daa1f7fa1d !
<null> -1451894484
+PartsSupplier SYS ProcedureParams VDBName 1 <null> string 0 255 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:f832f316-2403-43fa-9ccc-c3ab9d38acca !
<null> 1975537358
+PartsSupplier SYS Procedures VDBName 1 <null> string 0 255 true true false false false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:1d664747-4a95-4605-8b28-381bed3121f1 !
<null> 675421827
+PartsSupplier SYS Schemas VDBName 1 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 0 255 10 mmuuid:73dbf95b-a283-4f0a-81b9-9b98e09c2906 !
<null> 1083046346
+PartsSupplier SYS Tables VDBName 1 <null> string 0 255 false true true true true false false Nullable <null> <null> Searchable <null> <null> java.lang.String 0 255 10 mmuuid:58de905f-9d64-4831-a985-da6d082ff709 !
<null> 743485616
+PartsSupplier SYS Properties Value 2 <null> string 0 255 true true false true true false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 255 255 10 mmuuid:c917257d-06b7-41dd-a6cb-44c0ff0f897e !
<null> 411746507
+PartsSupplier SYS VirtualDatabases Version 2 <null> string 0 50 true true false true false false false No Nulls <null> <null> Searchable <null> <null> java.lang.String 50 50 10 mmuuid:c876d749-a512-4810-9910-3034ca524c45 !
<null> -357731549
+PartsSupplier pg_catalog pg_attrdef adnum 4 <null> integer 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.Integer 0 0 0 mmuuid:520aa08f-1341-4e8e-8abd-5785128d79ab !
<null> -1546672787
+PartsSupplier pg_catalog pg_attrdef adrelid 3 <null> integer 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.Integer 0 0 0 mmuuid:54648256-35de-4dd3-9d23-1cf7d14aac1f !
<null> 1059469691
+PartsSupplier pg_catalog pg_attrdef adsrc 2 <null> integer 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.Integer 0 0 0 mmuuid:1f29af59-2a39-4cad-b6ff-986ff224db27 !
<null> -331283891
+PartsSupplier pg_catalog pg_am amname 2 <null> string 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.String 0 0 0 mmuuid:ed5b2740-5024-4c3c-a1ac-9187d0ab16c7 !
<null> 1511248377
+PartsSupplier pg_catalog pg_attribute atthasdef 10 <null> boolean 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.Boolean 0 0 0 mmuuid:be916cb0-0f48-44d7-ae5c-003822ee3e57 !
<null> 2145379509
+PartsSupplier pg_catalog pg_attribute attisdropped 9 <null> boolean 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.Boolean 0 0 0 mmuuid:910c0c60-63be-44fb-bc30-1ba5528cf471 !
<null> -2003496118
+PartsSupplier pg_catalog pg_attribute attlen 5 <null> short 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.Short 0 0 0 mmuuid:36973b20-e707-460e-aaa5-ed38f9a1d90a !
<null> -1795441436
+PartsSupplier pg_catalog pg_attribute attname 3 <null> string 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.String 0 0 0 mmuuid:7099d08f-4206-400e-ba65-fbeeb2066070 !
<null> -574665690
+PartsSupplier pg_catalog pg_attribute attnotnull 8 <null> boolean 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.Boolean 0 0 0 mmuuid:e9230efa-bde9-49ea-b6da-6ede8c5fb3ee !
<null> 1919642235
+PartsSupplier pg_catalog pg_attribute attnum 6 <null> short 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.Short 0 0 0 mmuuid:ca1c8121-21d7-4a19-b009-a0ef482f5657 !
<null> -368889602
+PartsSupplier pg_catalog pg_attribute attrelid 2 <null> integer 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.Integer 0 0 0 mmuuid:5f18b807-9eef-41fa-b6d0-b83e2bf6fa5d !
<null> 1817835217
+PartsSupplier pg_catalog pg_attribute atttypid 4 <null> integer 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.Integer 0 0 0 mmuuid:8ef029fe-6410-4c34-8f35-301d25d7bd59 !
<null> -1055354453
+PartsSupplier pg_catalog pg_attribute atttypmod 7 <null> integer 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.Integer 0 0 0 mmuuid:455e727b-8276-4bcd-bd65-9a43b990416a !
<null> -1832736504
+PartsSupplier pg_catalog pg_database datacl 7 <null> object 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.Object 0 0 0 mmuuid:80ed5897-0b9c-4b3a-95ee-0e5ff4faad34 !
<null> -639480338
+PartsSupplier pg_catalog pg_database datallowconn 5 <null> char 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.Character 0 0 0 mmuuid:7be945c4-6bca-4f65-b655-b055b6d31c56 !
<null> 2090011815
+PartsSupplier pg_catalog pg_database datconfig 6 <null> object 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.Object 0 0 0 mmuuid:dde7619f-7071-490f-85c8-ba8c68cb0e78 !
<null> 1265212944
+PartsSupplier pg_catalog pg_database datdba 8 <null> integer 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.Integer 0 0 0 mmuuid:1190357d-63d4-4b19-a0cd-f9f23b11e23e !
<null> -1356986869
+PartsSupplier pg_catalog pg_database datlastsysoid 4 <null> integer 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.Integer 0 0 0 mmuuid:c93379b9-1b4d-4068-890f-deed28338a54 !
<null> -1897406238
+PartsSupplier pg_catalog pg_database datname 2 <null> string 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.String 0 0 0 mmuuid:e751d595-6afe-430e-9f57-a56cee474765 !
<null> -1631782981
+PartsSupplier pg_catalog pg_database dattablespace 9 <null> integer 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.Integer 0 0 0 mmuuid:6261ae76-3d53-4bda-bb5c-a353818292ae !
<null> 1220708103
+PartsSupplier pg_catalog pg_database encoding 3 <null> integer 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.Integer 0 0 0 mmuuid:637b6fec-e56a-461b-b714-7c88976d7cde !
<null> 190169626
+PartsSupplier pg_catalog pg_index indexprs 7 <null> string 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.String 0 0 0 mmuuid:b99ce838-8576-423a-b5b7-e58080e3e65d !
<null> 129149326
+PartsSupplier pg_catalog pg_index indexrelid 2 <null> integer 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.Integer 0 0 0 mmuuid:16e440fd-616a-4437-a630-abc2d90c728e !
<null> -1332345703
+PartsSupplier pg_catalog pg_index indisclustered 4 <null> boolean 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.Boolean 0 0 0 mmuuid:bce548a8-ac4a-4c71-a7ab-2ca0235e81ed !
<null> -572843177
+PartsSupplier pg_catalog pg_index indisprimary 6 <null> boolean 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.Boolean 0 0 0 mmuuid:37e53c0f-08b4-403f-a8c6-5b28c367b62c !
<null> -1371913171
+PartsSupplier pg_catalog pg_index indisunique 5 <null> boolean 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.Boolean 0 0 0 mmuuid:48d79b76-983b-4291-89c2-41222c2f1296 !
<null> 375662166
+PartsSupplier pg_catalog pg_index indkey 8 <null> string 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.String 0 0 0 mmuuid:4dfcc8eb-a131-4234-993f-051dfa15934e !
<null> -501867330
+PartsSupplier pg_catalog pg_index indrelid 3 <null> integer 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.Integer 0 0 0 mmuuid:94eed371-461a-47b8-8ca1-0494fa0108fb !
<null> 842922062
+PartsSupplier pg_catalog pg_namespace nspname 2 <null> string 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.String 0 0 0 mmuuid:8e2c1f9f-359d-4c33-afa5-20fa87585442 !
<null> -628173568
+PartsSupplier pg_catalog pg_namespace oid 1 <null> integer 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.Integer 0 0 0 mmuuid:36d8ca5a-4747-4bb0-8b7b-9f50f6eb9a0e !
<null> 373628435
+PartsSupplier pg_catalog pg_class oid 1 <null> integer 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.Integer 0 0 0 mmuuid:2a19b579-70b9-4923-a5df-6bbbbc642042 !
<null> 1625508050
+PartsSupplier pg_catalog pg_attribute oid 1 <null> integer 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.Integer 0 0 0 mmuuid:5142b0b5-b166-4e17-b18c-5bbdb023e1c3 !
<null> 2103741346
+PartsSupplier pg_catalog pg_type oid 1 <null> integer 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.Integer 0 0 0 mmuuid:83240e67-acd6-49d3-be86-a4e186d110ea !
<null> 1257605974
+PartsSupplier pg_catalog pg_index oid 1 <null> integer 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.Integer 0 0 0 mmuuid:f846b870-445f-4263-905b-f43ebdea385e !
<null> 1364472411
+PartsSupplier pg_catalog pg_am oid 1 <null> integer 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.Integer 0 0 0 mmuuid:644ce6f8-a75f-46e6-a03a-294b02feb6fc !
<null> 348003813
+PartsSupplier pg_catalog pg_proc oid 1 <null> integer 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.Integer 0 0 0 mmuuid:246f56c3-5268-42b8-a486-d3c77653f603 !
<null> -1984635687
+PartsSupplier pg_catalog pg_trigger oid 1 <null> integer 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.Integer 0 0 0 mmuuid:7b1632d0-8357-47d6-9233-24291059f37d !
<null> 1255466367
+PartsSupplier pg_catalog pg_attrdef oid 1 <null> integer 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.Integer 0 0 0 mmuuid:280c0f10-ed7b-4d36-95a4-1409f22c3839 !
<null> -607267013
+PartsSupplier pg_catalog pg_database oid 1 <null> integer 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.Integer 0 0 0 mmuuid:a2be6d15-b504-4257-962e-2c3fa90e3c16 !
<null> 446356164
+PartsSupplier pg_catalog pg_user oid 1 <null> integer 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.Integer 0 0 0 mmuuid:dcebd4db-ba52-4909-ab57-528c818e94b7 !
<null> -311176298
+PartsSupplier pg_catalog pg_proc proallargtypes 9 <null> object 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.Object 0 0 0 mmuuid:f0e04ef7-1a8b-4007-bce2-e2beba667d53 !
<null> 1421812587
+PartsSupplier pg_catalog pg_proc proargmodes 8 <null> object 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.Object 0 0 0 mmuuid:fd6e0be2-e336-4d3b-8217-f85cfcd0999b !
<null> -1648420405
+PartsSupplier pg_catalog pg_proc proargnames 7 <null> object 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.Object 0 0 0 mmuuid:bfc2e071-c49d-40b1-b3e9-d4891af6a77c !
<null> 112570388
+PartsSupplier pg_catalog pg_proc proargtypes 6 <null> object 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.Object 0 0 0 mmuuid:4af1aac3-5d4c-47c5-ab6c-4a52b5b551b7 !
<null> -664211823
+PartsSupplier pg_catalog pg_proc proname 2 <null> string 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.String 0 0 0 mmuuid:b9c340ba-bf6f-41ba-aa40-f3c607077280 !
<null> -834139826
+PartsSupplier pg_catalog pg_proc pronamespace 10 <null> integer 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.Integer 0 0 0 mmuuid:458f5136-4128-47e8-8063-3c97fb1add5c !
<null> -1460928205
+PartsSupplier pg_catalog pg_proc pronargs 5 <null> short 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.Short 0 0 0 mmuuid:1490582b-6223-44df-8b20-9bcd5d241aa8 !
<null> -139838005
+PartsSupplier pg_catalog pg_proc proretset 3 <null> boolean 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.Boolean 0 0 0 mmuuid:0e2c6601-ecc9-41e2-be0d-3a27565b3714 !
<null> 499803309
+PartsSupplier pg_catalog pg_proc prorettype 4 <null> integer 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.Integer 0 0 0 mmuuid:d5e2bf27-a413-4146-a059-37bf651a1b97 !
<null> 1397859651
+PartsSupplier pg_catalog pg_class relam 5 <null> integer 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.Integer 0 0 0 mmuuid:6d59ce95-63ef-445d-bf17-6bcb45850623 !
<null> -1870447130
+PartsSupplier pg_catalog pg_class relhasoids 9 <null> string 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.String 0 0 0 mmuuid:e099cd49-b50b-4573-a931-9c9eb95d75ae !
<null> -723255984
+PartsSupplier pg_catalog pg_class relhasrules 8 <null> boolean 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.Boolean 0 0 0 mmuuid:712a6f1e-0c49-48dc-99ed-9f55a7c3d6d4 !
<null> 2022840685
+PartsSupplier pg_catalog pg_class relkind 4 <null> char 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.Character 0 0 0 mmuuid:0a280f97-8dce-4123-bbc9-54bf3b5fd8f6 !
<null> -2108781653
+PartsSupplier pg_catalog pg_class relname 2 <null> string 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.String 0 0 0 mmuuid:e6534fee-6712-4574-b228-2787fb960e46 !
<null> -1521761894
+PartsSupplier pg_catalog pg_class relnamespace 3 <null> integer 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.Integer 0 0 0 mmuuid:6881bd36-92b9-4552-b953-028036d59f50 !
<null> 559270286
+PartsSupplier pg_catalog pg_class relpages 7 <null> integer 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.Integer 0 0 0 mmuuid:a74a4a3b-20b0-4a62-ac3a-4bd2047979fc !
<null> -1131535092
+PartsSupplier pg_catalog pg_class reltuples 6 <null> float 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.Float 0 0 0 mmuuid:d1b54420-5e09-41e0-a177-181e6a6b94d4 !
<null> 1412069305
+PartsSupplier pg_catalog pg_trigger tgargs 4 <null> integer 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.Integer 0 0 0 mmuuid:6ab14a63-9aa3-416c-872b-8f6a37131fa4 !
<null> -1427817109
+PartsSupplier pg_catalog pg_trigger tgconstrname 8 <null> string 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.String 0 0 0 mmuuid:ad972784-8dc3-4151-b113-3d95967dc19f !
<null> 1978541887
+PartsSupplier pg_catalog pg_trigger tgconstrrelid 2 <null> integer 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.Integer 0 0 0 mmuuid:f78e6a3c-5c27-4381-9d76-870fd3b6b510 !
<null> -1839359651
+PartsSupplier pg_catalog pg_trigger tgdeferrable 6 <null> boolean 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.Boolean 0 0 0 mmuuid:264a3677-584c-4ecd-808b-b837acd9c129 !
<null> 224520183
+PartsSupplier pg_catalog pg_trigger tgfoid 3 <null> integer 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.Integer 0 0 0 mmuuid:9a9d2791-506e-4e06-88e2-fadb90cb8d8c !
<null> -175657451
+PartsSupplier pg_catalog pg_trigger tginitdeferred 7 <null> boolean 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.Boolean 0 0 0 mmuuid:034bb072-1571-4953-bc18-216478346304 !
<null> 1760818902
+PartsSupplier pg_catalog pg_trigger tgnargs 5 <null> integer 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.Integer 0 0 0 mmuuid:ec283b19-42a0-441f-8198-b80f353720d1 !
<null> 1345190695
+PartsSupplier pg_catalog pg_trigger tgrelid 9 <null> integer 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.Integer 0 0 0 mmuuid:3aecc7ac-d54a-4bf7-be75-f64b37eb59ab !
<null> 824464965
+PartsSupplier pg_catalog pg_type typbasetype 6 <null> integer 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.Integer 0 0 0 mmuuid:e7df7d7a-1ddd-4a56-8514-82272eef5aa3 !
<null> -1602004266
+PartsSupplier pg_catalog pg_type typlen 4 <null> short 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.Short 0 0 0 mmuuid:33b00d6a-aae5-4bcd-80cc-ec7052bdeca2 !
<null> 30131224
+PartsSupplier pg_catalog pg_type typname 2 <null> string 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.String 0 0 0 mmuuid:e9f471d8-7ad0-48a9-ab64-7adbe922ff9b !
<null> -2137383909
+PartsSupplier pg_catalog pg_type typnamespace 3 <null> integer 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.Integer 0 0 0 mmuuid:e1723124-4e26-4971-a407-ceefaf0f624d !
<null> -664776960
+PartsSupplier pg_catalog pg_type typrelid 8 <null> integer 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.Integer 0 0 0 mmuuid:d44fc440-a677-463f-a403-f04f1896a705 !
<null> -1112999853
+PartsSupplier pg_catalog pg_type typtype 5 <null> char 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.Character 0 0 0 mmuuid:496eb63b-7fb2-4d56-90ac-11e5717acadd !
<null> 622706593
+PartsSupplier pg_catalog pg_type typtypmod 7 <null> integer 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.Integer 0 0 0 mmuuid:800d1b55-c775-4a63-b5ed-e76d3b112f60 !
<null> -919158145
+PartsSupplier pg_catalog pg_user usecreatedb 3 <null> boolean 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.Boolean 0 0 0 mmuuid:7f20dc11-f376-4da5-9fe5-139c2562b4c2 !
<null> 1288630002
+PartsSupplier pg_catalog pg_user usename 2 <null> string 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.String 0 0 0 mmuuid:8d148996-16a1-44d8-b5ff-06f9421415d4 !
<null> 717511814
+PartsSupplier pg_catalog pg_user usesuper 4 <null> boolean 0 0 false true false false false false false Unknown <null> <null> Searchable <null> <null> java.lang.Boolean 0 0 0 mmuuid:f3434529-3e9a-4f11-90c0-b74374947902 !
<null> 1033115127
+Row Count : 225
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
@@ -171,3 +255,4 @@
Radix 4 PartsSupplier java.lang.Integer Radix integer SYS Columns 11 10 0 false false false false 0 true true false false
UID 12 PartsSupplier java.lang.String UID string SYS Columns 50 50 0 false false false false 0 true true false false
Description 12 PartsSupplier java.lang.String Description string SYS Columns 255 255 0 false true false true 1 false true true true
+OID 4 PartsSupplier java.lang.Integer OID integer SYS Columns 11 10 0 false false false false 0 true true false false
Modified: trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testDataTypes.expected
===================================================================
--- trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testDataTypes.expected 2010-07-15 20:06:02 UTC (rev 2353)
+++ trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testDataTypes.expected 2010-07-16 19:10:00 UTC (rev 2354)
@@ -1,57 +1,57 @@
-string boolean boolean string string integer integer string boolean boolean boolean integer integer string string string string string
-Name IsStandard IsPhysical TypeName JavaClass Scale TypeLength NullType IsSigned IsAutoIncremented IsCaseSensitive Precision Radix SearchType UID RuntimeType BaseType Description
-ENTITIES false false ENTITIES java.lang.String 0 0 No Nulls false false false 0 0 Searchable mmuuid:20360100-e742-1e20-8c26-a038c6ed7576 string ENTITY <null>
-ENTITY false false ENTITY java.lang.String 0 0 No Nulls false false false 0 0 Searchable mmuuid:9fece300-e71a-1e20-8c26-a038c6ed7576 string NCName <null>
-ID false false ID java.lang.String 0 0 No Nulls false false false 0 0 Searchable mmuuid:88b13dc0-e702-1e20-8c26-a038c6ed7576 string NCName <null>
-IDREF false false IDREF java.lang.String 0 0 No Nulls false false false 0 0 Searchable mmuuid:dd33ff40-e6df-1e20-8c26-a038c6ed7576 string NCName <null>
-IDREFS false false IDREFS java.lang.String 0 0 No Nulls false false false 0 0 Searchable mmuuid:3c99f780-e72d-1e20-8c26-a038c6ed7576 string IDREF <null>
-NCName false false NCName java.lang.String 0 0 No Nulls false false false 0 0 Searchable mmuuid:ac00e000-e676-1e20-8c26-a038c6ed7576 string Name <null>
-NMTOKEN false false NMTOKEN java.lang.String 0 0 No Nulls false false false 0 0 Searchable mmuuid:4ca2ae00-3a95-1e20-921b-eeee28353879 string token <null>
-NMTOKENS false false NMTOKENS java.lang.String 0 0 No Nulls false false false 0 0 Searchable mmuuid:4b0f8500-e6a6-1e20-8c26-a038c6ed7576 string NMTOKEN <null>
-NOTATION false false NOTATION java.lang.String 0 0 No Nulls false false false 0 0 Searchable mmuuid:3dcaf900-e8dc-1e2a-b433-fb67ea35c07e string anySimpleType <null>
-Name false false Name java.lang.String 0 0 No Nulls false false false 0 0 Searchable mmuuid:e66c4600-e65b-1e20-8c26-a038c6ed7576 string token <null>
-QName false false QName java.lang.String 0 0 No Nulls false false false 0 0 Searchable mmuuid:eeb5d780-e8c3-1e2a-b433-fb67ea35c07e string anySimpleType <null>
-XMLLiteral false false XMLLiteral org.teiid.core.types.XMLType 0 0 No Nulls false false false 0 0 Searchable mmuuid:43f5274e-55e1-1f87-ba1c-eea49143eb32 xml string <null>
-anyURI false false anyURI java.lang.String 0 0 No Nulls false false false 0 0 Searchable mmuuid:6247ec80-e8a4-1e2a-b433-fb67ea35c07e string anySimpleType <null>
-base64Binary false false base64Binary java.lang.String 0 0 No Nulls false false false 0 0 Searchable mmuuid:b4c99380-ebc6-1e2a-9319-8eaa9b2276c7 string anySimpleType <null>
-bigdecimal false false bigdecimal java.math.BigDecimal 0 0 No Nulls false false false 0 0 Searchable mmuuid:f2249740-a078-1e26-9b08-d6079ebe1f0d bigdecimal decimal <null>
-biginteger false false biginteger java.math.BigInteger 0 0 No Nulls false false false 0 0 Searchable mmuuid:822b9a40-a066-1e26-9b08-d6079ebe1f0d biginteger decimal <null>
-blob false false blob org.teiid.core.types.BlobType 0 0 No Nulls false false false 0 0 Searchable mmuuid:5a793100-1836-1ed0-ba0f-f2334f5fbf95 blob base64Binary <null>
-boolean false false boolean java.lang.Boolean 0 0 No Nulls false false false 0 0 Searchable mmuuid:dc476100-c483-1e24-9b01-c8207cd53eb7 boolean anySimpleType <null>
-byte false false byte java.lang.Byte 0 0 No Nulls false false false 0 0 Searchable mmuuid:26dc1cc0-b9c8-1e21-b812-969c8fc8b016 byte short <null>
-char false false char java.lang.Character 0 0 No Nulls false false false 0 0 Searchable mmuuid:62472700-a064-1e26-9b08-d6079ebe1f0d char string <null>
-clob false false clob org.teiid.core.types.ClobType 0 0 No Nulls false false false 0 0 Searchable mmuuid:559646c0-4941-1ece-b22b-f49159d22ad3 clob string <null>
-date false false date java.sql.Date 0 0 No Nulls false false false 0 0 Searchable mmuuid:65dcde00-c4ab-1e24-9b01-c8207cd53eb7 date anySimpleType <null>
-dateTime false false dateTime java.sql.Timestamp 0 0 No Nulls false false false 0 0 Searchable mmuuid:5c69dec0-b3ea-1e2a-9a03-beb8638ffd21 timestamp anySimpleType <null>
-decimal false false decimal java.math.BigDecimal 0 0 No Nulls false false false 0 0 Searchable mmuuid:569dfa00-c456-1e24-9b01-c8207cd53eb7 bigdecimal anySimpleType <null>
-double false false double java.lang.Double 0 0 No Nulls false false false 0 0 Searchable mmuuid:1f18b140-c4a3-1e24-9b01-c8207cd53eb7 double anySimpleType <null>
-duration false false duration java.lang.String 0 0 No Nulls false false false 0 0 Searchable mmuuid:28d98540-b3e7-1e2a-9a03-beb8638ffd21 string anySimpleType <null>
-float false false float java.lang.Float 0 0 No Nulls false false false 0 0 Searchable mmuuid:d86b0d00-c48a-1e24-9b01-c8207cd53eb7 float anySimpleType <null>
-gDay false false gDay java.math.BigInteger 0 0 No Nulls false false false 0 0 Searchable mmuuid:860b7dc0-b3f8-1e2a-9a03-beb8638ffd21 biginteger anySimpleType <null>
-gMonth false false gMonth java.math.BigInteger 0 0 No Nulls false false false 0 0 Searchable mmuuid:187f5580-b3fb-1e2a-9a03-beb8638ffd21 biginteger anySimpleType <null>
-gMonthDay false false gMonthDay java.sql.Timestamp 0 0 No Nulls false false false 0 0 Searchable mmuuid:6e604140-b3f5-1e2a-9a03-beb8638ffd21 timestamp anySimpleType <null>
-gYear false false gYear java.math.BigInteger 0 0 No Nulls false false false 0 0 Searchable mmuuid:b02c7600-b3f2-1e2a-9a03-beb8638ffd21 biginteger anySimpleType <null>
-gYearMonth false false gYearMonth java.sql.Timestamp 0 0 No Nulls false false false 0 0 Searchable mmuuid:17d08040-b3ed-1e2a-9a03-beb8638ffd21 timestamp anySimpleType <null>
-hexBinary false false hexBinary java.lang.String 0 0 No Nulls false false false 0 0 Searchable mmuuid:d9998500-ebba-1e2a-9319-8eaa9b2276c7 string anySimpleType <null>
-int false false int java.lang.Integer 0 0 No Nulls false false false 0 0 Searchable mmuuid:33add3c0-b98d-1e21-b812-969c8fc8b016 integer long <null>
-integer false false integer java.math.BigInteger 0 0 No Nulls false false false 0 0 Searchable mmuuid:45da3500-e78f-1e20-8c26-a038c6ed7576 biginteger decimal <null>
-language false false language java.lang.String 0 0 No Nulls false false false 0 0 Searchable mmuuid:d4d980c0-e623-1e20-8c26-a038c6ed7576 string token <null>
-long false false long java.lang.Long 0 0 No Nulls false false false 0 0 Searchable mmuuid:8cdee840-b900-1e21-b812-969c8fc8b016 long integer <null>
-negativeInteger false false negativeInteger java.math.BigInteger 0 0 No Nulls false false false 0 0 Searchable mmuuid:86d29280-b8d3-1e21-b812-969c8fc8b016 biginteger nonPositiveInteger <null>
-nonNegativeInteger false false nonNegativeInteger java.math.BigInteger 0 0 No Nulls false false false 0 0 Searchable mmuuid:0e081200-b8a4-1e21-b812-969c8fc8b016 biginteger integer <null>
-nonPositiveInteger false false nonPositiveInteger java.math.BigInteger 0 0 No Nulls false false false 0 0 Searchable mmuuid:cbdd6e40-b9d2-1e21-8c26-a038c6ed7576 biginteger integer <null>
-normalizedString false false normalizedString java.lang.String 0 0 No Nulls false false false 0 0 Searchable mmuuid:4df43700-3b13-1e20-921b-eeee28353879 string string <null>
-object false false object java.lang.Object 0 0 No Nulls false false false 0 0 Searchable mmuuid:051a0640-b4e8-1e26-9f33-b76fd9d5fa79 object base64Binary <null>
-positiveInteger false false positiveInteger java.math.BigInteger 0 0 No Nulls false false false 0 0 Searchable mmuuid:1cbbd380-b9ea-1e21-b812-969c8fc8b016 biginteger nonNegativeInteger <null>
-short false false short java.lang.Short 0 0 No Nulls false false false 0 0 Searchable mmuuid:5bbcf140-b9ae-1e21-b812-969c8fc8b016 short int <null>
-string false false string java.lang.String 0 0 No Nulls false false false 0 0 Searchable mmuuid:bf6c34c0-c442-1e24-9b01-c8207cd53eb7 string anySimpleType <null>
-time false false time java.sql.Time 0 0 No Nulls false false false 0 0 Searchable mmuuid:3b892180-c4a7-1e24-9b01-c8207cd53eb7 time anySimpleType <null>
-timestamp false false timestamp java.sql.Timestamp 0 0 No Nulls false false false 0 0 Searchable mmuuid:6d9809c0-a07e-1e26-9b08-d6079ebe1f0d timestamp string <null>
-token false false token java.lang.String 0 0 No Nulls false false false 0 0 Searchable mmuuid:3425cb80-d844-1e20-9027-be6d2c3b8b3a string normalizedString <null>
-unsignedByte false false unsignedByte java.lang.Short 0 0 No Nulls false false false 0 0 Searchable mmuuid:cff745c0-baa2-1e21-b812-969c8fc8b016 short unsignedShort <null>
-unsignedInt false false unsignedInt java.lang.Long 0 0 No Nulls false false false 0 0 Searchable mmuuid:badcbd80-ba63-1e21-b812-969c8fc8b016 long unsignedLong <null>
-unsignedLong false false unsignedLong java.math.BigInteger 0 0 No Nulls false false false 0 0 Searchable mmuuid:54b98780-ba14-1e21-b812-969c8fc8b016 biginteger nonNegativeInteger <null>
-unsignedShort false false unsignedShort java.lang.Integer 0 0 No Nulls false false false 0 0 Searchable mmuuid:327093c0-ba88-1e21-b812-969c8fc8b016 integer unsignedInt <null>
+string boolean boolean string string integer integer string boolean boolean boolean integer integer string string string string string integer
+Name IsStandard IsPhysical TypeName JavaClass Scale TypeLength NullType IsSigned IsAutoIncremented IsCaseSensitive Precision Radix SearchType UID RuntimeType BaseType Description OID
+ENTITIES false false ENTITIES java.lang.String 0 0 No Nulls false false false 0 0 Searchable mmuuid:20360100-e742-1e20-8c26-a038c6ed7576 string ENTITY <null> 1565845655
+ENTITY false false ENTITY java.lang.String 0 0 No Nulls false false false 0 0 Searchable mmuuid:9fece300-e71a-1e20-8c26-a038c6ed7576 string NCName <null> 1601134012
+ID false false ID java.lang.String 0 0 No Nulls false false false 0 0 Searchable mmuuid:88b13dc0-e702-1e20-8c26-a038c6ed7576 string NCName <null> -439734338
+IDREF false false IDREF java.lang.String 0 0 No Nulls false false false 0 0 Searchable mmuuid:dd33ff40-e6df-1e20-8c26-a038c6ed7576 string NCName <null> -2067437138
+IDREFS false false IDREFS java.lang.String 0 0 No Nulls false false false 0 0 Searchable mmuuid:3c99f780-e72d-1e20-8c26-a038c6ed7576 string IDREF <null> -1543702982
+NCName false false NCName java.lang.String 0 0 No Nulls false false false 0 0 Searchable mmuuid:ac00e000-e676-1e20-8c26-a038c6ed7576 string Name <null> 528679266
+NMTOKEN false false NMTOKEN java.lang.String 0 0 No Nulls false false false 0 0 Searchable mmuuid:4ca2ae00-3a95-1e20-921b-eeee28353879 string token <null> 1089379376
+NMTOKENS false false NMTOKENS java.lang.String 0 0 No Nulls false false false 0 0 Searchable mmuuid:4b0f8500-e6a6-1e20-8c26-a038c6ed7576 string NMTOKEN <null> -49524128
+NOTATION false false NOTATION java.lang.String 0 0 No Nulls false false false 0 0 Searchable mmuuid:3dcaf900-e8dc-1e2a-b433-fb67ea35c07e string anySimpleType <null> 2042518870
+Name false false Name java.lang.String 0 0 No Nulls false false false 0 0 Searchable mmuuid:e66c4600-e65b-1e20-8c26-a038c6ed7576 string token <null> 289122055
+QName false false QName java.lang.String 0 0 No Nulls false false false 0 0 Searchable mmuuid:eeb5d780-e8c3-1e2a-b433-fb67ea35c07e string anySimpleType <null> -1116454591
+XMLLiteral false false XMLLiteral org.teiid.core.types.XMLType 0 0 No Nulls false false false 0 0 Searchable mmuuid:43f5274e-55e1-1f87-ba1c-eea49143eb32 xml string <null> -540990016
+anyURI false false anyURI java.lang.String 0 0 No Nulls false false false 0 0 Searchable mmuuid:6247ec80-e8a4-1e2a-b433-fb67ea35c07e string anySimpleType <null> -59208011
+base64Binary false false base64Binary java.lang.String 0 0 No Nulls false false false 0 0 Searchable mmuuid:b4c99380-ebc6-1e2a-9319-8eaa9b2276c7 string anySimpleType <null> -823222669
+bigdecimal false false bigdecimal java.math.BigDecimal 0 0 No Nulls false false false 0 0 Searchable mmuuid:f2249740-a078-1e26-9b08-d6079ebe1f0d bigdecimal decimal <null> 1979280431
+biginteger false false biginteger java.math.BigInteger 0 0 No Nulls false false false 0 0 Searchable mmuuid:822b9a40-a066-1e26-9b08-d6079ebe1f0d biginteger decimal <null> 559842102
+blob false false blob org.teiid.core.types.BlobType 0 0 No Nulls false false false 0 0 Searchable mmuuid:5a793100-1836-1ed0-ba0f-f2334f5fbf95 blob base64Binary <null> -2019895717
+boolean false false boolean java.lang.Boolean 0 0 No Nulls false false false 0 0 Searchable mmuuid:dc476100-c483-1e24-9b01-c8207cd53eb7 boolean anySimpleType <null> 634647251
+byte false false byte java.lang.Byte 0 0 No Nulls false false false 0 0 Searchable mmuuid:26dc1cc0-b9c8-1e21-b812-969c8fc8b016 byte short <null> 2134665454
+char false false char java.lang.Character 0 0 No Nulls false false false 0 0 Searchable mmuuid:62472700-a064-1e26-9b08-d6079ebe1f0d char string <null> 1839898766
+clob false false clob org.teiid.core.types.ClobType 0 0 No Nulls false false false 0 0 Searchable mmuuid:559646c0-4941-1ece-b22b-f49159d22ad3 clob string <null> -957808587
+date false false date java.sql.Date 0 0 No Nulls false false false 0 0 Searchable mmuuid:65dcde00-c4ab-1e24-9b01-c8207cd53eb7 date anySimpleType <null> 109587055
+dateTime false false dateTime java.sql.Timestamp 0 0 No Nulls false false false 0 0 Searchable mmuuid:5c69dec0-b3ea-1e2a-9a03-beb8638ffd21 timestamp anySimpleType <null> 1783381066
+decimal false false decimal java.math.BigDecimal 0 0 No Nulls false false false 0 0 Searchable mmuuid:569dfa00-c456-1e24-9b01-c8207cd53eb7 bigdecimal anySimpleType <null> -422637353
+double false false double java.lang.Double 0 0 No Nulls false false false 0 0 Searchable mmuuid:1f18b140-c4a3-1e24-9b01-c8207cd53eb7 double anySimpleType <null> -1896323898
+duration false false duration java.lang.String 0 0 No Nulls false false false 0 0 Searchable mmuuid:28d98540-b3e7-1e2a-9a03-beb8638ffd21 string anySimpleType <null> -151641591
+float false false float java.lang.Float 0 0 No Nulls false false false 0 0 Searchable mmuuid:d86b0d00-c48a-1e24-9b01-c8207cd53eb7 float anySimpleType <null> -1100092516
+gDay false false gDay java.math.BigInteger 0 0 No Nulls false false false 0 0 Searchable mmuuid:860b7dc0-b3f8-1e2a-9a03-beb8638ffd21 biginteger anySimpleType <null> -1907680065
+gMonth false false gMonth java.math.BigInteger 0 0 No Nulls false false false 0 0 Searchable mmuuid:187f5580-b3fb-1e2a-9a03-beb8638ffd21 biginteger anySimpleType <null> 631420857
+gMonthDay false false gMonthDay java.sql.Timestamp 0 0 No Nulls false false false 0 0 Searchable mmuuid:6e604140-b3f5-1e2a-9a03-beb8638ffd21 timestamp anySimpleType <null> -1953829478
+gYear false false gYear java.math.BigInteger 0 0 No Nulls false false false 0 0 Searchable mmuuid:b02c7600-b3f2-1e2a-9a03-beb8638ffd21 biginteger anySimpleType <null> 1667865721
+gYearMonth false false gYearMonth java.sql.Timestamp 0 0 No Nulls false false false 0 0 Searchable mmuuid:17d08040-b3ed-1e2a-9a03-beb8638ffd21 timestamp anySimpleType <null> -1828535858
+hexBinary false false hexBinary java.lang.String 0 0 No Nulls false false false 0 0 Searchable mmuuid:d9998500-ebba-1e2a-9319-8eaa9b2276c7 string anySimpleType <null> 515983103
+int false false int java.lang.Integer 0 0 No Nulls false false false 0 0 Searchable mmuuid:33add3c0-b98d-1e21-b812-969c8fc8b016 integer long <null> -678912492
+integer false false integer java.math.BigInteger 0 0 No Nulls false false false 0 0 Searchable mmuuid:45da3500-e78f-1e20-8c26-a038c6ed7576 biginteger decimal <null> 1269190693
+language false false language java.lang.String 0 0 No Nulls false false false 0 0 Searchable mmuuid:d4d980c0-e623-1e20-8c26-a038c6ed7576 string token <null> 443789629
+long false false long java.lang.Long 0 0 No Nulls false false false 0 0 Searchable mmuuid:8cdee840-b900-1e21-b812-969c8fc8b016 long integer <null> 433384988
+negativeInteger false false negativeInteger java.math.BigInteger 0 0 No Nulls false false false 0 0 Searchable mmuuid:86d29280-b8d3-1e21-b812-969c8fc8b016 biginteger nonPositiveInteger <null> -592526000
+nonNegativeInteger false false nonNegativeInteger java.math.BigInteger 0 0 No Nulls false false false 0 0 Searchable mmuuid:0e081200-b8a4-1e21-b812-969c8fc8b016 biginteger integer <null> -844884883
+nonPositiveInteger false false nonPositiveInteger java.math.BigInteger 0 0 No Nulls false false false 0 0 Searchable mmuuid:cbdd6e40-b9d2-1e21-8c26-a038c6ed7576 biginteger integer <null> 1697749355
+normalizedString false false normalizedString java.lang.String 0 0 No Nulls false false false 0 0 Searchable mmuuid:4df43700-3b13-1e20-921b-eeee28353879 string string <null> -2098593753
+object false false object java.lang.Object 0 0 No Nulls false false false 0 0 Searchable mmuuid:051a0640-b4e8-1e26-9f33-b76fd9d5fa79 object base64Binary <null> 674241220
+positiveInteger false false positiveInteger java.math.BigInteger 0 0 No Nulls false false false 0 0 Searchable mmuuid:1cbbd380-b9ea-1e21-b812-969c8fc8b016 biginteger nonNegativeInteger <null> -1533643138
+short false false short java.lang.Short 0 0 No Nulls false false false 0 0 Searchable mmuuid:5bbcf140-b9ae-1e21-b812-969c8fc8b016 short int <null> 1337171058
+string false false string java.lang.String 0 0 No Nulls false false false 0 0 Searchable mmuuid:bf6c34c0-c442-1e24-9b01-c8207cd53eb7 string anySimpleType <null> 1224777906
+time false false time java.sql.Time 0 0 No Nulls false false false 0 0 Searchable mmuuid:3b892180-c4a7-1e24-9b01-c8207cd53eb7 time anySimpleType <null> 1870061442
+timestamp false false timestamp java.sql.Timestamp 0 0 No Nulls false false false 0 0 Searchable mmuuid:6d9809c0-a07e-1e26-9b08-d6079ebe1f0d timestamp string <null> 801803261
+token false false token java.lang.String 0 0 No Nulls false false false 0 0 Searchable mmuuid:3425cb80-d844-1e20-9027-be6d2c3b8b3a string normalizedString <null> 623861893
+unsignedByte false false unsignedByte java.lang.Short 0 0 No Nulls false false false 0 0 Searchable mmuuid:cff745c0-baa2-1e21-b812-969c8fc8b016 short unsignedShort <null> 292367594
+unsignedInt false false unsignedInt java.lang.Long 0 0 No Nulls false false false 0 0 Searchable mmuuid:badcbd80-ba63-1e21-b812-969c8fc8b016 long unsignedLong <null> -1139603532
+unsignedLong false false unsignedLong java.math.BigInteger 0 0 No Nulls false false false 0 0 Searchable mmuuid:54b98780-ba14-1e21-b812-969c8fc8b016 biginteger nonNegativeInteger <null> 2071095683
+unsignedShort false false unsignedShort java.lang.Integer 0 0 No Nulls false false false 0 0 Searchable mmuuid:327093c0-ba88-1e21-b812-969c8fc8b016 integer unsignedInt <null> -214092520
Row Count : 52
getColumnName getColumnType getCatalogName getColumnClassName getColumnLabel getColumnTypeName getSchemaName getTableName getColumnDisplaySize getPrecision getScale isAutoIncrement isCaseSensitive isCurrency isDefinitelyWritable isNullable isReadOnly isSearchable isSigned isWritable
Name 12 PartsSupplier java.lang.String Name string SYS DataTypes 100 100 0 false true false false 0 true true true false
@@ -72,3 +72,4 @@
RuntimeType 12 PartsSupplier java.lang.String RuntimeType string SYS DataTypes 64 64 0 false true false false 1 true true true false
BaseType 12 PartsSupplier java.lang.String BaseType string SYS DataTypes 64 64 0 false true false false 1 true true true false
Description 12 PartsSupplier java.lang.String Description string SYS DataTypes 255 255 0 false true false true 1 false true true true
+OID 4 PartsSupplier java.lang.Integer OID integer SYS DataTypes 11 10 0 false false false false 0 true true false false
Modified: trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testKeyColumns.expected
===================================================================
--- trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testKeyColumns.expected 2010-07-15 20:06:02 UTC (rev 2353)
+++ trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testKeyColumns.expected 2010-07-16 19:10:00 UTC (rev 2354)
@@ -1,14 +1,14 @@
-string string string string string string string string integer
-VDBName SchemaName TableName Name KeyName KeyType RefKeyUID UID Position
-PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER_PARTS PART_ID FK_SPLIER_PRTS_PRTS Foreign mmuuid:07db4240-73ff-1edc-a81c-ecf397b10590 mmuuid:66ddc4c0-73ff-1edc-a81c-ecf397b10590 1
-PartsSupplier PartsSupplier PARTSSUPPLIER.PARTS PART_ID PK_PARTS Primary <null> mmuuid:07db4240-73ff-1edc-a81c-ecf397b10590 1
-PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER_PARTS PART_ID PK_SUPPLIER_PARTS Primary <null> mmuuid:455e5440-73ff-1edc-a81c-ecf397b10590 2
-PartsSupplier PartsSupplier PARTSSUPPLIER.SHIP_VIA SHIPPER_ID PK_SHIP_VIA Primary <null> mmuuid:18aa3cc0-73ff-1edc-a81c-ecf397b10590 1
-PartsSupplier PartsSupplier PARTSSUPPLIER.STATUS STATUS_ID PK_STATUS Primary <null> mmuuid:25a8a740-73ff-1edc-a81c-ecf397b10590 1
-PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER_PARTS SUPPLIER_ID FK_SPLY_PRTS_SPLY Foreign mmuuid:375c8380-73ff-1edc-a81c-ecf397b10590 mmuuid:66ddc4c1-73ff-1edc-a81c-ecf397b10590 1
-PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER SUPPLIER_ID PK_SUPPLIER Primary <null> mmuuid:375c8380-73ff-1edc-a81c-ecf397b10590 1
-PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER_PARTS SUPPLIER_ID PK_SUPPLIER_PARTS Primary <null> mmuuid:455e5440-73ff-1edc-a81c-ecf397b10590 1
-PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER SUPPLIER_STATUS FK_SPLIER_STATS Foreign mmuuid:25a8a740-73ff-1edc-a81c-ecf397b10590 mmuuid:5ac43c00-73ff-1edc-a81c-ecf397b10590 1
+string string string string string string string string integer integer
+VDBName SchemaName TableName Name KeyName KeyType RefKeyUID UID Position OID
+PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER_PARTS PART_ID FK_SPLIER_PRTS_PRTS Foreign mmuuid:07db4240-73ff-1edc-a81c-ecf397b10590 mmuuid:66ddc4c0-73ff-1edc-a81c-ecf397b10590 1 1607355935
+PartsSupplier PartsSupplier PARTSSUPPLIER.PARTS PART_ID PK_PARTS Primary <null> mmuuid:07db4240-73ff-1edc-a81c-ecf397b10590 1 -954501376
+PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER_PARTS PART_ID PK_SUPPLIER_PARTS Primary <null> mmuuid:455e5440-73ff-1edc-a81c-ecf397b10590 2 -1122313299
+PartsSupplier PartsSupplier PARTSSUPPLIER.SHIP_VIA SHIPPER_ID PK_SHIP_VIA Primary <null> mmuuid:18aa3cc0-73ff-1edc-a81c-ecf397b10590 1 84802949
+PartsSupplier PartsSupplier PARTSSUPPLIER.STATUS STATUS_ID PK_STATUS Primary <null> mmuuid:25a8a740-73ff-1edc-a81c-ecf397b10590 1 -567580883
+PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER_PARTS SUPPLIER_ID FK_SPLY_PRTS_SPLY Foreign mmuuid:375c8380-73ff-1edc-a81c-ecf397b10590 mmuuid:66ddc4c1-73ff-1edc-a81c-ecf397b10590 1 -1994509664
+PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER SUPPLIER_ID PK_SUPPLIER Primary <null> mmuuid:375c8380-73ff-1edc-a81c-ecf397b10590 1 -1590144858
+PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER_PARTS SUPPLIER_ID PK_SUPPLIER_PARTS Primary <null> mmuuid:455e5440-73ff-1edc-a81c-ecf397b10590 1 -1122313299
+PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER SUPPLIER_STATUS FK_SPLIER_STATS Foreign mmuuid:25a8a740-73ff-1edc-a81c-ecf397b10590 mmuuid:5ac43c00-73ff-1edc-a81c-ecf397b10590 1 -2018582450
Row Count : 9
getColumnName getColumnType getCatalogName getColumnClassName getColumnLabel getColumnTypeName getSchemaName getTableName getColumnDisplaySize getPrecision getScale isAutoIncrement isCaseSensitive isCurrency isDefinitelyWritable isNullable isReadOnly isSearchable isSigned isWritable
VDBName 12 PartsSupplier java.lang.String VDBName string SYS KeyColumns 255 255 0 false false false false 0 true true false false
@@ -20,3 +20,4 @@
RefKeyUID 12 PartsSupplier java.lang.String RefKeyUID string SYS KeyColumns 50 50 0 false false false false 1 true true false false
UID 12 PartsSupplier java.lang.String UID string SYS KeyColumns 50 50 0 false false false false 0 true true false false
Position 4 PartsSupplier java.lang.Integer Position integer SYS KeyColumns 11 10 0 false true false true 1 false true true true
+OID 4 PartsSupplier java.lang.Integer OID integer SYS KeyColumns 11 10 0 false false false false 0 true true false false
Modified: trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testKeys.expected
===================================================================
--- trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testKeys.expected 2010-07-15 20:06:02 UTC (rev 2353)
+++ trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testKeys.expected 2010-07-16 19:10:00 UTC (rev 2354)
@@ -1,13 +1,13 @@
-string string string string string string string boolean string string
-VDBName SchemaName TableName Name Description NameInSource Type IsIndexed RefKeyUID UID
-PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER_PARTS FK_SPLIER_PRTS_PRTS <null> FK_SPLIER_PRTS_PRTS Foreign false mmuuid:07db4240-73ff-1edc-a81c-ecf397b10590 mmuuid:66ddc4c0-73ff-1edc-a81c-ecf397b10590
-PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER FK_SPLIER_STATS <null> FK_SPLIER_STATS Foreign false mmuuid:25a8a740-73ff-1edc-a81c-ecf397b10590 mmuuid:5ac43c00-73ff-1edc-a81c-ecf397b10590
-PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER_PARTS FK_SPLY_PRTS_SPLY <null> FK_SPLY_PRTS_SPLY Foreign false mmuuid:375c8380-73ff-1edc-a81c-ecf397b10590 mmuuid:66ddc4c1-73ff-1edc-a81c-ecf397b10590
-PartsSupplier PartsSupplier PARTSSUPPLIER.PARTS PK_PARTS <null> <null> Primary false <null> mmuuid:07db4240-73ff-1edc-a81c-ecf397b10590
-PartsSupplier PartsSupplier PARTSSUPPLIER.SHIP_VIA PK_SHIP_VIA <null> <null> Primary false <null> mmuuid:18aa3cc0-73ff-1edc-a81c-ecf397b10590
-PartsSupplier PartsSupplier PARTSSUPPLIER.STATUS PK_STATUS <null> <null> Primary false <null> mmuuid:25a8a740-73ff-1edc-a81c-ecf397b10590
-PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER PK_SUPPLIER <null> <null> Primary false <null> mmuuid:375c8380-73ff-1edc-a81c-ecf397b10590
-PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER_PARTS PK_SUPPLIER_PARTS <null> <null> Primary false <null> mmuuid:455e5440-73ff-1edc-a81c-ecf397b10590
+string string string string string string string boolean string string integer
+VDBName SchemaName TableName Name Description NameInSource Type IsIndexed RefKeyUID UID OID
+PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER_PARTS FK_SPLIER_PRTS_PRTS <null> FK_SPLIER_PRTS_PRTS Foreign false mmuuid:07db4240-73ff-1edc-a81c-ecf397b10590 mmuuid:66ddc4c0-73ff-1edc-a81c-ecf397b10590 1607355935
+PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER FK_SPLIER_STATS <null> FK_SPLIER_STATS Foreign false mmuuid:25a8a740-73ff-1edc-a81c-ecf397b10590 mmuuid:5ac43c00-73ff-1edc-a81c-ecf397b10590 -2018582450
+PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER_PARTS FK_SPLY_PRTS_SPLY <null> FK_SPLY_PRTS_SPLY Foreign false mmuuid:375c8380-73ff-1edc-a81c-ecf397b10590 mmuuid:66ddc4c1-73ff-1edc-a81c-ecf397b10590 -1994509664
+PartsSupplier PartsSupplier PARTSSUPPLIER.PARTS PK_PARTS <null> <null> Primary false <null> mmuuid:07db4240-73ff-1edc-a81c-ecf397b10590 -954501376
+PartsSupplier PartsSupplier PARTSSUPPLIER.SHIP_VIA PK_SHIP_VIA <null> <null> Primary false <null> mmuuid:18aa3cc0-73ff-1edc-a81c-ecf397b10590 84802949
+PartsSupplier PartsSupplier PARTSSUPPLIER.STATUS PK_STATUS <null> <null> Primary false <null> mmuuid:25a8a740-73ff-1edc-a81c-ecf397b10590 -567580883
+PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER PK_SUPPLIER <null> <null> Primary false <null> mmuuid:375c8380-73ff-1edc-a81c-ecf397b10590 -1590144858
+PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER_PARTS PK_SUPPLIER_PARTS <null> <null> Primary false <null> mmuuid:455e5440-73ff-1edc-a81c-ecf397b10590 -1122313299
Row Count : 8
getColumnName getColumnType getCatalogName getColumnClassName getColumnLabel getColumnTypeName getSchemaName getTableName getColumnDisplaySize getPrecision getScale isAutoIncrement isCaseSensitive isCurrency isDefinitelyWritable isNullable isReadOnly isSearchable isSigned isWritable
VDBName 12 PartsSupplier java.lang.String VDBName string SYS Keys 255 255 0 false false false false 0 true true false false
@@ -20,3 +20,4 @@
IsIndexed -7 PartsSupplier java.lang.Boolean IsIndexed boolean SYS Keys 5 1 0 false false false false 0 true true false false
RefKeyUID 12 PartsSupplier java.lang.String RefKeyUID string SYS Keys 50 50 0 false false false false 1 true true false false
UID 12 PartsSupplier java.lang.String UID string SYS Keys 50 50 0 false false false false 0 true true false false
+OID 4 PartsSupplier java.lang.Integer OID integer SYS Keys 11 10 0 false false false false 0 true true false false
Modified: trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testProcedureParams.expected
===================================================================
--- trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testProcedureParams.expected 2010-07-15 20:06:02 UTC (rev 2353)
+++ trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testProcedureParams.expected 2010-07-16 19:10:00 UTC (rev 2354)
@@ -1,13 +1,13 @@
-string string string string string integer string boolean integer integer integer integer string string string
-VDBName SchemaName ProcedureName Name DataType Position Type Optional Precision TypeLength Scale Radix NullType UID Description
-PartsSupplier SYS getVDBResourcePaths ResourcePath string 1 ResultSet false 50 50 0 10 Nullable mmuuid:ebbffdab-ac7e-41ab-974f-62785b3086f9 <null>
-PartsSupplier SYS getBinaryVDBResource VdbResource blob 1 ResultSet false 0 0 0 10 Nullable mmuuid:90d1f79d-bd98-46f4-ae8f-adacc329cf0b <null>
-PartsSupplier SYS getCharacterVDBResource VdbResource clob 1 ResultSet false 0 0 0 10 Nullable mmuuid:111f9fa8-74c9-479a-a184-8db64a1eab3c <null>
-PartsSupplier SYS getXMLSchemas document string 1 In false 0 0 0 10 No Nulls mmuuid:41f00dca-7bc1-4593-b2a7-a7d64936c2d4 <null>
-PartsSupplier SYS getVDBResourcePaths isBinary boolean 2 ResultSet false 1 1 0 10 Nullable mmuuid:e8d087da-9833-4422-a255-f0e0fea2cb61 <null>
-PartsSupplier SYS getBinaryVDBResource resourcePath string 1 In false 50 50 0 10 No Nulls mmuuid:25e5065a-454e-4a87-bf71-b6f71b98319f <null>
-PartsSupplier SYS getCharacterVDBResource resourcePath string 1 In false 50 50 0 10 No Nulls mmuuid:c54e777f-3cd0-45ad-a18b-e4e93532984f <null>
-PartsSupplier SYS getXMLSchemas schema xml 1 ResultSet false 0 0 0 10 Nullable mmuuid:f0cb82f2-111e-4433-ae77-59a27fa93991 <null>
+string string string string string integer string boolean integer integer integer integer string string string integer
+VDBName SchemaName ProcedureName Name DataType Position Type Optional Precision TypeLength Scale Radix NullType UID Description OID
+PartsSupplier SYS getVDBResourcePaths ResourcePath string 1 ResultSet false 50 50 0 10 Nullable mmuuid:ebbffdab-ac7e-41ab-974f-62785b3086f9 <null> -971169035
+PartsSupplier SYS getBinaryVDBResource VdbResource blob 1 ResultSet false 0 0 0 10 Nullable mmuuid:90d1f79d-bd98-46f4-ae8f-adacc329cf0b <null> 1280387853
+PartsSupplier SYS getCharacterVDBResource VdbResource clob 1 ResultSet false 0 0 0 10 Nullable mmuuid:111f9fa8-74c9-479a-a184-8db64a1eab3c <null> 826997014
+PartsSupplier SYS getXMLSchemas document string 1 In false 0 0 0 10 No Nulls mmuuid:41f00dca-7bc1-4593-b2a7-a7d64936c2d4 <null> -1382868413
+PartsSupplier SYS getVDBResourcePaths isBinary boolean 2 ResultSet false 1 1 0 10 Nullable mmuuid:e8d087da-9833-4422-a255-f0e0fea2cb61 <null> -1250184215
+PartsSupplier SYS getBinaryVDBResource resourcePath string 1 In false 50 50 0 10 No Nulls mmuuid:25e5065a-454e-4a87-bf71-b6f71b98319f <null> 551829536
+PartsSupplier SYS getCharacterVDBResource resourcePath string 1 In false 50 50 0 10 No Nulls mmuuid:c54e777f-3cd0-45ad-a18b-e4e93532984f <null> -565939980
+PartsSupplier SYS getXMLSchemas schema xml 1 ResultSet false 0 0 0 10 Nullable mmuuid:f0cb82f2-111e-4433-ae77-59a27fa93991 <null> -6052816
Row Count : 8
getColumnName getColumnType getCatalogName getColumnClassName getColumnLabel getColumnTypeName getSchemaName getTableName getColumnDisplaySize getPrecision getScale isAutoIncrement isCaseSensitive isCurrency isDefinitelyWritable isNullable isReadOnly isSearchable isSigned isWritable
VDBName 12 PartsSupplier java.lang.String VDBName string SYS ProcedureParams 255 255 0 false false false false 0 true true false false
@@ -25,3 +25,4 @@
NullType 12 PartsSupplier java.lang.String NullType string SYS ProcedureParams 10 10 0 false false false false 0 true true false false
UID 12 PartsSupplier java.lang.String UID string SYS ProcedureParams 50 50 0 false true false true 1 false true true true
Description 12 PartsSupplier java.lang.String Description string SYS ProcedureParams 255 255 0 false true false true 1 false true true true
+OID 4 PartsSupplier java.lang.Integer OID integer SYS ProcedureParams 11 10 0 false false false false 0 true true false false
Modified: trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testProcedures.expected
===================================================================
--- trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testProcedures.expected 2010-07-15 20:06:02 UTC (rev 2353)
+++ trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testProcedures.expected 2010-07-16 19:10:00 UTC (rev 2354)
@@ -1,9 +1,9 @@
-string string string string boolean string string
-VDBName SchemaName Name NameInSource ReturnsResults UID Description
-PartsSupplier SYS getBinaryVDBResource <null> true mmuuid:9bc0b701-b36e-4209-a986-9d38420d2c20 <null>
-PartsSupplier SYS getCharacterVDBResource <null> true mmuuid:72464082-00fc-44f0-98b9-8c8f637c6570 <null>
-PartsSupplier SYS getVDBResourcePaths <null> true mmuuid:1204d4b2-6f92-428d-bcc5-7b3a0da9a113 <null>
-PartsSupplier SYS getXMLSchemas <null> true mmuuid:2d51a2a4-9966-4bd8-861d-9c0ae8e4b869 <null>
+string string string string boolean string string integer
+VDBName SchemaName Name NameInSource ReturnsResults UID Description OID
+PartsSupplier SYS getBinaryVDBResource <null> true mmuuid:9bc0b701-b36e-4209-a986-9d38420d2c20 <null> 962621677
+PartsSupplier SYS getCharacterVDBResource <null> true mmuuid:72464082-00fc-44f0-98b9-8c8f637c6570 <null> -11263229
+PartsSupplier SYS getVDBResourcePaths <null> true mmuuid:1204d4b2-6f92-428d-bcc5-7b3a0da9a113 <null> -269626231
+PartsSupplier SYS getXMLSchemas <null> true mmuuid:2d51a2a4-9966-4bd8-861d-9c0ae8e4b869 <null> -1846147944
Row Count : 4
getColumnName getColumnType getCatalogName getColumnClassName getColumnLabel getColumnTypeName getSchemaName getTableName getColumnDisplaySize getPrecision getScale isAutoIncrement isCaseSensitive isCurrency isDefinitelyWritable isNullable isReadOnly isSearchable isSigned isWritable
VDBName 12 PartsSupplier java.lang.String VDBName string SYS Procedures 255 255 0 false false false false 0 true true false false
@@ -13,3 +13,4 @@
ReturnsResults -7 PartsSupplier java.lang.Boolean ReturnsResults boolean SYS Procedures 5 1 0 false false false false 0 true true false false
UID 12 PartsSupplier java.lang.String UID string SYS Procedures 50 50 0 false false false false 0 true true false false
Description 12 PartsSupplier java.lang.String Description string SYS Procedures 255 255 0 false true false true 1 false true true true
+OID 4 PartsSupplier java.lang.Integer OID integer SYS Procedures 11 10 0 false false false false 0 true true false false
Modified: trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testSchemas.expected
===================================================================
--- trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testSchemas.expected 2010-07-15 20:06:02 UTC (rev 2353)
+++ trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testSchemas.expected 2010-07-16 19:10:00 UTC (rev 2354)
@@ -1,8 +1,9 @@
-string string boolean string string string
-VDBName Name IsPhysical UID Description PrimaryMetamodelURI
-PartsSupplier PartsSupplier true mmuuid:19c7f380-73d8-1edc-a81c-ecf397b10590 <null> http://www.metamatrix.com/metamodels/Relational
-PartsSupplier SYS true mmuuid:49b9c0f9-2c4c-42d3-9409-2d847d29a1de System http://www.metamatrix.com/metamodels/Relational
-Row Count : 2
+string string boolean string string string integer
+VDBName Name IsPhysical UID Description PrimaryMetamodelURI OID
+PartsSupplier PartsSupplier true mmuuid:19c7f380-73d8-1edc-a81c-ecf397b10590 <null> http://www.metamatrix.com/metamodels/Relational 152010958
+PartsSupplier SYS true mmuuid:49b9c0f9-2c4c-42d3-9409-2d847d29a1de System http://www.metamatrix.com/metamodels/Relational -2075981161
+PartsSupplier pg_catalog true mmuuid:8294601c-9fe9-4244-9499-4a012c5e1476 <null> http://www.metamatrix.com/metamodels/Relational -915078125
+Row Count : 3
getColumnName getColumnType getCatalogName getColumnClassName getColumnLabel getColumnTypeName getSchemaName getTableName getColumnDisplaySize getPrecision getScale isAutoIncrement isCaseSensitive isCurrency isDefinitelyWritable isNullable isReadOnly isSearchable isSigned isWritable
VDBName 12 PartsSupplier java.lang.String VDBName string SYS Schemas 255 255 0 false true false true 1 false true true true
Name 12 PartsSupplier java.lang.String Name string SYS Schemas 255 255 0 false true false true 1 false true true true
@@ -10,3 +11,4 @@
UID 12 PartsSupplier java.lang.String UID string SYS Schemas 50 50 0 false false false false 0 true true false false
Description 12 PartsSupplier java.lang.String Description string SYS Schemas 255 255 0 false true false true 1 false true true true
PrimaryMetamodelURI 12 PartsSupplier java.lang.String PrimaryMetamodelURI string SYS Schemas 255 255 0 false false false false 0 true true false false
+OID 4 PartsSupplier java.lang.Integer OID integer SYS Schemas 11 10 0 false false false false 0 true true false false
Modified: trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testTables.expected
===================================================================
--- trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testTables.expected 2010-07-15 20:06:02 UTC (rev 2353)
+++ trunk/test-integration/common/src/test/resources/TestSystemVirtualModel/testTables.expected 2010-07-16 19:10:00 UTC (rev 2354)
@@ -1,22 +1,33 @@
-string string string string string boolean boolean string integer string boolean boolean
-VDBName SchemaName Name Type NameInSource IsPhysical SupportsUpdates UID Cardinality Description IsSystem IsMaterialized
-PartsSupplier SYS Columns Table <null> true false mmuuid:1c9a5cb2-17b1-4e4a-8b0e-3a42bd052509 0 <null> true false
-PartsSupplier SYS DataTypes Table <null> true false mmuuid:9a8794f9-66f8-49e8-8576-89d212d0f957 0 <null> true false
-PartsSupplier SYS KeyColumns Table <null> true false mmuuid:14946083-3bd5-42d5-8283-1c0694347c29 0 <null> true false
-PartsSupplier SYS Keys Table <null> true false mmuuid:1e5135dc-ce5d-4b25-a8ff-63f5440b3108 0 <null> true false
-PartsSupplier PartsSupplier PARTSSUPPLIER.PARTS Table PARTS true true mmuuid:f6276601-73fe-1edc-a81c-ecf397b10590 16 <null> false false
-PartsSupplier PartsSupplier PARTSSUPPLIER.SHIP_VIA Table SHIP_VIA true true mmuuid:0f4e9b80-73ff-1edc-a81c-ecf397b10590 4 <null> false false
-PartsSupplier PartsSupplier PARTSSUPPLIER.STATUS Table STATUS true true mmuuid:1f297200-73ff-1edc-a81c-ecf397b10590 3 <null> false false
-PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER Table SUPPLIER true true mmuuid:2c371ec0-73ff-1edc-a81c-ecf397b10590 16 <null> false false
-PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER_PARTS Table SUPPLIER_PARTS true true mmuuid:3deafb00-73ff-1edc-a81c-ecf397b10590 227 <null> false false
-PartsSupplier SYS ProcedureParams Table <null> true false mmuuid:a56bd7fe-c87a-411c-8f5d-661975a25626 0 <null> true false
-PartsSupplier SYS Procedures Table <null> true false mmuuid:0bc132a5-9f8d-4a3c-9f5d-98156a98a962 0 <null> true false
-PartsSupplier SYS Properties Table <null> true false mmuuid:7a45e50a-d03f-4548-ba35-761651bbca85 0 <null> true false
-PartsSupplier SYS ReferenceKeyColumns Table <null> true false mmuuid:6a9653e8-a337-41b2-86fa-77b98f409a29 0 <null> true false
-PartsSupplier SYS Schemas Table <null> true false mmuuid:8648a554-b2ad-4e8e-84ca-2ec618b311a9 0 <null> true false
-PartsSupplier SYS Tables Table <null> true false mmuuid:8551b3bd-11cc-4049-9bcf-fe91a0eb7ba7 0 <null> true false
-PartsSupplier SYS VirtualDatabases Table <null> true false mmuuid:47297c72-d621-4f4e-af4e-74060ac5f489 0 <null> true false
-Row Count : 16
+string string string string string boolean boolean string integer string boolean boolean integer
+VDBName SchemaName Name Type NameInSource IsPhysical SupportsUpdates UID Cardinality Description IsSystem IsMaterialized OID
+PartsSupplier SYS Columns Table <null> true false mmuuid:1c9a5cb2-17b1-4e4a-8b0e-3a42bd052509 0 <null> true false 1125375648
+PartsSupplier SYS DataTypes Table <null> true false mmuuid:9a8794f9-66f8-49e8-8576-89d212d0f957 0 <null> true false 407729263
+PartsSupplier SYS KeyColumns Table <null> true false mmuuid:14946083-3bd5-42d5-8283-1c0694347c29 0 <null> true false 1906549043
+PartsSupplier SYS Keys Table <null> true false mmuuid:1e5135dc-ce5d-4b25-a8ff-63f5440b3108 0 <null> true false -1056482755
+PartsSupplier PartsSupplier PARTSSUPPLIER.PARTS Table PARTS true true mmuuid:f6276601-73fe-1edc-a81c-ecf397b10590 16 <null> false false 1623654648
+PartsSupplier PartsSupplier PARTSSUPPLIER.SHIP_VIA Table SHIP_VIA true true mmuuid:0f4e9b80-73ff-1edc-a81c-ecf397b10590 4 <null> false false 1136825257
+PartsSupplier PartsSupplier PARTSSUPPLIER.STATUS Table STATUS true true mmuuid:1f297200-73ff-1edc-a81c-ecf397b10590 3 <null> false false -1690137928
+PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER Table SUPPLIER true true mmuuid:2c371ec0-73ff-1edc-a81c-ecf397b10590 16 <null> false false 940336727
+PartsSupplier PartsSupplier PARTSSUPPLIER.SUPPLIER_PARTS Table SUPPLIER_PARTS true true mmuuid:3deafb00-73ff-1edc-a81c-ecf397b10590 227 <null> false false 2040149098
+PartsSupplier SYS ProcedureParams Table <null> true false mmuuid:a56bd7fe-c87a-411c-8f5d-661975a25626 0 <null> true false 1809992480
+PartsSupplier SYS Procedures Table <null> true false mmuuid:0bc132a5-9f8d-4a3c-9f5d-98156a98a962 0 <null> true false -364939653
+PartsSupplier SYS Properties Table <null> true false mmuuid:7a45e50a-d03f-4548-ba35-761651bbca85 0 <null> true false -1169068629
+PartsSupplier SYS ReferenceKeyColumns Table <null> true false mmuuid:6a9653e8-a337-41b2-86fa-77b98f409a29 0 <null> true false -2944282
+PartsSupplier SYS Schemas Table <null> true false mmuuid:8648a554-b2ad-4e8e-84ca-2ec618b311a9 0 <null> true false -69424901
+PartsSupplier SYS Tables Table <null> true false mmuuid:8551b3bd-11cc-4049-9bcf-fe91a0eb7ba7 0 <null> true false -820106652
+PartsSupplier SYS VirtualDatabases Table <null> true false mmuuid:47297c72-d621-4f4e-af4e-74060ac5f489 0 <null> true false 767013857
+PartsSupplier pg_catalog pg_am Table <null> false false mmuuid:069bf3d5-79ab-4c78-9ede-b6802e5a0dea 0 <null> true false -1477143417
+PartsSupplier pg_catalog pg_attrdef Table <null> false false mmuuid:a54429c7-cc41-4112-982b-df76ef3a507d 0 <null> true false 1533609944
+PartsSupplier pg_catalog pg_attribute Table <null> false false mmuuid:7f89ff91-4ae6-40ff-926d-346c5a61f817 0 <null> true false -224365397
+PartsSupplier pg_catalog pg_class Table <null> false false mmuuid:ad51e389-9443-4a7b-984a-5c1875fbd329 0 <null> true false 332420260
+PartsSupplier pg_catalog pg_database Table <null> false false mmuuid:6ae73c29-0c6f-4ec3-9c09-a262d8e41ac2 0 <null> true false 209142477
+PartsSupplier pg_catalog pg_index Table <null> false false mmuuid:a3e60b50-8282-4562-81a3-164e2e1481ad 0 <null> true false -1762024459
+PartsSupplier pg_catalog pg_namespace Table <null> false false mmuuid:38438f3b-7664-4449-8f06-be69b2555a4c 0 <null> true false 150756069
+PartsSupplier pg_catalog pg_proc Table <null> false false mmuuid:3cffb0db-f326-40e6-890f-9ef7a0980784 0 <null> true false -710458066
+PartsSupplier pg_catalog pg_trigger Table <null> false false mmuuid:dbdacb28-7e78-4ae5-8a99-3e3e1c59f641 0 <null> true false -77334293
+PartsSupplier pg_catalog pg_type Table <null> false false mmuuid:8024e6eb-ba32-41a0-a250-95a36eb4b71f 0 <null> true false -136764222
+PartsSupplier pg_catalog pg_user Table <null> false false mmuuid:0da462b7-bacf-41da-9335-9a12224c462a 0 <null> true false -164161188
+Row Count : 27
getColumnName getColumnType getCatalogName getColumnClassName getColumnLabel getColumnTypeName getSchemaName getTableName getColumnDisplaySize getPrecision getScale isAutoIncrement isCaseSensitive isCurrency isDefinitelyWritable isNullable isReadOnly isSearchable isSigned isWritable
VDBName 12 PartsSupplier java.lang.String VDBName string SYS Tables 255 255 0 false true false true 1 false true true true
SchemaName 12 PartsSupplier java.lang.String SchemaName string SYS Tables 255 255 0 false true false true 1 false true true true
@@ -30,3 +41,4 @@
Description 12 PartsSupplier java.lang.String Description string SYS Tables 255 255 0 false true false true 1 false true true true
IsSystem -7 PartsSupplier java.lang.Boolean IsSystem boolean SYS Tables 5 1 0 false true false true 1 false true true true
IsMaterialized -7 PartsSupplier java.lang.Boolean IsMaterialized boolean SYS Tables 5 1 0 false false false true 0 false true false true
+OID 4 PartsSupplier java.lang.Integer OID integer SYS Tables 11 10 0 false false false false 0 true true false false
14 years, 5 months
teiid SVN: r2353 - in trunk/console/src/main: java/org/teiid/rhq/plugin and 2 other directories.
by teiid-commits@lists.jboss.org
Author: tejones
Date: 2010-07-15 16:06:02 -0400 (Thu, 15 Jul 2010)
New Revision: 2353
Modified:
trunk/console/src/main/java/org/teiid/rhq/admin/DQPManagementView.java
trunk/console/src/main/java/org/teiid/rhq/plugin/PlatformComponent.java
trunk/console/src/main/java/org/teiid/rhq/plugin/util/PluginConstants.java
trunk/console/src/main/java/org/teiid/rhq/plugin/util/ProfileServiceUtil.java
trunk/console/src/main/resources/META-INF/rhq-plugin.xml
Log:
TEIID-958 - Added metric to indicate the amount of buffer space is currently in use
Modified: trunk/console/src/main/java/org/teiid/rhq/admin/DQPManagementView.java
===================================================================
--- trunk/console/src/main/java/org/teiid/rhq/admin/DQPManagementView.java 2010-07-15 18:40:42 UTC (rev 2352)
+++ trunk/console/src/main/java/org/teiid/rhq/admin/DQPManagementView.java 2010-07-15 20:06:02 UTC (rev 2353)
@@ -76,7 +76,8 @@
Object resultObject = new Object();
if (componentType.equals(PluginConstants.ComponentType.Platform.NAME)) {
- resultObject = getPlatformMetric(connection, componentType, metric, valueMap);
+ resultObject = getPlatformMetric(connection, componentType, metric,
+ valueMap);
} else if (componentType.equals(PluginConstants.ComponentType.VDB.NAME)) {
resultObject = getVdbMetric(connection, componentType, identifier,
metric, valueMap);
@@ -104,10 +105,20 @@
getRequestCollectionValue(getLongRunningQueries(connection),
longRunningQueries);
resultObject = new Double(longRunningQueries.size());
- }
+ } else {
+ if (metric
+ .equals(PluginConstants.ComponentType.Platform.Metrics.BUFFER_USAGE)) {
+ try {
+ resultObject = ProfileServiceUtil.doubleValue(getUsedBufferSpace(connection));
+ } catch (Exception e) {
+ final String msg = "Exception executing operation: " + Platform.Operations.GET_BUFFER_USAGE; //$NON-NLS-1$
+ LOG.error(msg, e);
+ }
+ }
+ }
}
}
-
+
return resultObject;
}
@@ -120,7 +131,8 @@
if (metric
.equals(PluginConstants.ComponentType.VDB.Metrics.ERROR_COUNT)) {
// TODO remove version parameter after AdminAPI is changed
- resultObject = getErrorCount(connection, (String) valueMap.get(VDB.NAME));
+ resultObject = getErrorCount(connection, (String) valueMap
+ .get(VDB.NAME));
} else if (metric
.equals(PluginConstants.ComponentType.VDB.Metrics.STATUS)) {
// TODO remove version parameter after AdminAPI is changed
@@ -172,7 +184,8 @@
if (operationName.equals(Platform.Operations.GET_LONGRUNNINGQUERIES)) {
List<String> fieldNameList = operationResult.getFieldNameList();
- getRequestCollectionValue(getLongRunningQueries(connection), resultObject);
+ getRequestCollectionValue(getLongRunningQueries(connection),
+ resultObject);
operationResult.setContent(createReportResultList(fieldNameList,
resultObject.iterator()));
} else if (operationName.equals(Platform.Operations.GET_SESSIONS)) {
@@ -201,7 +214,7 @@
MetaValue[] args = new MetaValue[] { metaValueFactory
.create(sessionID) };
try {
- executeManagedOperation(connection, mc,
+ executeManagedOperation(connection, getRuntimeEngineDeployer(connection, mc),
Platform.Operations.KILL_TRANSACTION, args);
} catch (Exception e) {
final String msg = "Exception executing operation: " + Platform.Operations.KILL_TRANSACTION; //$NON-NLS-1$
@@ -212,8 +225,8 @@
MetaValue[] args = new MetaValue[] { metaValueFactory
.create(sessionID) };
try {
- executeManagedOperation(connection, mc, Platform.Operations.KILL_SESSION,
- args);
+ executeManagedOperation(connection, getRuntimeEngineDeployer(connection, mc),
+ Platform.Operations.KILL_SESSION, args);
} catch (Exception e) {
final String msg = "Exception executing operation: " + Platform.Operations.KILL_SESSION; //$NON-NLS-1$
LOG.error(msg, e);
@@ -225,8 +238,8 @@
metaValueFactory.create(requestID),
metaValueFactory.create(sessionID) };
try {
- executeManagedOperation(connection, mc, Platform.Operations.KILL_REQUEST,
- args);
+ executeManagedOperation(connection, getRuntimeEngineDeployer(connection, mc),
+ Platform.Operations.KILL_REQUEST, args);
} catch (Exception e) {
final String msg = "Exception executing operation: " + Platform.Operations.KILL_REQUEST; //$NON-NLS-1$
LOG.error(msg, e);
@@ -234,8 +247,9 @@
}
}
- private void executeVdbOperation(ProfileServiceConnection connection, ExecutedResult operationResult,
- final String operationName, final Map<String, Object> valueMap) {
+ private void executeVdbOperation(ProfileServiceConnection connection,
+ ExecutedResult operationResult, final String operationName,
+ final Map<String, Object> valueMap) {
Collection<Request> resultObject = new ArrayList<Request>();
Collection<Session> activeSessionsCollection = new ArrayList<Session>();
String vdbName = (String) valueMap
@@ -257,8 +271,8 @@
activeSessionsCollection.iterator()));
} else if (operationName.equals(VDB.Operations.GET_REQUESTS)) {
List<String> fieldNameList = operationResult.getFieldNameList();
- MetaValue requestMetaValue = getRequestsForVDB(connection, vdbName, Integer
- .parseInt(vdbVersion));
+ MetaValue requestMetaValue = getRequestsForVDB(connection, vdbName,
+ Integer.parseInt(vdbVersion));
getRequestCollectionValue(requestMetaValue, resultObject);
operationResult.setContent(createReportResultList(fieldNameList,
resultObject.iterator()));
@@ -270,13 +284,14 @@
* Helper methods
*/
- public MetaValue getProperties(ProfileServiceConnection connection, final String component) {
+ public MetaValue getProperties(ProfileServiceConnection connection,
+ final String component) {
MetaValue propertyValue = null;
MetaValue args = null;
try {
- propertyValue = executeManagedOperation(connection, mc,
+ propertyValue = executeManagedOperation(connection, getRuntimeEngineDeployer(connection, mc),
PluginConstants.Operation.GET_PROPERTIES, args);
} catch (Exception e) {
final String msg = "Exception executing operation: " + Platform.Operations.GET_PROPERTIES; //$NON-NLS-1$
@@ -293,9 +308,9 @@
MetaValue args = null;
try {
- requestsCollection = executeManagedOperation(connection, mc,
-
- PluginConstants.Operation.GET_REQUESTS, args);
+ requestsCollection = executeManagedOperation(connection, getRuntimeEngineDeployer(connection, mc),
+
+ PluginConstants.Operation.GET_REQUESTS, args);
} catch (Exception e) {
final String msg = "Exception executing operation: " + Platform.Operations.GET_REQUESTS; //$NON-NLS-1$
LOG.error(msg, e);
@@ -305,7 +320,8 @@
}
- protected MetaValue getRequestsForVDB(ProfileServiceConnection connection, String vdbName, int vdbVersion) {
+ protected MetaValue getRequestsForVDB(ProfileServiceConnection connection,
+ String vdbName, int vdbVersion) {
MetaValue requestsCollection = null;
MetaValue[] args = new MetaValue[] {
@@ -313,7 +329,7 @@
MetaValueFactory.getInstance().create(vdbVersion) };
try {
- requestsCollection = executeManagedOperation(connection, mc,
+ requestsCollection = executeManagedOperation(connection, getRuntimeEngineDeployer(connection, mc),
PluginConstants.ComponentType.VDB.Operations.GET_REQUESTS,
args);
} catch (Exception e) {
@@ -331,7 +347,7 @@
MetaValue args = null;
try {
- transactionsCollection = executeManagedOperation(connection, mc,
+ transactionsCollection = executeManagedOperation(connection, getRuntimeEngineDeployer(connection, mc),
Platform.Operations.GET_TRANSACTIONS, args);
} catch (Exception e) {
final String msg = "Exception executing operation: " + Platform.Operations.GET_TRANSACTIONS; //$NON-NLS-1$
@@ -348,7 +364,7 @@
MetaValue args = null;
try {
- sessionCollection = executeManagedOperation(connection, mc,
+ sessionCollection = executeManagedOperation(connection, getRuntimeEngineDeployer(connection, mc),
PluginConstants.Operation.GET_SESSIONS, args);
} catch (Exception e) {
final String msg = "Exception executing operation: " + Platform.Operations.GET_SESSIONS; //$NON-NLS-1$
@@ -384,8 +400,6 @@
ProfileServiceConnection connection, ManagedComponent mc,
String operation, MetaValue... args) throws Exception {
- mc = getDQPManagementView(connection, mc);
-
for (ManagedOperation mo : mc.getOperations()) {
String opName = mo.getName();
if (opName.equals(operation)) {
@@ -405,14 +419,15 @@
}
+
/**
* @param mc
* @return
*/
- private static ManagedComponent getDQPManagementView(
+ private static ManagedComponent getRuntimeEngineDeployer(
ProfileServiceConnection connection, ManagedComponent mc) {
try {
- mc = ProfileServiceUtil.getDQPManagementView(connection);
+ mc = ProfileServiceUtil.getRuntimeEngineDeployer(connection);
} catch (NamingException e) {
final String msg = "NamingException getting the DQPManagementView"; //$NON-NLS-1$
LOG.error(msg, e);
@@ -423,19 +438,40 @@
return mc;
}
+ /**
+ * @param mc
+ * @return
+ */
+ private static ManagedComponent getBufferService(
+ ProfileServiceConnection connection, ManagedComponent mc) {
+ try {
+ mc = ProfileServiceUtil.getBufferService(connection);
+ } catch (NamingException e) {
+ final String msg = "NamingException getting the SessionService"; //$NON-NLS-1$
+ LOG.error(msg, e);
+ } catch (Exception e1) {
+ final String msg = "Exception getting the SessionService"; //$NON-NLS-1$
+ LOG.error(msg, e1);
+ }
+ return mc;
+ }
+
public static MetaValue getManagedProperty(
ProfileServiceConnection connection, ManagedComponent mc,
- String property, MetaValue... args) throws Exception {
+ String property) throws Exception {
- mc = getDQPManagementView(connection, mc);
-
+ ManagedProperty managedProperty = null;
try {
- mc.getProperty(property);
+ managedProperty = mc.getProperty(property);
} catch (Exception e) {
final String msg = "Exception getting the AdminApi in " + property; //$NON-NLS-1$
LOG.error(msg, e);
}
+ if (managedProperty!=null){
+ return managedProperty.getValue();
+ }
+
throw new Exception("No property found with given name =" + property); //$NON-NLS-1$
}
@@ -470,7 +506,8 @@
* @return count
* @throws Exception
*/
- private int getErrorCount(ProfileServiceConnection connection, String vdbName) {
+ private int getErrorCount(ProfileServiceConnection connection,
+ String vdbName) {
ManagedComponent mcVdb = null;
try {
@@ -511,13 +548,14 @@
return count;
}
- protected MetaValue getLongRunningQueries(ProfileServiceConnection connection) {
+ protected MetaValue getLongRunningQueries(
+ ProfileServiceConnection connection) {
MetaValue requestsCollection = null;
MetaValue args = null;
try {
- requestsCollection = executeManagedOperation(connection, mc,
+ requestsCollection = executeManagedOperation(connection, getRuntimeEngineDeployer(connection, mc),
Platform.Operations.GET_LONGRUNNINGQUERIES, args);
} catch (Exception e) {
final String msg = "Exception executing operation: " + Platform.Operations.GET_LONGRUNNINGQUERIES; //$NON-NLS-1$
@@ -527,6 +565,22 @@
return requestsCollection;
}
+ protected MetaValue getUsedBufferSpace(
+ ProfileServiceConnection connection) {
+
+ MetaValue usedBufferSpace = null;
+
+ try {
+ usedBufferSpace = getManagedProperty(connection, getBufferService(connection, mc),
+ Platform.Operations.GET_BUFFER_USAGE);
+ } catch (Exception e) {
+ final String msg = "Exception executing operation: " + Platform.Operations.GET_BUFFER_USAGE; //$NON-NLS-1$
+ LOG.error(msg, e);
+ }
+
+ return usedBufferSpace;
+ }
+
private void getRequestCollectionValue(MetaValue pValue,
Collection<Request> list) {
MetaType metaType = pValue.getMetaType();
@@ -546,14 +600,6 @@
}
}
- private Collection<Session> getSessionsForVDB(ProfileServiceConnection connection, String vdbName) {
- Collection<Session> activeSessionsCollection = Collections.emptyList();
- MetaValue sessionMetaValue = getSessions(connection);
- getSessionCollectionValueForVDB(sessionMetaValue,
- activeSessionsCollection, vdbName);
- return activeSessionsCollection;
- }
-
public static <T> void getTransactionCollectionValue(MetaValue pValue,
Collection<Transaction> list) {
MetaType metaType = pValue.getMetaType();
@@ -567,7 +613,7 @@
} else {
throw new IllegalStateException(pValue
+ " is not a Composite type"); //$NON-NLS-1$
- }
+ }
}
}
}
Modified: trunk/console/src/main/java/org/teiid/rhq/plugin/PlatformComponent.java
===================================================================
--- trunk/console/src/main/java/org/teiid/rhq/plugin/PlatformComponent.java 2010-07-15 18:40:42 UTC (rev 2352)
+++ trunk/console/src/main/java/org/teiid/rhq/plugin/PlatformComponent.java 2010-07-15 20:06:02 UTC (rev 2353)
@@ -59,10 +59,11 @@
*
*/
public class PlatformComponent extends Facet {
- private final Log LOG = LogFactory.getLog(PluginConstants.DEFAULT_LOGGER_CATEGORY);
+ private final Log LOG = LogFactory
+ .getLog(PluginConstants.DEFAULT_LOGGER_CATEGORY);
String[] PLATFORM_SERVICES_NAMES = { "RuntimeEngineDeployer",
- "BufferService", "SessionService", "AdminSocketConfiguration" };
+ "BufferService", "SessionService", "JdbcSocketConfiguration" };
/*
* (non-Javadoc)
@@ -92,7 +93,8 @@
RunState runState;
try {
- runState = ProfileServiceUtil.getDQPManagementView(getConnection()).getRunState();
+ runState = ProfileServiceUtil.getRuntimeEngineDeployer(getConnection())
+ .getRunState();
} catch (NamingException e) {
LOG
.error("Naming exception getting: "
@@ -143,10 +145,11 @@
// Initialize any parameters to be used in the retrieval of
// metric values
-
- Object metricReturnObject = view.getMetric(getConnection(), getComponentType(),
- this.getComponentIdentifier(), name, valueMap);
+ Object metricReturnObject = view.getMetric(getConnection(),
+ getComponentType(), this.getComponentIdentifier(),
+ name, valueMap);
+
try {
if (request
.getName()
@@ -168,8 +171,16 @@
PluginConstants.ComponentType.Platform.Metrics.LONG_RUNNING_QUERIES)) {
report.addData(new MeasurementDataNumeric(
request, (Double) metricReturnObject));
- }
-
+ } else {
+ if (request
+ .getName()
+ .equals(
+ PluginConstants.ComponentType.Platform.Metrics.BUFFER_USAGE)) {
+ report.addData(new MeasurementDataNumeric(
+ request,
+ (Double) metricReturnObject));
+ }
+ }
}
}
@@ -275,9 +286,11 @@
Set<ManagedComponent> mcSet = null;
try {
mcSet = ProfileServiceUtil
- .getManagedComponents(getConnection(),new org.jboss.managed.api.ComponentType(
- PluginConstants.ComponentType.Platform.TEIID_TYPE,
- PluginConstants.ComponentType.Platform.TEIID_SUB_TYPE));
+ .getManagedComponents(
+ getConnection(),
+ new org.jboss.managed.api.ComponentType(
+ PluginConstants.ComponentType.Platform.TEIID_TYPE,
+ PluginConstants.ComponentType.Platform.TEIID_SUB_TYPE));
} catch (NamingException e) {
LOG
.error("NamingException getting components in Platform loadConfiguration(): "
@@ -298,7 +311,8 @@
* @param mcMap
* @param configuration
*/
- private void setProperties(Map<String, ManagedProperty> mcMap, Configuration configuration) {
+ private void setProperties(Map<String, ManagedProperty> mcMap,
+ Configuration configuration) {
for (ManagedProperty mProp : mcMap.values()) {
try {
String value = ProfileServiceUtil.stringValue(mProp.getValue());
@@ -314,7 +328,8 @@
@Override
public ProfileServiceConnection getConnection() {
- return ((ApplicationServerComponent)this.resourceContext.getParentResourceComponent()).getConnection();
+ return ((ApplicationServerComponent) this.resourceContext
+ .getParentResourceComponent()).getConnection();
}
@Override
Modified: trunk/console/src/main/java/org/teiid/rhq/plugin/util/PluginConstants.java
===================================================================
--- trunk/console/src/main/java/org/teiid/rhq/plugin/util/PluginConstants.java 2010-07-15 18:40:42 UTC (rev 2352)
+++ trunk/console/src/main/java/org/teiid/rhq/plugin/util/PluginConstants.java 2010-07-15 20:06:02 UTC (rev 2353)
@@ -74,6 +74,7 @@
public final static String GET_REQUESTS = "getRequests"; //$NON-NLS-1$
public final static String GET_TRANSACTIONS = "getTransactions"; //$NON-NLS-1$
public final static String GET_SESSIONS = "getSessions"; //$NON-NLS-1$
+ public final static String GET_BUFFER_USAGE = "userBufferSpace"; //$NON-NLS-1$
}
@@ -82,6 +83,7 @@
public final static String QUERY_COUNT = "queryCount"; //$NON-NLS-1$
public final static String SESSION_COUNT = "sessionCount"; //$NON-NLS-1$
public final static String LONG_RUNNING_QUERIES = "longRunningQueries"; //$NON-NLS-1$
+ public final static String BUFFER_USAGE = "userBufferSpace"; //$NON-NLS-1$
}
}
Modified: trunk/console/src/main/java/org/teiid/rhq/plugin/util/ProfileServiceUtil.java
===================================================================
--- trunk/console/src/main/java/org/teiid/rhq/plugin/util/ProfileServiceUtil.java 2010-07-15 18:40:42 UTC (rev 2352)
+++ trunk/console/src/main/java/org/teiid/rhq/plugin/util/ProfileServiceUtil.java 2010-07-15 20:06:02 UTC (rev 2353)
@@ -82,6 +82,7 @@
.getLog(PluginConstants.DEFAULT_LOGGER_CATEGORY);
private static ComponentType DQPTYPE = new ComponentType("teiid", "dqp"); //$NON-NLS-1$ //$NON-NLS-2$
private static String DQPNAME = "RuntimeEngineDeployer"; //$NON-NLS-1$
+ private static String BUFFERSERVICE = "BufferService"; //$NON-NLS-1$
private static final Map<String, ComponentType> COMPONENT_TYPE_CACHE = new HashMap<String, ComponentType>();
protected static final String PLUGIN = "ProfileService"; //$NON-NLS-1$
@@ -240,13 +241,20 @@
return deployDir;
}
- public static ManagedComponent getDQPManagementView(
+ public static ManagedComponent getRuntimeEngineDeployer(
ProfileServiceConnection connection) throws NamingException,
Exception {
return getManagedComponent(connection, DQPTYPE, DQPNAME);
}
+
+ public static ManagedComponent getBufferService(
+ ProfileServiceConnection connection) throws NamingException,
+ Exception {
+ return getManagedComponent(connection, DQPTYPE, BUFFERSERVICE);
+ }
+
public static String stringValue(MetaValue v1) throws Exception {
if (v1 != null) {
MetaType type = v1.getMetaType();
@@ -271,6 +279,18 @@
return null;
}
+ public static Double doubleValue(MetaValue v1) throws Exception {
+ if (v1 != null) {
+ MetaType type = v1.getMetaType();
+ if (type instanceof SimpleMetaType) {
+ SimpleValue simple = (SimpleValue) v1;
+ return Double.valueOf(simple.getValue().toString());
+ }
+ throw new Exception("Failed to convert value to boolean value"); //$NON-NLS-1$
+ }
+ return null;
+ }
+
public static <T> T getSimpleValue(ManagedComponent mc, String prop,
Class<T> expectedType) {
ManagedProperty mp = mc.getProperty(prop);
Modified: trunk/console/src/main/resources/META-INF/rhq-plugin.xml
===================================================================
--- trunk/console/src/main/resources/META-INF/rhq-plugin.xml 2010-07-15 18:40:42 UTC (rev 2352)
+++ trunk/console/src/main/resources/META-INF/rhq-plugin.xml 2010-07-15 20:06:02 UTC (rev 2353)
@@ -242,7 +242,7 @@
<metric displayName="Query Count" defaultOn="true" displayType="detail"
category="throughput" property="queryCount"
- description="The number of queries for a given point in time" />
+ description="The number of queries currently active." />
<metric displayName="Long Running Queries" defaultOn="true"
displayType="detail" category="performance" property="longRunningQueries"
@@ -250,8 +250,12 @@
<metric displayName="Session Count" defaultOn="true"
displayType="detail" category="throughput" property="sessionCount"
- description="The number of user connections for a given point in time" />
+ description="The number of user connections currently active." />
+ <metric displayName="Used Buffer Space" defaultOn="true"
+ displayType="detail" category="throughput" property="userBufferSpace"
+ description="The currently used file buffer space in MB." />
+
<resource-configuration>
<c:group name="teiidProperties" displayName="Runtime Engine Properties"
hiddenByDefault="false">
@@ -304,8 +308,9 @@
displayName="Active Session Count" description="Count of active sessions"
required="false" readOnly="false" />
<c:simple-property name="queryThresholdInSecs"
- displayName="Long Running Query Threshold" description="Length of time in seconds before a query is considered long running"
- required="false" readOnly="false" />
+ displayName="Long Running Query Threshold"
+ description="Length of time in seconds before a query is considered long running"
+ required="false" readOnly="false" />
</c:group>
<c:group name="bufferServiceProperties" displayName="Buffer Service Properties"
hiddenByDefault="false">
@@ -470,26 +475,29 @@
<c:simple-property name="url" type="string"
description="The Virtual Database URL" required="false" readOnly="true" />
</c:group>
- <c:group name="Translators" displayName="Translators" hiddenByDefault="false">
- <c:list-property name="translators" displayName="Overrides" readOnly="true"
- description="The translator overrides for this VDB">
- <c:map-property name="map" description="Translator Overrides for this VDB">
+ <c:group name="Translators" displayName="Translators"
+ hiddenByDefault="false">
+ <c:list-property name="translators" displayName="Overrides"
+ readOnly="true" description="The translator overrides for this VDB">
+ <c:map-property name="map"
+ description="Translator Overrides for this VDB">
<c:simple-property name="name" displayName="Name"
- description="Name of this translator instance" required="true" readOnly="true" />
- <c:simple-property name="type"
- displayName="Translator type" description="Translator type"
- required="false" readOnly="true" />
+ description="Name of this translator instance" required="true"
+ readOnly="true" />
+ <c:simple-property name="type" displayName="Translator type"
+ description="Translator type" required="false" readOnly="true" />
<c:simple-property name="propertyName"
displayName="Property Name" description="Property Name"
- required="false" readOnly="true"/>
- <c:simple-property name="propertyValue" displayName="Property Value"
- description="Property Value" required="false" />
+ required="false" readOnly="true" />
+ <c:simple-property name="propertyValue"
+ displayName="Property Value" description="Property Value"
+ required="false" />
</c:map-property>
</c:list-property>
</c:group>
<c:group name="Models" displayName="Models" hiddenByDefault="false">
- <c:list-property name="singleSourceModels" readOnly="true"
- description="The source models for this VDB">
+ <c:list-property name="singleSourceModels"
+ readOnly="true" description="The source models for this VDB">
<c:map-property name="map" description="Properties for this model">
<c:simple-property name="name" displayName="Name"
description="Name of the model" required="true" readOnly="true" />
@@ -498,17 +506,17 @@
required="false" readOnly="true" />
<c:simple-property name="translatorName"
displayName="Translator Name" description="Name of the translator"
- required="false" readOnly="true"/>
+ required="false" readOnly="true" />
<c:simple-property name="jndiName" displayName="Connection JNDI Name"
description="JNDI name for this connection" required="false" />
<c:simple-property name="visibility"
displayName="Visible" description="Visibility of the model"
- required="true" type="boolean" readOnly="true">
+ required="true" type="boolean" readOnly="true">
</c:simple-property>
<c:simple-property name="supportsMultiSource"
displayName="Supports Multi-source?"
description="Determines if this model supports multi-source bindings"
- required="true" default="true" type="boolean" readOnly="true"/>
+ required="true" default="true" type="boolean" readOnly="true" />
</c:map-property>
</c:list-property>
@@ -518,7 +526,8 @@
<c:simple-property name="name" displayName="Name"
description="Name of the model" required="true" readOnly="true" />
<c:simple-property name="sourceName"
- displayName="Source Name" description="Source name for this model" readOnly="true"/>
+ displayName="Source Name" description="Source name for this model"
+ readOnly="true" />
<c:simple-property name="translatorName"
displayName="Translator Name" description="Name of the translator"
required="true" />
@@ -536,7 +545,7 @@
description="type of logical model" required="true" readOnly="true" />
<c:simple-property name="visibility"
displayName="Visible" description="Visbility of the model"
- required="true" default="true" readOnly="true"/>
+ required="true" default="true" readOnly="true" />
</c:map-property>
</c:list-property>
</c:group>
@@ -560,12 +569,15 @@
createDeletePolicy="both" creationDataType="configuration">
<resource-configuration>
- <c:simple-property name="name" displayName="Name" description="Name of the translator" readOnly="true" required="false"/>
- <c:list-property name="translatorList" readOnly="true" required="false"
- displayName="Properties" description="Translator properties">
+ <c:simple-property name="name" displayName="Name"
+ description="Name of the translator" readOnly="true" required="false" />
+ <c:list-property name="translatorList" readOnly="true"
+ required="false" displayName="Properties" description="Translator properties">
<c:map-property name="properties" readOnly="true">
- <c:simple-property name="name" displayName="Name" description="Name of this property" readOnly="true" />
- <c:simple-property name="value" displayName="Value" description="Value of this property" readOnly="true"/>
+ <c:simple-property name="name" displayName="Name"
+ description="Name of this property" readOnly="true" />
+ <c:simple-property name="value" displayName="Value"
+ description="Value of this property" readOnly="true" />
</c:map-property>
</c:list-property>
14 years, 5 months
teiid SVN: r2352 - trunk/connectors/translator-ws/src/main/java/org/teiid/translator/ws.
by teiid-commits@lists.jboss.org
Author: shawkins
Date: 2010-07-15 14:40:42 -0400 (Thu, 15 Jul 2010)
New Revision: 2352
Modified:
trunk/connectors/translator-ws/src/main/java/org/teiid/translator/ws/WSExecutionFactory.java
Log:
TEIID-1138 removing metadata for a procedure that hasn't been added.
Modified: trunk/connectors/translator-ws/src/main/java/org/teiid/translator/ws/WSExecutionFactory.java
===================================================================
--- trunk/connectors/translator-ws/src/main/java/org/teiid/translator/ws/WSExecutionFactory.java 2010-07-15 17:38:22 UTC (rev 2351)
+++ trunk/connectors/translator-ws/src/main/java/org/teiid/translator/ws/WSExecutionFactory.java 2010-07-15 18:40:42 UTC (rev 2352)
@@ -140,8 +140,8 @@
param.setNullType(NullType.Nullable);
metadataFactory.addProcedureParameter("result", TypeFacility.RUNTIME_NAMES.XML, Type.ReturnValue, p); //$NON-NLS-1$
-
- p = metadataFactory.addProcedure("invokeHttp"); //$NON-NLS-1$
+ /*
+ p = metadataFactory.addProcedure(INVOKE_HTTP);
p.setAnnotation("Invokes a webservice that returns an binary result"); //$NON-NLS-1$
param = metadataFactory.addProcedureParameter("method", TypeFacility.RUNTIME_NAMES.STRING, Type.In, p); //$NON-NLS-1$
@@ -150,7 +150,7 @@
//can be one of string, xml, clob
param = metadataFactory.addProcedureParameter("request", TypeFacility.RUNTIME_NAMES.OBJECT, Type.In, p); //$NON-NLS-1$
- param.setAnnotation("The String, XML, BLOB, or CLOB value containing a payload request."); //$NON-NLS-1$
+ param.setAnnotation("The String, XML, BLOB, or CLOB value containing a payload (only for POST)."); //$NON-NLS-1$
param.setNullType(NullType.Nullable);
param = metadataFactory.addProcedureParameter("endpoint", TypeFacility.RUNTIME_NAMES.STRING, Type.In, p); //$NON-NLS-1$
@@ -159,6 +159,7 @@
metadataFactory.addProcedureParameter("result", TypeFacility.RUNTIME_NAMES.BLOB, Type.ReturnValue, p); //$NON-NLS-1$
metadataFactory.addProcedureParameter("contentType", TypeFacility.RUNTIME_NAMES.STRING, Type.Out, p); //$NON-NLS-1$
+ */
}
}
14 years, 5 months
teiid SVN: r2351 - trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc.
by teiid-commits@lists.jboss.org
Author: shawkins
Date: 2010-07-15 13:38:22 -0400 (Thu, 15 Jul 2010)
New Revision: 2351
Modified:
trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/JDBCExecutionFactory.java
Log:
preventing npe when the connection cannot be obtained
Modified: trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/JDBCExecutionFactory.java
===================================================================
--- trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/JDBCExecutionFactory.java 2010-07-15 16:22:12 UTC (rev 2350)
+++ trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/JDBCExecutionFactory.java 2010-07-15 17:38:22 UTC (rev 2351)
@@ -249,6 +249,9 @@
@Override
public void closeConnection(Connection connection, DataSource factory) {
+ if (connection == null) {
+ return;
+ }
try {
connection.close();
} catch (SQLException e) {
14 years, 5 months