<html>
<head>
    <base href="https://docs.jboss.org/author">
            <link rel="stylesheet" href="/author/s/en/2172/19/5/_/styles/combined.css?spaceKey=TEIID&amp;forWysiwyg=true" type="text/css">
    </head>
<body style="background: white;" bgcolor="white" class="email-body">
<div id="pageContent">
<div id="notificationFormat">
<div class="wiki-content">
<div class="email">
    <h2><a href="https://docs.jboss.org/author/display/TEIID/Supported+Types">Supported Types</a></h2>
    <h4>Page <b>edited</b> by             <a href="https://docs.jboss.org/author/display/~kylin">Kylin Soong</a>
    </h4>
        <br/>
                         <h4>Changes (5)</h4>
                                 
    
<div id="page-diffs">
                    <table class="diff" cellpadding="0" cellspacing="0">
    
            <tr><td class="diff-snipped" >...<br></td></tr>
            <tr><td class="diff-unchanged" >\\ <br>|| Type || Description || Java Runtime Class || JDBC Type || ODBC Type || <br></td></tr>
            <tr><td class="diff-changed-lines" >| string or varchar | variable length character string with a maximum length of 4000. <span class="diff-deleted-words"style="color:#999;background-color:#fdd;text-decoration:line-through;"> </span> | java.lang.String | VARCHAR | VARCHAR | <br></td></tr>
            <tr><td class="diff-changed-lines" >| varbinary | variable length binary string with a nominal maximum length of 8192. <span class="diff-deleted-words"style="color:#999;background-color:#fdd;text-decoration:line-through;"> </span> | <span class="diff-changed-words">byte<span class="diff-added-chars"style="background-color: #dfd;">\</span>[<span class="diff-added-chars"style="background-color: #dfd;">\</span>]</span> \[[#a]\] | VARBINARY | VARBINARY | <br></td></tr>
            <tr><td class="diff-unchanged" >| char | a single Unicode character | java.lang.Character | CHAR | CHAR | <br>| boolean | a single bit, or Boolean, that can be true, false, or null (unknown) | java.lang.Boolean | BIT | SMALLINT | <br></td></tr>
            <tr><td class="diff-snipped" >...<br></td></tr>
            <tr><td class="diff-unchanged" >| biginteger | numeric, integral type, arbitrary precision of up to 1000 digits | java.lang.BigInteger | NUMERIC | NUMERIC | <br>| float or real | numeric, floating point type, 32-bit IEEE 754 floating-point numbers | java.lang.Float | REAL | FLOAT | <br></td></tr>
            <tr><td class="diff-changed-lines" >| double | numeric, floating point type, 64-bit IEEE 754 floating-point numbers | <span class="diff-deleted-words"style="color:#999;background-color:#fdd;text-decoration:line-through;">java.lang.String</span> <span class="diff-added-words"style="background-color: #dfd;">java.lang.Double</span> | DOUBLE | DOUBLE | <br></td></tr>
            <tr><td class="diff-unchanged" >| bigdecimal or decimal | numeric, floating point type, arbitrary precision of up to 1000 digits. | java.math.BigDecimal | NUMERIC | NUMERIC | <br>| date | datetime, representing a single day (year, month, day) | java.sql.Date | DATE | DATE | <br></td></tr>
            <tr><td class="diff-snipped" >...<br></td></tr>
            <tr><td class="diff-unchanged" >{note}Even if a type is declared with a length, precision, or scale argument, those restrictions are effectively ignored by the runtime system.{note} <br> <br></td></tr>
            <tr><td class="diff-changed-lines" >{anchor:a}\[a\] The runtime type is org.teiid.core.types.BinaryType.  Translators will need to explicitly handle BinaryType values. UDFs will instead have a <span class="diff-changed-words">byte<span class="diff-added-chars"style="background-color: #dfd;">\</span>[<span class="diff-added-chars"style="background-color: #dfd;">\</span>]</span> value passed. <br></td></tr>
            <tr><td class="diff-unchanged" >{anchor:b}\[b\] The concrete type is expected to be org.teiid.core.types.BlobType <br>{anchor:c}\[c\] The concrete type is expected to be org.teiid.core.types.ClobType <br></td></tr>
            <tr><td class="diff-snipped" >...<br></td></tr>
            <tr><td class="diff-unchanged" >{warning}Teiid&#39;s support for arrays is a new feature as of the 8.5 release.  Support will be refined and enhanced in subsequent releases.{warning} <br> <br></td></tr>
            <tr><td class="diff-changed-lines" >An array of any type is designated by adding <span class="diff-changed-words"><span class="diff-added-chars"style="background-color: #dfd;">\</span>[<span class="diff-added-chars"style="background-color: #dfd;">\</span>]</span> for each array dimension to the type declaration. <br></td></tr>
            <tr><td class="diff-unchanged" > <br>Example array types: <br> <br></td></tr>
            <tr><td class="diff-unchanged" >{code}string[]{code} <br></td></tr>
            <tr><td class="diff-unchanged" >{code}integer[][]{code} <br> <br></td></tr>
            <tr><td class="diff-snipped" >...<br></td></tr>
    
            </table>
    </div>                            <h4>Full Content</h4>
                    <div class="notificationGreySide">
        <p>Teiid supports a core set of runtime types. Runtime types can be different than semantic types defined in type fields at design time. The runtime type can also be specified at design time or it will be automatically chosen as the closest base type to the semantic type.</p>

<p><b>Teiid Runtime Types</b>
<br class="atl-forced-newline" /></p>
<div class='table-wrap'>
<table class='confluenceTable'><tbody>
<tr>
<th class='confluenceTh'> Type </th>
<th class='confluenceTh'> Description </th>
<th class='confluenceTh'> Java Runtime Class </th>
<th class='confluenceTh'> JDBC Type </th>
<th class='confluenceTh'> ODBC Type </th>
</tr>
<tr>
<td class='confluenceTd'> string or varchar </td>
<td class='confluenceTd'> variable length character string with a maximum length of 4000. </td>
<td class='confluenceTd'> java.lang.String </td>
<td class='confluenceTd'> VARCHAR </td>
<td class='confluenceTd'> VARCHAR </td>
</tr>
<tr>
<td class='confluenceTd'> varbinary </td>
<td class='confluenceTd'> variable length binary string with a nominal maximum length of 8192. </td>
<td class='confluenceTd'> byte[] [<a href="#SupportedTypes-a">a</a>] </td>
<td class='confluenceTd'> VARBINARY </td>
<td class='confluenceTd'> VARBINARY </td>
</tr>
<tr>
<td class='confluenceTd'> char </td>
<td class='confluenceTd'> a single Unicode character </td>
<td class='confluenceTd'> java.lang.Character </td>
<td class='confluenceTd'> CHAR </td>
<td class='confluenceTd'> CHAR </td>
</tr>
<tr>
<td class='confluenceTd'> boolean </td>
<td class='confluenceTd'> a single bit, or Boolean, that can be true, false, or null (unknown) </td>
<td class='confluenceTd'> java.lang.Boolean </td>
<td class='confluenceTd'> BIT </td>
<td class='confluenceTd'> SMALLINT </td>
</tr>
<tr>
<td class='confluenceTd'> byte or tinyint </td>
<td class='confluenceTd'> numeric, integral type, signed 8-bit </td>
<td class='confluenceTd'> java.lang.Byte </td>
<td class='confluenceTd'> TINYINT </td>
<td class='confluenceTd'> SMALLINT </td>
</tr>
<tr>
<td class='confluenceTd'> short or smallint </td>
<td class='confluenceTd'> numeric, integral type, signed 16-bit </td>
<td class='confluenceTd'> java.lang.Short </td>
<td class='confluenceTd'> SMALLINT </td>
<td class='confluenceTd'> SMALLINT </td>
</tr>
<tr>
<td class='confluenceTd'> integer or serial </td>
<td class='confluenceTd'> numeric, integral type, signed 32-bit.  The serial type also implies not null and has an auto-incrementing value that starts at 1.  serial types are not automatically UNIQUE. </td>
<td class='confluenceTd'> java.lang.Integer </td>
<td class='confluenceTd'> INTEGER </td>
<td class='confluenceTd'> INTEGER </td>
</tr>
<tr>
<td class='confluenceTd'> long or bigint </td>
<td class='confluenceTd'> numeric, integral type, signed 64-bit </td>
<td class='confluenceTd'> java.lang.Long </td>
<td class='confluenceTd'> BIGINT </td>
<td class='confluenceTd'> NUMERIC </td>
</tr>
<tr>
<td class='confluenceTd'> biginteger </td>
<td class='confluenceTd'> numeric, integral type, arbitrary precision of up to 1000 digits </td>
<td class='confluenceTd'> java.lang.BigInteger </td>
<td class='confluenceTd'> NUMERIC </td>
<td class='confluenceTd'> NUMERIC </td>
</tr>
<tr>
<td class='confluenceTd'> float or real </td>
<td class='confluenceTd'> numeric, floating point type, 32-bit IEEE 754 floating-point numbers </td>
<td class='confluenceTd'> java.lang.Float </td>
<td class='confluenceTd'> REAL </td>
<td class='confluenceTd'> FLOAT </td>
</tr>
<tr>
<td class='confluenceTd'> double </td>
<td class='confluenceTd'> numeric, floating point type, 64-bit IEEE 754 floating-point numbers </td>
<td class='confluenceTd'> java.lang.Double </td>
<td class='confluenceTd'> DOUBLE </td>
<td class='confluenceTd'> DOUBLE </td>
</tr>
<tr>
<td class='confluenceTd'> bigdecimal or decimal </td>
<td class='confluenceTd'> numeric, floating point type, arbitrary precision of up to 1000 digits. </td>
<td class='confluenceTd'> java.math.BigDecimal </td>
<td class='confluenceTd'> NUMERIC </td>
<td class='confluenceTd'> NUMERIC </td>
</tr>
<tr>
<td class='confluenceTd'> date </td>
<td class='confluenceTd'> datetime, representing a single day (year, month, day) </td>
<td class='confluenceTd'> java.sql.Date </td>
<td class='confluenceTd'> DATE </td>
<td class='confluenceTd'> DATE </td>
</tr>
<tr>
<td class='confluenceTd'> time </td>
<td class='confluenceTd'> datetime, representing a single time (hours, minutes, seconds, milliseconds) </td>
<td class='confluenceTd'> java.sql.Time </td>
<td class='confluenceTd'> TIME </td>
<td class='confluenceTd'> TIME </td>
</tr>
<tr>
<td class='confluenceTd'> timestamp </td>
<td class='confluenceTd'> datetime, representing a single date and time (year, month, day, hours, minutes, seconds, milliseconds, nanoseconds) </td>
<td class='confluenceTd'> java.sql.Timestamp </td>
<td class='confluenceTd'> TIMESTAMP </td>
<td class='confluenceTd'> TIMESTAMP </td>
</tr>
<tr>
<td class='confluenceTd'> object </td>
<td class='confluenceTd'> any arbitrary Java object, must implement java.lang.Serializable </td>
<td class='confluenceTd'> Any </td>
<td class='confluenceTd'> JAVA_OBJECT </td>
<td class='confluenceTd'> VARCHAR </td>
</tr>
<tr>
<td class='confluenceTd'> blob </td>
<td class='confluenceTd'> binary large object, representing a stream of bytes </td>
<td class='confluenceTd'> java.sql.Blob [<a href="#SupportedTypes-b">b</a>] </td>
<td class='confluenceTd'> BLOB </td>
<td class='confluenceTd'> VARCHAR </td>
</tr>
<tr>
<td class='confluenceTd'> clob </td>
<td class='confluenceTd'> character large object, representing a stream of characters </td>
<td class='confluenceTd'> java.sql.Clob [<a href="#SupportedTypes-c">c</a>] </td>
<td class='confluenceTd'> CLOB </td>
<td class='confluenceTd'> VARCHAR </td>
</tr>
<tr>
<td class='confluenceTd'> xml </td>
<td class='confluenceTd'> XML document </td>
<td class='confluenceTd'> java.sql.SQLXML [<a href="#SupportedTypes-d">d</a>] </td>
<td class='confluenceTd'> JAVA_OBJECT </td>
<td class='confluenceTd'> VARCHAR </td>
</tr>
</tbody></table>
</div>


<div class='panelMacro'><table class='noteMacro'><colgroup><col width='24'><col></colgroup><tr><td valign='top'><img src="/author/images/icons/emoticons/warning.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td>Even if a type is declared with a length, precision, or scale argument, those restrictions are effectively ignored by the runtime system.</td></tr></table></div>

<p><a name="SupportedTypes-a"></a>[a] The runtime type is org.teiid.core.types.BinaryType.  Translators will need to explicitly handle BinaryType values. UDFs will instead have a byte[] value passed.<br/>
<a name="SupportedTypes-b"></a>[b] The concrete type is expected to be org.teiid.core.types.BlobType<br/>
<a name="SupportedTypes-c"></a>[c] The concrete type is expected to be org.teiid.core.types.ClobType<br/>
<a name="SupportedTypes-d"></a>[d] The concrete type is expected to be org.teiid.core.types.XMLType</p>

<h2><a name="SupportedTypes-Arrays"></a>Arrays</h2>

<div class='panelMacro'><table class='warningMacro'><colgroup><col width='24'><col></colgroup><tr><td valign='top'><img src="/author/images/icons/emoticons/forbidden.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td>Teiid's support for arrays is a new feature as of the 8.5 release.  Support will be refined and enhanced in subsequent releases.</td></tr></table></div>

<p>An array of any type is designated by adding [] for each array dimension to the type declaration.</p>

<p>Example array types:</p>

<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="theme: Confluence; brush: java; gutter: false" style="font-size:12px; font-family: ConfluenceInstalledFont,monospace;">string[]</pre>
</div></div>
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="theme: Confluence; brush: java; gutter: false" style="font-size:12px; font-family: ConfluenceInstalledFont,monospace;">integer[][]</pre>
</div></div>

<div class='panelMacro'><table class='noteMacro'><colgroup><col width='24'><col></colgroup><tr><td valign='top'><img src="/author/images/icons/emoticons/warning.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td>Teiid array handling is typically in memory.  It is not advisable to rely on the usage of large array values.  Also arrays of lobs are not well supported and will typically not be handled correctly when serialized.</td></tr></table></div>
    </div>
        <div id="commentsSection" class="wiki-content pageSection">
        <div style="float: right;" class="grey">
                        <a href="https://docs.jboss.org/author/users/removespacenotification.action?spaceKey=TEIID">Stop watching space</a>
            <span style="padding: 0px 5px;">|</span>
                <a href="https://docs.jboss.org/author/users/editmyemailsettings.action">Change email notification preferences</a>
</div>
        <a href="https://docs.jboss.org/author/display/TEIID/Supported+Types">View Online</a>
        |
        <a href="https://docs.jboss.org/author/pages/diffpagesbyversion.action?pageId=18646246&revisedVersion=7&originalVersion=6">View Changes</a>
                |
        <a href="https://docs.jboss.org/author/display/TEIID/Supported+Types?showComments=true&amp;showCommentArea=true#addcomment">Add Comment</a>
            </div>
</div>
</div>
</div>
</div>
</body>
</html>