<!DOCTYPE appendix 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="system_properties">
	<title>System Properties</title>
	<para>Some of Teiid's low-level behavior can be configured via system properties, rather than through configuration files.  
	A typical place to set system properties for JBoss AS launches is in the &lt;jboss-install&gt;/bin/run.conf.  A property setting
	has the format -Dproperty=value</para>
	<itemizedlist>
		<listitem>
			<para><emphasis>org.teiid.allowNanInfinity</emphasis> - defaults to false.  Set to true to allow numeric functions
			 to return NaN (Not A Number) and +-Infinity.  Note that these values are not covered by the SQL specification.</para>
		</listitem>
		<listitem id="value_caching">
			<para><emphasis>org.teiid.useValueCache</emphasis> - defaults to false.  Set to true to enable the canonical value cache. 
			Value caching is used dynamically when buffer memory is consumed to reuse identical values and thus reduce the memory consumed by Teiid.
			There is a computation cost associated with the cache lookup, so enabling this setting is not appropriate for installations handling large volumes of dissimilar data.  
			</para>
		</listitem>
		<listitem>
			<para><emphasis>org.teiid.ansiQuotedIdentifiers</emphasis> - defaults to true.  
			Set to false to emulate Teiid 6.x and prior behavior of treating double quoted values without leading identifier parts as string literals, which is not
			expected by the SQL specification.
			</para>
		</listitem>
		<listitem id="subquery_unnest">
			<para><emphasis>org.teiid.subqueryUnnestDefault</emphasis> - defaults to false.  
			Set to true to aggressively unnest subquery IN and EXISTS predicates.  If possible the predicate will be unnested to a traditional join and will be eligible for dependent join planning.
			If a traditional join is not possible (such as with NOT IN) a merge join version of the semijoin or antijoin will be considered by upon the costing information available. 
			</para>
		</listitem>
		<listitem>
			<para><emphasis>org.teiid.ODBCPacketSize</emphasis> - defaults to 307200.  
			Target size in bytes of the ODBC results buffer.  This is not a hard maximum, lobs and wide rows may use larger buffers.
			</para>
		</listitem>
		<listitem>
			<para><emphasis>org.teiid.iso8601Week</emphasis> - defaults to false.  
			Set to true to use ISO 8601 rules for week calculations regardless of the locale.  When true the dayOfWeek function will begin with 1 for MONDAY rather than SUNDAY, and the week function will require that week 1 of a year contains the year's first Thursday.
			</para>
		</listitem>
		<listitem>
			<para><emphasis>org.teiid.decimalAsDouble</emphasis> - defaults to false.  
			Set to true to parse exact fixed point literals, e.g. 1.0, as double values rather than as decimal/BigDecimal values and to return a double value from the AVG function for integral values in the same way as releases earlier than 8.0.
			</para>
		</listitem>
		<listitem>
			<para><emphasis>org.teiid.comparableLobs</emphasis> - defaults to true.
			Set to true to allow blob and clob values to be comparable in Teiid.  Source type metadata will determine if the comparison can be pushed down.
			</para>
		</listitem>
		<listitem>
			<para><emphasis>org.teiid.padSpace</emphasis> - defaults to false.  
			Set to true to compare strings as if PAD SPACE collation is being used, that is strings are effectively right padded to the same length for comparison.  If this property is set, it is not necessary to use the trimStrings translator option.
			</para>
		</listitem>
	</itemizedlist>
</appendix>