<?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;
]>
<appendix id="unsupported_jdbc">
    <title>Unsupported JDBC Methods</title>
   <para>Based upon the JDBC in JDK 1.6, this appendix details only those JDBC methods 
   that Teiid does not support.  Unless specified below, Teiid supports all other JDBC Methods.</para> 
   <para>Those methods listed without comments throw a SQLException stating that it is not supported.</para>
   
   <para>Where specified, some listed methods do not throw an exception, but possibly exhibit unexpected behavior. 
   If no arguments are specified, then all related (overridden) methods are not supported.  If an argument is listed 
   then only those forms of the method specified are not supported.</para>
   
   <section>
   	<title>ResultSet Limitations</title>
        <itemizedlist>
            <listitem><para>TYPE_SCROLL_SENSITIVE is not supported.</para></listitem>
            <listitem><para><code>UPDATABLE</code> ResultSets are not supported.</para></listitem>
            <listitem><para>Returning multiple ResultSets from Procedure execution is not supported.</para></listitem>
        </itemizedlist>
   </section>    
   
   <section>
    <title>Unsupported Classes and Methods in "java.sql"</title>
        <table frame='all'>
            <title>Connection Properties</title>
            <tgroup cols='2' align='left' colsep='1' rowsep='1'>
                <colspec colname='c1' colwidth="1*" />
                <colspec colname='c2' colwidth="2*" />
                <thead>
                    <row>
                        <entry>Class name</entry>
                        <entry>Methods</entry>
                    </row>
                </thead>
                <tbody>
                    <row>
                        <entry>
                            <code>Array</code>
                        </entry>
                        <entry>
                            <code>Not Supported</code>
                        </entry>
                    </row>
                    <row>
                        <entry>
                            <code>Blob</code>
                        </entry>
                        <entry>
                        <programlisting><![CDATA[
getBinaryStream(long, long) - throws SQLFeatureNotSupportedException
setBinaryStream(long) - - throws SQLFeatureNotSupportedException
setBytes - - throws SQLFeatureNotSupportedException
truncate(long) - throws SQLFeatureNotSupportedException
                            ]]></programlisting>
                        </entry>
                    </row>
                    <row>
                        <entry>
                            <code>CallableStatement</code>
                        </entry>
                        <entry>
                            <programlisting><![CDATA[
getArray - throws SQLFeatureNotSupportedException
getBigDecimal(String parameterName)- throws SQLFeatureNotSupportedException
getBlob(String parameterName)- throws SQLFeatureNotSupportedException
getBoolean(String parameterName)- throws SQLFeatureNotSupportedException
getByte(String parameterName)- throws SQLFeatureNotSupportedException
getBytes(String parameterName)- throws SQLFeatureNotSupportedException
getCharacterStream(String parameterName)- throws SQLFeatureNotSupportedException
getClob(String parameterName)- throws SQLFeatureNotSupportedException
getDate(String parameterName, *)- throws SQLFeatureNotSupportedException
getDouble(String parameterName)- throws SQLFeatureNotSupportedException
getFloat(String parameterName)- throws SQLFeatureNotSupportedException
getInt(String parameterName)- throws SQLFeatureNotSupportedException
getLong(String parameterName)- throws SQLFeatureNotSupportedException
getNCharacterStream - throws SQLFeatureNotSupportedException
getNClob - throws SQLFeatureNotSupportedException
getNString - throws SQLFeatureNotSupportedException
getObject(int parameterIndex, Map&lt;String, Class&lt;?&gt;&gt; map) - throws SQLFeatureNotSupportedException
getObject(String parameterName) - throws SQLFeatureNotSupportedException
getRef - throws SQLFeatureNotSupportedException
getRowId - throws SQLFeatureNotSupportedException
getShort(String parameterName) - throws SQLFeatureNotSupportedException
getSQLXML(String parameterName) - throws SQLFeatureNotSupportedException
getString(String parameterName) - throws SQLFeatureNotSupportedException
getTime(String parameterName, *) - throws SQLFeatureNotSupportedException
getTimestamp(String parameterName, *) - throws SQLFeatureNotSupportedException
getURL(String parameterName) - throws SQLFeatureNotSupportedException
registerOutParameter - ignores
registerOutParameter(String parameterName, *) - throws SQLFeatureNotSupportedException 
setAsciiStream - throws SQLFeatureNotSupportedException
setBigDecimal(String parameterName, BigDecimal x)- throws SQLFeatureNotSupportedException
setBinaryStream(String parameterName, *) - throws SQLFeatureNotSupportedException
setBlob(String parameterName, *)- throws SQLFeatureNotSupportedException
setBoolean(String parameterName, boolean x) - throws SQLFeatureNotSupportedException
setByte(String parameterName, byte x) - throws SQLFeatureNotSupportedException
setBytes(String parameterName, byte[] x) - throws SQLFeatureNotSupportedException
setCharacterStream - throws SQLFeatureNotSupportedException
setClob(String parameterName, *) - throws SQLFeatureNotSupportedException
setDate(String parameterName, *) - throws SQLFeatureNotSupportedException
setDouble(String parameterName, double x) - throws SQLFeatureNotSupportedException
setFloat(String parameterName, float x) - throws SQLFeatureNotSupportedException
setLong(String parameterName, long x) - throws SQLFeatureNotSupportedException
setNCharacterStream - throws SQLFeatureNotSupportedException
setNClob - throws SQLFeatureNotSupportedException
setNString - throws SQLFeatureNotSupportedException
setNull - throws SQLFeatureNotSupportedException
setObject(String parameterName, *) - throws SQLFeatureNotSupportedException
setRowId(String parameterName, RowId x) - throws SQLFeatureNotSupportedException
setSQLXML(String parameterName, SQLXML xmlObject) - throws SQLFeatureNotSupportedException
setShort(String parameterName, short x) - throws SQLFeatureNotSupportedException
setString(String parameterName, String x) - throws SQLFeatureNotSupportedException
setTime(String parameterName, *) - throws SQLFeatureNotSupportedException
setTimestamp(String parameterName, *) - throws SQLFeatureNotSupportedException
setURL(String parameterName, URL val) - throws SQLFeatureNotSupportedException
                            ]]></programlisting>
                        </entry>
                    </row>
                    <row>
                        <entry>
                            <code>Clob</code>
                        </entry>
                        <entry>
                            <programlisting><![CDATA[
getCharacterStream(long arg0, long arg1) - throws SQLFeatureNotSupportedException
setAsciiStream(long arg0) - throws SQLFeatureNotSupportedException
setCharacterStream(long arg0) - throws SQLFeatureNotSupportedException
setString - throws SQLFeatureNotSupportedException
truncate - throws SQLFeatureNotSupportedException
                            ]]></programlisting>
                        </entry>
                    </row>
                    <row>
                        <entry>
                            <code>Connection</code>
                        </entry>
                        <entry>
                            <programlisting><![CDATA[
createArrayOf - throws SQLFeatureNotSupportedException
createBlob - throws SQLFeatureNotSupportedException
createClob - throws SQLFeatureNotSupportedException
createNClob - throws SQLFeatureNotSupportedException
createSQLXML - throws SQLFeatureNotSupportedException
createStatement(int resultSetType,int resultSetConcurrency, int resultSetHoldability) - throws SQLFeatureNotSupportedException
createStruct(String typeName, Object[] attributes) - throws SQLFeatureNotSupportedException
getClientInfo - throws SQLFeatureNotSupportedException
prepareCall(String sql, int resultSetType,int resultSetConcurrency, int resultSetHoldability) - throws SQLFeatureNotSupportedException
prepareStatement(String sql, int autoGeneratedKeys) - throws SQLFeatureNotSupportedException
prepareStatement(String sql, int[] columnIndexes) - throws SQLFeatureNotSupportedException
prepareStatement(String sql, String[] columnNames) - throws SQLFeatureNotSupportedException
releaseSavepoint - throws SQLFeatureNotSupportedException
rollback(Savepoint savepoint) - throws SQLFeatureNotSupportedException
setHoldability - throws SQLFeatureNotSupportedException
setSavepoint - throws SQLFeatureNotSupportedException
setTypeMap - throws SQLFeatureNotSupportedException
                            ]]></programlisting>
                        </entry>
                    </row>
                    <row>
                        <entry>
                            <code>DatabaseMetaData</code>
                        </entry>
                        <entry>
                            <programlisting><![CDATA[
getAttributes - throws SQLFeatureNotSupportedException
getClientInfoProperties  - throws SQLFeatureNotSupportedException
getFunctionColumns - throws SQLFeatureNotSupportedException
getFunctions - throws SQLFeatureNotSupportedException
getRowIdLifetime - throws SQLFeatureNotSupportedException
                            ]]></programlisting>
                        </entry>
                    </row>
                    <row>
                        <entry>
                            <code>NClob</code>
                        </entry>
                        <entry>
                            <code>Not Supported</code>
                        </entry>
                    </row>
                    <row>
                        <entry>
                            <code>PreparedStatement</code>
                        </entry>
                        <entry>
                            <programlisting><![CDATA[
execute(String sql) - throws SQLException
executeQuery(String sql) - throws SQLException
executeUpdate(String sql) - throws SQLException
setArray - throws SQLFeatureNotSupportedException
setNCharacterStream - throws SQLFeatureNotSupportedException
setNClob - throws SQLFeatureNotSupportedException
setRef - throws SQLFeatureNotSupportedException
setRowId - throws SQLFeatureNotSupportedException
setUnicodeStream - throws SQLFeatureNotSupportedException
                            ]]></programlisting>
                        </entry>
                    </row>
                    <row>
                        <entry>
                            <code>Ref</code>
                        </entry>
                        <entry>
                            <code>Not Implemented</code>
                        </entry>
                    </row>
                    <row>
                        <entry>
                            <code>ResultSet</code>
                        </entry>
                        <entry>
                            <programlisting><![CDATA[
deleteRow - throws SQLFeatureNotSupportedException
getArray - throws SQLFeatureNotSupportedException
getAsciiStream - throws SQLFeatureNotSupportedException
getHoldability - throws SQLFeatureNotSupportedException
getNCharacterStream - throws SQLFeatureNotSupportedException
getNClob - throws SQLFeatureNotSupportedException
getNString - throws SQLFeatureNotSupportedException
getObject(*, Map&lt;String, Class&lt;?&gt;&gt; map) - throws SQLFeatureNotSupportedException
getRef - throws SQLFeatureNotSupportedException
getRowId - throws SQLFeatureNotSupportedException
getUnicodeStream - throws SQLFeatureNotSupportedException
getURL - throws SQLFeatureNotSupportedException
insertRow - throws SQLFeatureNotSupportedException
moveToInsertRow - throws SQLFeatureNotSupportedException
refreshRow - throws SQLFeatureNotSupportedException
rowDeleted - throws SQLFeatureNotSupportedException
rowInserted - throws SQLFeatureNotSupportedException
rowUpdated - throws SQLFeatureNotSupportedException
setFetchDirection - throws SQLFeatureNotSupportedException
update*  - throws SQLFeatureNotSupportedException
                            ]]></programlisting>
                        </entry>
                    </row>
                    <row>
                        <entry>
                            <code>RowId</code>
                        </entry>
                        <entry>
                            <code>Not Supported</code>
                        </entry>
                    </row>
                    <row>
                        <entry>
                            <code>Savepoint</code>
                        </entry>
                        <entry>
                            <code>not Supported</code>
                        </entry>
                    </row>
                    <row>
                        <entry>
                            <code>SQLData</code>
                        </entry>
                        <entry>
                            <code>Not Supported</code>
                        </entry>
                    </row>
                    <row>
                        <entry>
                            <code>SQLInput</code>
                        </entry>
                        <entry>
                            <code>not Supported</code>
                        </entry>
                    </row>
                    <row>
                        <entry>
                            <code>SQLOutput</code>
                        </entry>
                        <entry>
                            <code>Not Supported</code>
                        </entry>
                    </row>
                    <row>
                        <entry>
                            <code>Statement</code>
                        </entry>
                        <entry>
                            <programlisting ><![CDATA[
execute(String, int)
execute(String, int[])
execute(String, String[])
executeUpdate(String, int)
executeUpdate(String, int[])
executeUpdate(String, String[])
getGeneratedKeys()
getResultSetHoldability()
setCursorName(String)
                            ]]></programlisting>
                        </entry>
                    </row>
                    <row>
                        <entry>
                            <code>Struct</code>
                        </entry>
                        <entry>
                            <code>Not Supported</code>
                        </entry>
                    </row>
                </tbody>
            </tgroup>
       </table>    
   </section>
   
   <section>
    <title>Unsupported Classes and Methods in "javax.sql"</title>
        <table frame='all'>
            <title>Connection Properties</title>
            <tgroup cols='2' align='left' colsep='1' rowsep='1'>
                <colspec colname='c1' colwidth="1*" />
                <colspec colname='c2' colwidth="2*" />
                <thead>
                    <row>
                        <entry>Class name</entry>
                        <entry>Methods</entry>
                    </row>
                </thead>
                <tbody>
                    <row>
                        <entry>
                            <code>RowSet*</code>
                        </entry>
                        <entry>
                            <code>Not Supported</code>
                        </entry>
                    </row>
                    <row>
                        <entry>
                            <code>StatementEventListener</code>
                        </entry>
                        <entry>
                            <code>Not Supported</code>
                        </entry>
                    </row>                    
                 </tbody>
             </tgroup>
        </table>
   </section>   
</appendix>